04/06/13 21:34 nOFtOGzx
そうなのかー、かー。読んだ事無かったから、スマソ
162は悪くないけど全ての部屋にほぼ直通で行ける状態はどうかと。
ある程度の回り道を要求する方がいいと思いますた。
168: ◆Mn5mzn8hAQ
04/06/13 21:43 SVTy+FtY
>>167
さようか一筋縄ではいかんな。
ソース読んだ方が早いかな。
ちなみにローグの生成部分のソースファイルは1000行未満で
ほんとに関係あるのは
そのうち一部分だけなので実はたいしたことがない。
でもコメントついてねぇし。。orz..ぐぅ
169:名前は開発中のものです。
04/06/13 23:22 9y2POLbC
じゃあ、みんなでソースを読み進める勉強会なんてしませんか?
170: ◆Mn5mzn8hAQ
04/06/13 23:34 SVTy+FtY
>>169
いいこと言うなぁ。
仕切ってくださいくださいください
171:名前は開発中のものです。
04/06/14 03:47 kvXypjdH
迷路生成の部分だけ抜き出して
貼ってちょうだい
172: ◆Mn5mzn8hAQ
04/06/14 04:32 0lapHs9H
>>171
貼り付けられるほどは短くないジョ。。。
ソース付ウィンドウズ版ローグクローン2
URLリンク(www.freak.ne.jp)
のRogue Clone II
部屋生成の理屈はわかったが
通路つなぎの部分で苦戦中。
173: ◆Mn5mzn8hAQ
04/06/14 05:09 0lapHs9H
んでもってローグに関する
(厳密にはローグクローン2系)の
我輩が読んでみた限りの情報提供しようとおもふ。
参考になるかわからんが(読み間違えてるかもしんないし)
AppMain.cがエントリポイントを含むソース
(Win版でない人は多分Main.c)
135行目のfor(;;)ループの部分の
make_level();が生成の関数。
level.cで定義されている。
これ以外で生成にからんでくるファイルは
room.cとrogue.h位だがちょっと参照する程度。
<つづく>
174: ◆Mn5mzn8hAQ
04/06/14 05:13 0lapHs9H
生成は非常に大雑把に言うと
①3x3に分けたエリアのうち8箇所に部屋を設置する
②一定の法則で対となる部屋を決める
③3回方向転換しながら通路を結ぶ
という段取り。
<つづく>
175: ◆Mn5mzn8hAQ
04/06/14 05:24 0lapHs9H
①と③はそれとなくなんとなくわかったような気分。
しかし②の部分がまだ理解不能。
>>157 で指摘している繋がりチェックを省いて
華麗かつスマートなアルゴリズムで選定するんだろう。
寝ぼけた脳みそでは理解できんねぃ。朝になっちゃったねぃ。
ぐぅ。
他いろいろ気づいたことあるんですが長くなったのでさやうなら。
<つづかない>
176: ◆Mn5mzn8hAQ
04/06/14 05:53 0lapHs9H
ごめん上の>>157ての>>161の間違いです脳はすでに睡眠しています
177:名前は開発中のものです。
04/06/14 08:05 Fu2wy2cA
>>108の穴掘り法は、3次元の迷路も作れそうだな。
というかこのページ、迷路ゲームの面白さへの考察まで書いてある。
なかなかいい大学だな。
178:名前は開発中のものです。
04/06/14 09:28 c4NXluee
>>161の問題は最初の部屋から最短経路探索、領域拡張法でいいで解決しない?
179:名前は開発中のものです。
04/06/14 09:47 5+/Otxjs
で、もまいら具体的なソースはできたのかい?
180:名前は開発中のものです。
04/06/14 11:25 HxZhdP5q
思っていたより厄介なソースだなぁ、コメント少ないし。
get_rand(x, y);
xからyまでの範囲の乱数値を得る
例)
get_rand(5, 2);
5から7までの間の乱数値
181:名前は開発中のものです。
04/06/14 11:26 HxZhdP5q
coin_toss();
0か1の値をランダムに返す
182: ◆Mn5mzn8hAQ
04/06/14 12:04 0lapHs9H
>>180
なるほど、ここで判明した関数かきだして
リファレンスみたいにすれば
みんなで読めるね
と、get_randの説明がおかしいある・・
get_rand(5, 2)なら2~5の乱数を返す
get_rand(5, 7)なら5~7の乱数を返す だわいね
乱数に関する関数はrandom.cに入っております。
>>178
最短経路探索、お、と思ったけどローグのソースはなんか違う気がしる
>>179
他のしとは知らんけど俺はまだ読むばかりなり。アンタも読むなり。
183:2時間しか寝てませんよ? ◆Mn5mzn8hAQ
04/06/14 12:19 0lapHs9H
画面ORマップまわりの重要な定数(Rogue.h)
#define ROW1 7
#define ROW2 15
#define DROWS 24/*縦の最大*/
#define COL1 26
#define COL2 52
#define DCOLS 80/*横の最大*/
※~1、~2は
マップを3x3の領域にきりわける際に利用している
184:2時間しか寝てませんよ? ◆Mn5mzn8hAQ
04/06/14 12:54 0lapHs9H
●rm = room・・・部屋を表現する構造体。
Y2、X2、Y1、X1、door[4], is_room で構成される
is_roomはR_NOTHIN、R_ROOM、R_MAZE、R_CROSSなどの定数が入り、
部屋の種類をあらわす。
●door = dr・・・ドアに関する情報をつめこむ構造体
ペアになる部屋番号、ペアのドアのY、ペアのドアのX、X、Yで構成される
一つの部屋は最大4つのドアをもっていて
しかもペアになる部屋のドアの座標ももっており
かつ部屋ではなく通路になったりもする、と。
185:名前は開発中のものです。
04/06/14 13:08 HxZhdP5q
>>183
まだ読みかけだから間違っているかもしれないけど補足すると・・・
部屋の最大数は9で、80x24の空間をを9個に分割して
部屋を配置しているっぽい。
例外はBIG_ROOM。空間内に一部屋だけという状態。部屋のサイズは画面内でランダム。
これはゲーム中、いずれかの階に一度だけ かつ 1/100の確率で出現する。
186:名前は開発中のものです。
04/06/14 13:09 HxZhdP5q
>>185
あ、0lapHs9H氏の書き込みみると、9個じゃなくて8個なのかな。
187:2時間しか寝てませんよ? ◆Mn5mzn8hAQ
04/06/14 13:17 0lapHs9H
>>185
あ、ほんとだ部屋の数9だね
for WonderWitchのソースはなぜか8ですた
#define MAXROOMS 9(rogue.h)
100分の1の確率なのか、なーる
188:2時間しか寝てませんよ? ◆Mn5mzn8hAQ
04/06/14 13:24 0lapHs9H
ぶっちゃけてしまうが
風来のシレン月影村の怪物インターネット版の体験版
を画面キャプチャしながら4階層遊んでみたが
今わかっている時点だけであきらかにRogueと
生成方法が違いますケドw
189:名前は開発中のものです。
04/06/14 14:21 CyVM64I2
rogueのソース読むのもいいけど自分で書いちゃった方が早いし面白いんじゃないかなあ
190:名前は開発中のものです。
04/06/14 16:11 5+/Otxjs
そうして、他人のソースを読まずに突き進んできた奴があwqせdrftgyふじこlp;
191:名前は開発中のものです。
04/06/14 17:06 rnOPv/om
せっかくだから斬新な自動生成段ジョンを開発しようぜ
192:名前は開発中のものです。
04/06/14 19:04 HxZhdP5q
ダラダラと別のことしながらローグIIのソース読んでる。
部屋生成について補足。make_level()から呼び出される、make_room()は以下の通り。
画面を3x3に分割して、その分割された領域内に矩形を作ることで部屋にしている。
サイズはランダムで、領域内の左上からの位置もランダム。この時、他の領域には
踏み入らないように計算しているので、部屋の重なりをチェックする必要はない。
必ず9個の部屋があるわけでない。条件によって部屋のあるなしが決められる。
条件は単なるランダムではなく、ある程度の法則性がある。
これはゲームバランス的なものだと思うので詳しい説明は省略。
1/2の確率で縦に3部屋並ぶ構成になる・1/2の確率で3種類の部屋の並びになる、
一つのフロアには、少なくとも3つの部屋が生成される、とか。
部屋のあるなしを決定したら、フロアマップに部屋の構成を記録すると同時に、
部屋の位置やサイズを別に記憶しておく。
193:名前は開発中のものです。
04/06/14 19:18 HxZhdP5q
おっと、一部読み間違えた。
>部屋の位置やサイズを別に記憶しておく。
サイズではなく、左上の座標と右下の座標っぽい。
あと、条件チェックで部屋がないと判断されても、先に計算した部屋の位置・・・
つまり、小領域内での左上と右下の座標値を保存している。どうやら通路?を
生成する時に利用しているっぽい。
194:ぐぅ ◆Mn5mzn8hAQ
04/06/14 19:40 0lapHs9H
だいたいわかったんだが、
わからないのが
ペアの部屋を選定するコード。
add_maze/make_maze。
add_mazeは>>193の「部屋ではなく通路にする」場合の処理で
座標を保存して範囲を限定することで
どこまでも無駄に通路を延ばしてしまうことを避け
るためと読んだ。
月曜日は面白いテレビ番組がなくて退屈である。
195:名前は開発中のものです。
04/06/14 19:42 HxZhdP5q
部屋を作ったら、次は迷路の作成らしい。通路ではない。
9個の小領域内に、ある条件を満たしたら、迷路を作る。
基点は先の部屋を作成した時に保存した左上の位置から、掘り進む。
1回(1文字)掘るごとに1/3の確率で進行方向を変える。
掘り進む方向+1と、その左右方向(画面の左右ではなく進行方向に対して)、
それから、掘り進む方向+2を調べて、すでに掘った通路があったら迷路作成終了。
掘る範囲は先にランダムに決定した部屋サイズ内なので、小領域を出ることはない。
迷路が生成される条件はゲームバランス的なので詳しい説明は略。
最初の階では絶対に迷路がない。16階以降は階を増やすごとに迷路が作られる確率が高まる。
迷路は1つの階につき1つっぽい。
196:名前は開発中のものです。
04/06/14 19:45 HxZhdP5q
>>195は、make_maze()の処理内容です。
197:名前は開発中のものです。
04/06/14 19:49 HxZhdP5q
>>195
また読み違えた。
> 掘る範囲は先にランダムに決定した部屋サイズ内なので、小領域を出ることはない。
掘る範囲は少領域内。
基点が、部屋サイズ内。
198:ぐぅ ◆Mn5mzn8hAQ
04/06/14 19:52 0lapHs9H
ははぁなるほど。
するってぇと通路への変更は別のコードか。
199:名前は開発中のものです。
04/06/14 19:57 HxZhdP5q
>>198
関数名だけみると、通路&ドア作成は、connect_rooms()内っぽいですよ。
200:名前は開発中のものです。
04/06/14 20:12 HxZhdP5q
迷路を作ったら、hide_boxed_passage()を実行してる。
処理内容は、作った迷路をところどころHIDDEN属性にする。
つまり、先に迷路を掘ってから迷路の一部をHIDDEN化してる。
このルーチンは、迷路だけでなく、通路作成時にも呼び出されてる。
隠し処理は3階以降にしか発生しない。あとはゲームバランス的な条件で。
201:名前は開発中のものです。
04/06/14 20:14 HxZhdP5q
というわけで、add_mazes()もおしまい。
>>197は間違いで、やっぱり掘る領域は部屋サイズだったけど、まぁいいや。
202:ぐぅ ◆Mn5mzn8hAQ
04/06/14 20:16 0lapHs9H
>>199
ああ、通常の部屋同士の通路掘りはそれなんだけど、
229行で部屋でも迷路でもないものははじかれるから
それ以外に部屋を通路にするロジックがあるのではないかと
おもて。
R_CROSSという定数がアヤシイ・・
fill_out_level()とfill_it()がアヤシイ・・
とかおもてました。
最後に調整してるんかな、とか。
でもなんか違う気もするし・・
まぁ割と瑣末な部分なので
この時点で突っ込まないでもいいのかもしれんが。
203:ぐぅ>腹ペコ ◆Mn5mzn8hAQ
04/06/14 20:29 0lapHs9H
>>200
ほほぅ。そうなんだ。ソース読むの早いなぁ。
部屋同士を接続するアバウトなしくみの見当ついた。
012
345
678
とわかれているエリアで
ランダムに部屋を選んで、(ここでは仮に0とすると)
1,2,3,6のエリアの部屋に接続に行く。
選んだ部屋が4だったとすると5と7に接続にいく。
実は6にも接続に行ってしまうが、
connect_roomsで実際に接続する際、行か列のいずれかがあっていないと
処理を終了するので結局6には接続しない。
これをランダムな順番で0~7について行う(8はイラン)
つまり、
右、さらに右、下、さらに下の4箇所に接続に行く。
非常にアバウトだが、
これが接続先選定のアルゴリズムであった。タブンネw
夕飯買ってきてそれからそれからもうちっと読んでみます。
204:名前は開発中のものです。
04/06/14 21:06 HxZhdP5q
連続投稿制限に引っかかって、ふてくされてた。
3x3の領域内に部屋と迷路を作ってから、迷路の部分隠しをしたあとは、
mix_random_rooms()で3x3の小領域の情報を10回ほどシャッフルしてるっぽい。
領域単位での入れ替え。
・・・すでに部屋とか迷路をdungeon[][]内に書き込んでるけど、
そんなことしていいのか?どこか読み違えてるかも。
というわけで、そろそろ通路の処理に入りそうなんだけど、ここからが面倒っすね。
とりあえずアミュレットは26階以降にでるっつーことで。
205:ぐぅ>腹ペコ ◆Mn5mzn8hAQ
04/06/14 21:29 0lapHs9H
>>204
そうそう、mix_random_rooms()でしっちゃかめっちゃかと俺も悩んだw
でも冷静によむと、
mix_random_rooms()はrandom_roomsをシャッフルするだけで
肝心のroomsはいじられないので大丈夫だったりしる。
random_roomsはランダムに部屋選ぶのに参照しるだけの配列にゃり。
部屋同士の接続はこれまたアバウトにいうと
部屋の出入り口を向かい合わせにつくって(dirとrevに向きを設定)
通路を延ばして途中で向きかえて座標をあわせて再度通路をのばして
ドッキングしてるだけ
というか、細かい話抜きにしると
これでほぼ全容はわかったことになるんだなぁ。
206:名前は開発中のものです。
04/06/14 21:53 MkSJwU7k
ソースに 日本語コメントつけてうぷ汁
207:ぐぅ@満腹 ◆Mn5mzn8hAQ
04/06/14 21:59 0lapHs9H
>>206
なんかくれるか?
208:名前は開発中のものです。
04/06/14 22:10 HxZhdP5q
>>205
なるほど、そっちだったか~。
深読み&変数名勘違いのトラップひっかかってました。
209:ぐぅ@凍結 ◆Mn5mzn8hAQ
04/06/14 22:35 0lapHs9H
隣り合っていても部屋と部屋を繋ぐ通路がなかったりしるのは
どのような理屈であろうか。
210:名前は開発中のものです。
04/06/14 23:18 HxZhdP5q
>>200の続き。
部屋と部屋をつなぐ処理・・・は>>203ですが、ちょっと補足。
1つの小領域につき1度、右とその右、下とその下の4箇所の
小領域(にある部屋)に対して通路を作成する。
connect_rooms();
まず、向かい合わせになっているそれぞれの部屋の壁に対して、
ランダムな位置に扉を作成する。そこから通路を延ばす。
draw_simple_passage();
通路は2回曲がるように作成される。スタート地点の扉から
ランダムな長さまで直線をひいて、進行方向を変えて、そこからゴールの扉の
縦座標(or横座標)まで直線をひいて、進行方向を扉の方にして、
そこからゴールの扉まで直線をひくだけ。進行方向を変えるとかいうのは90度向きを...
とかではなく、部屋の位置関係が上下であれば、下にひいて、右か左にひいて、また下ひく
という、ただの条件分岐と線をひくためのfor()ループ三回。
211:名前は開発中のものです。
04/06/14 23:28 HxZhdP5q
通路を作成したら、12%の確率で通路の一部を隠す。
迷路作成時に呼び出した、hide_boxed_passage()と同じ。
そうそう、小領域をまたぐ場合...つまり、>>200の図でいうと、0から2とか、
0から6へ通路を作成した場合には、その中間の小領域(1 or 3)には、
R_CROSSという部屋扱いになるけど・・・これが何を意味するのか、今はわからない。
もちろん、1と3に部屋があったら、通路は作成されない。
あとは、is_all_connected()とfill_out_level()を読んだらオシマイ。
ナゾというか、勘違いかもしれないけど、隠し扉ってなかったっけ?
あれっていつ作ってるんだろう?
212:ぐぅ@凍結 ◆Mn5mzn8hAQ
04/06/14 23:42 0lapHs9H
R_CROSSは
R_ROOMでもR_MAZEでもR_NOTHINGでもないエリア(というか部屋)
connect_rooms()の最初の条件文ではじかれるエリア、
はやい話、通路を延ばせない場所でいいんでないかと。
十字路ってみかけないものな。
put_door()の最後の方の
if ((cur_level > 2) && rand_percent(HIDE_PERCENT)) {
dungeon[*row][*col] |= HIDDEN;
は隠しドアとは違うの?ちゃんと読んでないからわからんけど。
213:名前は開発中のものです。
04/06/14 23:46 HxZhdP5q
通路を一本作成したら、全ての部屋がつながっているかを調べる。
is_all_connected();
9つの小領域分用意された、部屋訪問フラグをクリアする。同時に、部屋が
あるかどうかを調べて、あれば、その部屋の番号を覚えておく。(starting_room)
その部屋から訪問調査する。
visit_rooms(roomnum);
roomnum部屋の訪問フラグをオンにする。
roomnum部屋にある4つの扉に対して・・・
扉から接続されている別の部屋の扉を調べて、
その部屋に対してvisit_rooms()する。再帰呼び出しですよ。
※先に書き忘れたけど、部屋に扉と通路を作成する時に、どこの部屋の
扉につながっているのかを記録してあるので、それを参照している。
また、一つの部屋には最大で4つの扉が設置される。上下左右の壁に一つずつ。
全部屋訪問フラグがONになっていれば、全部屋が接続されているとみなされる。
なぜか、
if ((rooms[i].is_room & (R_ROOM | R_MAZE)) && (!rooms_visited[i])) {
部屋だけでなく、迷路も部屋と同じ扱いになってる。
214:ぐぅ@氷解 ◆Mn5mzn8hAQ
04/06/14 23:51 0lapHs9H
おおお、謎がほぼすべて解けた
ヽ(`Д´)ノ うぉ~
あれ、部屋が通路になってしまう仕掛けはいったい・・
215:名前は開発中のものです。
04/06/14 23:51 HxZhdP5q
>>212
隠し扉それです、ThanX!
>>209
その1 ... 隠し扉
その2 ... is_all_connected();が真の場合、通路作成のfor()ループをbreakしてます。
つまり、ぐるっとまわって別の部屋へつながっている場合、直通路は作成されないのだと思います。
216:名前は開発中のものです。
04/06/14 23:59 HxZhdP5q
fill_out_level()ながーい!休憩。
217:ぐぅ@氷解 ◆Mn5mzn8hAQ
04/06/15 00:02 f1MiYXar
make_room()内の
if ((rn != r1) && (rn != r2) && (rn != r3) && rand_percent(40)) {
goto END;
}
の処理、必須の3部屋でなければ40%の確率で
通路に変貌すると見た。つぅか既出だったっけかな・・
218:ID変わっちゃった
04/06/15 01:58 aIwm2r1B
fill_out_level()はよくわからない。
部屋に扉がない場合(どこにもつながってない壁がある)、
行き止まりの通路を作成してる?
まぁ、ローグの部屋と通路の作成方法はこれでわかった、ということでいっかな。
このアルゴリズムのキモは“空間を3x3に分割する”ということに尽きますね。
これで部屋の重なりを防げるし、ある程度のばらつきを保証できるわけです。
219:ぐぅ@氷解 ◆Mn5mzn8hAQ
04/06/15 02:25 f1MiYXar
>>218
ウンウン
おれっちも3X3が肝とおもふさ~
あと、再帰して繋がりチェックしるやつ
あれないと全部の部屋がつながってしまうわけだけど
ランダムな部屋から通路つくるから絶妙に無駄な通路ができたりする。
必ずしも最低限の通路ではないちうとこもよくできてる。
まとめでもアップしようと思ったけど(カッタルイからw)やめて
このアルゴリズムの簡易版でも作ってアップしようかな。
ID変わっちゃったさんありがとう
おかげでかなりスムーズに解析できた。
というわけで、とりあえずどもおつかれさました~
220:名前は開発中のものです。
04/06/15 16:40 vSxhBobb
ローグのソース解析お疲れさんです
労をねぎらう意味で、
Delphianで人気の「Delphiゲームプログラミングのエッセンス」
からロジックを転載します。
フロアを3×5のブロックに分ける
1ブロックは、10×10のマス
部屋番号
□□□□□ 0~4
□□■□□ 5~9
□□□□□ 10~14
部屋の数は、5~10として、最低3個は偶数の部屋番号に配置する
1ブロックには、最大9×9マスの部屋が作られる。
(1マス分は通路に充てる。)
1ブロックには、必ず部屋か通路が存在する。ただし■は何も無し。
2と12(■の上下にあるブロック)はどちらかを必ず両隣とつなぐ。
2と12を隔てて左右のフロアで各6ブロック毎に部屋や通路を作成する。
そのとき通路を繋ぐロジックは、絶対に繋がっていない部屋を作らないこと。
これが基本。
3×3のブロックに分けるロジックよりは、ダンジョンっぽい造りになると思う
後は、部屋を迷路状にしてしまうとか、ブロックをまたいだ中部屋をつくるとか、
隣り合わせのブロックに向かう通路を必ず作るとか(円形のフロアになる)、
適当に部屋や通路を加工していけば面白くなるかもね。
221:ぐぅ@夜更かし ◆Mn5mzn8hAQ
04/06/16 03:10 wguEk+iT
このようなものを生成できるようになりました。
らしくなってるじゃろうか?
URLリンク(namihei.zone.ne.jp)
URLリンク(namihei.zone.ne.jp)
222:名前は開発中のものです。
04/06/16 06:49 4vCvzbx3
>>221
おおっ、トルネコっぽい。グッド。
223:名前は開発中のものです。
04/06/16 17:06 wxXigfIi
>>221
いい感じだね。
しかも、ローグのソースをもとにちょこっと拡張しました?
せっかく結果も出てきたことですし、
ここらで、ダンジョン自動生成のルールを決めたらどうでしょうか?
とりあえず、たたき台
1.「風来のシレン」を習い、1フロアの面積を50x30とする
2.1フロアの情報は、部屋・通路・壁の3種類として、出力を区別する
3.サンプル出力は、画像とし、2パターン以上提出する
意見等あればどうぞ。
224:名前は開発中のものです。
04/06/16 18:17 E0t6wJPT
いや、技術的な話は、もう特にないんだよ。
ここまでくるとあとはゲームバランスになってしまう。
1フロアに部屋をいくつ配置するのかっていうのは、
腹の減り具合とか、敵の強さとかに依存するし。
225:ぐぅ@腹ペコ ◆Mn5mzn8hAQ
04/06/16 18:30 wguEk+iT
>>222
さんくすこ
究極的ダンジョン生成エンジンを開発して
それはもう愉快なローグ系携帯アプリを作るのが夢ですの。
もちろん主人公はカシワモーチですわ。
>>223
現状1フロアは64x48。
4x3のエリアにわけて生成。
部屋を配置して通路でつないでるだけ。
ここまできて気づいたのだが
俺っちには今のところ
「どんなマップを生成したいのか」という具体的なビジョンがない。
究極的てなんやねん、て話。
夕飯買いに逝ってきます。
226:名前は開発中のものです。
04/06/16 19:21 7o6/4sW2
ローグ系アルゴリズムが落ち着いたところでこんなものを放り出してみるテスト
URLリンク(www.aarg.net)
227:ぐぅ@アイスクリーム ◆Mn5mzn8hAQ
04/06/16 19:31 wguEk+iT
>>226
むぅ
それすごいね。
それで生成したマップで内容がシレンだったら面白いのだろうか。
228:名前は開発中のものです。
04/06/16 19:37 7o6/4sW2
もともとD&D用だからシレンよりWizとか3D系の方が相性がいいだろう。
シレンとかはフィールドを巡るって感じだけどWizは部屋を漁るって感じだから。
229:名前は開発中のものです。
04/06/16 19:52 umWV/n6X
うむ、それみると、自動生成でWiz作れそうだね
よさげだ
230:名前は開発中のものです。
04/06/16 20:07 6hhIabkQ
URLリンク(www.vector.co.jp)
231:ぐぅ@満腹 ◆Mn5mzn8hAQ
04/06/16 20:24 wguEk+iT
そうか自動生成でウィザードリ~。
なるほど・・・
232:名前は開発中のものです。
04/06/16 21:20 MyHIRJr2
自動生成でWizといったらヘルドアか
RPGツクールだけど
233:223
04/06/17 09:19 gyW9IQUR
>>225
>現状1フロアは64x48。
だったか、スマソ 適当に書いたのが悪かった
ただ、ここは自動生成スレだし、いろんなロジックを考えるのは無駄じゃないと思うんだが・・・
シレンにしろ、明らかにひとつのロジックで書かれていないでしょ?
まぁ、いいけど( ゚Д゚)y─┛~~
234:ぐぅ@D言語研究中 ◆Mn5mzn8hAQ
04/06/17 14:17 loWtexz3
>>233
なんで謝ってるのかわかんないジョ
俺もいろんなロジックを考えるのは無駄じゃないと思うジョ
235:名前は開発中のものです。
04/06/17 17:10 ItiRVkb7
ローグ系のダンジョン自動生成だったら作ったことがある。実際やるかどうかはともかく考えてみる
ブロック単位で生成させるなら三次元のダンジョンも応用で出来そう
ただ完全にベクターというか、アリの巣のようなダンジョンを作るのはもうどうやったらいいのかわからん
236:223
04/06/17 18:09 gyW9IQUR
>>234
あ、うむ、読み返してみるとなんか変だ。
議論ばっかじゃあれなんで、漏れもなんか造ってみる
237:ぐぅ@裸ネクタイ ◆Mn5mzn8hAQ
04/06/18 18:00 q/zHUwKW
シレンにならって
①通路をなるべくグネグネしない
という方針で
マップ生成アルゴリズムに手を加えてみますた。
意見きかせてくださいまし
Javaアプレットで、クリックするたびに新しいマップを生成しる。
URLリンク(namihei.zone.ne.jp)
238:ぐぅ@裸ネクタイ ◆Mn5mzn8hAQ
04/06/18 18:01 q/zHUwKW
①と書いてあるのに②がないのは気のせい( ´_ゝ`)
239:名前は開発中のものです。
04/06/18 19:26 1IDEdqU+
>>1
それならツクール2003で作れ
ダンジョン自動作成機能あるぞw
240:名前は開発中のものです。
04/06/18 19:56 oZgvjvN9
>>239
物事の仕組みがどうなっているかを知ろうとしない奴にはプログラミングの素質はない。一生ツクールやってろ。
241:名前は開発中のものです。
04/06/18 20:22 A6zOKkuB
>>237
おーすげー。
けど、「ローカを極力直線的にする」という方針のせいで
「同じようなマップばかり」感が出来てしまっている気もしまつ
242:名前は開発中のものです。
04/06/18 22:10 Gazkyfw7
そういやトルネコ3では長方形以外の小部屋も生成されてたな
角が丸くなってるのとか
□□□□
□□□□
□□
243:ぐぅ@裸エプロン ◆Mn5mzn8hAQ
04/06/18 23:35 q/zHUwKW
>>241
>「同じようなマップばかり」感が・・
了解。
それは俺っちも感じてたので現在調整中。
>>242
なるほど部屋自体もバリエーションがあると・・
それはあまり考えてなかったカモ。
あとで考えてみる。
マップ生成のイメージができあがったので
もう一息で完成しる予定。
244:名前は開発中のものです。
04/06/19 01:47 eD4/Os/T
こういう自動生成型のダンジョンは、ローグ系以外にも使っていきたいね
でも具体的な使い方が思いつかない orz
245:ぐぅ@夜這い中 ◆Mn5mzn8hAQ
04/06/19 02:59 YWlxQVDJ
>>244
生成アルゴリズム学習の効能を考えてみた。
●うぃざ~どり~タイプ(>>229-230参照)
●Quakeなどの3Dアクションゲームのステージ
●各種ゲームの一場面にスパイスとして
●パズルゲームとして
●電流イライラ棒のステージとして(゚Д゚)ハァ?
●追いかけっこ、レースゲームなど
ステージを巡回することに意味があるゲームすべて
使えそうな場面てイッパイありそうだね。ららら。
246:名前は開発中のものです。
04/06/19 09:16 VrZX8wM9
ランダムなカルドセプトなんか面白そうだ
247:名前は開発中のものです。
04/06/19 16:54 TP5uiroQ
普通のRPGでやられるとどこ行っても変わり映えしないで飽きるだろう
248:名前は開発中のものです。
04/06/19 20:27 zNSAKAYY
ギリギリのバランスにしないと、単に面倒なだけのダンジョンになるよね。
249:名前は開発中のものです。
04/06/19 21:21 CFVCgowp
237とは違うアルゴリズムで作ってみた。
これだと通路がごちゃごちゃになりやすい罠。
URLリンク(namihei.zone.ne.jp)
窓用バイナリです。マカやウニな方すいません。
Rで再生成。起動時にオプションに"-nowait"付けるとウェイト無しになります。
250:ぐぅ@ディープブルー ◆Mn5mzn8hAQ
04/06/19 22:25 YWlxQVDJ
>>249
生成してる様子が見れて面白いねヽ(´ー`)ノ
んでアルゴリズムを想像してみた。
穴掘り系のアルゴリズムで(見たまんまだがw)
再帰的に通路を延ばして
既存の部屋や通路と重ならないことを条件に
部屋を配置しているとみた。
通路の問題と部屋の数とマップの大きさの
制御ができれば究極かもね~とおもた。
251:名前は開発中のものです。
04/06/20 10:48 IVN9/P8p
GBのドラクエモンスターズシリーズは、RPGで自動生成ダンジョンつかってたな。
ダンジョンに飽きが来る前に、あまりの作業ゲーっぷりに飽きたが。
252:249
04/06/21 19:22 Yt6BBulP
URLリンク(namihei.zone.ne.jp)
バージョンアップしてみたよ。
主な変更点は、
通路を作る時に周囲の壁比率を調べて、壁が多い方に向かって掘り進む様にしてみたぐらい。
起動オプションの内容が変わってるので一応readme読んどいて。
>>250
マップのサイズは一応引数で指定できる様になってまつ。
通路の問題も少しはよくなったはず。かな? 部屋の数はとりあえず放置。
とりあえずマップ生成はこの辺で中断して、
簡単なローグライクな物体を作ってみようかと思ってます。
253:名前は開発中のものです。
04/07/08 00:08 cqJ2IUqs
t
254:名無しさん@そうだ選挙に行こう
04/07/11 14:17 N5viEg7j
うわーん、おとせねー
255:名前は開発中のものです。
04/07/13 02:42 jJo7FGn+
自作ゲーム評価スレ
スレリンク(gamedev板)l50
ここの323が迷路自動生成のRPGつくってるよ
256:名前は開発中のものです。
04/08/01 15:21 usbW8wJj
今作ってるけど以外と難しいなこれ
通路2本がこんがらがったりしてる
257:名前は開発中のものです。
04/08/27 18:39 6G59GEgA
ダンジョン補修
258:名前は開発中のものです。
04/09/01 00:10 lhDgMKCu
220の書いてくれたロジックでとりあえず部屋作るまでは出来た。
URLリンク(gamdev.org)
259:名前は開発中のものです。
04/09/01 00:28 Gy9xIV4C
頑張ってるのは褒められることだが
おまいこんなただの白黒画像をJPGにすんなよ。
GIFのほうがよっぽど容量少ないぞ。
260:名前は開発中のものです。
04/09/01 01:02 lhDgMKCu
>>259
ゲムデヴのトコ、jpgで上げてるヒト多かったんで・・・
以後気を付けます。
261:名前は開発中のものです。
04/09/01 01:34 IwX3QeYN
しかもただの二色なのに、jpgつかうから劣化しちゃっているし。
むしろtxtでも良いくらいだ。
俺も現在作成中。廊下が上手くうごかん。
262:名前は開発中のものです。
04/09/10 15:25:48 BWQ15nVC
誰か面白いダンジョン生成アルゴリズム開発してない?。
このスレで挙げられたようなのとは違うやつ。
263:名前は開発中のものです。
04/09/10 16:20:26 TY6UsWtD
現在出ていた生成されるダンジョンタイプの種類は
1.単純な棒倒し法、穴掘り法等をそのまま利用した迷路のみのダンジョン
2.nethack、rouge等の部屋と通路に分けられるダンジョン
面白いアルゴリズムって言ってもなあ…
264:名前は開発中のものです。
04/09/10 16:54:00 +r9mwvZc
今考えてるのは円形のダンジョン
何重もの円を書いて適当にブッタ切る
そして内側の円から外側の円に向けて通路をわたす
265:名前は開発中のものです。
04/09/10 17:08:05 0YuGbAcl
手作業で作られた既存のダンジョンっぽいのを自動生成で作れるようになるには、
アルゴリズムというよりは様々な細かい要素を組み込むことが必要なのかな
266:名前は開発中のものです。
04/09/10 17:09:05 CkYRmAwD
まずは面白いダンジョンというのを定義したまえ
267:名前は開発中のものです。
04/09/10 19:14:10 FL6ftGDh
半裸の女の子が出てくるダンジョン
268:名前は開発中のものです。
04/09/10 19:27:32 oQTQ81fi
フォントデータを
ダンジョンデータにコンバートする
どの文字かはランダム
プレイヤーは予測しながら進む
269:名前は開発中のものです。
04/09/10 20:07:04 sRVfUITO
>>267
半裸の女の子を生成しないといけないわけか、今までのアルゴリズム
では確かに解決できないな…
期待させてもらいます。
270:名前は開発中のものです。
04/09/10 21:02:44 BWQ15nVC
実際に手作業でダンジョン作ってる人の、
指針というか、作り方がわかれば、自動生成にも応用できそうなんだけどね・・。
271:名前は開発中のものです。
04/09/10 21:05:40 u8u8k9wk
ぬるぽ堂
URLリンク(f25.aaacafe.ne.jp)
272:名前は開発中のものです。
04/09/11 00:07:12 qXK5hJcc
かわいい女の子の白黒ドット絵を
そのままダンジョンにコンバートしたらいい
273:名前は開発中のものです。
04/09/12 00:09:09 csUOVR/a
とりあえずダンジョン全体の構造とギミックは分けて考えようぜ。
このスレで重要なのは構造の方だよな。
例えば1つのフロアでもタクティクスみたいに山あり谷ありにするとか。
274:名前は開発中のものです。
04/09/12 00:14:29 6giDMfAq
構造を再現するためにギミックがあるんだから分けても分けれないと思うんだけどなー。
山アリ谷アリんを作るとしたら・・・
まったいらの床にてきとーに縦軸の起伏の最大値を設定して段々と・・・よくわかんね
275:名前は開発中のものです。
04/09/12 00:51:56 7YwXfMXJ
PSのアザーライフアザードリームスがローグライクで地面にブロック単位で高さがあったよ。
一定以上段差があると通行できない。
276:名前は開発中のものです。
04/09/12 04:11:27 5jJEqSKa
タクティクスオウガやFFTAのはごくわずかなパラメータからなかば自動生成のように山あり谷あり作れるシステムだと
どこかで見たおぼえがある
277:名前は開発中のものです。
04/09/12 16:27:13 DirlIiFv
今なにげにGems見てたが、ダンジョン自動生成載ってるな。
3ページくらいだけど・・・。
278:名前は開発中のものです。
04/09/13 01:02:22 /TWcsktV
オートメーション化によって生成されたダンジョンよりも、
職人デザイナが丁寧に作り上げたダンジョンの方がいいよ。
プログラマにできることは前者なんだけどさ。
279:名前は開発中のものです。
04/09/13 01:12:33 4vmv6GkS
職人デザイナががんがろうと思えるようなエディタを作ることもできる
・・・あれ?
280:名前は開発中のものです。
04/09/18 13:11:14 kb7Apco/
巧みなジャンジョンマップのサンプルを多数拾ってきて
そこから共通点を見つけ出し、アルゴリズム化…
うん、俺はやらない
281:名前は開発中のものです。
04/09/18 13:37:59 xT0CmM48
おまえにはムリだよ( ´_ゝ`) プッ
282:名前は開発中のものです。
04/09/27 18:01:27 4SFuLUec
ここの住人にできる人はいないらしい
283:名前は開発中のものです。
04/09/27 18:12:21 mSnDxcyL
そんなことはないぞー!!
・・・。
284:名前は開発中のものです。
04/09/28 00:22:03 GU2B02zv
人間の行動心理学を利用してワナにはめるダンジョンを作ってみたい
いや、そういうダンジョンを作って遊びあうのも面白そうだ。
・・・しまった、確か前にナムコが似たようなの出してた。
285:名前は開発中のものです。
04/09/28 04:45:49 Sc/T2jjq
右回りに出口を配置するとか?
286:名前は開発中のものです。
04/09/28 18:00:05 ofbRvjxB
出入り口の1歩先とか、2つの出入り口の最短ルート上とか、宝箱や階段の周囲なんか。
でもそういうところに罠が多いと覚えられたら逆に攻略が簡単になる罠。
287:名前は開発中のものです。
04/09/28 22:33:54 UcoBfAAY
プレイヤーの行動パターンを学習して一番効果的なポイントを割り出すとか
288:名前は開発中のものです。
04/09/29 19:45:00 376p4p/M
入口から必ず一歩踏み出すのを学習して罠配置
289:名前は開発中のものです。
04/09/29 21:02:10 gBf9GxrK
はじめっからイカサマで 一歩一歩調べてる時は出現させず 走り出した足元に罠生成
290:名前は開発中のものです。
04/09/30 14:32:14 0ISGzMLp
ダンジョンコンセプト設定
想定襲撃者設定
予想攻略順路設定
クライマックスシーン設定
くらいは内部で考えてほしいやん
291:名前は開発中のものです。
04/09/30 20:01:00 OuTCYL2U
スレを一通り読んだ。>>172からのRogue Clone IIの解析が熱いね。
この解説があれば簡易roguelikeを作って遊べるかな?
>>226のWiz風小部屋cgiもすごそう。
292:名前は開発中のものです。
04/10/03 23:00:30 QZ2qsdxk
現実世界見ても、ダンジョン(地下牢じゃなく)ってそんなに実在するわけじゃないからなあ。
遺跡に面倒な迷路作ったりしねーし、洞窟だってRPGに出てくるようなのとは全然違うし。
探鉱なんかは割とそっくしっぽいかな。
293:名前は開発中のものです。
04/10/03 23:15:43 8EPrF2Db
本物の鍾乳洞なんて、そこらのラストダンジョンよりも1億倍むずかしいつくりしてるからなぁ
294:名前は開発中のものです。
04/10/04 05:47:00 0YxQ3kRH
まず最初に、三次元だしな。右手法とか、すでに無力。
無計画に建て増しを重ねた家とか、ダンジョンっぽいけどね。
うちの大学の法経本館って建物が、まさしくそんな感じだった。
295:名前は開発中のものです。
04/10/04 08:08:55 KgUV+MGE
やったことある人間なら分かるが
三次元迷路の難しさ(作る方じゃなくて解く方)は並大抵じゃない
無重力だったら更に難易度アップ
296:名前は開発中のものです。
04/10/04 09:19:42 uBXpC+20
TV局もお客さんが迷うように出来てるよな
297:名前は開発中のものです。
04/10/04 09:44:56 tjHvNagT
視聴者が殴りこんできたときに目的地にたどりつけないようにするためという噂もあるが。
298:名前は開発中のものです。
04/10/05 00:05:27 yY4LedyX
>>295
昔、無重力三次元の迷路にハマってたことがある。解く方ね。
マス目状でできている限りは、三次元右手法というのを使えば
一応解けるか、または出発点に帰って来れるのだけど…。
299:名前は開発中のものです。
04/10/05 23:11:17 HWPrXU8U
ケイブダイバー万歳
300:名前は開発中のものです。
04/10/10 18:52:00 ztmRv9+O
>>298
詳細キボンヌ
三次元右手法でぐぐったらこのスレが一番上だった。
301:名前は開発中のものです。
04/10/10 21:51:28 hLLwP255
>>300
googleの検索ロボットって優秀だよなw
302:名前は開発中のものです。
04/10/11 00:16:28 yRIcbrcS
>>300
そういうときって、かなり鬱になるよな。
さらに 先が真っ暗にw
303:名前は開発中のものです。
04/10/11 14:19:33 JIBMCEks
ワロタ
304:名前は開発中のものです。
04/10/12 01:50:59 INg1LVSW
三次元右手法の解説まだ~? チンチン
305:名前は開発中のものです。
04/10/12 02:35:23 sUyOixh1
つーかなんなんだ、そのエロそうな方法は。
306:298
04/10/12 15:39:49 qEbFSq6q
えー、三次元右手法とか、リア工のときの漏れが勝手につけた名前だからなあ。
じゃあ長文になるけど書くよ。
そもそも右手法って何のためのものかって言えば、交差点でどっちへ進むかを
指し示すものなんだよね。で、この時肝心なのは、「今は北に向いてるから…」とか
考えなくても、目の前の情報だけから判断して行く方向を決めれるということ。
通常の右手法では、現在の進行方向と、伸ばしている手とに従って、交差点では
「手の側」「直進」「手の反対側」「戻る」というこの4方向を、この順に優先して選ぶ。
手の側が空いていればそっちへ、だめなら直進、それもだめなら手の反対側へ、
それもだめなら戻るという具合で。
ところで、三次元の迷路では、体の向きというのは「進行方向」だけでは決まらない。
たとえば同じ「北行き」でも、足元が地面方向のこともあれば、足元が東とか、西とか
天の方向になっていることがあるから。
307:名前は開発中のものです。
04/10/12 15:40:13 qEbFSq6q
で、それをふまえて結論だけど。
まず、常に一方の壁面に足をつけて歩くのと、片手を上げて歩いてることが前提で。
交差点で進行方向を選ぶときの優先順位は次のとおり。
「足元」「手の側」「直進」「頭上」「手の反対側」「戻る」
たとえば、右手を上げながら歩いている人は、まず足元が空いていれば必ず足元へ、
もし右側が空いていればそっちへ、それもだめなら直進、それもだめなら頭上へ、
それもだめなら左側へ、それもだめなら戻る、という具合になります。
それで、足元へ入るとか右へ曲がるとか言っても、曲がった後足元をどっちにするかが
問題になるわけですが、それはこうです。
「優先順位が一つ低かった進行方向が、頭上になるように」。
たとえば、手の側へ曲がるときは、直進方向が頭上になるようにしますから、つまり
今来た方向が足元になることになります。
それから、「手の側」「頭上」「戻る」を使ったときは、上げる手の左右を変えます。
このようにして歩けば、通常の右手法と同様に、ループのない迷路では必ず出口に
行けるし、ループのある迷路でも、最低でも入口に帰ってくることができます。
308:名前は開発中のものです。
04/10/12 23:41:46 anbCpzYg
>>306-307
解説どうも。進む方向をあらかじめ一定順序に決めておくのね。
しかし3Dだとややこしいな。
309:名前は開発中のものです。
04/10/20 15:45:07 OESpaijF
サンプル作ったけど、このスレ生きてるんかしれ・・
310:名前は開発中のものです。
04/10/20 16:09:17 EZg4Amvo
>>309
書き込まないだけでチェックはしてるぞ。
311:名前は開発中のものです。
04/10/20 19:52:07 DmOOtTYD
同じく
312:名前は開発中のものです。
04/10/21 07:49:28 7EH9XTP2
漏れも
313:309
04/10/21 13:57:49 W++eIQEI
俺が作ったのは一見トルネコ式にみえて全然別なやり方で
作ったサンプルなんだけど評価してくれるかい?
こんなもんでゲームに使えるかどーか。
314:名前は開発中のものです。
04/10/21 18:36:05 O9PQK3Ve
>>313
まずはうpよろ
315:309
04/10/21 19:47:21 LRTkBKUo
ここに仮設置済
テキトーにダウンして感想よろん
URLリンク(nanca.hp.infoseek.co.jp)
316:名前は開発中のものです。
04/10/21 20:02:15 O9PQK3Ve
>>315
内部エラーが発生しますた(13)
ヽ|・∀・|ノシ
317:名前は開発中のものです。
04/10/21 20:22:55 aFfvccIw
>>315
同じく内部エラー
318:309
04/10/21 21:27:11 LRTkBKUo
げふんw
319:309
04/10/21 21:38:38 LRTkBKUo
修正版再うp
URLリンク(nanca.hp.infoseek.co.jp)
320:名前は開発中のものです。
04/10/21 22:06:44 aFfvccIw
>>319
黒い三角と白い三角なに?
321:309
04/10/21 22:46:39 LRTkBKUo
上の階からの階段と下への階段です~
形だけできてもゴールできないと意味ないんで~
322:名前は開発中のものです。
04/10/21 23:17:15 YbvLPdmt
>>319
ス(゚д゚)ゲー
長方形じゃなくて角が凹んでたりしてるのがおもしろいかも。
太い通路とか2本通路があったりしてトルネコ3っぽい
できれば簡単な手順を…
323:名前は開発中のものです。
04/10/22 00:00:36 rykU18/g
かなり実用に近いと思った。
・複数の部屋の重なり :0~たくさん
・行き止まりの数 :0~たくさん
などを制御できてもいいかも。
あと、乱数の種を一つ指定して毎回同じ迷路を生成できるようにすれば、シレンシリーズの救助のようなことも。
324:名前は開発中のものです。
04/10/22 07:52:24 mUi+pZkQ
>>319
おー。すごいなコレ。アルゴリズム教えれ
325:名前は開発中のものです。
04/10/22 14:36:32 mA1KySzl
良い感じだな。あとはもうちょっと通路にクネクネ感が欲しいトコ。
326:名前は開発中のものです。
04/10/22 22:44:13 VMSWGRgR
確かにすごいけど一本道が多いような気がする
327:309
04/10/22 22:50:19 CFKkD0NF
>シレンシリーズの救助のようなことも。
スマン、シレンはやったことないから救助の意味がわからん・・・
クネクネと一本道回避かぁ。
修行してきまふ
328:名前は開発中のものです。
04/10/23 00:03:43 L29asmXm
救助は自分が死んだダンジョンとまったく同じダンジョンを他のプレイヤーに遊んでもらう機能
「シレン 救助」でぐぐるといろいろ出てくる
このスレの場合はそれだけでなく
A いいダンジョンできたよー
B 俺もそのダンジョン見たい
A ほれ乱数種
B 見られたーありがとー
というような用途から有効
329:309
04/10/23 22:33:14 PdomheLF
どうも串死んだみたいなんでラストカキコ
シレンの救助の件、サンクス
今後の開発に活かしますね
以後、自ページに潜伏します。みなさんありがとん!
330:名前は開発中のものです。
04/10/24 14:27:49 BuMdqiGY
>>329
【開発】ヾ(゚∀゚ )ノ=3 ヽ(´Д`;)ノ~マッテー、仕組みオシエテー
331:名前は開発中のものです。
04/11/03 22:28:15 95Rp/siN
トルネコとかシレン系の自動生成のソースってないですかね?
332:名前は開発中のものです。
04/11/03 23:21:17 HyRaP3me
あったら見てみたいな
それまではこのスレのを全部試して
トルネコやシレンに似てない点の報告と
どうやれば似るかの案を出してみたりするとよいか
333:名前は開発中のものです。
04/11/04 22:24:51 wvxk1hpD
>>332
自動的に似てる似てないを判断して係数を調整して
見本(シレンとかトルネコ?)に似たダンジョンが作れるようにするとか…。
まあ、そもそもアルゴリズム的に対応できなかったら、意味ないけど。
334:名前は開発中のものです。
04/11/14 12:06:02 zwJU6Kfx
ダンジョンの自動生成ってなかなか難しいですね。
部屋の配置まではすんなりできたけど、
部屋同士をどうやってうまいこと繋げようかと。
とても悩ましい秋です。
335:名前は開発中のものです。
04/11/14 16:40:15 kcTR4H2p
そうしてもう冬がやってきました
○y一~~
(|,へ
」 ○| ̄|_
336:名前は開発中のものです。
04/11/14 17:03:35 zwJU6Kfx
うそーん(p_q)
では春までにいっちょまえなダンジョンを目指します。
337:名前は開発中のものです。
04/11/14 22:46:02 kcTR4H2p
いや、むしろ俺も出来てないのよw
最初はドルアーガみたいな棒倒し系にしようかとも思ったけど
面白みに欠けるのでローグライク(シレン系?)っぽい感じに決定。
試行錯誤するがうまく行かないうちに、そろそろ中華マンが恋しい季節になりましたOTL
338:名前は開発中のものです。
04/11/14 22:51:00 kcTR4H2p
レスした瞬間にふと思ったんだけど…
ダンジョンが成長するってのはどうだろう?最初は単純で部屋数も少ないが
クリアされるごとにより広大になったりトラップが増加したり
モンスターの強さがクリア回数によって変わっていったり…
最終的に面倒なだけのダンジョンになりそうな悪寒…○| ̄|_
もしかしてこういう系のゲームって既出かな?
339:名前は開発中のものです。
04/11/15 00:02:32 NDaBfp6i
ファミマのトンポーローマンなんてどうでしょう。
こちらもローグライク系で頑張ってるのですが、
なにせシレンすらしたことがないもんで。うふ。
EZアプリでシレンありましたっけ?
最初のうちは簡単なダンジョンで
徐々に複雑になっていくってのはいいですね。
1ブロックを16x16でdefineして、自動生成関数の引き数に
縦横のブロック数と配置する部屋の数を渡すようにしているんですが、
あまり広くしすぎるとほんのりバランスが悪くなりそうな予感です。
まーお互いちまちま頑張りましょう。
340:名前は開発中のものです。
04/11/15 00:17:07 ZN/ZipLx
>>338
ダンジョン育成ゲームか。
・厳しく進化するタイプ
足踏みで体力回復してる時間が長いと、次のフロアでは足踏みが不利になるように進化。
それでも頑張って足踏みするとさらに進化。カモった敵は次のフロアでは減ってたりレベルupしてたり。
・無関係に進化するタイプ
ランダムその他で
・甘く進化するタイプ
次のフロアで食料や強い武器が出るような行動がある
どれがいいのかな。というよりバランス良く混ぜるのがいいのか。
341:名前は開発中のものです。
04/11/15 00:29:19 rJ8prcLE
>>340
>足踏みで体力回復してる時間が長いと、次のフロアでは足踏みが不利になるように進化。
>それでも頑張って足踏みするとさらに進化。カモった敵は次のフロアでは減ってたりレベルupしてたり。
これ面白いですね。構造以外にも環境に変化をつけるわけですね。
シレンで例えるならば風の吹くまでのターン数が減少してみたり
敵の初期配置数や出現するまでのターンが変化したり…
ダンジョンの進化の仕方によってはバランスの調整が難しいですね…
あんまり緩い進化だと長く単調になるし、急激すぎると詰まる可能性もあるし
342:名前は開発中のものです。
04/11/15 00:37:38 cKIxt0Ru
わざと空腹にして出る食料を増やす奴が出てくるな。
でも空腹時の食料放出をしないと初心者が苦しいし。難しいところだ。
343:名前は開発中のものです。
04/11/15 13:38:14 o1Vlbcad
理想論を言ってもむなしくなるだけだし、
段階的学習みたいに一番小さいものから順に発展させていくか?
344:名前は開発中のものです。
04/11/16 01:34:57 ipRZtLX5
EZアプリかどうかは忘れたがmobile rogue likeとかいうのが
あったはずだ
345:名前は開発中のものです。
04/11/16 19:54:46 CI9NO0tG
>>344
親切にありがとう。ゲットしましたー。
が、近々BREW端末に機種変する予定なのです(p_q)
auがJAVA ON BREW機を出してくれることを祈りつつ、
ダンジョン自動生成の実現に精進しまっす。
346:名前は開発中のものです。
04/11/16 21:57:42 P9enDA5f
>>343
みんなで作るつもりなのか?ただ、順序を示すだけ?
347:名前は開発中のものです。
04/11/17 14:34:04 IMseoB+W
>>345
BREWで開発しちゃったら勝手アプリは作れないんでないの?
Java on brewなんてもし開発されても配布元がKDDIのCPじゃないとアカンし
開発予定にもあがってないモン期待するんか?
作っても配布出来ないモン作ってどーするねん?あぁ売るのかw
348:名前は開発中のものです。
04/11/17 18:40:58 rA9IV7Dv
>>347
言葉足らずでした。
Java on BREWを望んだのは、
アプリを作ったり売ったりの話ではなく、
Javaアプリで遊びたいってことです。
mobile rogue likeをゲットしたのも束の間、
BREW機に機種変してしまうんで。
あくまで淡い希望です。
最後の1行を前の文とくっつけたんでややこしかったですね。
誤解招いてごめんなさいです。
349:347
04/11/17 23:37:37 UoSgUdN/
あぁ、なるほどね。こちこそ早とちりスマソ。
しかし、互換性がまるで無いっつーのもアレだよな。
お詫びにネタ投下。
URLリンク(www.doblog.com)
350:343
04/11/18 00:08:49 MJQO2PT5
>>346
手順を示すだけです。まぁいいや。なんか適当に作ってみます。
351:名前は開発中のものです。
04/11/20 19:25:46 qm4OblSH
つーわけでBREW端末に機種変してきました。
旧端末も手元に残ったんで一応mobile rogue likeできるっちゃできます。
352:名前は開発中のものです。
04/11/22 15:24:30 YKE/U/zA
機種変ご苦労!
というわけでBREW版トル●コ担当よろりん。
353:名前は開発中のものです。
04/11/22 19:28:33 ZU3vvTqD
えーっマジっすか!?Σ(゜□゜;)!!
BREWどころか、まだアルゴリズムの模索中なんで、
ゲームの体裁すら取ってないっす。
アルゴリズム完成したらEZアプリ(JAVA)でゲームにしよーかなーと。
できるのかな…
354:名前は開発中のものです。
04/11/22 20:11:16 bYbj4rLe
先生!ダンジョン自動生成どころかhello worldしかできません!
355:名前は開発中のものです。
04/11/22 20:35:27 IGs/J4HR
Hello World っていうダンジョンを作成しる
356:名前は開発中のものです。
04/11/22 21:30:17 Q0i9cxFu
トロルさまよう目レプラコーンレプラコーンオーク レイスオークジャイアントラットレプラコーン仔犬
357:名前は開発中のものです。
04/11/23 01:10:55 uQgOaJX3
353
そうやって人間育っていくのですよw
358:名前は開発中のものです。
04/11/23 18:21:14 r5d0JSDL
>356
おしいな。
最初はトロルじゃなくて巨人、そしてオークとレイスの間に幽霊が居る。
359:名前は開発中のものです。
04/11/25 16:53:11 eemIdysM
いまさらながら思うですが自動育成ダンジョン=シレンタイプみたいな
風潮があるような気がしますがそれが一番望まれてるって事なんでしょうか?
それとも難しいからでしょうか?
360:名前は開発中のものです。
04/11/25 19:04:45 bNN/YI6j
ほかにもいろいろ自動生成ものは発売されてるよね。
roguelikeをここまで遊びやすく換骨奪胎したかー、とシレンに衝撃を受けた俺の場合
シレン以外はあまり記憶にないけど。
361:名前は開発中のものです。
04/12/03 14:21:55 Qyr4NTOJ
そして今年も終わっていく…
362:名前は開発中のものです。
04/12/05 00:24:43 zmFRbU8M
343は作ってるんだろうか…密かに期待
363:名前は開発中のものです。
04/12/06 12:45:09 XGqr52Q8
>1
ダンジョン自動生成のところのコーディングを終えたところ。
こんな感じ。
URLリンク(www.geocities.jp)
開発報告スレに載せましたが、こっちのスレの方があってるかなと思って...。
このゲームで使ってるダンジョン生成のアルゴリズムは簡単に説明すると
下記の通り。
1) 2次元配列に適当に部屋を作る
2) 部屋を通路(Path)でつなげる
3) 通路が変になってないかを確認。変なところがあれば直す(例えば通路が
太くなって部屋くらいの大きさになったりしてるところ)
4) つながってない部屋がないかを、Recursive で確認。もしあれば最初から
作り直す
動作確認をしたブラウザは Winows XP の IE のみ。
JVMのバージョンは 1.4.2-b28。
テンキーで移動。斜め移動も可能。デバッグの情報が表示されてるけど
無視しちゃってください。絵は描けないんで、ネットで拾ったやつを使って
ます。
行き止まりの通路は作ってません。リリース版には入れるかも。リリース
予定は早くて2006年の年末くらい。
364:363
04/12/06 13:00:13 XGqr52Q8
訂正:
2006年の年末 -> 2005年の年末
365:名前は開発中のものです。
04/12/06 14:18:10 /tS/nbd7
>>363
Opera 7.5 + Sun Java Runtime Environment version 1.4 では
「Invalid Bytecode」のエラーになりますね。
366:363
04/12/07 11:56:57 NaF5wHrT
最新版の JRE でないと起動できないというバグがありました。
訂正版を今アップしました。Opera 7.5 の環境は持ってない
ので確認はできませんでしたが。
367:名前は開発中のものです。
04/12/07 12:21:39 pHcKCsp7
棒倒し式迷宮自動生成プログラム(Ver0.02)
URLリンク(www.geocities.co.jp)
368:名前は開発中のものです。
04/12/07 13:50:54 TS7A5yv3
>>366
Opera 7.5 で見ました。ちゃんと動いてる様子。
369:名前は開発中のものです。
04/12/07 22:06:04 RerrmthA
スクリーンセーバーにならんかなぁ…
370:名前は開発中のものです。
04/12/10 08:53:30 9nn+RPio
>>367
斬新な生成法ならともかく、棒倒し法なんて迷路生成アルゴリズムの中でも
広く認知されてる方だし、再帰処理無しで実現できるし、ガイシュツだし、
このスレで求められてるのは不思議なダンジョン系の
生成アルゴリズムだし今更ここにそれを貼る意図が判らん。
371:名前は開発中のものです。
04/12/10 08:55:39 oAhBbrDg
>このスレで求められてるのは不思議なダンジョン系の生成アルゴリズムだし
ここ以外は同意
372:名前は開発中のものです。
04/12/10 10:34:07 xXQCTLgm
つまり何をどうしろと?
なんなら俺がローグ系のアルゴリズムを説明しようか?
373:名前は開発中のものです。
04/12/10 10:39:09 YvKdmYqn
1から読め。
374:名前は開発中のものです。
04/12/12 15:35:10 wBr93c4E
>>372
この際ぜひ熱く語ってください
375:名前は開発中のものです。
04/12/12 16:07:27 AcpQbbvN
>>372
頼む
376:372
04/12/13 22:09:33 Rb5wRHew
373にムッと来て解説せんとこおもたけど、
このままじゃ年越せない香具師の為に希望者10人集まったらやったるよ。
あと8人な。
その前に何がわからんのか、解りやすく述べるよーに。
そこ詳しく解説したる。
377:名前は開発中のものです。
04/12/13 23:11:20 ZvpPKfOH
rogueのhack自体はスレの途中で行われているからrogueを作りたい人はそれを読めばよいとして。
トルネコやシレンにみられる、「rogueアルゴリズムだけでは作れないようなダンジョン」
の具体的な内容と、その作成方法、あたりが求められてた時期があったような。
でもrogueダンジョンをちゃんと作るのでもけっこう骨だし、作る途中で壁にぶつかった人のための
rogue解説が非常に有難いのはいうまでもない。
378:名前は開発中のものです。
04/12/14 07:28:23 poGq8Mnc
・部屋は 0 ~ n 本の通路を持つ。
・通路は部屋と枝分かれした通路を持つ。
以上の 2 ルールを再帰で書きましょう。
んで、部屋を1つ作れば勝手にニョキニョキっとローグダンジョン完成。
379:名前は開発中のものです。
04/12/15 22:31:04 lyT8gy6+
>>372
解悦キボンヌ
380:名前は開発中のものです。
04/12/15 22:57:06 axE7iVzD
>>372
解説を是非
381:名前は開発中のものです。
04/12/15 23:01:00 QSBnkci9
>>372
解説キボン
382:名前は開発中のものです。
04/12/16 00:44:06 qi/2VfrX
>>372
解説お願い
あと4人か
383:名前は開発中のものです。
04/12/16 01:09:17 vb9l5MzD
>>372
解説を所望いたす
384:名前は開発中のものです。
04/12/16 04:45:02 0Jr2pFyq
>>372
解説すればミンナ幸せというわけでキボン
385:名前は開発中のものです。
04/12/16 06:12:29 i5AsAUvc
>>372
解説気盆ぬ
386:名前は開発中のものです。
04/12/16 07:14:41 I5NiXAvz
解説きぼん
387:372
04/12/16 13:38:02 Fe46NDml
ちゃんとレスくれたのは377のみかよ
どーもオマエらが解らないで困ってる部分が俺には解らないので掻い摘んで書く
まず、考え方から。
頭の中に方眼を用意しる!これが、マップの全体だ。
15x15ぐらいのな。
つまり、225部屋のマスが有るわけだ
もちろん通路もこの中にしまう。
視覚的に部屋なのか通路なのかは捉える方の錯覚にしかすぎない。
これが通路に見えるタイプ(この場合は縦方向)
■■□■■
■■□■■
■■□■■
■■□■■
■■□■■
部屋(と錯覚してるのは)こんなタイプ
■■□■■
■□□□■
■□□□■
■□□□■
■■□■■
こういう風に5x5とかでテキトーに部屋のパーツを作れ
通路タイプで曲げた時はちゃんと接続できるようなパーツも作れ
複雑なダンジョンつくりたきゃ沢山つくれもちろん7x7や9x9の方がいいぞ
388:372
04/12/16 13:42:25 Fe46NDml
つまりこれらのパーツを繋がるよーに並べていけばいいわけだ
次に繋ぎ方。
まず最初に、全体マップにスタート位置を決めれ
そしたら、そこに部屋を置く
このとき次に通路タイプを置く向きを決めてそれにあったタイプを
となりに置いてやる
389:372
04/12/16 13:46:17 Fe46NDml
これで、1つの部屋と1つの通路が出来た訳だ
そしたら次は通路タイプに繋がる部屋を置いてやる
このとき選んだタイプの繋がる方にまた通路タイプを置いてやる
長い通路にしたいときは通路タイプを2回置いてやれ
以下、これの繰り返し。
ぶっちゃけ通路をどっちに延ばすのかはランダムできめれ
390:372
04/12/16 13:52:07 Fe46NDml
初代はどーかしらんがトルネコはいつのまにかこのタイプ
ローグ系とは作り方が全然違う。
もちろん、7x7の部屋もあり、15x15の部屋もありと混ぜてやれば
大部屋とか入り組んだのとか自由に作れる。
気が向いたら他の方法も教えてやるよ
これ読んで意味わかんなかったらあきらめれ
中古屋にトルネコ買いにいって観察しる!
391:372
04/12/16 13:57:00 Fe46NDml
書き忘れた。
通路タイプを置くときに1回置いたとこにまた置くと行けない部屋ができるから
交わる時にはちゃんと交差点タイプに置き換えること
もしくは、交差点が出来ないよーに通路を延ばす方向を選べ
大本になる全体マップをみればぶつかるかどーかはすぐわかるはず
392:名前は開発中のものです。
04/12/16 16:05:27 FUU0Kk70
がっかり
393:名前は開発中のものです。
04/12/16 16:28:52 UoUSh1EM
>>372
CかJavaで実装例見せてください。もしくはもう少し具体的な擬似コードお願いします。
394:名前は開発中のものです。
04/12/16 16:41:54 FMzVG2qN
そもそもパーツを組み合わせて生成してるってのは確定なのか?
395:名前は開発中のものです。
04/12/16 18:22:24 2Rv9bxWb
昔懐かしタイルパターン方式か
396:名前は開発中のものです。
04/12/16 20:40:25 0BfwHw88
棒倒し法や壁伸ばし法で考えたんだが、
内壁の厚さをランダムで変化させて、
平行に並ぶ通路と通路の間の距離を広くして、
その上に部屋を置いていくと少し簡単にならないだろうか?
分かりにくくてスンマソ
397:372
04/12/17 01:59:17 /jyWbHRK
これがスマートとは思わないが誰にでも理解できる方法だ
指定階数になったらあらかじめつくっておいた配列マップを
マップ配列にぶち込めばイベント起こしやすい
だから、トルネコもこの方式になったんでないか
トルネコは大きい輪っか(口みたいなの)もデータでもってるけどな
393
自分でトルネコ作るなら俺はこの方法とらないけど作り込めば
かなり良いマップは作れるよ バイトコードでデータもってくれば
自動生成以外にもそのまま使えるしな
大本のマップを作ってって概念とメリットが把握できないなら
でっかい配列作ってもいいよ[100][100]とかな
その中に等長サイズのパターンデータを入れるか、倍数のデータなら解りやすいだろ
晒した方法観てピンとこないならこの方が簡単かもな
地図をゲーム内で表示する際とか、部屋の数とかの事もこの時点から考えておけ
実際のソースを晒すにはこの板は狭すぎ
395
わかってるならやってみれ
やった上でデメリット、メリット語ってみれ
396
その方法で出来たマップをよくみてみろ
どーせRPGで使うんだろうが、ゲームとして面白味は皆無だ
パズルゲーならアリだけどな
RPG作るんなら、実際にリアルの洞窟なり鍾乳洞なりを妄想するか
実際に行ってこい
別なロジックもまだまだあるが、まだ晒す気にはならん
393,396 ガンガレ
398:名前は開発中のものです。
04/12/17 09:48:20 FugbEZQk
だから1から読めっていったのに。
399:372
04/12/17 11:28:08 UZmelf3M
398
だって、読んでもまだ解らないヤツがいるからこのスレがあるんだろ?
それとも、オリジナルのルーチン晒せってスレか?ここはw
400:名前は開発中のものです。
04/12/17 11:32:14 s337jfOV
なんか詳しいようだから、トルネコみたいな簡単なルーチンじゃなく、
nethackのダンジョン生成を説明して欲しいな。
rogueなんかよりは遥かに高度なダンジョンを生成してくれてる。
401:名前は開発中のものです。
04/12/17 11:50:06 cLS59+MC
nethackのダンジョンいいなぁ。nethackでローグ風の階層あるけどあそこなんかつまらない。
目が肥えたせいかローグのダンジョンはなんか無味乾燥に見えてしまう。
402:372
04/12/17 13:44:18 N3mlXMLX
nethackのソースは晒されてるぞソース読んだか?
403:名前は開発中のものです。
04/12/17 17:00:28 cLS59+MC
ローグの方も完全に理解してないので読んでません。まずはローグをJavaで実装してみたい。
404:名前は開発中のものです。
04/12/17 19:48:15 W+xg7vzE
雑で大雑把な説明しかしてないのに態度のデカイひとがいるようですけど、
せめてこのスレに書かれているようなローグ解析&解説ぐらいのことは
してからエラそうなことをいってくださいよ。
405:名前は開発中のものです。
04/12/17 20:03:23 x2PDKPqI
もう実装されてる
URLリンク(www.hexatron.com)
406:名前は開発中のものです。
04/12/17 22:52:45 cLS59+MC
>>405
いや自分で実装したいんです。図入りで解説するんでそのときは見てください。
407:名前は開発中のものです。
04/12/18 04:26:54 Wo0srhjV
>>404
気にするな。彼はチェンSoftのProgrammerなんだ。それだけが彼の生きている印なのだから。
408:名前は開発中のものです。
04/12/18 07:28:19 VS/g54MY
結局372は何もわからないのか。
409:名前は開発中のものです。
04/12/18 17:07:08 6wvucy9y
ばかだからね
410:名前は開発中のものです。
04/12/18 17:35:23 NINQi9jk
ローグのソース読んでもやっぱりわからん・・・
ローグライクの開発(解説)しているサイトでおすすめなのあったら教えてくだあい。英語でいいです。
411:名前は開発中のものです。
04/12/18 17:36:20 NINQi9jk
とりあえず
Roguelike News
URLリンク(web.archive.org)
は知ってます。
412:名前は開発中のものです。
04/12/18 18:18:12 brPxtXDU
そんな難しいか?
脳内シミュレートしたけど、簡単にできそうだぞ
部屋を作って、部屋同士を通路でつないで
通路の長さと曲がり具合は、係数で制御して、それかr
413:名前は開発中のものです。
04/12/18 20:35:48 vqBa0na6
>>410
どこらへんの、なにがわからないのか、わかってる?
C言語がわからんというのはナシで
414:名前は開発中のものです。
04/12/18 20:57:46 NINQi9jk
>>412
ソース見ても細かいところで何やってるかわからないんですが。その大雑把にはわかります。
>>413
9つの領域に分けてランダムな大きさの部屋作るところまではできたんですが。
ドアつけて道でつなぐとこがよく分からない。ローグのソースコメントまったくないし・・・
415:名前は開発中のものです。
04/12/18 21:20:41 vqBa0na6
このスレの前の方でソース読みしてるけど。
通路については>>203あたりから。
416:名前は開発中のものです。
04/12/18 21:24:54 NINQi9jk
>>415
㌧
一応このスレ全部読んだんだけどね・・・
もう一回読み直して1日中考えてみます。いつかあっそうかってわかるときがあるかも
417:名前は開発中のものです。
04/12/19 02:06:47 cKlDBmlQ
説明してあげたいんだが、文字だけだと難しいな、以下、例ね
□ 空間
■ 土
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■
1個飛ばしで空間を配列←初期状態
スタート地点の空間を決めて、隣(ランダム)とつなげる(=土を掘る)
ただし、つなげる先が4方を土で囲まれていなければならない
どこも掘れなくなったら、掘れる場所まで通路を戻っていく
(戻るために、掘るために通っていった通路の全座標を覚えておくこと)
戻るための座標の覚え方はスタックの概念を知らないと厳しいかも
スタート地点まで戻ってしまったら、それは掘れる場所は全部掘った場合のみなので終了
これで最初に1個飛ばしで存在した全空間がつながる
わかってもらえたかな?
418:生徒α
04/12/19 03:05:58 mkdjQU32
それは、つまり有名な穴掘り型ってやつと数分違わずな気がするんですが、先生!!
419:名前は開発中のものです。
04/12/19 03:47:15 kGW+p0Ld
しかし■□を1キャラ分の大きさではなくて1部屋1通路などとしたり、穴掘りにくわえて適度に通路をつけるといい感じにならなくもないぞ。
ローグ風なら
●部屋や通路や壁
■通路や壁
□壁
●■●■●
■□■□■
●■●■●
■□■□■
●■●■●
これを穴掘りで通路つくる(=全部の部屋がつながっている)。
行き止まりばかりになるので、通路をつけたす。
これを元に部屋を置いて通路をつなげて完成。
さらに簡単な棒倒しでもいけるっぽい
URLリンク(www.asahi-net.or.jp)
420:名前は開発中のものです。
04/12/19 12:18:39 ffh3rjeg
ローグの場合、横倒しだとか穴掘りだとか、そんな面倒なことしてないけどね。
単純に、2つの部屋をつなげるだけ。
それぞれの部屋の壁のランダムな位置に扉をつける。
その扉を通路でつなげる。
どの部屋&扉の組み合わせでも、クネクネと2回曲がればたどり着ける。それだけ。
だからローグの場合、基本的な通路にクネクネクネクネ...したものがない。
421:名前は開発中のものです。
04/12/19 15:00:58 P175sgFg
nethackだと、みっちりと通路や小部屋が詰まったダンジョンもあるよね。
洞窟のようなものもあるし、結構バリエーション豊富だ。
422:名前は開発中のものです。
04/12/19 18:13:08 cKlDBmlQ
ところで自動生成ロジックが完成した暁にはどうなるんだ?
なんか遊べるものウプしてくれるの?
423:名前は開発中のものです。
04/12/19 18:25:40 99IBDRAn
実際にコードないかなぁ
424:名前は開発中のものです。
04/12/19 19:16:46 P175sgFg
>>422
ここを見た誰かが作るでしょ。
俺も多分作る。
さらに共有化された知識は、将来の誰かにとっても有益になる。
情報の共有化は、より高度なゲームが作られることを期待できる。
425:名前は開発中のものです。
04/12/19 21:07:31 gAUF82dI
>>424
いいこと言うな。
426:名前は開発中のものです。
04/12/20 03:42:01 r12pJ3ea
>>423
あるよ。このスレでもいくつか紹介されてるし。
オレは>>226のリンク先で紹介されてるダンジョン(Wiz風)
に感動したんで、コード拾ってきて解析中。
つーか、このコード、ローグのより読みやすいわ。
コメントもしっかり書いてあるし。
しかも、ダンジョン生成ルーチンが、クラスで提供されてるから
自分のプログラムに組み込んで動かすだけならすぐにできるよ。
参考までに…
・組み込んでコンパイルするのに最低限、必要なファイル
gameutil.h、gameutil.c、
jbmazemask.h、jbmazemask.cpp、
jbmaze.h、jbmaze.cpp、
jbdungeon.h、jbdungeon.cpp
・主に利用するクラス
JBDungeonOptions、JBDungeon
必要に応じて、JBDungeonRoom、JBDungeonWall、JBDungeonDatumってとこか?
ライセンスとかは各自で確認ヨロ
427:名前は開発中のものです。
04/12/20 08:38:06 gXD9M5+e
>>426
このページ見たけどソースあるの気づかなかったorz
さっそくダウンしました。
428:名前は開発中のものです。
04/12/20 12:11:38 glvff/Ex
いつのまにかソース丸ごとパクリに落ち着いた訳だが。。。
429:名前は開発中のものです。
04/12/20 21:49:42 gXD9M5+e
いやソース見て勉強するだけですよ。
430:426
04/12/21 05:24:29 XvOexZq5
>>428
ん???
オレの書き方がまずかったか…
読み返してみると、後半部分
解析する際のヒントのつもりが、
パクって利用する手引きに読めんこともないな…
組み込みも簡単だし、これ使っときゃいいじゃん!
て言ってるわけじゃないんで、念のため。
基本スタンスは>>424さんが言ってるような感じでヨロシク
と言うことで、このダンジョン生成プログラムについて
ざっと見た感じ、アルゴリズムは>>124のアイデアに近い希ガス
1.オーソドックスな迷路生成アルゴリズムで通路を作成(この時点ではただの迷路)
2.通路を二段階で整形(部屋をイイ感じで配置するための下準備?)
3.迷路のサイズを2倍+1にして通路を引き伸ばす(>>128でビンゴか?)
4.部屋同士が重ならないように配置(この時点で>>127みたいな状態になることがある)
5.壁を生成(これにより>>127みたいな状態が回避される)
まだちゃんと読んでないけど、2の仕組みが良くできてるとおもた。
あと、これ三次元にも対応してるっぽい(Z座標が存在する)。
まだ試してないんでどういうダンジョンが生成されるのかわからんが
431:名前は開発中のものです。
04/12/21 12:49:36 JVBcPoT4
このWiz風ダンジョン生成。
1マスを3x3マス分として考えて、通路は1マス分に縮小。
んで、部屋と通路の扉部分を結合。
ってしたらrogue likeにも使えないかな?
432:426
04/12/22 06:03:37 M7D/hlJX
>>431
そのアイデア、試しに実装してみました。
結果としては、それなりに使えるんじゃないかな?と思います。
ただ通路に関しては、どうしても直線的になりがちで
また部屋に密接して作られちゃうので
見る人によっては、面白みに欠けるとみなすかも?
一応、生成オプション弄って使えそうなやつを作ってみたんで
興味のある方はどうぞ
URLリンク(up.isp.2ch.net)
433:名前は開発中のものです。
04/12/22 18:54:05 vtsQN5YF
なかなかイイね
ダンジョンゲーとしては各フロアにバリエーションがあったほうが楽しいから、
一味違うフロアを生成できるよういろいろなアルゴリズムを持つのは良いことだね
434:名前は開発中のものです。
04/12/22 21:18:29 OzD0Okhk
だね。俺は生成エンジンをプラグイン化してみたりしてる
435:名前は開発中のものです。
04/12/26 00:26:20 Exh1T9w9
このスレ参考に作成中。
まだ不具合あるので画像だけです。
URLリンク(tell-me.sakura.ne.jp)
436:名前は開発中のものです。
04/12/26 05:49:53 H6gPAOqH
おお、すげーすげー
そこを歩くだけのやつでもupしてん
・・・広いな・・・
437:名前は開発中のものです。
04/12/26 08:30:30 U7hutUIm
>>435
いいよいいよー
438:名前は開発中のものです。
04/12/26 11:36:20 4W3IAVrJ
>>435
広過ぎて従来のトルネコ&シレンの腹制度だと2Fで食料なくなりそうだなw
439:名前は開発中のものです。
04/12/26 18:40:24 U7hutUIm
angband系列だと同じくらい広くてもバランスとれてるから、
バランス取り方次第かと
440:名前は開発中のものです。
04/12/27 02:49:08 /qB0yEjo
*band*、少なくともvanillaでは食料事情、照明事情は無いに等しいからな。
NetHackとの差に泣ける。
NetHackだと照明屋に蝋燭しか無い事があるし。
まぁ蝋燭が足りないよりはマシなんだが。
441:名前は開発中のものです。
04/12/27 15:37:31 oLkGYQCR
ははは
NetHackだと蝋燭ないとイベントのせいでクリア不可能だし、
序盤は空腹が天敵だもんな。
その点、*bandは、初期の町で食糧や空腹の巻物が買い放題、
照明も買い放題の上、途中で消費なしの永久光源が拾えるしな
442:名前は開発中のものです。
04/12/27 21:44:09 7R5BsBxR
>>435
すげぇ。ただ、部屋が繋がりすぎのような・・・行き止まりの通路も欲しい
443:435
04/12/28 00:53:12 89xDDhd/
URLリンク(tell-me.sakura.ne.jp)
とりあえず歩けるようにしました。
マップの広さなど起動時にランダムで決まります。
描画にDirectX9.0cを使用しているので
ランタイムが必要です。
描画部分がかなり重いです。
マップが繋がってない、
永久ループするなど不具合が残ってます。
444:名前は開発中のものです。
04/12/28 01:50:03 9LMc91BV
いいよいいよー
こうやって実際に毎回違うmapを歩けると可能性を感じるなー
445:名前は開発中のものです。
04/12/28 04:19:44 eZh/IZfo
>>435
人工物っぽいダンジョンばかりでこれはこれで(・∀・)イイ!!
なんでこんなに重いの?
446:名前は開発中のものです。
05/01/02 21:08:00 VyyXW717
>>435
すごい!完成したらぜひソースを見せてほしいです。
447:名前は開発中のものです。
05/01/17 01:11:02 DxCkgefZ
ぬ・・・だ、誰もいないのか?
いまさらではあるが穴掘り方を応用したら、
こんな感じの生成できるようになった。
自分ではイケテルとおもうが、みんなどうよ?
URLリンク(namihei.zone.ne.jp)
448:名前は開発中のものです。
05/01/17 01:29:37 4Y3i3Bq7
>>447
真中の方にできてる丸っぽい部屋を見て「お?」って思ったけど、ループするような通路ができてないよね。
その辺をどうにかして、通路の太さを適当に拡張するようにしたら自然にできた洞窟っぽくなるかも?
449:447
05/01/17 07:38:51 /ZZCwhql
>>448
アドバイスさんくす!
ループした洞窟てのは、
URLリンク(namihei.zone.ne.jp)
の中央下の感じのことでいいのかな?
これなら一応実装済みなんだけどなぁ・・・
通路広くするのはちょいと考えてみる。
んでは、仕事いてくる~ (^ー^)ノ
450:名前は開発中のものです。
05/01/17 14:01:44 nHigXm2k
全体をn×n個のグリッドにわける方法使ったときの部屋が一直線に並ぶような現象も
回避できてるようだし、かなり良いね。
451:名前は開発中のものです。
05/02/05 17:19:23 T9zbJJCg
ルナティックドーンみたいな奴はどうよ?
452:名前は開発中のものです。
05/02/13 19:14:35 BfA7CsB3
???
ルナドンって、定型を使いまわしだと思う。
453:名前は開発中のものです。
05/02/13 19:37:52 YiLMMcfO
初代は穴掘り系ランダム生成だったような。
454:名前は開発中のものです。
05/02/26 18:16:56 XLBYmv/q
穴掘り法というのをやってみてるんですが、
4方向とも穴を掘れなくなったときに次にスタート地点として選ぶポイントはどうやって選ぶんでしょうか?
今まで掘った穴の中から次のスタート地点をランダムに選ぶとなると、掘った全ての座標の中から選ぶって事になりますよね。
今、map[56][64]という配列に穴か壁を入れてるんですが、
rand()で56*64の中の一つを選んでそれが穴ならそのポイントを選ぶっていう風にすると無駄が多すぎるし…
誰かご教授おねがいします。
455:名前は開発中のものです。
05/02/26 18:58:48 +BfzmYZO
今まで掘ってきた穴をさかのぼっていって
4方向の穴が空いていない地点から掘り出すというのはどう?
456:名前は開発中のものです。
05/02/26 19:41:56 XLBYmv/q
その場合、穴を掘る場所を新たな配列か何かに入れながら掘り進めるって事ですよね?
それだと掘り方がランダムだから配列の大きさが分からないし、
後半になるとさかのぼる量が増えてしまって時間がかかる様な気がするのですが…
457:名前は開発中のものです。
05/02/26 23:26:37 cBNZPZ5V
Cなら動的メモリ、C++ならSTLで解決。
マーカつけてればそんなに深くはならない。
458:名前は開発中のものです。
05/02/27 00:38:28 jOdBjCDc
STLは良く知らないのですが、
1.listに穴を掘った場所を追加しながら進んでいく
2.行き止まりになったらlistの要素数が上限のランダム数を発生させる
3.ランダム数番目の要素がスタートに出来るならそのまま1へ戻り、出来ない場合はその要素を削除し、2へ
こんな感じになるのでしょうか?取り敢えずやってみます。
459:名前は開発中のものです。
05/02/27 06:36:24 i5A/74X4
入れ子でやってないということか?
460:名前は開発中のものです。
05/02/27 13:10:28 jOdBjCDc
入れ子…何処の部分ですか?
理解が悪くてすいません。
ところでlist構造は一つの要素に付き二つ以上の内容を記憶出来るのでしょうか?
今、map配列が2次元配列なのでmap[y][x]のyとxを格納したいのですが…
list構造を二つ用いて同時に入れるしかないんでしょうか?
461:名前は開発中のものです。
05/02/27 14:31:32 jOdBjCDc
というか、list構造ってランダムアクセス出来ないんですね…
どうすれば良いか完全に分からなくなりました
vectorだと要素の追加・削除が出来ないし…
462:名前は開発中のものです。
05/02/27 15:10:01 G4Vo/2DV
URLリンク(www.shibu.jp)
vectorで要素の追加削除出来るべ
つうか出来なかったらどうやって使うのよ
463:名前は開発中のものです。
05/02/27 15:13:30 jOdBjCDc
>>462
ここを見ていたんですが、良く見たら適さないだけで追加も出来るんですね…
URLリンク(www5c.biglobe.ne.jp)
結局dequeというので今は試しているんですが、頭の中がごちゃごちゃになってきました
464:名前は開発中のものです。
05/02/27 16:50:19 JGXBjsxB
もう、解決しちゃったかもしれないが、書いとく。
>>460
コンテナには使用したい構造体を指定する。
struct POINT
{
int x, y;
};
std::vector<POINT> data;
POINT p; p.x = 0; p.y = 0;
data.push_back(p);
if( map[data[0].y][data[0].x] == WALL ) ...
んで、vector を使ってランダムな要素を取り出す方法
int i = rand() % data.size(); // 1.適当な位置を求める
POINT temp = data[i]; // 2.要素を取り出す
data[i] = data.back(); // 3.取り出した要素の位置に終端の要素を入れる
data.pop_back(); // 4.終端の削除
vector は配列と同じ構造なので途中の要素を削除すると非効率。
でも、終端からの削除ならサイズを変更するだけで済むので簡単にできる。
んじゃ、頑張っとくれ。
465:名前は開発中のものです。
05/02/27 17:05:33 jOdBjCDc
>>464
なるほど。そんなやり方があるとは…
数時間挑んだのですが未だに解決してません。
その上ソースがぐちゃぐちゃになってもう駄目っぽいので、その方法でやり直してみます。
466:名前は開発中のものです。
05/02/27 23:37:25 jOdBjCDc
おかげ様で今、何とか完成させる事が出来ました。
アドバイスしてくれた人、本当にありがとうございました。
467:名前は開発中のものです。
05/02/28 00:17:26 HqZ8iPxT
>>466
おめでとう。役に立ったみたいで、こちらも嬉しいよ。
これからもゲーム制作を楽しみなー。
468:名前は開発中のものです。
05/03/29 09:50:20 Kg3P9ufG
あげ
469:名前は開発中のものです。
05/05/22 17:32:21 lIm3yEmY
ホシュ
470:名前は開発中のものです。
05/05/23 22:58:20 5z/chgyh
ミーツー
471:名前は開発中のものです。
05/06/03 23:58:46 k+KD2UyV
このスレまだあったのか。
以前ここで、ローグの解析実況をした日は
なつかしい思い出だ・・・。
472:名前は開発中のものです。
05/06/04 00:50:39 j7+2UQCm
良スレは何度でもよみがえるさ
473:名前は開発中のものです。
05/06/04 02:55:43 qAYKJL3r
鍵や仕掛けつきのダンジョンは難しいかな?
あっちの鍵を拾ってこっちの扉を開けて・・・という系統のパズルなやつ。
ちゃんとクリアできるような仕掛けをランダムで作るのはどうしたらいいのかわからんけど。
474:名前は開発中のものです。
05/06/04 03:33:42 j7+2UQCm
多分それは表面的な改造ですぐすむと思うよ
475:名前は開発中のものです。
05/06/04 03:42:12 yByGcKlF
>>473
「鍵をかけながら鍵を置いて回る人」を仮想的に動かせばいい
と思って今考えてるとこだ。
うまくやれば大がかりな仕掛けもできると思うんだけど。
476:名前は開発中のものです。
05/06/04 10:37:14 2Lx0HeyL
経路探索か
477:名前は開発中のものです。
05/06/04 10:41:49 Mx0GDmAL
鍵と鍵の要る扉ランダム生成で一生遊べるスペランカー、とかあったらいいな
478:名前は開発中のものです。
05/06/04 10:54:52 j7+2UQCm
おもしろそうだよね。
はっきり書くと、こんな感じかな。
ダンジョンはたとえばAからFまでの6つの区域に分かれている。
またこの世の中にはaからjまでの10この鍵がある。
ある区域から別の区域に移動するためには、
あらかじめ定められた鍵をすべて持っていないといけない。
たとえば、AからDへ移動するためには鍵aとgとhが必要。
各区域には、そこで得られる鍵が定められていて、
その区域に立ち入ることによって、その鍵を得ることができる。
たとえば、A区域では鍵aとbとcが得られる。
プレーヤは最初スタート地点と呼ばれるある特定の区域にいる。
ゴール地点と呼ばれる特定の区域に到達することをめざす。
それは可能であろうか。―
479:名前は開発中のものです。
05/06/04 15:26:07 qAYKJL3r
なるへそ。RPGなんかで、先へ行くにはあるアイテム集めが必要で
そのアイテムを手に入れるには別なアイテムが・・・って話と似てるね。
480:名前は開発中のものです。
05/06/04 15:46:59 j7+2UQCm
>>479
そうそれ、ずばりそれ
コンピュータがそういうシナリオを自分で作るとき、
絶対に抜けられないダンジョンになると困るから、どうしよう、みたいな話
481:名前は開発中のものです。
05/06/04 22:35:23 UmKVEfts
>>475
の考え方でいけそうだけどなあ
482:名前は開発中のものです。
05/06/14 16:29:15 WjZVWI+e
鍵が共通鍵の場合にハマる可能性が出そうな気がする。
鍵一つ使って、扉の中の鍵を3つ取り出すような場合に
最後の一つをそこに使わず、別な扉に使ってしまったらクリアできなくなるな。
でも扉の奥には必ず鍵一つが原則、としたらつまらなくなりそうだし。
やっぱりこのシステムは固有鍵しか無理なのか?
それとも階段上り下りで内部構造リセットとかするべきか?
483:名前は開発中のものです。
05/06/14 17:21:49 +dyJFCQD
あー、鍵が消耗品だとすると色々ややこしくなるな
484:名前は開発中のものです。
05/06/15 10:00:12 JLPVloti
|
\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \ そうだ!共通キーだけ非消耗品にすればいいんだ!
('A`)
ノヽノヽ
くく
485:名前は開発中のものです。
05/06/17 14:13:36 LQLcT/tA
プレーヤーがその鍵を投げてモンスターにぶつけるとかして、
鍵を無くしてしまったときはどうするの?
486:名前は開発中のものです。
05/06/17 17:42:39 16kvVQkz
えー、まじかよ
鍵は特殊なあつかいのアイテムということで
「それを捨てるなんてとんでもない!」みたいな感じで
投げること自体をできなくする
(ぬすむ力をもった敵だとか、持ち物がさびる罠だとか、
そういったものがあればそれらも同様)
それか、世界から鍵が消えた時点で
「鍵の取れる場所」に鍵が再生成される
このどっちかじゃないかな
487:485
05/06/17 22:59:26 LQLcT/tA
>>486
普通のRPGなら、特殊アイテム扱いで良いと思うけど、
ローグライクなら、
石に躓いてアイテム(鍵)を床にぶちまけて、
鍵を取ろうとしたらドラゴン・ブレスで鍵が燃えてしまったとか、
鍵を盗まれたので、その盗んだモンスターから鍵を取り返そうとして
追いかけていると、落とし穴に落ちて「うわーーーーーっ」とか、
○×仙人の目が光った! プレーヤーは混乱した!
プレーヤーは鍵を投げた! 鍵は○×仙人に1のダメージを与えた…orz
とかなるように一般アイテムと同じ扱いの方が良いと思ったので。
なので、鍵を再生成する方法の方が良いか。
488:名前は開発中のものです。
05/06/17 23:08:09 16kvVQkz
確かにその方がふさわしい気がする。
まあ多分具体的には、その「鍵の取れる場所」に人が行ったときに
世界に(あるいは来た人の持ち物に)その鍵が無ければ、得られる、
とかそんな感じか。
「すねが光った! くめの仙人は混乱した!」
489:名前は開発中のものです。
05/06/17 23:30:09 Z+DUfmOd
nethackでのクリアに絶対必要なベルや蜀台は、普通のアイテムでは無くなるような
行動でも無くならないように出来てるし(たしか)、
そのカギが進む上で絶対に必要な物なら、上の例で言えば敵にぶつけてもそのカギのみは
無くならないようにするとか、盗まれないとかブレスで燃えないとかしたほうがいい気がする。
>>488の言う通り、Wiz風に、ゲームからそのアイテムが消滅したら取得イベント再復活でもいいけども。
でもネトハクのベルは5回充填して使い切るとハマルんだよな。
490:名前は開発中のものです。
05/07/03 21:19:00 jPpx4eRu
Vodaでシレンが出たのでホシュ。
491:名前は開発中のものです。
05/07/20 01:23:38 IONaYr2+
補修
492:名前は開発中のものです。
05/07/21 16:42:46 moDvbKPv
flashで作られた自動生成のサンプル、どこかにないでしょうか・・。
参考にしたいのですが。。
493:名前は開発中のものです。
05/07/21 17:12:04 bKKYlRPW
ま、まじですげえ。こんなものがまだあったんだね。マジレスすまん。
URLリンク(search.auctions.yahoo.co.jp)
494:名前は開発中のものです。
05/07/22 04:08:53 IbpJtLPM
むかぁーしむかし
ベーマガにそう言うコードが乗っかって説明されていたんやけどなぁ。
最近の若い者は どーやってそれを知るんやろ。
とか思ってみますた。
495:名前は開発中のものです。
05/07/22 05:35:31 lGFI0dtK
むかぁーしむかしだったら迷路の自動生成とかやってみたいと思ったかも
しれんけど、今はなあ。
496:495
05/07/22 05:36:52 lGFI0dtK
>>494
ってか寝ろ。
497:名前は開発中のものです。
05/07/22 20:54:26 rRyf+a+6
ネットに決まってんだろ?
498:名前は開発中のものです。
05/07/22 21:09:56 p1EXMd0C
ネットさえあれば何でも分かる、何でも揃う、とでもおもってるのかね
499:名前は開発中のものです。
05/07/22 22:18:14 eBOgVrEi
架空の議論自動生成システム
500:名前は開発中のものです。
05/07/23 02:43:43 35joZALW
論述の迷路か、なかなか興味深い。
501:名前は開発中のものです。
05/07/23 11:21:52 ozDAdyD2
某板仕様論述作成ソフト
「GK乙」
「妊娠乙」
「GK乙」
「妊娠乙」
「GK乙」
「妊娠乙」
502:名前は開発中のものです。
05/07/24 15:49:55 zoFI8ZSA
>>498
たいていのことは解決するけど。
そもそも自分が考え付く疑問など当の昔に誰かが解答してることの方が多い。
503:名前は開発中のものです。
05/07/24 19:44:58 pCZEm45I
何でも揃うなんて誰も言ってないしなぁ。
504:名前は開発中のものです。
05/07/30 11:41:34 xQd4foTu
あげ
505:名前は開発中のものです。
05/08/10 16:55:59 Mp7vk5CP
部屋を5、6個作る
通路を作る
終了
506:名前は開発中のものです。
05/08/10 22:07:44 EptwwJpd
>>505
それがムズい
507:名前は開発中のものです。
05/08/10 23:13:52 7umUvbw5
たぶん>>505は天才
508:名前は開発中のものです。
05/08/11 21:23:09 nKOENxeI
馬鹿だな
部屋を作るんじゃなくて壁を作るんだ
509:名前は開発中のものです。
05/08/12 03:04:47 jqER8Bv1
>>505は
全部のブロック(オール移動不能領域)をつくる
:たとえば8*8
ブロックに穴を開けていき、入り口と目的地を繋ぐ通路をつくる
あとは部屋を壁のある座標へランダムに配置
:ランダムする座標は7*7以内に納める
(部屋は罠が置いてあったり宝が置いてあったり)
終了。
欠点は目的地までの道に常に一定のルートがあること。
という初級ランダム迷宮の作成法じゃないのかね。
510:名前は開発中のものです。
05/09/05 15:06:03 2it76JrP
>>498
何でも分かる。何でも揃う。英語で検索すると特にな。
むしろ最近はぐぐれば必要な情報、それもほぼ最高品質の情報がすぐでてくるから、
逆にやる気を削ぐような面すらある気がするよ。
俺みたいな愚民がいくら独力で考え抜いたところでピラミッドの下層か中層止まりってーか。
どっかで話題になってた、「ネットによっていきなり世界統一ランキングに放り込まれる」ってやつだ。
久しぶりに昔のベーマガやMSX-FANやOh!Xの解説記事読んでみたら、ヌルいのなんの。
511:名前は開発中のものです。
05/09/05 21:18:37 O8hfU7a+
何期待して読んだんだ。変な奴。
512:名前は開発中のものです。
05/09/07 02:00:21 M1zYQhTt
ナンバーワンにならなくてもいい、もともと特別なオンリーワン。
513:名前は開発中のものです。
05/09/07 15:05:41 TZu3L484
>>510
検索能力とか英語読解能力は特殊スキルだ、
とか言う意味ではなかろーか。ネットだけあってもどうにもならんな。
514:名前は開発中のものです。
05/09/10 15:59:56 jqa9kx5Y
>510
今日の俺の晩飯に最適なメニューを検索してくれ。
515:名無しさん@そうだ選挙に行こう
05/09/10 17:29:34 a1wcurUv
なら、
全世界では下層だけど、そんなことと関係なく自分を肯定できるスキル
を検索してみればよくね?
516:名無しさん@そうだ選挙に行こう
05/09/10 17:42:42 eI6amDSA
>>514
めしライスに御飯セットがおすすめ!と出ました。
517:名無しさん@そうだ選挙に行こう
05/09/10 23:26:28 dwFxwHR3
おかゆドリンクも忘れるな。
518:名無しさん@そうだ選挙に行こう
05/09/11 01:51:14 B2OlzZDY
北のダンジョンには食パンサンドがあるそうですよ
519:名前は開発中のものです。
05/10/07 19:37:47 NS9SqyA7
食パンサンドがあるかどうかはさて置きホシュ。
520:名前は開発中のものです。
05/10/15 12:22:33 rO1oLsT9
ゲームを作るための素材を集めよう! Part2
にて
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93 名前:名前は開発中のものです。 投稿日:2005/10/14(金) 12:19:23 F4BIYOdW
フィールドやダンジョンのマップ(地図)の素材ってないでしょうか。
マップチップそのものでは無くて、その地形の並びの方です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
というのがあったんだが、マップチップがある状態から
地図のような全体マップをランダムに作成、ってのはできないだろうか?
森や山や海をランダムで区分けしてから自分で微調整できたり
町やダンジョンの位置をうまくバラけさせたり
町を巡る順番まで考慮・・・は、さすがに無理か?
全体マップってのは、ある意味地上の迷路なんだから
こっちも何とかできないだろうか?と思ってみたりする。
521:名前は開発中のものです。
05/10/15 13:22:10 wzC5z6lw
トルネコとかは、1000パターン手で作って
ランダムに選んでるだけなんだよな、あれ。
フィールド自動生成はかなり条件限定しないと難しそうだな。
そもそもシナリオ後追い型のRPG(ドラクエとか)ではキツイな。
敵のレベル調整もしなきゃダメだし。
ロマサガタイプならどうにでもなるけど、そもそもアレはフィールドないし。
522:名前は開発中のものです。
05/10/15 13:39:14 hwr3NAcj
ティルナノーグあるじゃん。
523:名前は開発中のものです。
05/10/15 19:07:22 rO1oLsT9
あ~敵レベル調整かー
ダンジョンなら一階潜るごとにでOKだけど、地上だと難しいな。
となると、番号が書かれた点を線で繋いだ仮マップを用意しておいて
そこから肉盛りして地表を作るという方法がいいかな?
点のあるところを町やらダンジョンやらにして
レベル調整は番号の大きさでなんとかできるかな?
524:名前は開発中のものです。
05/10/15 23:30:12 dQK471py
>>520
俺だ。
昔、フィールド型の自動生成を作っていた事があった。
まず大地を作る。
ランダムで地殻運動を起こして山脈を作って、それを風化させる。
次に細かな地形を作る。
大まかな範囲に温度が設定されていて、
また、海や山脈の位置から降水量を求めて、
そのバランスから草地、茂み、砂漠、雪地などを作る。
ゲームの内容に合わせるというよりかは、
ランダムで出来た偶然の産物に内容の方を合わせる。
525:名前は開発中のものです。
05/10/16 02:24:29 iF1ui/wk
>>521
>トルネコとかは、1000パターン手で作って
>ランダムに選んでるだけなんだよな、あれ。
マジデ 昔の話とかじゃなくて?
526:名前は開発中のものです。
05/10/16 14:33:36 pf3Q0Shj
>>525
手で全部ではないだろうが、ジェネレータでゴリゴリ出力して、
その中から良さそうなのを選んだり、ちょっと手を入れて修正したのが
1000パターンとか。
救助隊で同じマップになる理由を考えてみ?
527:名前は開発中のものです。
05/10/16 18:07:50 b7XHtH7i
>>526
同じシードなら同じマップになるかと。
528:名前は開発中のものです。
05/10/16 18:12:21 /NWTOStG
>>525
「シャッフルダンジョン」はそんな感じだけど、
メインのダンジョンは完全にランダムでその場で自動生成している。
529:名前は開発中のものです。
05/10/17 19:00:41 4YKY4VR0
RPGではないSTGだが、アンドロメタルというゲームで
その場でマップを生成しているのがある。
ゲームスタート時に地形とその繋がっている道全て生成して
他の地形の中身(キャラとか)はリアルタイムで生成してい
るらしいよ。
530:名前は開発中のものです。
05/10/20 02:41:41 vhfI+UGQ
>>529
それゲームの内容自体も面白そうだな。
前回見た時より動画が重くなってる様な気がするが
コーデック方式が変わったのかな?実際の速度はどれぐらいなんだろう。
動画より体験版があれば良いのだが。
531:名前は開発中のものです。
05/10/25 12:27:09 VVTg4Nal
>>530
モバイルAthlon XP-M2200+(3Dグラボ無し、ノートパソコン)
の環境で動画再生してみたら、重いしちょっとぎこちない感じ。
テレビなど、他のいろんな動画は快適に見られるから
動画のつくり方、ゲーム実行しながら動画エンコードする段階で
そのやり方が上手くいってないみたい。
実際のゲーム速度は 8年前のPCと最新マシンを比べても
体感速度は同じで、超快適ですって話がホムペでされてた。
(メールフォームができたので、動作報告とかはそちらで。)
532:名前は開発中のものです。
05/10/31 22:17:48 NSi8mxSs
ティル・ナ・ノーグ?
533:名前は開発中のものです。
05/11/05 00:17:54 /vKlPzCX
>>524
詳細きぼん
534:名前は開発中のものです。
05/11/20 21:05:15 NfQyIFGO
URLリンク(www.ismusic.ne.jp)
寂れたスレに投下してみますよ。
矢印orテンキーで移動。X押しながらでダッシュっぽく。
C押しながらで壁抜けできるけど、外側の黒い所に行くと強制落ちするので注意。
HOMEとENDでズームイン・アウト。
PAGEUP・DOWNで角度調整。
Rで再生成。
カメラの位置によっては、変な線が見えちゃうけど今の所は気にせんでください。
多分ローグっぽいマップ生成はできてると思う。
とりあえず、行けなくなっちゃう部分があるけど。
エリア分けしてあるので、適当にエリアごとの比率を見ながら、
財宝部屋にして見たり、エリア毎に一つずつバネを設置してみたり、
適当に通路追加したり、そのまま潰したりはできるはず。
535:名前は開発中のものです。
05/11/20 22:16:00 1ZlF6i9E
乙。なかなかよくできてるね。道がまるっきりないのができたりしてビビッタw
ただ、エリアを区切ってそこに部屋を生成した感じの構造が多いのが気になった。
縦横に貫いてる区切り線が見えるって感じ。
536:名前は開発中のものです。
05/11/21 00:18:54 THeEo6c8
>>535
>道がまるっきりないのができたりして
普通にパラメタで調整できるようになってるのでは。
ゲームによっては荒野とかあえて道を作らないエリアもあると思うし。
>>534
乙!とりあえずDLしてみます(実はこれからw)
537:534
05/11/21 22:53:47 KB59jlb8
>エリアを区切ってそこに部屋を生成した感じの構造が多いのが気になった。
とりあえず、エリア二つ分の大きさの部屋を作るようにしてみたよ。
結局区切り線が見えちゃう気はするけど。
URLは>>534のままで。
生成アルゴリズムも二つほど変なのを追加してみた。
赤い人は気にせずに。