トップページgamedev
1001コメント335KB

ダンジョン自動生成

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/07/19 22:06ID:o6Bp.wT2
「風来のシレン」みたいにランダムでダンジョンを作るのって
どうやるんですか
0396名前は開発中のものです。04/12/16 20:40:25ID:0BfwHw88
棒倒し法や壁伸ばし法で考えたんだが、
内壁の厚さをランダムで変化させて、
平行に並ぶ通路と通路の間の距離を広くして、
その上に部屋を置いていくと少し簡単にならないだろうか?

分かりにくくてスンマソ
039737204/12/17 01:59:17ID:/jyWbHRK
これがスマートとは思わないが誰にでも理解できる方法だ
指定階数になったらあらかじめつくっておいた配列マップを
マップ配列にぶち込めばイベント起こしやすい
だから、トルネコもこの方式になったんでないか
トルネコは大きい輪っか(口みたいなの)もデータでもってるけどな

393
自分でトルネコ作るなら俺はこの方法とらないけど作り込めば
かなり良いマップは作れるよ バイトコードでデータもってくれば
自動生成以外にもそのまま使えるしな
大本のマップを作ってって概念とメリットが把握できないなら
でっかい配列作ってもいいよ[100][100]とかな
その中に等長サイズのパターンデータを入れるか、倍数のデータなら解りやすいだろ
晒した方法観てピンとこないならこの方が簡単かもな
地図をゲーム内で表示する際とか、部屋の数とかの事もこの時点から考えておけ
実際のソースを晒すにはこの板は狭すぎ

395
わかってるならやってみれ
やった上でデメリット、メリット語ってみれ

396
その方法で出来たマップをよくみてみろ
どーせRPGで使うんだろうが、ゲームとして面白味は皆無だ
パズルゲーならアリだけどな
RPG作るんなら、実際にリアルの洞窟なり鍾乳洞なりを妄想するか
実際に行ってこい 

別なロジックもまだまだあるが、まだ晒す気にはならん

393,396 ガンガレ
0398名前は開発中のものです。04/12/17 09:48:20ID:FugbEZQk
だから1から読めっていったのに。
039937204/12/17 11:28:08ID:UZmelf3M
398
だって、読んでもまだ解らないヤツがいるからこのスレがあるんだろ?
それとも、オリジナルのルーチン晒せってスレか?ここはw
0400名前は開発中のものです。04/12/17 11:32:14ID:s337jfOV
なんか詳しいようだから、トルネコみたいな簡単なルーチンじゃなく、
nethackのダンジョン生成を説明して欲しいな。
rogueなんかよりは遥かに高度なダンジョンを生成してくれてる。
0401名前は開発中のものです。04/12/17 11:50:06ID:cLS59+MC
nethackのダンジョンいいなぁ。nethackでローグ風の階層あるけどあそこなんかつまらない。
目が肥えたせいかローグのダンジョンはなんか無味乾燥に見えてしまう。
040237204/12/17 13:44:18ID:N3mlXMLX
nethackのソースは晒されてるぞソース読んだか?
0403名前は開発中のものです。04/12/17 17:00:28ID:cLS59+MC
ローグの方も完全に理解してないので読んでません。まずはローグをJavaで実装してみたい。
0404名前は開発中のものです。04/12/17 19:48:15ID:W+xg7vzE
雑で大雑把な説明しかしてないのに態度のデカイひとがいるようですけど、
せめてこのスレに書かれているようなローグ解析&解説ぐらいのことは
してからエラそうなことをいってくださいよ。
0405名前は開発中のものです。04/12/17 20:03:23ID:x2PDKPqI
もう実装されてる
ttp://www.hexatron.com/rogue/
0406名前は開発中のものです。04/12/17 22:52:45ID:cLS59+MC
>>405
いや自分で実装したいんです。図入りで解説するんでそのときは見てください。
0407名前は開発中のものです。04/12/18 04:26:54ID:Wo0srhjV
>>404
気にするな。彼はチェンSoftのProgrammerなんだ。それだけが彼の生きている印なのだから。
0408名前は開発中のものです。04/12/18 07:28:19ID:VS/g54MY
結局372は何もわからないのか。
0409名前は開発中のものです。04/12/18 17:07:08ID:6wvucy9y
ばかだからね
0410名前は開発中のものです。04/12/18 17:35:23ID:NINQi9jk
ローグのソース読んでもやっぱりわからん・・・
ローグライクの開発(解説)しているサイトでおすすめなのあったら教えてくだあい。英語でいいです。
0411名前は開発中のものです。04/12/18 17:36:20ID:NINQi9jk
とりあえず
Roguelike News
ttp://web.archive.org/web/20010405204554/www.skoardy.demon.co.uk/rlnews/devmain.html
は知ってます。
0412名前は開発中のものです。04/12/18 18:18:12ID:brPxtXDU
そんな難しいか?
脳内シミュレートしたけど、簡単にできそうだぞ

部屋を作って、部屋同士を通路でつないで
通路の長さと曲がり具合は、係数で制御して、それかr
0413名前は開発中のものです。04/12/18 20:35:48ID:vqBa0na6
>>410
どこらへんの、なにがわからないのか、わかってる?

C言語がわからんというのはナシで
0414名前は開発中のものです。04/12/18 20:57:46ID:NINQi9jk
>>412
ソース見ても細かいところで何やってるかわからないんですが。その大雑把にはわかります。
>>413
9つの領域に分けてランダムな大きさの部屋作るところまではできたんですが。
ドアつけて道でつなぐとこがよく分からない。ローグのソースコメントまったくないし・・・
0415名前は開発中のものです。04/12/18 21:20:41ID:vqBa0na6
このスレの前の方でソース読みしてるけど。
通路については>>203あたりから。
0416名前は開発中のものです。04/12/18 21:24:54ID:NINQi9jk
>>415
d
一応このスレ全部読んだんだけどね・・・
もう一回読み直して1日中考えてみます。いつかあっそうかってわかるときがあるかも
0417名前は開発中のものです。04/12/19 02:06:47ID:cKlDBmlQ
説明してあげたいんだが、文字だけだと難しいな、以下、例ね
□ 空間
■ 土
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■

1個飛ばしで空間を配列←初期状態
スタート地点の空間を決めて、隣(ランダム)とつなげる(=土を掘る)
ただし、つなげる先が4方を土で囲まれていなければならない
どこも掘れなくなったら、掘れる場所まで通路を戻っていく
(戻るために、掘るために通っていった通路の全座標を覚えておくこと)
戻るための座標の覚え方はスタックの概念を知らないと厳しいかも
スタート地点まで戻ってしまったら、それは掘れる場所は全部掘った場合のみなので終了
これで最初に1個飛ばしで存在した全空間がつながる
わかってもらえたかな?
0418生徒α04/12/19 03:05:58ID:mkdjQU32
それは、つまり有名な穴掘り型ってやつと数分違わずな気がするんですが、先生!!
0419名前は開発中のものです。04/12/19 03:47:15ID:kGW+p0Ld
しかし■□を1キャラ分の大きさではなくて1部屋1通路などとしたり、穴掘りにくわえて適度に通路をつけるといい感じにならなくもないぞ。

ローグ風なら
●部屋や通路や壁
■通路や壁
□壁
●■●■●
■□■□■
●■●■●
■□■□■
●■●■●
これを穴掘りで通路つくる(=全部の部屋がつながっている)。
行き止まりばかりになるので、通路をつけたす。
これを元に部屋を置いて通路をつなげて完成。

さらに簡単な棒倒しでもいけるっぽい
ttp://www.asahi-net.or.jp/~kh4s-smz/midp/roguelike/random.html
0420名前は開発中のものです。04/12/19 12:18:39ID:ffh3rjeg
ローグの場合、横倒しだとか穴掘りだとか、そんな面倒なことしてないけどね。
単純に、2つの部屋をつなげるだけ。
それぞれの部屋の壁のランダムな位置に扉をつける。
その扉を通路でつなげる。

どの部屋&扉の組み合わせでも、クネクネと2回曲がればたどり着ける。それだけ。
だからローグの場合、基本的な通路にクネクネクネクネ...したものがない。
0421名前は開発中のものです。04/12/19 15:00:58ID:P175sgFg
nethackだと、みっちりと通路や小部屋が詰まったダンジョンもあるよね。
洞窟のようなものもあるし、結構バリエーション豊富だ。
0422名前は開発中のものです。04/12/19 18:13:08ID:cKlDBmlQ
ところで自動生成ロジックが完成した暁にはどうなるんだ?
なんか遊べるものウプしてくれるの?
0423名前は開発中のものです。04/12/19 18:25:40ID:99IBDRAn
実際にコードないかなぁ
0424名前は開発中のものです。04/12/19 19:16:46ID:P175sgFg
>>422
ここを見た誰かが作るでしょ。
俺も多分作る。
さらに共有化された知識は、将来の誰かにとっても有益になる。
情報の共有化は、より高度なゲームが作られることを期待できる。
0425名前は開発中のものです。04/12/19 21:07:31ID:gAUF82dI
>>424
いいこと言うな。
0426名前は開発中のものです。04/12/20 03:42:01ID: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ってとこか?

ライセンスとかは各自で確認ヨロ
0427名前は開発中のものです。04/12/20 08:38:06ID:gXD9M5+e
>>426
このページ見たけどソースあるの気づかなかったorz
さっそくダウンしました。
0428名前は開発中のものです。04/12/20 12:11:38ID:glvff/Ex
いつのまにかソース丸ごとパクリに落ち着いた訳だが。。。
0429名前は開発中のものです。04/12/20 21:49:42ID:gXD9M5+e
いやソース見て勉強するだけですよ。
043042604/12/21 05:24:29ID:XvOexZq5
>>428
ん???

オレの書き方がまずかったか…

読み返してみると、後半部分
解析する際のヒントのつもりが、
パクって利用する手引きに読めんこともないな…

組み込みも簡単だし、これ使っときゃいいじゃん!
て言ってるわけじゃないんで、念のため。
基本スタンスは>>424さんが言ってるような感じでヨロシク

と言うことで、このダンジョン生成プログラムについて

ざっと見た感じ、アルゴリズムは>>124のアイデアに近い希ガス

1.オーソドックスな迷路生成アルゴリズムで通路を作成(この時点ではただの迷路)
2.通路を二段階で整形(部屋をイイ感じで配置するための下準備?)
3.迷路のサイズを2倍+1にして通路を引き伸ばす(>>128でビンゴか?)
4.部屋同士が重ならないように配置(この時点で>>127みたいな状態になることがある)
5.壁を生成(これにより>>127みたいな状態が回避される)

まだちゃんと読んでないけど、2の仕組みが良くできてるとおもた。

あと、これ三次元にも対応してるっぽい(Z座標が存在する)。
まだ試してないんでどういうダンジョンが生成されるのかわからんが
0431名前は開発中のものです。04/12/21 12:49:36ID:JVBcPoT4
このWiz風ダンジョン生成。
1マスを3x3マス分として考えて、通路は1マス分に縮小。
んで、部屋と通路の扉部分を結合。
ってしたらrogue likeにも使えないかな?
043242604/12/22 06:03:37ID:M7D/hlJX
>>431
そのアイデア、試しに実装してみました。

結果としては、それなりに使えるんじゃないかな?と思います。

ただ通路に関しては、どうしても直線的になりがちで
また部屋に密接して作られちゃうので
見る人によっては、面白みに欠けるとみなすかも?

一応、生成オプション弄って使えそうなやつを作ってみたんで
興味のある方はどうぞ
ttp://up.isp.2ch.net/up/2a3bb0ad177e.txt
0433名前は開発中のものです。04/12/22 18:54:05ID:vtsQN5YF
なかなかイイね
ダンジョンゲーとしては各フロアにバリエーションがあったほうが楽しいから、
一味違うフロアを生成できるよういろいろなアルゴリズムを持つのは良いことだね
0434名前は開発中のものです。04/12/22 21:18:29ID:OzD0Okhk
だね。俺は生成エンジンをプラグイン化してみたりしてる
0435名前は開発中のものです。04/12/26 00:26:20ID:Exh1T9w9
このスレ参考に作成中。
まだ不具合あるので画像だけです。

ttp://tell-me.sakura.ne.jp/test.gif
0436名前は開発中のものです。04/12/26 05:49:53ID:H6gPAOqH
おお、すげーすげー
そこを歩くだけのやつでもupしてん







・・・広いな・・・
0437名前は開発中のものです。04/12/26 08:30:30ID:U7hutUIm
>>435
いいよいいよー
0438名前は開発中のものです。04/12/26 11:36:20ID:4W3IAVrJ
>>435
広過ぎて従来のトルネコ&シレンの腹制度だと2Fで食料なくなりそうだなw
0439名前は開発中のものです。04/12/26 18:40:24ID:U7hutUIm
angband系列だと同じくらい広くてもバランスとれてるから、
バランス取り方次第かと
0440名前は開発中のものです。04/12/27 02:49:08ID:/qB0yEjo
*band*、少なくともvanillaでは食料事情、照明事情は無いに等しいからな。
NetHackとの差に泣ける。
NetHackだと照明屋に蝋燭しか無い事があるし。
まぁ蝋燭が足りないよりはマシなんだが。
0441名前は開発中のものです。04/12/27 15:37:31ID:oLkGYQCR
ははは

NetHackだと蝋燭ないとイベントのせいでクリア不可能だし、
序盤は空腹が天敵だもんな。

その点、*bandは、初期の町で食糧や空腹の巻物が買い放題、
照明も買い放題の上、途中で消費なしの永久光源が拾えるしな
0442名前は開発中のものです。04/12/27 21:44:09ID:7R5BsBxR
>>435
すげぇ。ただ、部屋が繋がりすぎのような・・・行き止まりの通路も欲しい
044343504/12/28 00:53:12ID:89xDDhd/
ttp://tell-me.sakura.ne.jp/map.zip

とりあえず歩けるようにしました。
マップの広さなど起動時にランダムで決まります。
描画にDirectX9.0cを使用しているので
ランタイムが必要です。
描画部分がかなり重いです。
マップが繋がってない、
永久ループするなど不具合が残ってます。
0444名前は開発中のものです。04/12/28 01:50:03ID:9LMc91BV
いいよいいよー
こうやって実際に毎回違うmapを歩けると可能性を感じるなー
0445名前は開発中のものです。04/12/28 04:19:44ID:eZh/IZfo
>>435
人工物っぽいダンジョンばかりでこれはこれで(・∀・)イイ!!
なんでこんなに重いの?
0446名前は開発中のものです。05/01/02 21:08:00ID:VyyXW717
>>435
すごい!完成したらぜひソースを見せてほしいです。
0447名前は開発中のものです。05/01/17 01:11:02ID:DxCkgefZ
ぬ・・・だ、誰もいないのか?

いまさらではあるが穴掘り方を応用したら、
こんな感じの生成できるようになった。
自分ではイケテルとおもうが、みんなどうよ?

ttp://namihei.zone.ne.jp/upup/up/31422.gif
0448名前は開発中のものです。05/01/17 01:29:37ID:4Y3i3Bq7
>>447
真中の方にできてる丸っぽい部屋を見て「お?」って思ったけど、ループするような通路ができてないよね。
その辺をどうにかして、通路の太さを適当に拡張するようにしたら自然にできた洞窟っぽくなるかも?
044944705/01/17 07:38:51ID:/ZZCwhql
>>448
アドバイスさんくす!

ループした洞窟てのは、
ttp://namihei.zone.ne.jp/upup/up/31432.gif
の中央下の感じのことでいいのかな?
これなら一応実装済みなんだけどなぁ・・・
通路広くするのはちょいと考えてみる。

んでは、仕事いてくる〜  (^ー^)ノ
0450名前は開発中のものです。05/01/17 14:01:44ID:nHigXm2k
全体をn×n個のグリッドにわける方法使ったときの部屋が一直線に並ぶような現象も
回避できてるようだし、かなり良いね。
0451名前は開発中のものです。05/02/05 17:19:23ID:T9zbJJCg
ルナティックドーンみたいな奴はどうよ?
0452名前は開発中のものです。05/02/13 19:14:35ID:BfA7CsB3
???
ルナドンって、定型を使いまわしだと思う。
0453名前は開発中のものです。05/02/13 19:37:52ID:YiLMMcfO
初代は穴掘り系ランダム生成だったような。
0454名前は開発中のものです。05/02/26 18:16:56ID:XLBYmv/q
穴掘り法というのをやってみてるんですが、
4方向とも穴を掘れなくなったときに次にスタート地点として選ぶポイントはどうやって選ぶんでしょうか?
今まで掘った穴の中から次のスタート地点をランダムに選ぶとなると、掘った全ての座標の中から選ぶって事になりますよね。

今、map[56][64]という配列に穴か壁を入れてるんですが、
rand()で56*64の中の一つを選んでそれが穴ならそのポイントを選ぶっていう風にすると無駄が多すぎるし…
誰かご教授おねがいします。
0455名前は開発中のものです。05/02/26 18:58:48ID:+BfzmYZO
今まで掘ってきた穴をさかのぼっていって
4方向の穴が空いていない地点から掘り出すというのはどう?
0456名前は開発中のものです。05/02/26 19:41:56ID:XLBYmv/q
その場合、穴を掘る場所を新たな配列か何かに入れながら掘り進めるって事ですよね?
それだと掘り方がランダムだから配列の大きさが分からないし、
後半になるとさかのぼる量が増えてしまって時間がかかる様な気がするのですが…
0457名前は開発中のものです。05/02/26 23:26:37ID:cBNZPZ5V
Cなら動的メモリ、C++ならSTLで解決。
マーカつけてればそんなに深くはならない。
0458名前は開発中のものです。05/02/27 00:38:28ID:jOdBjCDc
STLは良く知らないのですが、
1.listに穴を掘った場所を追加しながら進んでいく
2.行き止まりになったらlistの要素数が上限のランダム数を発生させる
3.ランダム数番目の要素がスタートに出来るならそのまま1へ戻り、出来ない場合はその要素を削除し、2へ
こんな感じになるのでしょうか?取り敢えずやってみます。
0459名前は開発中のものです。05/02/27 06:36:24ID:i5A/74X4
入れ子でやってないということか?
0460名前は開発中のものです。05/02/27 13:10:28ID:jOdBjCDc
入れ子…何処の部分ですか?
理解が悪くてすいません。
ところでlist構造は一つの要素に付き二つ以上の内容を記憶出来るのでしょうか?
今、map配列が2次元配列なのでmap[y][x]のyとxを格納したいのですが…
list構造を二つ用いて同時に入れるしかないんでしょうか?
0461名前は開発中のものです。05/02/27 14:31:32ID:jOdBjCDc
というか、list構造ってランダムアクセス出来ないんですね…
どうすれば良いか完全に分からなくなりました
vectorだと要素の追加・削除が出来ないし…
0462名前は開発中のものです。05/02/27 15:10:01ID:G4Vo/2DV
http://www.shibu.jp/cppreference/cppvector.html
vectorで要素の追加削除出来るべ
つうか出来なかったらどうやって使うのよ
0463名前は開発中のものです。05/02/27 15:13:30ID:jOdBjCDc
>>462
ここを見ていたんですが、良く見たら適さないだけで追加も出来るんですね…
ttp://www5c.biglobe.ne.jp/~ecb/cpp/07_05.html
結局dequeというので今は試しているんですが、頭の中がごちゃごちゃになってきました
0464名前は開発中のものです。05/02/27 16:50:19ID: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 は配列と同じ構造なので途中の要素を削除すると非効率。
でも、終端からの削除ならサイズを変更するだけで済むので簡単にできる。

んじゃ、頑張っとくれ。
0465名前は開発中のものです。05/02/27 17:05:33ID:jOdBjCDc
>>464
なるほど。そんなやり方があるとは…
数時間挑んだのですが未だに解決してません。
その上ソースがぐちゃぐちゃになってもう駄目っぽいので、その方法でやり直してみます。
0466名前は開発中のものです。05/02/27 23:37:25ID:jOdBjCDc
おかげ様で今、何とか完成させる事が出来ました。
アドバイスしてくれた人、本当にありがとうございました。
0467名前は開発中のものです。05/02/28 00:17:26ID:HqZ8iPxT
>>466
おめでとう。役に立ったみたいで、こちらも嬉しいよ。
これからもゲーム制作を楽しみなー。
0468名前は開発中のものです。2005/03/29(火) 09:50:20ID:Kg3P9ufG
あげ
0469名前は開発中のものです。2005/05/22(日) 17:32:21ID:lIm3yEmY
ホシュ
0470名前は開発中のものです。2005/05/23(月) 22:58:20ID:5z/chgyh
ミーツー
0471名前は開発中のものです。2005/06/03(金) 23:58:46ID:k+KD2UyV
このスレまだあったのか。
以前ここで、ローグの解析実況をした日は
なつかしい思い出だ・・・。
0472名前は開発中のものです。2005/06/04(土) 00:50:39ID:j7+2UQCm
良スレは何度でもよみがえるさ
0473名前は開発中のものです。2005/06/04(土) 02:55:43ID:qAYKJL3r
鍵や仕掛けつきのダンジョンは難しいかな?
あっちの鍵を拾ってこっちの扉を開けて・・・という系統のパズルなやつ。
ちゃんとクリアできるような仕掛けをランダムで作るのはどうしたらいいのかわからんけど。
0474名前は開発中のものです。2005/06/04(土) 03:33:42ID:j7+2UQCm
多分それは表面的な改造ですぐすむと思うよ
0475名前は開発中のものです。2005/06/04(土) 03:42:12ID:yByGcKlF
>>473
「鍵をかけながら鍵を置いて回る人」を仮想的に動かせばいい
と思って今考えてるとこだ。
うまくやれば大がかりな仕掛けもできると思うんだけど。
0476名前は開発中のものです。2005/06/04(土) 10:37:14ID:2Lx0HeyL
経路探索か
0477名前は開発中のものです。2005/06/04(土) 10:41:49ID:Mx0GDmAL
鍵と鍵の要る扉ランダム生成で一生遊べるスペランカー、とかあったらいいな
0478名前は開発中のものです。2005/06/04(土) 10:54:52ID:j7+2UQCm
おもしろそうだよね。
はっきり書くと、こんな感じかな。

ダンジョンはたとえばAからFまでの6つの区域に分かれている。
またこの世の中にはaからjまでの10この鍵がある。

ある区域から別の区域に移動するためには、
あらかじめ定められた鍵をすべて持っていないといけない。
たとえば、AからDへ移動するためには鍵aとgとhが必要。

各区域には、そこで得られる鍵が定められていて、
その区域に立ち入ることによって、その鍵を得ることができる。
たとえば、A区域では鍵aとbとcが得られる。

プレーヤは最初スタート地点と呼ばれるある特定の区域にいる。
ゴール地点と呼ばれる特定の区域に到達することをめざす。
それは可能であろうか。――
0479名前は開発中のものです。2005/06/04(土) 15:26:07ID:qAYKJL3r
なるへそ。RPGなんかで、先へ行くにはあるアイテム集めが必要で
そのアイテムを手に入れるには別なアイテムが・・・って話と似てるね。
0480名前は開発中のものです。2005/06/04(土) 15:46:59ID:j7+2UQCm
>>479
そうそれ、ずばりそれ
コンピュータがそういうシナリオを自分で作るとき、
絶対に抜けられないダンジョンになると困るから、どうしよう、みたいな話
0481名前は開発中のものです。2005/06/04(土) 22:35:23ID:UmKVEfts
>>475
の考え方でいけそうだけどなあ
0482名前は開発中のものです。2005/06/14(火) 16:29:15ID:WjZVWI+e
鍵が共通鍵の場合にハマる可能性が出そうな気がする。
鍵一つ使って、扉の中の鍵を3つ取り出すような場合に
最後の一つをそこに使わず、別な扉に使ってしまったらクリアできなくなるな。

でも扉の奥には必ず鍵一つが原則、としたらつまらなくなりそうだし。
やっぱりこのシステムは固有鍵しか無理なのか?
それとも階段上り下りで内部構造リセットとかするべきか?
0483名前は開発中のものです。2005/06/14(火) 17:21:49ID:+dyJFCQD
あー、鍵が消耗品だとすると色々ややこしくなるな
0484名前は開発中のものです。2005/06/15(水) 10:00:12ID:JLPVloti
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \   そうだ!共通キーだけ非消耗品にすればいいんだ!
     ('A`)
     ノヽノヽ
       くく
0485名前は開発中のものです。2005/06/17(金) 14:13:36ID:LQLcT/tA
プレーヤーがその鍵を投げてモンスターにぶつけるとかして、
鍵を無くしてしまったときはどうするの?
0486名前は開発中のものです。2005/06/17(金) 17:42:39ID:16kvVQkz
えー、まじかよ

鍵は特殊なあつかいのアイテムということで
「それを捨てるなんてとんでもない!」みたいな感じで
投げること自体をできなくする
(ぬすむ力をもった敵だとか、持ち物がさびる罠だとか、
そういったものがあればそれらも同様)

それか、世界から鍵が消えた時点で
「鍵の取れる場所」に鍵が再生成される

このどっちかじゃないかな
04874852005/06/17(金) 22:59:26ID:LQLcT/tA
>>486
普通のRPGなら、特殊アイテム扱いで良いと思うけど、
ローグライクなら、
石に躓いてアイテム(鍵)を床にぶちまけて、
鍵を取ろうとしたらドラゴン・ブレスで鍵が燃えてしまったとか、
鍵を盗まれたので、その盗んだモンスターから鍵を取り返そうとして
追いかけていると、落とし穴に落ちて「うわーーーーーっ」とか、
○×仙人の目が光った! プレーヤーは混乱した!
プレーヤーは鍵を投げた! 鍵は○×仙人に1のダメージを与えた…orz
とかなるように一般アイテムと同じ扱いの方が良いと思ったので。

なので、鍵を再生成する方法の方が良いか。
0488名前は開発中のものです。2005/06/17(金) 23:08:09ID:16kvVQkz
確かにその方がふさわしい気がする。
まあ多分具体的には、その「鍵の取れる場所」に人が行ったときに
世界に(あるいは来た人の持ち物に)その鍵が無ければ、得られる、
とかそんな感じか。

「すねが光った! くめの仙人は混乱した!」
0489名前は開発中のものです。2005/06/17(金) 23:30:09ID:Z+DUfmOd
nethackでのクリアに絶対必要なベルや蜀台は、普通のアイテムでは無くなるような
行動でも無くならないように出来てるし(たしか)、
そのカギが進む上で絶対に必要な物なら、上の例で言えば敵にぶつけてもそのカギのみは
無くならないようにするとか、盗まれないとかブレスで燃えないとかしたほうがいい気がする。
>>488の言う通り、Wiz風に、ゲームからそのアイテムが消滅したら取得イベント再復活でもいいけども。

でもネトハクのベルは5回充填して使い切るとハマルんだよな。
0490名前は開発中のものです。2005/07/03(日) 21:19:00ID:jPpx4eRu
Vodaでシレンが出たのでホシュ。
0491名前は開発中のものです。2005/07/20(水) 01:23:38ID:IONaYr2+
補修
0492名前は開発中のものです。2005/07/21(木) 16:42:46ID:moDvbKPv
flashで作られた自動生成のサンプル、どこかにないでしょうか・・。
参考にしたいのですが。。
0493名前は開発中のものです。2005/07/21(木) 17:12:04ID:bKKYlRPW
ま、まじですげえ。こんなものがまだあったんだね。マジレスすまん。
http://search.auctions.yahoo.co.jp/jp/search/auc?p=%B1%C7%B2%E8%BE%F0%CA%F3&auccat=0&alocale=0jp&acc=jp
0494名前は開発中のものです。2005/07/22(金) 04:08:53ID:IbpJtLPM
むかぁーしむかし
ベーマガにそう言うコードが乗っかって説明されていたんやけどなぁ。

最近の若い者は どーやってそれを知るんやろ。

とか思ってみますた。
0495名前は開発中のものです。2005/07/22(金) 05:35:31ID:lGFI0dtK
むかぁーしむかしだったら迷路の自動生成とかやってみたいと思ったかも
しれんけど、今はなあ。
■ このスレッドは過去ログ倉庫に格納されています