1 :
名前は開発中のものです。:
「風来のシレン」みたいにランダムでダンジョンを作るのって
どうやるんですか
rand()
マップを1000個作っておいてランダムに選択。いじょ。
rogue のソースでも読んだら。
迷路の自動生成って結構奥深いよな
ところで生成って変換できねーよ
シレンって、ランダムとかいいながら
同じような(多少サイズが違うだけ)のマップしか作って無いじゃん。
何かのアルゴリズム関連の書籍に載ってたような気がする。
>>1 キミの好きなようにやればいい。
唯一の正しい解答がないのが、この手のゲーム向けアルゴリズムの醍醐味。
あぼーん
とことんシレンを研究したらそれなりにわかると思うんだけど・・・・・・。
ハハハ イキデキネーヨ
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ハライテ- ゲラゲラ
. ( ´∀`) < あほか ∧_∧ 〃´⌒ヽ モウ カンベン
. ( つ ⊂ ) \_______ (´∀` ,,)、 ( _ ;) シテクダサイ
>>1 .) ) ) ○ ∧_∧ ,, へ,, へ⊂), _(∨ ∨ )_ ∧_∧ ○,
(__)_) ⊂ ´⌒つ´∀`)つ (_(__)_丿 し ̄ ̄し ⊂(´∀`⊂ ⌒ヽつ
タッテ ラレネーヨ
ワハハハ
ローグやネットハック等のソースを読みなさい。
Roguelike News、いつの間にかサイト消えてるけどどうなったん?
16 :
8:02/07/23 22:04 ID:2KkjetHw
で、あの伝統的迷路生成アルゴリズムをroguelikeで使う気? 勘弁してよ。
>>15 オレもよく覗いていたのに、いつのまにか消えてた。
悲しい。
19 :
sage:02/07/26 01:47 ID:???
>>3 正解。
1000回遊べるというキャッチコピーは、あらかじめツールで生成した
1000個のダンジョンデータを持っているという事だったみたい。
>>19 手作業で1000個もマップ作ってたら大変だろ。
自動生成だと思うぞ。生成機能がツール側にあるのかも知れんが。
自動生成させたマップでテストプレイさせ、面白かったマップ1000個に使用した
乱数種を保存ということか?
それではまるでPB-100のRPGみたいじゃないか。
>>22 懐かしい。
俺、3行で迷路作るプログラム書いたぞ。
うちの父親は本当にトルネコ1を1000回遊んでたなあ・・・
ごめんなさい板違いデス(つД`)
漏れら極悪非道のageブラザーズ!
レス50以下は強制的にageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ age
(・∀・∩)(∩・∀・) age
(つ 丿 ( ⊂) age
( ヽノ ヽ/ ) age
し(_) (_)J
1.まず要素として、部屋と通路を作成させる。もちろん一定の範囲内で行う。
2.始めの部屋を一つ作り、四方に通路の口を付ける。ない場合もあり。
3.部屋同士重ならないように次々部屋&通路の口を作成。
4.全ての通路を、通路の口から部屋にぶつかるまで一マスづつ伸ばす。
5.通路の先端同士が隣接したらそこで止める。範囲から出てももちろん止める。
※部屋のサイズや部屋同士の間隔、部屋の形、通路の口の数、通路を止める条件、通路の伸び方などはアレンジ次第。
これってシレンよかnethackのが元祖だよねぇ
>>28 「ローグライク」という単語でぐぐるのだ
シレンやトルネコ自体、ローグを元にしてるって開発者が言ってます
30 :
名前は開発中のものです。:02/10/18 13:08 ID:6sYAokDb
何の変哲もないRoguelikeダンジョン。
1. 最初の部屋をランダムな位置に配置
2. 部屋の壁を「掘れる場所」としてマーク
3. マークした場所のどっかからランダムに部屋か通路をホリホリ、ホリススム〜♪
・部屋を掘るスペースがなければキャンセル
・通路は適当にぐにょぐにょ曲げて、どっかの空間に出たら掘るのやめ
4. 掘った部屋か通路の壁を「掘れる場所」としてマーク
5. 3に戻る
ま、大筋では
>>27と同じことかな。原理はアホみたいだけど調整がかなり面倒です。
たぶん最初はまともなダンジョンは生成されないので、いろいろと試行錯誤しましょう。
でぃーがちゃ〜んす♪ 地底の(以下略)
あぼーん
あぼーん
あぼーん
angband ならソースコードに丁寧なコメント有り。
(ヴァリアントによって違いが有るので比べてみるのも面白い)
Omega は他のローグライクに比べると、自然な形のダンジョン生成を行う。
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
42 :
名前は開発中のものです。:02/12/04 17:05 ID:suGIP1VX
************************* *は壁です。+は柱です。
* + + + + + + + + + + + * 各柱から上下左右のどちらかに
* + + + + + + + + + + + * 柱を増設してください。
* + + + + + + + + + + + *
* + + + + + + + + + + + * あとは自分でしろ
* + + + + + + + + + + + *
*************************
あぼーん
あぼーん
45 :
名前は開発中のものです。:02/12/09 09:22 ID:OAPbFwbF
┏━━━━━━━━━━━━━━━┓
┃ ageモナー . .. HP>>∞┃
┠───────────────┨
┃ ┃
┃ ┃
┃ ∧_∧. ┃
┃ ( ´∀`)<age ┃
┃ ( ) ┃
┃ | | | .┃
┃ (__)_) ┃
┃ ┃
┠───────────────┨
┃【モナー系】 攻>>∞..┃
┃ 防>>∞..┃
┃特殊
>>1のクソスレを浮上させる . . ┃
┃ スレ削除依頼で撃破. ┃
┃レア度>>D ┃
┗━━━━━━━━━━━━━━━┛
***********************************************************
浮 上
***********************************************************
http://qb.2ch.net/test/read.cgi/saku/1032639736
あぼーん
47 :
bloom:02/12/10 19:13 ID:1aFvmu5d
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
57 :
名前は開発中のものです。:03/03/17 22:49 ID:Odh3Hm+m
∩
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!こんなのを発見シマスタ!
/ / |
/ /| / \
http://saitama.gasuki.com/wara/ __| | .| | \
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ \_____________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
このスレは個人的にとても興味があるんだけど、あんまり人気ないなぁ。
もっと参考ネタ出ないかな。
だって教えたくないからさ。
61 :
ところでさ:03/03/19 08:31 ID:d9qjX+iw
次の階のマップが今の階で歩いた歩数によって決まるっていうのは分かってるよな。だから1000歩以上歩けないわけ。
62 :
bloom:03/03/19 10:08 ID:FZZHkcEC
63 :
名前は開発中のものです。:03/03/19 10:46 ID:v87ug0+M
>>61 それ説得力あるな。本当のことは知らないけど。
もしかして「ダンジョン自動生成」とは言ってなかったのか。
自分で簡単なやつ作ってるんだけどなんかうまくいかない。
階段のある部屋同士がつながらないか、通路がめちゃくちゃ大量生産されちゃうんだな、これが。
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
71 :
名前は開発中のものです。:03/04/03 16:00 ID:1uX8wUSJ
__ __
/ age_ヽ /.. age_ヽ
( ・Д・) ( ´Д`) <ひでえな、この糞スレ立て逃げだ。
( ヽ ;〜;;⌒⌒〜⌒ヽノ.ノ y ) でも何で誰も削除依頼出さないんだろ?
.人 3━━━━━━し人 Y
し'(_) し'(_)
72 :
名前は開発中のものです。:03/04/05 13:46 ID:nZalBSVE
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < この糞スレいつ削除されるの〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| age .|/
73 :
名前は開発中のものです。:03/04/08 21:30 ID:f7Nb2d0t
>>1 __↓
/  ̄ ̄ー―-_
▲ ) /
/ハハハ\ |\|\|\___イ
. / \ | /\ /\lllll|
/ _ _ \ | /・\ /・\ |
. | ⊂⊃ ⊂⊃ | |  ̄/、  ̄ ̄ )
(| ∴ ∪ ∴ | |  ̄ /
\ <=> / ヽ <三> /
\____/ ヽ /
∧ /| \/
,r‐‐‐‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐、r‐‐‐‐‐‐'´ `゙‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐、
| 立て逃げか。 | そんなに卑怯者、卑怯者と |
i やっぱり君は卑怯者だな。i 言わないでくれよ〜(泣 i
74 :
名前は開発中のものです。:03/04/11 06:38 ID:3Xra/4RK
おっと、この糞スレをage忘れるとこだった
∧_∧
∧_∧ (´<_` )
( ´_ゝ`) / ⌒i 削除されてないんだから
/ \ | | 誰かが使う予定のあるスレなんだろうよ、兄者。
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ FMV / .| .|____
\/____/ (u ⊃
75 :
名前は開発中のものです。:03/04/15 07:24 ID:JCosnwsE
∩
|∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ,)∩ < クソスレ浮上!!
丿 ノ \________
〜 .つ
し~
彡
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||| ガリ
||| ガリ
∩ .|||
|∧∧ ||| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(TД)∩ < 立てた1は反省しる!!!
丿 ノ \______________
〜 .つ
し~
76 :
名前は開発中のものです。:03/04/18 16:03 ID:iWfrvixr
||
|| ハニャーン!! ハニャーン!!
((∧糞 サクジョサレタクナイヨー!!
( >O<) ))
(/)~~~つ ))
〜( ,(ヽ、∧_∧
(( (ノ \` ) よいしょ
ヽ ○)
( ( (
(__)_)
||
||
l∧糞:: …シゥゥゥゥゥ……
::(#゚;;p。)::
::(/)~~(`
::〜(,;∴;l:: .∧_∧
::U゙;ヾ):: ( ・∀・) 糞スレには削除依頼を出そう!!
゙’;。 ( )
∬ 'i゚;、 人 Y
.,,;∴;"、,. (__(__)
"゙ ;` ' ゛
77 :
bloom:03/04/18 17:10 ID:EecAlKL2
DelphiならRPGスレにシレン風のサンプルがある。
79 :
名前は開発中のものです。:03/04/19 09:31 ID:69F/wryj
ダンジョン自動生成どころか、2ちゃん自動カキコに
苦しんでいるわけだが
80 :
動画直リン:03/04/19 09:39 ID:uRI4tDpp
82 :
名前は開発中のものです。:03/05/11 01:19 ID:YmPX9X07
>>82 すごい!ローグ系じゃなさそうですけど。
よかったらソース見せてもらったりできませんか?
84 :
82:03/05/11 12:38 ID:YmPX9X07
ソースはグチャグチャだから勘弁してくれ。
ローグやネットハックみたほうがいい。
漏れは勉強の意味でわざわざ車輪を再発明しただけ。
85 :
名前は開発中のものです。:03/05/12 19:13 ID:hNDPVSqI
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ようやく糞スレへの削除依頼が出されましたわよ
\_____ _______________
//
∧_∧ ∧__∧
( ´∀`) ( ・∀・)
〉 <、 n ,> 〈
イ´γ 、ヽ ,||、 ,,ノ,_i⌒) __/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(⌒r´⌒y/ f々) (;:..(..:::;ノ / \ よくやったわ。
ハ::,;、::::ノ〈//`´ (二二ノノ | その調子で残りの糞スレも始末しなさい…
|ノ:::::::〈\./ (_ミ:::〈 \_________________
ィf::::::::::;ヽ、 〈;::::::;::ヽ
(ミ:::;;:::;;:::::} 〉;;;::::)::)
人;;;;;y;;;;;;ノ /^i;;:イ;;;ノ
| / / / /| /
`y / 〈 < | |
|| | ヽ `ヽ| i
| ト.、 \`ヾ:|
| |/^〉 ノ ^〉|
ノ__.|ヘ;| しヘ;|_ 〉
∠_ノL! ∠_ノL!
86 :
名前は開発中のものです。:03/05/14 16:22 ID:fXAsAsg2
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < この糞スレいつ削除されるの〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| age .|/
87 :
名前は開発中のものです。:03/05/14 17:55 ID:iws0NpBH
ソースキボンヌ
いくらでも転がってるだろ。
89 :
名前は開発中のものです。:03/05/14 20:08 ID:9Ln7VPCO
90 :
__:03/05/14 20:11 ID:sRtxD0L1
91 :
名前は開発中のものです。:03/05/19 03:00 ID:PodEWIVm
|
>>1が糞スレ立てたの
| なんでだろ〜♪
\____ _______________
V |
| なんでだろ〜♪
\_____ _____
V
_,ヾゝー'"'"'"ー、,; ,.:-‐―‐-.、_
,ラ 、_ ヽ,、 / \
イ r-'ー゙ "ー‐、, ミ/ ヽ
i! ,! i! ミi ,ハ i
,j i /ニ=、 ,r==、i ,,ハ ,ノヽi! ゙'レ>ヾ-、 ,!r'
i V <(・)>i i!(・)>゙!,i !!イ(・)) <.(・)>゙ i /!i
゙!ji! ., j .i_ /j i 。 。, ト-'
,ィi:. ;" ー-‐' ト' .! ,.=、 / ̄ ゙̄ー-、_
__ノ !ハ : 0 ; ,/ _,.-‐''\ ゙='' ,/
/ \\  ̄ ,// ゙ー-‐‐"
/ \.゙ー-イ ,/
_____∧_______________
/
| そして立て逃げ
| なんでだろ〜♪
\_______________∧_____
/
| なんでだろ〜♪
92 :
名前は開発中のものです。:03/05/25 03:10 ID:zZrEN2dj
93 :
名前は開発中のものです。:03/05/27 15:03 ID:0amolFEw
Roguelikeでこんな古典的迷路作られても困ると思うが(w
94 :
名前は開発中のものです。:03/05/30 02:28 ID:EwvzCZ9n
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|\´ー`)/| < どれどれ、あの糞スレはまだあるのかな?
○ \/ζ ○ \__________
| |旦 |
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
| |
∧_∧ ビリーー / ̄ ̄ ̄ ̄ ̄
|\ΦДΦ) /| < っざけんな!浮上だゴルァ!
○ > ζ > ○ \_____
| < 旦 < |
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |
| |
95 :
名前は開発中のものです。:03/06/05 03:11 ID:PO3Vgv4I
タテニゲ ネタスレ〜♪
(アチョイサ)
糞∧ (( (ヽ∧糞
(( (ヽ゚ワ゚*)っ )) ゙l i*゚ー゚)
ヽ ,へ ノ ヽ (( と)
((( 〜(__人) . ((( (^) ノ
c_ノ (ノ
ミコミノナイ プロジェクト〜♪
(アソーレ)
(( ∩糞∧ /) )) ∧糞「「/`,、 ))
ヽ(゚ー゚*)/ (*゚ワ゚)/)-ー"
ヽ ノ (( ⊂ ノ
) と_)〜 `y )つ ))
ヽ) ))) ヽ) )))
糞スレには削除依頼!!
∧_∧ シィィィィーーーーーーーッ
( ・∀≡ミ ──= ___── _ 、;λ糞,;'.糞∧,。;.
rー-ノ _彡"´゙ヽ、) 三 ≡ 二 ≡ ≡三 三 ~~━;゚Q゚ξ━;>q<;、━>
し-、__,イ ノ ===  ̄ __ ====´;'(/`∵';つとノ‘'`;
(__) ブンッ と_O〜;`O、 ノ~; ’
(ノ
96 :
名前は開発中のものです。:03/06/08 02:39 ID:P21vx1bu
>>92 それは迷路んぽ自動生成であって不思議系ダンジョンの自動生成ではないと思われ。
97 :
名前は開発中のものです。:03/06/08 18:09 ID:34Lpq1Lp
ー糸冬了ー
>>82 >>92 僕は82と92でオ○ニーしました。
気持ちよかったです。
ありがとう。
>>92 適当に作ったとは思えないほど、すごくいい。
素朴な出力結果だけど、RPGっていう感じが充分に伝わる迷路だよね。
____________
| |
| |
| _,,.、 -ー''''フ .|
| ―==二,,,__ / |
| / / こ |
| 極 / / の |
| 悪 .___,/′ / ス . |
| ク \ \ レ |
| ズ / .,ー--- |
| ス ./ ./ |
| レ / / |
| / / /______ |
| ・ / ._,,.,、---″ . |
| ./--‐''''^゙ ̄ |
| |
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
101 :
名前は開発中のものです。:03/07/06 19:34 ID:9x9g4sJ5
102 :
名前は開発中のものです。:03/07/09 12:58 ID:K3gy2NT0
IE6.0でMicrosoftのゲームが出来るイースターエッグ発見
IEの製作スタッフが遊び心で入れたもののようだ
やり方は簡単、IEを開きアドレスのところに
c:\aux
と入れるだけ。IEにAUDと出てきたらスペースを押してスタート!
操作方法
上 カーソルキー↑
下 カーソルキー↓
左 カーソルキー←
右 カーソルキー→
ジャンプ A
しゃがみ Z
攻撃 X
現在の最高得点 53600点アメリカ人の模様
2ちゃんねるから1位を出すぞ!(゚Д゚)ゴルァ!!
105 :
名前は開発中のものです。:03/07/11 23:11 ID:oB0pX3ji
1はどうした。
早く迷路の自動生成プログラム公開しろよ。
1はどうした。
早く迷路の自動生成プログラム公開しろよ。
>>108 そういう形の迷路じゃない気がする。
ローグ風のだよね。
それもはいってるから マジではげだな
111 :
名前は開発中のものです。:03/07/22 01:21 ID:AgLHKOrw
docファイルなんぞ紹介されても読めん。
俺もDOCファイル読めない。
せめて"はげ"にも読めるフォーマットにしてください。
しかも上を辿るとどうやら大学のゼミのサイトか?
普通htmlかpdfだろう。何考えてるんだか。
docなんて冗談だけにしてくれよ・・・
オフィスくらい入れれ
保守
118 :
82:03/09/08 02:24 ID:DGIb+Ofg
久々に来てみた。まったく進展していないな・・・。というかこのスレまだ残ってたのか。
すっかり忘れていたんだが、そろそろ消してもいいか?
119 :
名前は開発中のものです。:03/09/08 06:00 ID:1vyVKrgh
120 :
412:03/09/22 23:02 ID:rNdSiZ4B
消した。漏れの作った基本アルゴリズムだけ書いておく。
1.部屋数決定
2.各部屋のサイズと位置の決定
3.最初の部屋から通路の敷設
4.他の部屋と接続
5.次の部屋から通路を延ばす(以後繰り返し)
6.全ての部屋がひとつになっているか確認。ダメなら最初から
7.適当に行き止まりや余分な通路を作って完成。
他にもイロイロと細かく小手先のこと(自分の部屋に戻る進路はやり直しとか)を
やってるが基本は1〜7。
121 :
82:03/09/22 23:02 ID:rNdSiZ4B
しまった。別スレの名前が残ってた。スマソ
>>120 6の手順をスッキリさせないと時間メッチャかかりそうだけど
123 :
82:03/09/23 00:49 ID:H87naM88
6よりも3と4がキモ。ここをどれだけ練れるかで、時間がかなり変化する。
間違えると自分の部屋に戻ってくる行けない部屋のあるダンジョンになってしまう。
ちなみに6の判定そのものは、すぐに出来る。
漏れの場合は左下にリトライカウントを表示してたけど大体1発で出来てた。
たまにやり直すくらい。
124 :
名前は開発中のものです。:03/10/09 18:15 ID:gloYt7es
1、通路全体を作る。
2、通路の上に部屋同士が重ならないように配置する。
これでどう?
124の考えでいいと思う。
問題は通路の作り方だ。
通路の作り方は通路の上に通路が重なるように配置する。
重ねる通路は、直線やL形や四角形などを使う。
何度か通路を重ねれば大きくて複雑な通路が出来る。
127 :
82:03/10/09 22:35 ID:WP88aGMf
>>124 なにも考えずに部屋を置くと部屋の形が四角に見えない可能性がある。
それでも良ければ構わないけど、漏れはトルネコのような部屋の形が長方形から
崩れないように注意した。
■□□□■□□□□□
■■■■■□□□□□
■■■■□□□□□□
□■■■■■■■■■
□■■■■□□□□□
□■■■■□□□□□
□■■■■■■■□□
□■■■□□□■□□
こんな部屋の形を許すかどうかだね。
実際作ってみてるわけじゃないので、間違ってたらスマン。
細かいルールになるが通路の長さや部屋の大きさ、配置の座標を奇数で統一すれば、
部屋の形を綺麗にすることは可能だと思う。
わざわざアルゴリズム考えなくても、Rogue Clone II とかのソース読めばわかるやん。
フラクタルかなんかで岩盤を作って、そいつを腐食させれば天然の洞窟。
同じく鉱脈を作ってカクカク掘っていけば鉱山。
131 :
82:03/10/13 08:53 ID:wevhMUAZ
>>128 その制限が許されるなら簡単にはなる。問題はそれでいいかどうか。
論点としては
>>124と同じだね。
漏れは
>>1にシレンとあったので不思議のダンジョン系のダンジョンを基点として考えただけ。
ところで、漏れ以外にも誰か書いてくれよ。
アリンコが巣をつくるアルゴリズムを応用できないか?
とりあえず仲間の匂いがする(仲間が多くいる)箇所を彫る
んだけじゃなかったっけ?なんでそんなルールで複雑な巣穴
が生成されんだか…
134 :
132:03/10/13 13:20 ID:bbfkqWDB
1.部屋生成
2.通路は((奇数ブロック*i)進んだら曲がる)*n
3.1に戻る
を任意数繰り返したら終了、ってのでやってみた。最初と最後の部屋には階段もつけてみた。
たしかに
>>82みたいにきっちりやろうとすると大変だけど、「ダンジョンらしきもの」を自動生成させるのはそれほど難しくはないね。
初めてやってみたけどこれ面白いわ。もちっとがんばってみる。
136 :
82:03/10/24 23:55 ID:LUG2pqu0
135に期待して保守
137 :
名前は開発中のものです。:03/12/03 22:01 ID:zSvX83Rw
俺が昔つくったやつは
1 X*Yの外壁をつくる。中は全部床。これをダンジョンと呼ぶ。
2 ダンジョンの中にX個の壁を置く。位置はランダム。
3 ダンジョンの中にX*Yの部屋をZ個作る。部屋は外周が全て壁で中が全て床。
4 入り口をランダムで一つ作る。
5 入り口から深さ優先の探索で床に深度を付ける。
6 深度の最大値がXより小さかったら、一番深い床に接してる壁を一つ床に変えて4に戻る
パラメータをうまく与えてやればそれらしいものが出来たよ。
ゲーム作成には挫折したが。
× 4に戻る
○ 5に戻る
>138
すまんが何がどうなのかさっぱりわからん。
なんで全部床なところにさらに床と壁を作るのか?
1〜3と6にあるXはどこまで同じものなのか?
深度がなにを意味しているのか?
>>138 まず、xとかyとか同じものを違う意味で使うのは止めたほうがよいと思った。
わかりにくくてスマン。
しかも深さ優先じゃなくて幅優先の探索だった。
深度は入り口からその床までの最短歩数。
Xは全部別物。
スゲー単純に言うとある程度の深さになるまで壁→床、床→壁を適当に繰り返してるだけ。
部屋を作って通路で繋ぐという考え方ではないので
ここで議論してるのとは全然違うものでした。
だからさ。5,6が全然分からない。
・幅優先・・なんのこと?
・最短歩数・・なんのこと?直線じゃなくてもいい?
あと、結局どんなダンジョンになるかわからん。
ソースをUPだ。それで全て解決する。
(´Д`) えーと。
1.部屋数を一定数+乱数に決定
2.壁で埋め尽くされたマップに部屋を重ならないように配置
3.開始地点・終点をどこかの部屋の中に指定
4.開始地点から終点までの通路を1+乱数個作成
とまぁ、言うのは簡単なんだが
アルゴリズムにしろってーと難しいな・・・(´Д`)ハァ。
部屋
部屋 987
部屋 6
部屋 345
部屋12
深度ってこんな感じか?でも廊下が巻いたらどうするんだ?
9から下に行って右に行ったら?
同じ部屋についた場合とか廊下が交差したりすぐ隣を通って広くなったりで
これだけだとあまり廊下っぽくならない気がするぞ。
147 :
138:03/12/07 04:08 ID:SbSpMvxn
探索のアルゴリズムは一般的なものだと思ってた
>>144 ソースはPC98を物置から引っ張り出さないとならないから面倒
でも面白そうだから、暇なときにでもサルベージします。
>>146の例の空白が壁を現しているなら
0がダンジョンの入り口だったとして下のようになる。
54
43 987
32 6
21 345
1012
148 :
続き:03/12/07 04:08 ID:SbSpMvxn
深さ9では狭いと判断してランダムで床/壁を微調整時したとき、
9の下、9の左下が壁から床になると
54
43 567
3234 6
21 345
1012
になる。
書いてて思い出したが、6の「一番深い床に接してる壁を一つ床に変えて」は記憶違い。
ランダムで床を5個置く、壁を5個置く、とかやってたような気がする。
俺の作ってたやつは部屋の概念が無かったので、
床がたまたま四角く残ってたら部屋って感じ。
イベントの位置は深度で決定してた。
全然ローグ系じゃなくてゴメンネ
確かにローグ系というより、アリの巣っぽいものができそうだ。
でも、参考になったよ。おかげで下の方法を思いついた。
138と比較するとローグ系の廊下は一マスごとに方向をランダムに決めているんじゃなくて
他の部屋を目指した直線的なランダムってことだろうな。
A:掘り始めの部屋と行き先の部屋をランダムに決める。
B:XとY、どちらかを先にあわせるか決めて廊下を延ばす。
C:一方が合えばもう一方を合わせる方向へ。
D:数十回に一回、進行方向をランダムに変える。
E:別の廊下と繋がったらそこで終了。
まだ欠点はあるだろうけどたぶんこんな感じか?
大昔こんな感じで作った気がする
作りたいタイプによってアルゴリズムを変えてた
迷路風
アルゴリズム辞典に出ているようなやり方で
所々壁を消したりしてアクセントを付けてみたり
ローグ風?
部屋を適当に配置し、適当に通路でつなぐ
行き止まり通路を作ってみたり
洞窟風?
適当に掘り進んで、適当に太らせる
>>150 その適当って個所のアルゴリズムを書けよアホ
「大昔」に作ったやつだから忘れちゃったんだよ。きっと
150が思い出すのを期待して保守
154 :
名前は開発中のものです。:04/03/18 05:26 ID:mbXIiubf
なんとなくage
>>17 >>93 Nethack ではダンジョンの深い所では古典的な迷路が(いっぱい)出現します。
ミノタウルスも(いっぱい)いるよ。
とってもつらいけど、神様がくれた試練なので頑張ろうと思いました。
テス
157 :
◆wvM6C8VLoU :04/06/09 23:07 ID:WBlL48ys
>>151 超亀レスで別人だが自分が昔考えたアルゴリズムは
1.適当な部屋を選択
2.その部屋から一番近く部屋を探す。
3.それぞれの部屋から縦横に直線状に通路掘る
をすべての部屋に通路が繋がるまで繰り返す。
□
□
つまり上の場合(□は部屋)
□
↓
□→X
矢印方向に通路を掘っていけばX地点で通路が繋がる。
例外的な場合として、下みたいな場合があるが、書くまでもないので省略
□
□
158 :
◆wvM6C8VLoU :04/06/09 23:09 ID:WBlL48ys
あと掘る方向は」
159 :
◆wvM6C8VLoU :04/06/09 23:11 ID:WBlL48ys
←□
↑
□
でもかまわない。
その他細々したものがあったと思うが思い出したらまた書く。
nethackのランダムマップは
マップが重要じゃなくてランダムイベントを#でつないでるんだよな
だから面白いんだと思った
>>157 それだけだとこのように孤立したエリアができる可能性がある。
□ □
┃ ┃
□━┛ ┗━□
すべての部屋に通路は繋がっているが、部屋同士が繋がっていることにはならない。
厳密にやるなら、すべての部屋が繋がったかどうかのチェックが必要
あと「部屋から部屋へ通路を伸ばす」のではなく「部屋Aからの通路と部屋Bからの通路を繋げる」というアルゴリズムならば、その合流点Xをどう求めるのか気になる
162 :
◆Mn5mzn8hAQ :04/06/13 19:51 ID:SVTy+FtY
俺はあんましシレンとか好きでないので
内容がよくわからんというか
思いっきり忘れたんだが
こういう感じのマップを自動生成できたら
結構イケテルか?
教えてくれろ。
□□□□□□□□□□□□□□□□□□□
□■■■■■□□□□□□□□□□□□□
□■■■■■■■■■■■■□□□□□□
□■■■■■□□□□□□■□□□□□□
□■■■■■□□□□□□■□□■■■□
□□□■□□□□□□□□■□□■■■□
□□■■■■■■■■■■■■■■■■□
□□■□□□□□□□□□■□□■■■□
□■■■■□□□□□□□■□□□□□□
□■■■■□□□□■■■■■□□□□□
□■■■■■■■■■■■■■□□□□□
□■■■■□□□□■■■■■□□□□□
□□□□□□□□□■■■■■□□□□□
□□□□□□□□□□□□□□□□□□□
場所とってしまってすまんね〜
意外と出来ないんだよな
トルネコタイプ
いや、トルネコはRogue起源な訳で、NetHack起源な訳で、、
つまりNetHackのソースでも見ればいいだろ(´д`)
いきなりNethack読むと軽く死ねると思う
166 :
◆Mn5mzn8hAQ :04/06/13 21:28 ID:SVTy+FtY
とりあえずローグのソース読んでたが寝れる。
死ねるというか寝れる。
で
>>162はどうかいな?
そうなのかー、かー。読んだ事無かったから、スマソ
162は悪くないけど全ての部屋にほぼ直通で行ける状態はどうかと。
ある程度の回り道を要求する方がいいと思いますた。
>>167 さようか一筋縄ではいかんな。
ソース読んだ方が早いかな。
ちなみにローグの生成部分のソースファイルは1000行未満で
ほんとに関係あるのは
そのうち一部分だけなので実はたいしたことがない。
でもコメントついてねぇし。。orz..ぐぅ
じゃあ、みんなでソースを読み進める勉強会なんてしませんか?
>>169 いいこと言うなぁ。
仕切ってくださいくださいください
迷路生成の部分だけ抜き出して
貼ってちょうだい
んでもってローグに関する
(厳密にはローグクローン2系)の
我輩が読んでみた限りの情報提供しようとおもふ。
参考になるかわからんが(読み間違えてるかもしんないし)
AppMain.cがエントリポイントを含むソース
(Win版でない人は多分Main.c)
135行目のfor(;;)ループの部分の
make_level();が生成の関数。
level.cで定義されている。
これ以外で生成にからんでくるファイルは
room.cとrogue.h位だがちょっと参照する程度。
<つづく>
生成は非常に大雑把に言うと
@3x3に分けたエリアのうち8箇所に部屋を設置する
A一定の法則で対となる部屋を決める
B3回方向転換しながら通路を結ぶ
という段取り。
<つづく>
@とBはそれとなくなんとなくわかったような気分。
しかしAの部分がまだ理解不能。
>>157 で指摘している繋がりチェックを省いて
華麗かつスマートなアルゴリズムで選定するんだろう。
寝ぼけた脳みそでは理解できんねぃ。朝になっちゃったねぃ。
ぐぅ。
他いろいろ気づいたことあるんですが長くなったのでさやうなら。
<つづかない>
>>108の穴掘り法は、3次元の迷路も作れそうだな。
というかこのページ、迷路ゲームの面白さへの考察まで書いてある。
なかなかいい大学だな。
>>161の問題は最初の部屋から最短経路探索、領域拡張法でいいで解決しない?
で、もまいら具体的なソースはできたのかい?
思っていたより厄介なソースだなぁ、コメント少ないし。
get_rand(x, y);
xからyまでの範囲の乱数値を得る
例)
get_rand(5, 2);
5から7までの間の乱数値
coin_toss();
0か1の値をランダムに返す
>>180 なるほど、ここで判明した関数かきだして
リファレンスみたいにすれば
みんなで読めるね
と、get_randの説明がおかしいある・・
get_rand(5, 2)なら2〜5の乱数を返す
get_rand(5, 7)なら5〜7の乱数を返す だわいね
乱数に関する関数はrandom.cに入っております。
>>178 最短経路探索、お、と思ったけどローグのソースはなんか違う気がしる
>>179 他のしとは知らんけど俺はまだ読むばかりなり。アンタも読むなり。
画面ORマップまわりの重要な定数(Rogue.h)
#define ROW1 7
#define ROW2 15
#define DROWS 24/*縦の最大*/
#define COL1 26
#define COL2 52
#define DCOLS 80/*横の最大*/
※〜1、〜2は
マップを3x3の領域にきりわける際に利用している
●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つのドアをもっていて
しかもペアになる部屋のドアの座標ももっており
かつ部屋ではなく通路になったりもする、と。
>>183 まだ読みかけだから間違っているかもしれないけど補足すると・・・
部屋の最大数は9で、80x24の空間をを9個に分割して
部屋を配置しているっぽい。
例外はBIG_ROOM。空間内に一部屋だけという状態。部屋のサイズは画面内でランダム。
これはゲーム中、いずれかの階に一度だけ かつ 1/100の確率で出現する。
>>185 あ、0lapHs9H氏の書き込みみると、9個じゃなくて8個なのかな。
>>185 あ、ほんとだ部屋の数9だね
for WonderWitchのソースはなぜか8ですた
#define MAXROOMS 9(rogue.h)
100分の1の確率なのか、なーる
ぶっちゃけてしまうが
風来のシレン月影村の怪物インターネット版の体験版
を画面キャプチャしながら4階層遊んでみたが
今わかっている時点だけであきらかにRogueと
生成方法が違いますケドw
rogueのソース読むのもいいけど自分で書いちゃった方が早いし面白いんじゃないかなあ
そうして、他人のソースを読まずに突き進んできた奴があwqせdrftgyふじこlp;
せっかくだから斬新な自動生成段ジョンを開発しようぜ
ダラダラと別のことしながらローグIIのソース読んでる。
部屋生成について補足。make_level()から呼び出される、make_room()は以下の通り。
画面を3x3に分割して、その分割された領域内に矩形を作ることで部屋にしている。
サイズはランダムで、領域内の左上からの位置もランダム。この時、他の領域には
踏み入らないように計算しているので、部屋の重なりをチェックする必要はない。
必ず9個の部屋があるわけでない。条件によって部屋のあるなしが決められる。
条件は単なるランダムではなく、ある程度の法則性がある。
これはゲームバランス的なものだと思うので詳しい説明は省略。
1/2の確率で縦に3部屋並ぶ構成になる・1/2の確率で3種類の部屋の並びになる、
一つのフロアには、少なくとも3つの部屋が生成される、とか。
部屋のあるなしを決定したら、フロアマップに部屋の構成を記録すると同時に、
部屋の位置やサイズを別に記憶しておく。
おっと、一部読み間違えた。
>部屋の位置やサイズを別に記憶しておく。
サイズではなく、左上の座標と右下の座標っぽい。
あと、条件チェックで部屋がないと判断されても、先に計算した部屋の位置・・・
つまり、小領域内での左上と右下の座標値を保存している。どうやら通路?を
生成する時に利用しているっぽい。
だいたいわかったんだが、
わからないのが
ペアの部屋を選定するコード。
add_maze/make_maze。
add_mazeは
>>193の「部屋ではなく通路にする」場合の処理で
座標を保存して範囲を限定することで
どこまでも無駄に通路を延ばしてしまうことを避け
るためと読んだ。
月曜日は面白いテレビ番組がなくて退屈である。
部屋を作ったら、次は迷路の作成らしい。通路ではない。
9個の小領域内に、ある条件を満たしたら、迷路を作る。
基点は先の部屋を作成した時に保存した左上の位置から、掘り進む。
1回(1文字)掘るごとに1/3の確率で進行方向を変える。
掘り進む方向+1と、その左右方向(画面の左右ではなく進行方向に対して)、
それから、掘り進む方向+2を調べて、すでに掘った通路があったら迷路作成終了。
掘る範囲は先にランダムに決定した部屋サイズ内なので、小領域を出ることはない。
迷路が生成される条件はゲームバランス的なので詳しい説明は略。
最初の階では絶対に迷路がない。16階以降は階を増やすごとに迷路が作られる確率が高まる。
迷路は1つの階につき1つっぽい。
>>195は、make_maze()の処理内容です。
>>195 また読み違えた。
> 掘る範囲は先にランダムに決定した部屋サイズ内なので、小領域を出ることはない。
掘る範囲は少領域内。
基点が、部屋サイズ内。
ははぁなるほど。
するってぇと通路への変更は別のコードか。
>>198 関数名だけみると、通路&ドア作成は、connect_rooms()内っぽいですよ。
迷路を作ったら、hide_boxed_passage()を実行してる。
処理内容は、作った迷路をところどころHIDDEN属性にする。
つまり、先に迷路を掘ってから迷路の一部をHIDDEN化してる。
このルーチンは、迷路だけでなく、通路作成時にも呼び出されてる。
隠し処理は3階以降にしか発生しない。あとはゲームバランス的な条件で。
というわけで、add_mazes()もおしまい。
>>197は間違いで、やっぱり掘る領域は部屋サイズだったけど、まぁいいや。
>>199 ああ、通常の部屋同士の通路掘りはそれなんだけど、
229行で部屋でも迷路でもないものははじかれるから
それ以外に部屋を通路にするロジックがあるのではないかと
おもて。
R_CROSSという定数がアヤシイ・・
fill_out_level()とfill_it()がアヤシイ・・
とかおもてました。
最後に調整してるんかな、とか。
でもなんか違う気もするし・・
まぁ割と瑣末な部分なので
この時点で突っ込まないでもいいのかもしれんが。
>>200 ほほぅ。そうなんだ。ソース読むの早いなぁ。
部屋同士を接続するアバウトなしくみの見当ついた。
012
345
678
とわかれているエリアで
ランダムに部屋を選んで、(ここでは仮に0とすると)
1,2,3,6のエリアの部屋に接続に行く。
選んだ部屋が4だったとすると5と7に接続にいく。
実は6にも接続に行ってしまうが、
connect_roomsで実際に接続する際、行か列のいずれかがあっていないと
処理を終了するので結局6には接続しない。
これをランダムな順番で0〜7について行う(8はイラン)
つまり、
右、さらに右、下、さらに下の4箇所に接続に行く。
非常にアバウトだが、
これが接続先選定のアルゴリズムであった。タブンネw
夕飯買ってきてそれからそれからもうちっと読んでみます。
連続投稿制限に引っかかって、ふてくされてた。
3x3の領域内に部屋と迷路を作ってから、迷路の部分隠しをしたあとは、
mix_random_rooms()で3x3の小領域の情報を10回ほどシャッフルしてるっぽい。
領域単位での入れ替え。
・・・すでに部屋とか迷路をdungeon[][]内に書き込んでるけど、
そんなことしていいのか?どこか読み違えてるかも。
というわけで、そろそろ通路の処理に入りそうなんだけど、ここからが面倒っすね。
とりあえずアミュレットは26階以降にでるっつーことで。
>>204 そうそう、mix_random_rooms()でしっちゃかめっちゃかと俺も悩んだw
でも冷静によむと、
mix_random_rooms()はrandom_roomsをシャッフルするだけで
肝心のroomsはいじられないので大丈夫だったりしる。
random_roomsはランダムに部屋選ぶのに参照しるだけの配列にゃり。
部屋同士の接続はこれまたアバウトにいうと
部屋の出入り口を向かい合わせにつくって(dirとrevに向きを設定)
通路を延ばして途中で向きかえて座標をあわせて再度通路をのばして
ドッキングしてるだけ
というか、細かい話抜きにしると
これでほぼ全容はわかったことになるんだなぁ。
ソースに 日本語コメントつけてうぷ汁
>>205 なるほど、そっちだったか〜。
深読み&変数名勘違いのトラップひっかかってました。
隣り合っていても部屋と部屋を繋ぐ通路がなかったりしるのは
どのような理屈であろうか。
>>200の続き。
部屋と部屋をつなぐ処理・・・は
>>203ですが、ちょっと補足。
1つの小領域につき1度、右とその右、下とその下の4箇所の
小領域(にある部屋)に対して通路を作成する。
connect_rooms();
まず、向かい合わせになっているそれぞれの部屋の壁に対して、
ランダムな位置に扉を作成する。そこから通路を延ばす。
draw_simple_passage();
通路は2回曲がるように作成される。スタート地点の扉から
ランダムな長さまで直線をひいて、進行方向を変えて、そこからゴールの扉の
縦座標(or横座標)まで直線をひいて、進行方向を扉の方にして、
そこからゴールの扉まで直線をひくだけ。進行方向を変えるとかいうのは90度向きを...
とかではなく、部屋の位置関係が上下であれば、下にひいて、右か左にひいて、また下ひく
という、ただの条件分岐と線をひくためのfor()ループ三回。
通路を作成したら、12%の確率で通路の一部を隠す。
迷路作成時に呼び出した、hide_boxed_passage()と同じ。
そうそう、小領域をまたぐ場合...つまり、
>>200の図でいうと、0から2とか、
0から6へ通路を作成した場合には、その中間の小領域(1 or 3)には、
R_CROSSという部屋扱いになるけど・・・これが何を意味するのか、今はわからない。
もちろん、1と3に部屋があったら、通路は作成されない。
あとは、is_all_connected()とfill_out_level()を読んだらオシマイ。
ナゾというか、勘違いかもしれないけど、隠し扉ってなかったっけ?
あれっていつ作ってるんだろう?
R_CROSSは
R_ROOMでもR_MAZEでもR_NOTHINGでもないエリア(というか部屋)
connect_rooms()の最初の条件文ではじかれるエリア、
はやい話、通路を延ばせない場所でいいんでないかと。
十字路ってみかけないものな。
put_door()の最後の方の
if ((cur_level > 2) && rand_percent(HIDE_PERCENT)) {
dungeon[*row][*col] |= HIDDEN;
は隠しドアとは違うの?ちゃんと読んでないからわからんけど。
通路を一本作成したら、全ての部屋がつながっているかを調べる。
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])) {
部屋だけでなく、迷路も部屋と同じ扱いになってる。
おおお、謎がほぼすべて解けた
ヽ(`Д´)ノ うぉ〜
あれ、部屋が通路になってしまう仕掛けはいったい・・
>>212 隠し扉それです、ThanX!
>>209 その1 ... 隠し扉
その2 ... is_all_connected();が真の場合、通路作成のfor()ループをbreakしてます。
つまり、ぐるっとまわって別の部屋へつながっている場合、直通路は作成されないのだと思います。
fill_out_level()ながーい!休憩。
make_room()内の
if ((rn != r1) && (rn != r2) && (rn != r3) && rand_percent(40)) {
goto END;
}
の処理、必須の3部屋でなければ40%の確率で
通路に変貌すると見た。つぅか既出だったっけかな・・
fill_out_level()はよくわからない。
部屋に扉がない場合(どこにもつながってない壁がある)、
行き止まりの通路を作成してる?
まぁ、ローグの部屋と通路の作成方法はこれでわかった、ということでいっかな。
このアルゴリズムのキモは“空間を3x3に分割する”ということに尽きますね。
これで部屋の重なりを防げるし、ある程度のばらつきを保証できるわけです。
>>218 ウンウン
おれっちも3X3が肝とおもふさ〜
あと、再帰して繋がりチェックしるやつ
あれないと全部の部屋がつながってしまうわけだけど
ランダムな部屋から通路つくるから絶妙に無駄な通路ができたりする。
必ずしも最低限の通路ではないちうとこもよくできてる。
まとめでもアップしようと思ったけど(カッタルイからw)やめて
このアルゴリズムの簡易版でも作ってアップしようかな。
ID変わっちゃったさんありがとう
おかげでかなりスムーズに解析できた。
というわけで、とりあえずどもおつかれさました〜
ローグのソース解析お疲れさんです
労をねぎらう意味で、
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 ID:wguEk+iT
>>221 いい感じだね。
しかも、ローグのソースをもとにちょこっと拡張しました?
せっかく結果も出てきたことですし、
ここらで、ダンジョン自動生成のルールを決めたらどうでしょうか?
とりあえず、たたき台
1.「風来のシレン」を習い、1フロアの面積を50x30とする
2.1フロアの情報は、部屋・通路・壁の3種類として、出力を区別する
3.サンプル出力は、画像とし、2パターン以上提出する
意見等あればどうぞ。
いや、技術的な話は、もう特にないんだよ。
ここまでくるとあとはゲームバランスになってしまう。
1フロアに部屋をいくつ配置するのかっていうのは、
腹の減り具合とか、敵の強さとかに依存するし。
225 :
ぐぅ@腹ペコ ◆Mn5mzn8hAQ :04/06/16 18:30 ID:wguEk+iT
>>222 さんくすこ
究極的ダンジョン生成エンジンを開発して
それはもう愉快なローグ系携帯アプリを作るのが夢ですの。
もちろん主人公はカシワモーチですわ。
>>223 現状1フロアは64x48。
4x3のエリアにわけて生成。
部屋を配置して通路でつないでるだけ。
ここまできて気づいたのだが
俺っちには今のところ
「どんなマップを生成したいのか」という具体的なビジョンがない。
究極的てなんやねん、て話。
夕飯買いに逝ってきます。
>>226 むぅ
それすごいね。
それで生成したマップで内容がシレンだったら面白いのだろうか。
もともとD&D用だからシレンよりWizとか3D系の方が相性がいいだろう。
シレンとかはフィールドを巡るって感じだけどWizは部屋を漁るって感じだから。
うむ、それみると、自動生成でWiz作れそうだね
よさげだ
そうか自動生成でウィザードリ〜。
なるほど・・・
自動生成でWizといったらヘルドアか
RPGツクールだけど
233 :
223:04/06/17 09:19 ID:gyW9IQUR
>>225 >現状1フロアは64x48。
だったか、スマソ 適当に書いたのが悪かった
ただ、ここは自動生成スレだし、いろんなロジックを考えるのは無駄じゃないと思うんだが・・・
シレンにしろ、明らかにひとつのロジックで書かれていないでしょ?
まぁ、いいけど( ゚Д゚)y─┛~~
>>233 なんで謝ってるのかわかんないジョ
俺もいろんなロジックを考えるのは無駄じゃないと思うジョ
ローグ系のダンジョン自動生成だったら作ったことがある。実際やるかどうかはともかく考えてみる
ブロック単位で生成させるなら三次元のダンジョンも応用で出来そう
ただ完全にベクターというか、アリの巣のようなダンジョンを作るのはもうどうやったらいいのかわからん
236 :
223:04/06/17 18:09 ID:gyW9IQUR
>>234 あ、うむ、読み返してみるとなんか変だ。
議論ばっかじゃあれなんで、漏れもなんか造ってみる
@と書いてあるのにAがないのは気のせい( ´_ゝ`)
>>1 それならツクール2003で作れ
ダンジョン自動作成機能あるぞw
>>239 物事の仕組みがどうなっているかを知ろうとしない奴にはプログラミングの素質はない。一生ツクールやってろ。
>>237 おーすげー。
けど、「ローカを極力直線的にする」という方針のせいで
「同じようなマップばかり」感が出来てしまっている気もしまつ
そういやトルネコ3では長方形以外の小部屋も生成されてたな
角が丸くなってるのとか
□□□□
□□□□
□□
>>241 >「同じようなマップばかり」感が・・
了解。
それは俺っちも感じてたので現在調整中。
>>242 なるほど部屋自体もバリエーションがあると・・
それはあまり考えてなかったカモ。
あとで考えてみる。
マップ生成のイメージができあがったので
もう一息で完成しる予定。
こういう自動生成型のダンジョンは、ローグ系以外にも使っていきたいね
でも具体的な使い方が思いつかない orz
>>244 生成アルゴリズム学習の効能を考えてみた。
●うぃざ〜どり〜タイプ(
>>229-230参照)
●Quakeなどの3Dアクションゲームのステージ
●各種ゲームの一場面にスパイスとして
●パズルゲームとして
●電流イライラ棒のステージとして(゚Д゚)ハァ?
●追いかけっこ、レースゲームなど
ステージを巡回することに意味があるゲームすべて
使えそうな場面てイッパイありそうだね。ららら。
ランダムなカルドセプトなんか面白そうだ
普通のRPGでやられるとどこ行っても変わり映えしないで飽きるだろう
ギリギリのバランスにしないと、単に面倒なだけのダンジョンになるよね。
>>249 生成してる様子が見れて面白いねヽ(´ー`)ノ
んでアルゴリズムを想像してみた。
穴掘り系のアルゴリズムで(見たまんまだがw)
再帰的に通路を延ばして
既存の部屋や通路と重ならないことを条件に
部屋を配置しているとみた。
通路の問題と部屋の数とマップの大きさの
制御ができれば究極かもね〜とおもた。
GBのドラクエモンスターズシリーズは、RPGで自動生成ダンジョンつかってたな。
ダンジョンに飽きが来る前に、あまりの作業ゲーっぷりに飽きたが。
252 :
249:04/06/21 19:22 ID:Yt6BBulP
http://namihei.zone.ne.jp/upup/up/13383.zip バージョンアップしてみたよ。
主な変更点は、
通路を作る時に周囲の壁比率を調べて、壁が多い方に向かって掘り進む様にしてみたぐらい。
起動オプションの内容が変わってるので一応readme読んどいて。
>>250 マップのサイズは一応引数で指定できる様になってまつ。
通路の問題も少しはよくなったはず。かな? 部屋の数はとりあえず放置。
とりあえずマップ生成はこの辺で中断して、
簡単なローグライクな物体を作ってみようかと思ってます。
t
うわーん、おとせねー
今作ってるけど以外と難しいなこれ
通路2本がこんがらがったりしてる
ダンジョン補修
頑張ってるのは褒められることだが
おまいこんなただの白黒画像をJPGにすんなよ。
GIFのほうがよっぽど容量少ないぞ。
>>259 ゲムデヴのトコ、jpgで上げてるヒト多かったんで・・・
以後気を付けます。
しかもただの二色なのに、jpgつかうから劣化しちゃっているし。
むしろtxtでも良いくらいだ。
俺も現在作成中。廊下が上手くうごかん。
262 :
名前は開発中のものです。:04/09/10 15:25:48 ID:BWQ15nVC
誰か面白いダンジョン生成アルゴリズム開発してない?。
このスレで挙げられたようなのとは違うやつ。
現在出ていた生成されるダンジョンタイプの種類は
1.単純な棒倒し法、穴掘り法等をそのまま利用した迷路のみのダンジョン
2.nethack、rouge等の部屋と通路に分けられるダンジョン
面白いアルゴリズムって言ってもなあ…
今考えてるのは円形のダンジョン
何重もの円を書いて適当にブッタ切る
そして内側の円から外側の円に向けて通路をわたす
手作業で作られた既存のダンジョンっぽいのを自動生成で作れるようになるには、
アルゴリズムというよりは様々な細かい要素を組み込むことが必要なのかな
まずは面白いダンジョンというのを定義したまえ
半裸の女の子が出てくるダンジョン
フォントデータを
ダンジョンデータにコンバートする
どの文字かはランダム
プレイヤーは予測しながら進む
>>267 半裸の女の子を生成しないといけないわけか、今までのアルゴリズム
では確かに解決できないな…
期待させてもらいます。
実際に手作業でダンジョン作ってる人の、
指針というか、作り方がわかれば、自動生成にも応用できそうなんだけどね・・。
かわいい女の子の白黒ドット絵を
そのままダンジョンにコンバートしたらいい
とりあえずダンジョン全体の構造とギミックは分けて考えようぜ。
このスレで重要なのは構造の方だよな。
例えば1つのフロアでもタクティクスみたいに山あり谷ありにするとか。
構造を再現するためにギミックがあるんだから分けても分けれないと思うんだけどなー。
山アリ谷アリんを作るとしたら・・・
まったいらの床にてきとーに縦軸の起伏の最大値を設定して段々と・・・よくわかんね
PSのアザーライフアザードリームスがローグライクで地面にブロック単位で高さがあったよ。
一定以上段差があると通行できない。
タクティクスオウガやFFTAのはごくわずかなパラメータからなかば自動生成のように山あり谷あり作れるシステムだと
どこかで見たおぼえがある
今なにげにGems見てたが、ダンジョン自動生成載ってるな。
3ページくらいだけど・・・。
オートメーション化によって生成されたダンジョンよりも、
職人デザイナが丁寧に作り上げたダンジョンの方がいいよ。
プログラマにできることは前者なんだけどさ。
職人デザイナががんがろうと思えるようなエディタを作ることもできる
・・・あれ?
巧みなジャンジョンマップのサンプルを多数拾ってきて
そこから共通点を見つけ出し、アルゴリズム化…
うん、俺はやらない
おまえにはムリだよ( ´_ゝ`) プッ
ここの住人にできる人はいないらしい
そんなことはないぞー!!
・・・。
人間の行動心理学を利用してワナにはめるダンジョンを作ってみたい
いや、そういうダンジョンを作って遊びあうのも面白そうだ。
・・・しまった、確か前にナムコが似たようなの出してた。
右回りに出口を配置するとか?
出入り口の1歩先とか、2つの出入り口の最短ルート上とか、宝箱や階段の周囲なんか。
でもそういうところに罠が多いと覚えられたら逆に攻略が簡単になる罠。
プレイヤーの行動パターンを学習して一番効果的なポイントを割り出すとか
入口から必ず一歩踏み出すのを学習して罠配置
はじめっからイカサマで 一歩一歩調べてる時は出現させず 走り出した足元に罠生成
ダンジョンコンセプト設定
想定襲撃者設定
予想攻略順路設定
クライマックスシーン設定
くらいは内部で考えてほしいやん
スレを一通り読んだ。
>>172からのRogue Clone IIの解析が熱いね。
この解説があれば簡易roguelikeを作って遊べるかな?
>>226のWiz風小部屋cgiもすごそう。
現実世界見ても、ダンジョン(地下牢じゃなく)ってそんなに実在するわけじゃないからなあ。
遺跡に面倒な迷路作ったりしねーし、洞窟だってRPGに出てくるようなのとは全然違うし。
探鉱なんかは割とそっくしっぽいかな。
本物の鍾乳洞なんて、そこらのラストダンジョンよりも1億倍むずかしいつくりしてるからなぁ
まず最初に、三次元だしな。右手法とか、すでに無力。
無計画に建て増しを重ねた家とか、ダンジョンっぽいけどね。
うちの大学の法経本館って建物が、まさしくそんな感じだった。
やったことある人間なら分かるが
三次元迷路の難しさ(作る方じゃなくて解く方)は並大抵じゃない
無重力だったら更に難易度アップ
TV局もお客さんが迷うように出来てるよな
視聴者が殴りこんできたときに目的地にたどりつけないようにするためという噂もあるが。
>>295 昔、無重力三次元の迷路にハマってたことがある。解く方ね。
マス目状でできている限りは、三次元右手法というのを使えば
一応解けるか、または出発点に帰って来れるのだけど…。
ケイブダイバー万歳
>>298 詳細キボンヌ
三次元右手法でぐぐったらこのスレが一番上だった。
>>300 googleの検索ロボットって優秀だよなw
>>300 そういうときって、かなり鬱になるよな。
さらに 先が真っ暗にw
ワロタ
三次元右手法の解説まだ〜? チンチン
つーかなんなんだ、そのエロそうな方法は。
306 :
298:04/10/12 15:39:49 ID:qEbFSq6q
えー、三次元右手法とか、リア工のときの漏れが勝手につけた名前だからなあ。
じゃあ長文になるけど書くよ。
そもそも右手法って何のためのものかって言えば、交差点でどっちへ進むかを
指し示すものなんだよね。で、この時肝心なのは、「今は北に向いてるから…」とか
考えなくても、目の前の情報だけから判断して行く方向を決めれるということ。
通常の右手法では、現在の進行方向と、伸ばしている手とに従って、交差点では
「手の側」「直進」「手の反対側」「戻る」というこの4方向を、この順に優先して選ぶ。
手の側が空いていればそっちへ、だめなら直進、それもだめなら手の反対側へ、
それもだめなら戻るという具合で。
ところで、三次元の迷路では、体の向きというのは「進行方向」だけでは決まらない。
たとえば同じ「北行き」でも、足元が地面方向のこともあれば、足元が東とか、西とか
天の方向になっていることがあるから。
で、それをふまえて結論だけど。
まず、常に一方の壁面に足をつけて歩くのと、片手を上げて歩いてることが前提で。
交差点で進行方向を選ぶときの優先順位は次のとおり。
「足元」「手の側」「直進」「頭上」「手の反対側」「戻る」
たとえば、右手を上げながら歩いている人は、まず足元が空いていれば必ず足元へ、
もし右側が空いていればそっちへ、それもだめなら直進、それもだめなら頭上へ、
それもだめなら左側へ、それもだめなら戻る、という具合になります。
それで、足元へ入るとか右へ曲がるとか言っても、曲がった後足元をどっちにするかが
問題になるわけですが、それはこうです。
「優先順位が一つ低かった進行方向が、頭上になるように」。
たとえば、手の側へ曲がるときは、直進方向が頭上になるようにしますから、つまり
今来た方向が足元になることになります。
それから、「手の側」「頭上」「戻る」を使ったときは、上げる手の左右を変えます。
このようにして歩けば、通常の右手法と同様に、ループのない迷路では必ず出口に
行けるし、ループのある迷路でも、最低でも入口に帰ってくることができます。
>>306-307 解説どうも。進む方向をあらかじめ一定順序に決めておくのね。
しかし3Dだとややこしいな。
サンプル作ったけど、このスレ生きてるんかしれ・・
>>309 書き込まないだけでチェックはしてるぞ。
同じく
漏れも
313 :
309:04/10/21 13:57:49 ID:W++eIQEI
俺が作ったのは一見トルネコ式にみえて全然別なやり方で
作ったサンプルなんだけど評価してくれるかい?
こんなもんでゲームに使えるかどーか。
315 :
309:04/10/21 19:47:21 ID:LRTkBKUo
>>315 内部エラーが発生しますた(13)
ヽ|・∀・|ノシ
318 :
309:04/10/21 21:27:11 ID:LRTkBKUo
げふんw
319 :
309:04/10/21 21:38:38 ID:LRTkBKUo
321 :
309:04/10/21 22:46:39 ID:LRTkBKUo
上の階からの階段と下への階段です〜
形だけできてもゴールできないと意味ないんで〜
>>319 ス(゚д゚)ゲー
長方形じゃなくて角が凹んでたりしてるのがおもしろいかも。
太い通路とか2本通路があったりしてトルネコ3っぽい
できれば簡単な手順を…
かなり実用に近いと思った。
・複数の部屋の重なり :0〜たくさん
・行き止まりの数 :0〜たくさん
などを制御できてもいいかも。
あと、乱数の種を一つ指定して毎回同じ迷路を生成できるようにすれば、シレンシリーズの救助のようなことも。
>>319 おー。すごいなコレ。アルゴリズム教えれ
良い感じだな。あとはもうちょっと通路にクネクネ感が欲しいトコ。
確かにすごいけど一本道が多いような気がする
327 :
309:04/10/22 22:50:19 ID:CFKkD0NF
>シレンシリーズの救助のようなことも。
スマン、シレンはやったことないから救助の意味がわからん・・・
クネクネと一本道回避かぁ。
修行してきまふ
救助は自分が死んだダンジョンとまったく同じダンジョンを他のプレイヤーに遊んでもらう機能
「シレン 救助」でぐぐるといろいろ出てくる
このスレの場合はそれだけでなく
A いいダンジョンできたよー
B 俺もそのダンジョン見たい
A ほれ乱数種
B 見られたーありがとー
というような用途から有効
329 :
309:04/10/23 22:33:14 ID:PdomheLF
どうも串死んだみたいなんでラストカキコ
シレンの救助の件、サンクス
今後の開発に活かしますね
以後、自ページに潜伏します。みなさんありがとん!
>>329 【開発】ヾ(゚∀゚ )ノ=3 ヽ(´Д`;)ノ〜マッテー、仕組みオシエテー
トルネコとかシレン系の自動生成のソースってないですかね?
あったら見てみたいな
それまではこのスレのを全部試して
トルネコやシレンに似てない点の報告と
どうやれば似るかの案を出してみたりするとよいか
>>332 自動的に似てる似てないを判断して係数を調整して
見本(シレンとかトルネコ?)に似たダンジョンが作れるようにするとか…。
まあ、そもそもアルゴリズム的に対応できなかったら、意味ないけど。
ダンジョンの自動生成ってなかなか難しいですね。
部屋の配置まではすんなりできたけど、
部屋同士をどうやってうまいこと繋げようかと。
とても悩ましい秋です。
そうしてもう冬がやってきました
○y一~~
(|,へ
」 ○| ̄|_
うそーん(p_q)
では春までにいっちょまえなダンジョンを目指します。
いや、むしろ俺も出来てないのよw
最初はドルアーガみたいな棒倒し系にしようかとも思ったけど
面白みに欠けるのでローグライク(シレン系?)っぽい感じに決定。
試行錯誤するがうまく行かないうちに、そろそろ中華マンが恋しい季節になりましたOTL
レスした瞬間にふと思ったんだけど…
ダンジョンが成長するってのはどうだろう?最初は単純で部屋数も少ないが
クリアされるごとにより広大になったりトラップが増加したり
モンスターの強さがクリア回数によって変わっていったり…
最終的に面倒なだけのダンジョンになりそうな悪寒…○| ̄|_
もしかしてこういう系のゲームって既出かな?
ファミマのトンポーローマンなんてどうでしょう。
こちらもローグライク系で頑張ってるのですが、
なにせシレンすらしたことがないもんで。うふ。
EZアプリでシレンありましたっけ?
最初のうちは簡単なダンジョンで
徐々に複雑になっていくってのはいいですね。
1ブロックを16x16でdefineして、自動生成関数の引き数に
縦横のブロック数と配置する部屋の数を渡すようにしているんですが、
あまり広くしすぎるとほんのりバランスが悪くなりそうな予感です。
まーお互いちまちま頑張りましょう。
>>338 ダンジョン育成ゲームか。
・厳しく進化するタイプ
足踏みで体力回復してる時間が長いと、次のフロアでは足踏みが不利になるように進化。
それでも頑張って足踏みするとさらに進化。カモった敵は次のフロアでは減ってたりレベルupしてたり。
・無関係に進化するタイプ
ランダムその他で
・甘く進化するタイプ
次のフロアで食料や強い武器が出るような行動がある
どれがいいのかな。というよりバランス良く混ぜるのがいいのか。
>>340 >足踏みで体力回復してる時間が長いと、次のフロアでは足踏みが不利になるように進化。
>それでも頑張って足踏みするとさらに進化。カモった敵は次のフロアでは減ってたりレベルupしてたり。
これ面白いですね。構造以外にも環境に変化をつけるわけですね。
シレンで例えるならば風の吹くまでのターン数が減少してみたり
敵の初期配置数や出現するまでのターンが変化したり…
ダンジョンの進化の仕方によってはバランスの調整が難しいですね…
あんまり緩い進化だと長く単調になるし、急激すぎると詰まる可能性もあるし
わざと空腹にして出る食料を増やす奴が出てくるな。
でも空腹時の食料放出をしないと初心者が苦しいし。難しいところだ。
理想論を言ってもむなしくなるだけだし、
段階的学習みたいに一番小さいものから順に発展させていくか?
EZアプリかどうかは忘れたがmobile rogue likeとかいうのが
あったはずだ
>>344 親切にありがとう。ゲットしましたー。
が、近々BREW端末に機種変する予定なのです(p_q)
auがJAVA ON BREW機を出してくれることを祈りつつ、
ダンジョン自動生成の実現に精進しまっす。
>>343 みんなで作るつもりなのか?ただ、順序を示すだけ?
>>345 BREWで開発しちゃったら勝手アプリは作れないんでないの?
Java on brewなんてもし開発されても配布元がKDDIのCPじゃないとアカンし
開発予定にもあがってないモン期待するんか?
作っても配布出来ないモン作ってどーするねん?あぁ売るのかw
>>347 言葉足らずでした。
Java on BREWを望んだのは、
アプリを作ったり売ったりの話ではなく、
Javaアプリで遊びたいってことです。
mobile rogue likeをゲットしたのも束の間、
BREW機に機種変してしまうんで。
あくまで淡い希望です。
最後の1行を前の文とくっつけたんでややこしかったですね。
誤解招いてごめんなさいです。
349 :
347:04/11/17 23:37:37 ID:UoSgUdN/
350 :
343:04/11/18 00:08:49 ID:MJQO2PT5
>>346 手順を示すだけです。まぁいいや。なんか適当に作ってみます。
つーわけでBREW端末に機種変してきました。
旧端末も手元に残ったんで一応mobile rogue likeできるっちゃできます。
機種変ご苦労!
というわけでBREW版トル●コ担当よろりん。
えーっマジっすか!?Σ(゜□゜;)!!
BREWどころか、まだアルゴリズムの模索中なんで、
ゲームの体裁すら取ってないっす。
アルゴリズム完成したらEZアプリ(JAVA)でゲームにしよーかなーと。
できるのかな…
先生!ダンジョン自動生成どころかhello worldしかできません!
Hello World っていうダンジョンを作成しる
トロルさまよう目レプラコーンレプラコーンオーク レイスオークジャイアントラットレプラコーン仔犬
353
そうやって人間育っていくのですよw
>356
おしいな。
最初はトロルじゃなくて巨人、そしてオークとレイスの間に幽霊が居る。
いまさらながら思うですが自動育成ダンジョン=シレンタイプみたいな
風潮があるような気がしますがそれが一番望まれてるって事なんでしょうか?
それとも難しいからでしょうか?
ほかにもいろいろ自動生成ものは発売されてるよね。
roguelikeをここまで遊びやすく換骨奪胎したかー、とシレンに衝撃を受けた俺の場合
シレン以外はあまり記憶にないけど。
そして今年も終わっていく…
343は作ってるんだろうか…密かに期待
>1
ダンジョン自動生成のところのコーディングを終えたところ。
こんな感じ。
ttp://www.geocities.jp/trashmexyz/roguex93/play.htm 開発報告スレに載せましたが、こっちのスレの方があってるかなと思って...。
このゲームで使ってるダンジョン生成のアルゴリズムは簡単に説明すると
下記の通り。
1) 2次元配列に適当に部屋を作る
2) 部屋を通路(Path)でつなげる
3) 通路が変になってないかを確認。変なところがあれば直す(例えば通路が
太くなって部屋くらいの大きさになったりしてるところ)
4) つながってない部屋がないかを、Recursive で確認。もしあれば最初から
作り直す
動作確認をしたブラウザは Winows XP の IE のみ。
JVMのバージョンは 1.4.2-b28。
テンキーで移動。斜め移動も可能。デバッグの情報が表示されてるけど
無視しちゃってください。絵は描けないんで、ネットで拾ったやつを使って
ます。
行き止まりの通路は作ってません。リリース版には入れるかも。リリース
予定は早くて2006年の年末くらい。
364 :
363:04/12/06 13:00:13 ID:XGqr52Q8
訂正:
2006年の年末 -> 2005年の年末
>>363 Opera 7.5 + Sun Java Runtime Environment version 1.4 では
「Invalid Bytecode」のエラーになりますね。
366 :
363:04/12/07 11:56:57 ID:NaF5wHrT
最新版の JRE でないと起動できないというバグがありました。
訂正版を今アップしました。Opera 7.5 の環境は持ってない
ので確認はできませんでしたが。
>>366 Opera 7.5 で見ました。ちゃんと動いてる様子。
スクリーンセーバーにならんかなぁ…
>>367 斬新な生成法ならともかく、棒倒し法なんて迷路生成アルゴリズムの中でも
広く認知されてる方だし、再帰処理無しで実現できるし、ガイシュツだし、
このスレで求められてるのは不思議なダンジョン系の
生成アルゴリズムだし今更ここにそれを貼る意図が判らん。
>このスレで求められてるのは不思議なダンジョン系の生成アルゴリズムだし
ここ以外は同意
つまり何をどうしろと?
なんなら俺がローグ系のアルゴリズムを説明しようか?
1から読め。
376 :
372:04/12/13 22:09:33 ID:Rb5wRHew
373にムッと来て解説せんとこおもたけど、
このままじゃ年越せない香具師の為に希望者10人集まったらやったるよ。
あと8人な。
その前に何がわからんのか、解りやすく述べるよーに。
そこ詳しく解説したる。
rogueのhack自体はスレの途中で行われているからrogueを作りたい人はそれを読めばよいとして。
トルネコやシレンにみられる、「rogueアルゴリズムだけでは作れないようなダンジョン」
の具体的な内容と、その作成方法、あたりが求められてた時期があったような。
でもrogueダンジョンをちゃんと作るのでもけっこう骨だし、作る途中で壁にぶつかった人のための
rogue解説が非常に有難いのはいうまでもない。
・部屋は 0 〜 n 本の通路を持つ。
・通路は部屋と枝分かれした通路を持つ。
以上の 2 ルールを再帰で書きましょう。
んで、部屋を1つ作れば勝手にニョキニョキっとローグダンジョン完成。
379 :
名前は開発中のものです。:04/12/15 22:31:04 ID:lyT8gy6+
>>372 解説すればミンナ幸せというわけでキボン
解説きぼん
387 :
372:04/12/16 13:38:02 ID:Fe46NDml
ちゃんとレスくれたのは377のみかよ
どーもオマエらが解らないで困ってる部分が俺には解らないので掻い摘んで書く
まず、考え方から。
頭の中に方眼を用意しる!これが、マップの全体だ。
15x15ぐらいのな。
つまり、225部屋のマスが有るわけだ
もちろん通路もこの中にしまう。
視覚的に部屋なのか通路なのかは捉える方の錯覚にしかすぎない。
これが通路に見えるタイプ(この場合は縦方向)
■■□■■
■■□■■
■■□■■
■■□■■
■■□■■
部屋(と錯覚してるのは)こんなタイプ
■■□■■
■□□□■
■□□□■
■□□□■
■■□■■
こういう風に5x5とかでテキトーに部屋のパーツを作れ
通路タイプで曲げた時はちゃんと接続できるようなパーツも作れ
複雑なダンジョンつくりたきゃ沢山つくれもちろん7x7や9x9の方がいいぞ
388 :
372:04/12/16 13:42:25 ID:Fe46NDml
つまりこれらのパーツを繋がるよーに並べていけばいいわけだ
次に繋ぎ方。
まず最初に、全体マップにスタート位置を決めれ
そしたら、そこに部屋を置く
このとき次に通路タイプを置く向きを決めてそれにあったタイプを
となりに置いてやる
389 :
372:04/12/16 13:46:17 ID:Fe46NDml
これで、1つの部屋と1つの通路が出来た訳だ
そしたら次は通路タイプに繋がる部屋を置いてやる
このとき選んだタイプの繋がる方にまた通路タイプを置いてやる
長い通路にしたいときは通路タイプを2回置いてやれ
以下、これの繰り返し。
ぶっちゃけ通路をどっちに延ばすのかはランダムできめれ
390 :
372:04/12/16 13:52:07 ID:Fe46NDml
初代はどーかしらんがトルネコはいつのまにかこのタイプ
ローグ系とは作り方が全然違う。
もちろん、7x7の部屋もあり、15x15の部屋もありと混ぜてやれば
大部屋とか入り組んだのとか自由に作れる。
気が向いたら他の方法も教えてやるよ
これ読んで意味わかんなかったらあきらめれ
中古屋にトルネコ買いにいって観察しる!
391 :
372:04/12/16 13:57:00 ID:Fe46NDml
書き忘れた。
通路タイプを置くときに1回置いたとこにまた置くと行けない部屋ができるから
交わる時にはちゃんと交差点タイプに置き換えること
もしくは、交差点が出来ないよーに通路を延ばす方向を選べ
大本になる全体マップをみればぶつかるかどーかはすぐわかるはず
がっかり
>>372 CかJavaで実装例見せてください。もしくはもう少し具体的な擬似コードお願いします。
そもそもパーツを組み合わせて生成してるってのは確定なのか?
昔懐かしタイルパターン方式か
棒倒し法や壁伸ばし法で考えたんだが、
内壁の厚さをランダムで変化させて、
平行に並ぶ通路と通路の間の距離を広くして、
その上に部屋を置いていくと少し簡単にならないだろうか?
分かりにくくてスンマソ
397 :
372:04/12/17 01:59:17 ID:/jyWbHRK
これがスマートとは思わないが誰にでも理解できる方法だ
指定階数になったらあらかじめつくっておいた配列マップを
マップ配列にぶち込めばイベント起こしやすい
だから、トルネコもこの方式になったんでないか
トルネコは大きい輪っか(口みたいなの)もデータでもってるけどな
393
自分でトルネコ作るなら俺はこの方法とらないけど作り込めば
かなり良いマップは作れるよ バイトコードでデータもってくれば
自動生成以外にもそのまま使えるしな
大本のマップを作ってって概念とメリットが把握できないなら
でっかい配列作ってもいいよ[100][100]とかな
その中に等長サイズのパターンデータを入れるか、倍数のデータなら解りやすいだろ
晒した方法観てピンとこないならこの方が簡単かもな
地図をゲーム内で表示する際とか、部屋の数とかの事もこの時点から考えておけ
実際のソースを晒すにはこの板は狭すぎ
395
わかってるならやってみれ
やった上でデメリット、メリット語ってみれ
396
その方法で出来たマップをよくみてみろ
どーせRPGで使うんだろうが、ゲームとして面白味は皆無だ
パズルゲーならアリだけどな
RPG作るんなら、実際にリアルの洞窟なり鍾乳洞なりを妄想するか
実際に行ってこい
別なロジックもまだまだあるが、まだ晒す気にはならん
393,396 ガンガレ
だから1から読めっていったのに。
399 :
372:04/12/17 11:28:08 ID:UZmelf3M
398
だって、読んでもまだ解らないヤツがいるからこのスレがあるんだろ?
それとも、オリジナルのルーチン晒せってスレか?ここはw
400 :
名前は開発中のものです。:04/12/17 11:32:14 ID:s337jfOV
なんか詳しいようだから、トルネコみたいな簡単なルーチンじゃなく、
nethackのダンジョン生成を説明して欲しいな。
rogueなんかよりは遥かに高度なダンジョンを生成してくれてる。
401 :
名前は開発中のものです。:04/12/17 11:50:06 ID:cLS59+MC
nethackのダンジョンいいなぁ。nethackでローグ風の階層あるけどあそこなんかつまらない。
目が肥えたせいかローグのダンジョンはなんか無味乾燥に見えてしまう。
402 :
372:04/12/17 13:44:18 ID:N3mlXMLX
nethackのソースは晒されてるぞソース読んだか?
403 :
名前は開発中のものです。:04/12/17 17:00:28 ID:cLS59+MC
ローグの方も完全に理解してないので読んでません。まずはローグをJavaで実装してみたい。
雑で大雑把な説明しかしてないのに態度のデカイひとがいるようですけど、
せめてこのスレに書かれているようなローグ解析&解説ぐらいのことは
してからエラそうなことをいってくださいよ。
>>405 いや自分で実装したいんです。図入りで解説するんでそのときは見てください。
>>404 気にするな。彼はチェンSoftのProgrammerなんだ。それだけが彼の生きている印なのだから。
結局372は何もわからないのか。
ばかだからね
ローグのソース読んでもやっぱりわからん・・・
ローグライクの開発(解説)しているサイトでおすすめなのあったら教えてくだあい。英語でいいです。
411 :
名前は開発中のものです。:04/12/18 17:36:20 ID:NINQi9jk
そんな難しいか?
脳内シミュレートしたけど、簡単にできそうだぞ
部屋を作って、部屋同士を通路でつないで
通路の長さと曲がり具合は、係数で制御して、それかr
>>410 どこらへんの、なにがわからないのか、わかってる?
C言語がわからんというのはナシで
>>412 ソース見ても細かいところで何やってるかわからないんですが。その大雑把にはわかります。
>>413 9つの領域に分けてランダムな大きさの部屋作るところまではできたんですが。
ドアつけて道でつなぐとこがよく分からない。ローグのソースコメントまったくないし・・・
このスレの前の方でソース読みしてるけど。
通路については
>>203あたりから。
416 :
名前は開発中のものです。:04/12/18 21:24:54 ID:NINQi9jk
>>415 d
一応このスレ全部読んだんだけどね・・・
もう一回読み直して1日中考えてみます。いつかあっそうかってわかるときがあるかも
417 :
名前は開発中のものです。:04/12/19 02:06:47 ID:cKlDBmlQ
説明してあげたいんだが、文字だけだと難しいな、以下、例ね
□ 空間
■ 土
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■
■□■□■□■□■□■□■□■
■■■■■■■■■■■■■■■
1個飛ばしで空間を配列←初期状態
スタート地点の空間を決めて、隣(ランダム)とつなげる(=土を掘る)
ただし、つなげる先が4方を土で囲まれていなければならない
どこも掘れなくなったら、掘れる場所まで通路を戻っていく
(戻るために、掘るために通っていった通路の全座標を覚えておくこと)
戻るための座標の覚え方はスタックの概念を知らないと厳しいかも
スタート地点まで戻ってしまったら、それは掘れる場所は全部掘った場合のみなので終了
これで最初に1個飛ばしで存在した全空間がつながる
わかってもらえたかな?
418 :
生徒α:04/12/19 03:05:58 ID:mkdjQU32
それは、つまり有名な穴掘り型ってやつと数分違わずな気がするんですが、先生!!
ローグの場合、横倒しだとか穴掘りだとか、そんな面倒なことしてないけどね。
単純に、2つの部屋をつなげるだけ。
それぞれの部屋の壁のランダムな位置に扉をつける。
その扉を通路でつなげる。
どの部屋&扉の組み合わせでも、クネクネと2回曲がればたどり着ける。それだけ。
だからローグの場合、基本的な通路にクネクネクネクネ...したものがない。
nethackだと、みっちりと通路や小部屋が詰まったダンジョンもあるよね。
洞窟のようなものもあるし、結構バリエーション豊富だ。
422 :
名前は開発中のものです。:04/12/19 18:13:08 ID:cKlDBmlQ
ところで自動生成ロジックが完成した暁にはどうなるんだ?
なんか遊べるものウプしてくれるの?
実際にコードないかなぁ
>>422 ここを見た誰かが作るでしょ。
俺も多分作る。
さらに共有化された知識は、将来の誰かにとっても有益になる。
情報の共有化は、より高度なゲームが作られることを期待できる。
>>423 あるよ。このスレでもいくつか紹介されてるし。
オレは
>>226のリンク先で紹介されてるダンジョン(Wiz風)
に感動したんで、コード拾ってきて解析中。
つーか、このコード、ローグのより読みやすいわ。
コメントもしっかり書いてあるし。
しかも、ダンジョン生成ルーチンが、クラスで提供されてるから
自分のプログラムに組み込んで動かすだけならすぐにできるよ。
参考までに…
・組み込んでコンパイルするのに最低限、必要なファイル
gameutil.h、gameutil.c、
jbmazemask.h、jbmazemask.cpp、
jbmaze.h、jbmaze.cpp、
jbdungeon.h、jbdungeon.cpp
・主に利用するクラス
JBDungeonOptions、JBDungeon
必要に応じて、JBDungeonRoom、JBDungeonWall、JBDungeonDatumってとこか?
ライセンスとかは各自で確認ヨロ
>>426 このページ見たけどソースあるの気づかなかったorz
さっそくダウンしました。
いつのまにかソース丸ごとパクリに落ち着いた訳だが。。。
429 :
名前は開発中のものです。:04/12/20 21:49:42 ID:gXD9M5+e
いやソース見て勉強するだけですよ。
430 :
426:04/12/21 05:24:29 ID:XvOexZq5
>>428 ん???
オレの書き方がまずかったか…
読み返してみると、後半部分
解析する際のヒントのつもりが、
パクって利用する手引きに読めんこともないな…
組み込みも簡単だし、これ使っときゃいいじゃん!
て言ってるわけじゃないんで、念のため。
基本スタンスは
>>424さんが言ってるような感じでヨロシク
と言うことで、このダンジョン生成プログラムについて
ざっと見た感じ、アルゴリズムは
>>124のアイデアに近い希ガス
1.オーソドックスな迷路生成アルゴリズムで通路を作成(この時点ではただの迷路)
2.通路を二段階で整形(部屋をイイ感じで配置するための下準備?)
3.迷路のサイズを2倍+1にして通路を引き伸ばす(
>>128でビンゴか?)
4.部屋同士が重ならないように配置(この時点で
>>127みたいな状態になることがある)
5.壁を生成(これにより
>>127みたいな状態が回避される)
まだちゃんと読んでないけど、2の仕組みが良くできてるとおもた。
あと、これ三次元にも対応してるっぽい(Z座標が存在する)。
まだ試してないんでどういうダンジョンが生成されるのかわからんが
このWiz風ダンジョン生成。
1マスを3x3マス分として考えて、通路は1マス分に縮小。
んで、部屋と通路の扉部分を結合。
ってしたらrogue likeにも使えないかな?
432 :
426:04/12/22 06:03:37 ID:M7D/hlJX
なかなかイイね
ダンジョンゲーとしては各フロアにバリエーションがあったほうが楽しいから、
一味違うフロアを生成できるよういろいろなアルゴリズムを持つのは良いことだね
だね。俺は生成エンジンをプラグイン化してみたりしてる
おお、すげーすげー
そこを歩くだけのやつでもupしてん
・・・広いな・・・
>>435 広過ぎて従来のトルネコ&シレンの腹制度だと2Fで食料なくなりそうだなw
angband系列だと同じくらい広くてもバランスとれてるから、
バランス取り方次第かと
*band*、少なくともvanillaでは食料事情、照明事情は無いに等しいからな。
NetHackとの差に泣ける。
NetHackだと照明屋に蝋燭しか無い事があるし。
まぁ蝋燭が足りないよりはマシなんだが。
ははは
NetHackだと蝋燭ないとイベントのせいでクリア不可能だし、
序盤は空腹が天敵だもんな。
その点、*bandは、初期の町で食糧や空腹の巻物が買い放題、
照明も買い放題の上、途中で消費なしの永久光源が拾えるしな
>>435 すげぇ。ただ、部屋が繋がりすぎのような・・・行き止まりの通路も欲しい
443 :
435:04/12/28 00:53:12 ID:89xDDhd/
いいよいいよー
こうやって実際に毎回違うmapを歩けると可能性を感じるなー
>>435 人工物っぽいダンジョンばかりでこれはこれで(・∀・)イイ!!
なんでこんなに重いの?
>>435 すごい!完成したらぜひソースを見せてほしいです。
>>447 真中の方にできてる丸っぽい部屋を見て「お?」って思ったけど、ループするような通路ができてないよね。
その辺をどうにかして、通路の太さを適当に拡張するようにしたら自然にできた洞窟っぽくなるかも?
449 :
447:05/01/17 07:38:51 ID:/ZZCwhql
全体をn×n個のグリッドにわける方法使ったときの部屋が一直線に並ぶような現象も
回避できてるようだし、かなり良いね。
451 :
名前は開発中のものです。:05/02/05 17:19:23 ID:T9zbJJCg
ルナティックドーンみたいな奴はどうよ?
???
ルナドンって、定型を使いまわしだと思う。
初代は穴掘り系ランダム生成だったような。
454 :
名前は開発中のものです。:05/02/26 18:16:56 ID:XLBYmv/q
穴掘り法というのをやってみてるんですが、
4方向とも穴を掘れなくなったときに次にスタート地点として選ぶポイントはどうやって選ぶんでしょうか?
今まで掘った穴の中から次のスタート地点をランダムに選ぶとなると、掘った全ての座標の中から選ぶって事になりますよね。
今、map[56][64]という配列に穴か壁を入れてるんですが、
rand()で56*64の中の一つを選んでそれが穴ならそのポイントを選ぶっていう風にすると無駄が多すぎるし…
誰かご教授おねがいします。
今まで掘ってきた穴をさかのぼっていって
4方向の穴が空いていない地点から掘り出すというのはどう?
456 :
名前は開発中のものです。:05/02/26 19:41:56 ID:XLBYmv/q
その場合、穴を掘る場所を新たな配列か何かに入れながら掘り進めるって事ですよね?
それだと掘り方がランダムだから配列の大きさが分からないし、
後半になるとさかのぼる量が増えてしまって時間がかかる様な気がするのですが…
Cなら動的メモリ、C++ならSTLで解決。
マーカつけてればそんなに深くはならない。
STLは良く知らないのですが、
1.listに穴を掘った場所を追加しながら進んでいく
2.行き止まりになったらlistの要素数が上限のランダム数を発生させる
3.ランダム数番目の要素がスタートに出来るならそのまま1へ戻り、出来ない場合はその要素を削除し、2へ
こんな感じになるのでしょうか?取り敢えずやってみます。
入れ子でやってないということか?
入れ子…何処の部分ですか?
理解が悪くてすいません。
ところでlist構造は一つの要素に付き二つ以上の内容を記憶出来るのでしょうか?
今、map配列が2次元配列なのでmap[y][x]のyとxを格納したいのですが…
list構造を二つ用いて同時に入れるしかないんでしょうか?
というか、list構造ってランダムアクセス出来ないんですね…
どうすれば良いか完全に分からなくなりました
vectorだと要素の追加・削除が出来ないし…
もう、解決しちゃったかもしれないが、書いとく。
>>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 は配列と同じ構造なので途中の要素を削除すると非効率。
でも、終端からの削除ならサイズを変更するだけで済むので簡単にできる。
んじゃ、頑張っとくれ。
>>464 なるほど。そんなやり方があるとは…
数時間挑んだのですが未だに解決してません。
その上ソースがぐちゃぐちゃになってもう駄目っぽいので、その方法でやり直してみます。
おかげ様で今、何とか完成させる事が出来ました。
アドバイスしてくれた人、本当にありがとうございました。
>>466 おめでとう。役に立ったみたいで、こちらも嬉しいよ。
これからもゲーム制作を楽しみなー。
あげ
ホシュ
ミーツー
このスレまだあったのか。
以前ここで、ローグの解析実況をした日は
なつかしい思い出だ・・・。
良スレは何度でもよみがえるさ
鍵や仕掛けつきのダンジョンは難しいかな?
あっちの鍵を拾ってこっちの扉を開けて・・・という系統のパズルなやつ。
ちゃんとクリアできるような仕掛けをランダムで作るのはどうしたらいいのかわからんけど。
多分それは表面的な改造ですぐすむと思うよ
>>473 「鍵をかけながら鍵を置いて回る人」を仮想的に動かせばいい
と思って今考えてるとこだ。
うまくやれば大がかりな仕掛けもできると思うんだけど。
経路探索か
鍵と鍵の要る扉ランダム生成で一生遊べるスペランカー、とかあったらいいな
おもしろそうだよね。
はっきり書くと、こんな感じかな。
ダンジョンはたとえばAからFまでの6つの区域に分かれている。
またこの世の中にはaからjまでの10この鍵がある。
ある区域から別の区域に移動するためには、
あらかじめ定められた鍵をすべて持っていないといけない。
たとえば、AからDへ移動するためには鍵aとgとhが必要。
各区域には、そこで得られる鍵が定められていて、
その区域に立ち入ることによって、その鍵を得ることができる。
たとえば、A区域では鍵aとbとcが得られる。
プレーヤは最初スタート地点と呼ばれるある特定の区域にいる。
ゴール地点と呼ばれる特定の区域に到達することをめざす。
それは可能であろうか。――
なるへそ。RPGなんかで、先へ行くにはあるアイテム集めが必要で
そのアイテムを手に入れるには別なアイテムが・・・って話と似てるね。
>>479 そうそれ、ずばりそれ
コンピュータがそういうシナリオを自分で作るとき、
絶対に抜けられないダンジョンになると困るから、どうしよう、みたいな話
鍵が共通鍵の場合にハマる可能性が出そうな気がする。
鍵一つ使って、扉の中の鍵を3つ取り出すような場合に
最後の一つをそこに使わず、別な扉に使ってしまったらクリアできなくなるな。
でも扉の奥には必ず鍵一つが原則、としたらつまらなくなりそうだし。
やっぱりこのシステムは固有鍵しか無理なのか?
それとも階段上り下りで内部構造リセットとかするべきか?
あー、鍵が消耗品だとすると色々ややこしくなるな
|
\ __ /
_ (m) _ピコーン
|ミ|
/ `´ \ そうだ!共通キーだけ非消耗品にすればいいんだ!
('A`)
ノヽノヽ
くく
プレーヤーがその鍵を投げてモンスターにぶつけるとかして、
鍵を無くしてしまったときはどうするの?
えー、まじかよ
鍵は特殊なあつかいのアイテムということで
「それを捨てるなんてとんでもない!」みたいな感じで
投げること自体をできなくする
(ぬすむ力をもった敵だとか、持ち物がさびる罠だとか、
そういったものがあればそれらも同様)
それか、世界から鍵が消えた時点で
「鍵の取れる場所」に鍵が再生成される
このどっちかじゃないかな
487 :
485:2005/06/17(金) 22:59:26 ID:LQLcT/tA
>>486 普通のRPGなら、特殊アイテム扱いで良いと思うけど、
ローグライクなら、
石に躓いてアイテム(鍵)を床にぶちまけて、
鍵を取ろうとしたらドラゴン・ブレスで鍵が燃えてしまったとか、
鍵を盗まれたので、その盗んだモンスターから鍵を取り返そうとして
追いかけていると、落とし穴に落ちて「うわーーーーーっ」とか、
○×仙人の目が光った! プレーヤーは混乱した!
プレーヤーは鍵を投げた! 鍵は○×仙人に1のダメージを与えた…orz
とかなるように一般アイテムと同じ扱いの方が良いと思ったので。
なので、鍵を再生成する方法の方が良いか。
確かにその方がふさわしい気がする。
まあ多分具体的には、その「鍵の取れる場所」に人が行ったときに
世界に(あるいは来た人の持ち物に)その鍵が無ければ、得られる、
とかそんな感じか。
「すねが光った! くめの仙人は混乱した!」
nethackでのクリアに絶対必要なベルや蜀台は、普通のアイテムでは無くなるような
行動でも無くならないように出来てるし(たしか)、
そのカギが進む上で絶対に必要な物なら、上の例で言えば敵にぶつけてもそのカギのみは
無くならないようにするとか、盗まれないとかブレスで燃えないとかしたほうがいい気がする。
>>488の言う通り、Wiz風に、ゲームからそのアイテムが消滅したら取得イベント再復活でもいいけども。
でもネトハクのベルは5回充填して使い切るとハマルんだよな。
Vodaでシレンが出たのでホシュ。
補修
492 :
名前は開発中のものです。:2005/07/21(木) 16:42:46 ID:moDvbKPv
flashで作られた自動生成のサンプル、どこかにないでしょうか・・。
参考にしたいのですが。。
493 :
名前は開発中のものです。:2005/07/21(木) 17:12:04 ID:bKKYlRPW
むかぁーしむかし
ベーマガにそう言うコードが乗っかって説明されていたんやけどなぁ。
最近の若い者は どーやってそれを知るんやろ。
とか思ってみますた。
むかぁーしむかしだったら迷路の自動生成とかやってみたいと思ったかも
しれんけど、今はなあ。
496 :
495:2005/07/22(金) 05:36:52 ID:lGFI0dtK
ネットに決まってんだろ?
ネットさえあれば何でも分かる、何でも揃う、とでもおもってるのかね
架空の議論自動生成システム
論述の迷路か、なかなか興味深い。
某板仕様論述作成ソフト
「GK乙」
「妊娠乙」
「GK乙」
「妊娠乙」
「GK乙」
「妊娠乙」
502 :
名前は開発中のものです。:2005/07/24(日) 15:49:55 ID:zoFI8ZSA
>>498 たいていのことは解決するけど。
そもそも自分が考え付く疑問など当の昔に誰かが解答してることの方が多い。
何でも揃うなんて誰も言ってないしなぁ。
504 :
名前は開発中のものです。:2005/07/30(土) 11:41:34 ID:xQd4foTu
あげ
505 :
名前は開発中のものです。:2005/08/10(水) 16:55:59 ID:Mp7vk5CP
部屋を5、6個作る
通路を作る
終了
馬鹿だな
部屋を作るんじゃなくて壁を作るんだ
>>505は
全部のブロック(オール移動不能領域)をつくる
:たとえば8*8
ブロックに穴を開けていき、入り口と目的地を繋ぐ通路をつくる
あとは部屋を壁のある座標へランダムに配置
:ランダムする座標は7*7以内に納める
(部屋は罠が置いてあったり宝が置いてあったり)
終了。
欠点は目的地までの道に常に一定のルートがあること。
という初級ランダム迷宮の作成法じゃないのかね。
>>498 何でも分かる。何でも揃う。英語で検索すると特にな。
むしろ最近はぐぐれば必要な情報、それもほぼ最高品質の情報がすぐでてくるから、
逆にやる気を削ぐような面すらある気がするよ。
俺みたいな愚民がいくら独力で考え抜いたところでピラミッドの下層か中層止まりってーか。
どっかで話題になってた、「ネットによっていきなり世界統一ランキングに放り込まれる」ってやつだ。
久しぶりに昔のベーマガやMSX-FANやOh!Xの解説記事読んでみたら、ヌルいのなんの。
何期待して読んだんだ。変な奴。
ナンバーワンにならなくてもいい、もともと特別なオンリーワン。
>>510 検索能力とか英語読解能力は特殊スキルだ、
とか言う意味ではなかろーか。ネットだけあってもどうにもならんな。
>510
今日の俺の晩飯に最適なメニューを検索してくれ。
なら、
全世界では下層だけど、そんなことと関係なく自分を肯定できるスキル
を検索してみればよくね?
>>514 めしライスに御飯セットがおすすめ!と出ました。
おかゆドリンクも忘れるな。
北のダンジョンには食パンサンドがあるそうですよ
食パンサンドがあるかどうかはさて置きホシュ。
ゲームを作るための素材を集めよう! Part2
にて
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
93 名前:名前は開発中のものです。 投稿日:2005/10/14(金) 12:19:23 F4BIYOdW
フィールドやダンジョンのマップ(地図)の素材ってないでしょうか。
マップチップそのものでは無くて、その地形の並びの方です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
というのがあったんだが、マップチップがある状態から
地図のような全体マップをランダムに作成、ってのはできないだろうか?
森や山や海をランダムで区分けしてから自分で微調整できたり
町やダンジョンの位置をうまくバラけさせたり
町を巡る順番まで考慮・・・は、さすがに無理か?
全体マップってのは、ある意味地上の迷路なんだから
こっちも何とかできないだろうか?と思ってみたりする。
トルネコとかは、1000パターン手で作って
ランダムに選んでるだけなんだよな、あれ。
フィールド自動生成はかなり条件限定しないと難しそうだな。
そもそもシナリオ後追い型のRPG(ドラクエとか)ではキツイな。
敵のレベル調整もしなきゃダメだし。
ロマサガタイプならどうにでもなるけど、そもそもアレはフィールドないし。
ティルナノーグあるじゃん。
あ〜敵レベル調整かー
ダンジョンなら一階潜るごとにでOKだけど、地上だと難しいな。
となると、番号が書かれた点を線で繋いだ仮マップを用意しておいて
そこから肉盛りして地表を作るという方法がいいかな?
点のあるところを町やらダンジョンやらにして
レベル調整は番号の大きさでなんとかできるかな?
>>520 俺だ。
昔、フィールド型の自動生成を作っていた事があった。
まず大地を作る。
ランダムで地殻運動を起こして山脈を作って、それを風化させる。
次に細かな地形を作る。
大まかな範囲に温度が設定されていて、
また、海や山脈の位置から降水量を求めて、
そのバランスから草地、茂み、砂漠、雪地などを作る。
ゲームの内容に合わせるというよりかは、
ランダムで出来た偶然の産物に内容の方を合わせる。
>>521 >トルネコとかは、1000パターン手で作って
>ランダムに選んでるだけなんだよな、あれ。
マジデ 昔の話とかじゃなくて?
>>525 手で全部ではないだろうが、ジェネレータでゴリゴリ出力して、
その中から良さそうなのを選んだり、ちょっと手を入れて修正したのが
1000パターンとか。
救助隊で同じマップになる理由を考えてみ?
>>525 「シャッフルダンジョン」はそんな感じだけど、
メインのダンジョンは完全にランダムでその場で自動生成している。
RPGではないSTGだが、アンドロメタルというゲームで
その場でマップを生成しているのがある。
ゲームスタート時に地形とその繋がっている道全て生成して
他の地形の中身(キャラとか)はリアルタイムで生成してい
るらしいよ。
>>529 それゲームの内容自体も面白そうだな。
前回見た時より動画が重くなってる様な気がするが
コーデック方式が変わったのかな?実際の速度はどれぐらいなんだろう。
動画より体験版があれば良いのだが。
>>530 モバイルAthlon XP-M2200+(3Dグラボ無し、ノートパソコン)
の環境で動画再生してみたら、重いしちょっとぎこちない感じ。
テレビなど、他のいろんな動画は快適に見られるから
動画のつくり方、ゲーム実行しながら動画エンコードする段階で
そのやり方が上手くいってないみたい。
実際のゲーム速度は 8年前のPCと最新マシンを比べても
体感速度は同じで、超快適ですって話がホムペでされてた。
(メールフォームができたので、動作報告とかはそちらで。)
ティル・ナ・ノーグ?
http://www.ismusic.ne.jp/ykmyk/sirl.zip 寂れたスレに投下してみますよ。
矢印orテンキーで移動。X押しながらでダッシュっぽく。
C押しながらで壁抜けできるけど、外側の黒い所に行くと強制落ちするので注意。
HOMEとENDでズームイン・アウト。
PAGEUP・DOWNで角度調整。
Rで再生成。
カメラの位置によっては、変な線が見えちゃうけど今の所は気にせんでください。
多分ローグっぽいマップ生成はできてると思う。
とりあえず、行けなくなっちゃう部分があるけど。
エリア分けしてあるので、適当にエリアごとの比率を見ながら、
財宝部屋にして見たり、エリア毎に一つずつバネを設置してみたり、
適当に通路追加したり、そのまま潰したりはできるはず。
乙。なかなかよくできてるね。道がまるっきりないのができたりしてビビッタw
ただ、エリアを区切ってそこに部屋を生成した感じの構造が多いのが気になった。
縦横に貫いてる区切り線が見えるって感じ。
>>535 >道がまるっきりないのができたりして
普通にパラメタで調整できるようになってるのでは。
ゲームによっては荒野とかあえて道を作らないエリアもあると思うし。
>>534 乙!とりあえずDLしてみます(実はこれからw)
537 :
534:2005/11/21(月) 22:53:47 ID:KB59jlb8
>エリアを区切ってそこに部屋を生成した感じの構造が多いのが気になった。
とりあえず、エリア二つ分の大きさの部屋を作るようにしてみたよ。
結局区切り線が見えちゃう気はするけど。
URLは
>>534のままで。
生成アルゴリズムも二つほど変なのを追加してみた。
赤い人は気にせずに。
>>537 早速ダウンロードさせていただきました。
おぉ、なんかイイ感じ。
複雑な洞窟っぽい感じのと、バトルシティー風の障害物な壁マップが追加生成されたやつかな?
気にするなといわれても、つい赤いのを避けて移動しまうよ。
こりゃあ面白い。
ただ2D、むしろテキスト出力でもいいような。
高さ無いですよね。
いや、ちょっと重くて。
嘘です、こっちがとろいだけです。
今ちょっと考えてるのはキャラのみ高さアリのやつ。
2DだとMAPまで高さがあるとわけが分からなくなると思います。
>>537をDLしてやってみたが、面白い。
折れは赤いの捕まえようとして追いかけてしまった。
バトルシティっていうかドルアーガのようダンジョンだが
SFCゼルダみたいに高さがあってもいいんでないかな。
そのための3D表現でもあるし、個人的にはゼルダより
純粋にダンジョンRPGのほうが好きだが。
>>540 テキスト出力ってもしかして1Ghz以下かな。
自分もそれほど高性能マシンでないものの快適に動いている(エラーログにも何も出力されず)
斜めにも移動出来るのがいいね。
543 :
540:2005/11/23(水) 03:58:53 ID:3SWrKvLL
はい、333MHzです。
ただ快適はないものの致命的なほど遅くもないあたりすごいかも。
リアルタイム処理とか無いからかな。
隣の部屋への角曲がりが必ず0か2。時々1だけってのが気になった。
545 :
534:2005/11/23(水) 14:48:41 ID:kWiJPdQk
ごめんなさい、勉強不足でグラフィック関係はOpenGLの簡単な機能しか使えんのですorz
でも、333MHzでも致命的にはならない程度って、これ結構軽いんだなぁ。
実際のゲーム上ではプレイヤーの周囲数マスしか描画しないから少しは軽くなりそう。
と見せかけて、キャラ描画がもうちょっと重くなると思うから結局、大して変わらなそうな予感。
とりあえず、システム的にはシレン寄りな物を作りたいと思っとります。
>高さうんぬん
今の所、そこまでやる気は無いです。無意味に複雑になりそうで……。
>>544 そう云うもんだと思って気にしてなかったけど、気になるかなぁ?
一応内部構造的には絶対に二回曲がってるんだけど。
自分としては、偶に通路同士が隣り合って2マス分の通路になる事があるのが気になる。
まぁ、この辺は改良の仕方が思いつき次第と言うことで。
見た目的には問題ないよ。ただ、全体マップを知らない状態で遊ぶ場合
「2回曲がったから次は部屋だな」と考えられるのがネック。
ランダムダンジョンなのに、先がわかるのは矛盾してるし、楽しさも半減すると思う。。
547 :
540:2005/11/24(木) 03:55:45 ID:y3U8hG2U
一応言っとくけどただ動かすのに下手に固まったりしないという事で、多分遊ぶとなると無理だけど
そもそもあのスペックで3Dやる方がどうかと思う、自分で。
やってみるもんだなと思ってますけど。
わざわざ3Dで作ってらっしゃるんだから高さがあるのかなと思いました。
549 :
435:2005/11/24(木) 19:03:21 ID:anQWpv+g
>>549 イタダキマシタ、操作に慣れにくいがドンドン進むまっすぐなルートも良いな
551 :
534:2005/12/07(水) 00:54:58 ID:kBco8a8d
http://www.ismusic.ne.jp/ykmyk/sirl.zip メインの生成アルゴリズムは殆ど変えてないけど、
水路やら、通常以外の形の部屋やら実装してみたので再投下してみますね。
何か他にも要らん物が色々追加されてるけど。
グラフィック部分はあんまり突っ込まんで上げてください。
一応その内作り直すけど、多分アブストラクトさはこのまま。
というか、マップが常に中央表示だとちとうざい罠。
>>551 おお! すごいですね。
かなり遊べます。
ちゃんと装備した剣や盾がグラフィックに反映されるのもいいですね。
1つ気になったのですが、アイテムや罠が地面に埋まったり現れたりします。
アイテム等を地面よりも少し浮かしてみてはどうでしょうか?
あれ? 埋まってますか?
既に地面から浮かせてるはずなんですが。
キャラが重なった時にちらつくのだったら、影が同じ高さなせいです。後でずらしときます。
後、壁の中とか、出口の無い狭い場所でアイテムが埋まりきった状態でからアイテム投げたりすると、
落ちる場所を探しつづけてフリーズしますので気をつけてくださいorz
>>534 いい感じの出来上がりだね。
グラフィックとかどうなるのか気になるねw
あと操作系がマウスになるとうれしいかなぁ。
555 :
551とか:2005/12/25(日) 20:25:32 ID:zs139kFu
何か色々と弄くってます。それなりにゲームらしくはなってきたと。
と言うか、何気に細々と更新してるんですが、
生成部分はあんまり弄くってないので、こちらでは報告しておりません。
以前のサイトの残骸を再利用してみたので、興味ある方は偶にこちらでもチェックしてやってください。
http://f9.aaa.livedoor.jp/~ykmyk/ それと。アイテムが埋まる件に関してですが、何やら
「カメラを離す=座標が縮小される」時にほぼ同じ距離になってしまう為に起こるようです。
今の状態ではかなり離すと埋まっちゃいますが、完成品では埋まるほどカメラを離せない仕様になると思うので放置しておきます。
>>554 マウスは勘弁。
座標変換とかめんどくさそうだしorz
後グラフィックは、あんまり期待してると確実にガッカリしそうな予感です。
以前ポシャった物ですが、これの戦闘シーンぐらいが限界。
http://www.ismusic.ne.jp/ykmyk/pd524.zip
久々に除いたら、敵とアイテムが増えとる (・∀・)
バランス調整はまだまだ先の話なんだろうけど
アイテム拾う前に、ほぼ確実に複数回死ねますな (ノ∀`)
保守・・・
亀レスかもしれんが…
Rogueのような直線的な部屋の配置は、フロアを直線的に9つに区切っていることに由来するわけだ。
つまり直線的な部屋の配置を避けたいなら、最初にフロアを切り分ける段階でランダムな位置、大きさの区画に切るようにすればいいのではなかろうか。
ちょっとそういう方針でコード書いてみるわ。
>>559 ちょっと凄いもの見たかも
それ論文書ける気がする
海と陸地の浸食スピードを変えるとよりリアルになるかもしらんね
>>559 面白いな、これでランダムに出来た国どうしの国取りゲームでもつくってみっかな
すごい、けどサンプルがちょっと形を変えたアレフガルドだ。
ただそう見えただけです。
面白い!
意外と好評でちと驚き。
>560
論文って書いたこと無い、っていうか論文になるようなもんかな?
やってることはランダムウオークとライフゲームを足して2で割った程度だし
ドラクエマップに似てるのは、わざとそれっぽい色を選んだからだな。
2DRPGの全体マップなんてどれも似たようなもんだし。
とりあえずサイズ選択とか機能追加してみます。
学のある人間が書けば、結構いい感じに論文は書けると思うよ。
なんて言うか個人的には。適当に国とか作って、勢力図見たいなのを表示させたりして。
それっぽいシミュレーションにしてみたいなぁとか。
> 全てのマスで上下左右隣のどれかの色をコピー。
> 同じ色に上下左右囲まれたら、その色に変更。
どうこと?
どうこと?
4*4のマス目があったとして、それぞれのマスへランダムに色が設定されていたとする。
□■□□
■◆■□
□■□□
□□□□
◆の位置の場合、上下左右にある■のどれかからランダムにコピー。
これを全部のマスで実行する。これが1行目の> 全てのマスで上下左右隣のどれかの色をコピー。
次にランダムコピーし終わったものをチェック。
□■□□
■◎■□
□■□□
□□□□
◎の位置のように同じ色で囲まれているもの(孤立している色)は
□■□□
■■■□
□■□□
□□□□
同色に変更する。これが> 同じ色に上下左右囲まれたら、その色に変更。
ちなみに、外周ワクの処理がめんどかったので外周は海に統一してます。
ループ処理できないか頑張ってる途中。
>565
シミュレーションかぁ、そう書かれると色々想像してしまうではないか。
適当な位置に村を多めに設定しておいて、周囲の地形で
草原=羊・穀物 人口(増加速度)
森=木材 建築(最大人口)
山=石炭・鉱物 武力
の関係が発展するように設定。
人口と武力が溜まったら隣に侵攻って感じかな?
とりあえずここまでできたー。
ttp://gamdev.org/up/img/4569.lzh 大きさ変更を可能にした。上下左右の色設定、ループ設定も可能にした。
セーブテキストの文字を選択可能にした。A,A,A,A,なんてのも可能に。
白色を増やして氷原を表現。
これにより上下は氷原で北極南極にし
左右は東西でループするタイプのマップも可能に。
これでだいたいの必要そうな機能は作ったかな?
地形の高低も作り出してくれると、汎用的な気がする。
とは言え、そりゃまったく別のアルゴリズムがいるだろうが。
573 :
562:2006/02/06(月) 03:07:47 ID:ONKI0Dlb
色というよりむしろ形が。
これって転変地異ネタできそうな気がする。
あとベースで山脈とか付けたらどうなるんだろう。
最初は地形の高低で青緑茶灰の4段階で作ってたんだけど
どうも面白みに欠けてねぇ・・・開き直って、今の形にしてみたら
歩くの想像するだけでも楽しそうなマップになったので、こうなりました。
山脈タイプはアイデア思考中。
>575
山・川の配置がドラクエっぽくていいねw
様子見。
>576
大阪、毒の沼地sugeeeeee!
>575
見れない……
>>575の画像は虹裏かどっかの連中が勝手に公開するなとか尻の穴の小さいことを
言って公開停止になったんじゃなかったっけ?
>>580 当時の虹裏「他のネタみたいに転載がきっかけで
(厨房が騒いで)荒れネタになるかもしれないから
ここで作った分は皆で転載はやめとこうな」
結果その「転載をやめておこう」をネタに厨房の連鎖発生
無
情
虹裏ってだけで運命が決まってるようなもんだな。
どう転んでも厨房大発生。
どういうわけか現在、斜線と円の当たり判定の作成でさまよってる。
点と線の関係でいいんじゃ。。。
>583
斜線と点だと、斜線と点が隣接するまで近寄れるもんで。
ある程度、離れさせておきたいから円判定が必要。
で、なんでそんなのがいるかと言うと山脈を表現したいから。
しかしそこまでする必要ないんじゃないかとも思い始めた俺ガイル。
斜線を細かくして四角同士の判定にしてしまえば楽だったな。
>585
スゴス。
588 :
名前は開発中のものです。:2006/02/25(土) 10:16:02 ID:pNUrQkwd
>>585 RTSにそのまま使えそうなクオリティだな。すごい。
>>587 インチキです。
ラインからの生成だと川岸付近の表情が出ないので、あらかじめ画像として
用意した形状ブロックを破綻が起きないように接続しています。
もちろんランダムですよ。
>>585 おお、リアルですげい。昔、似たのは作ったけど川の生成までは至らなかったヨ…。
>>589 なるほど、そういう手法で。たしかによく見ると2×2ブロックで川が形成されてる。
592 :
名前は開発中のものです。:2006/02/25(土) 13:58:37 ID:rJx0/l3U
凄いね。その二つは実際ゲームで使ったん?
>>589 ナイス・インチキw
>>591 こっちもイィ。
(いつかパクってやろうと、心ひそかに決意するのであった。
>>586 点と線(が一定距離内にあるかどうか)の関係でいいんじゃ。。。
>>591 脳汁でそう。
それそのままFPSのマップなどに使えませんか?
>>594 高校の数学でやる「点と直線の距離」ってやつだねえ
>>592 提案はしましたが、まったくウケなかったため、お蔵入りしました。
ノートパソコンが逝かれたので、データをサルベージ中に再発見したところです。
もう、ゲーム制作からは足を洗いました。
>>595 立体構造を生かした、アクション性のあるトラップゲームを想定していました。
上下で撃ちあえるFPSでも良かったですね。
>点と直線の距離
そう、それそれ。その発展系で、与えられる情報が
線分2点と中心点1点の場合の、なるべく簡単な式を模索してた。
高校数学なんざ、とうに忘れてるし(^^;
>591
更にスゴス。ウケなかったのはランダムな上に3Dで
空間把握が大変だからかも。一人視点は辛そうだ。
なんか上手い表示方法があればなー。
面白そうなだけにもったいない。
迷路の自動生成恋愛シミュレーション
「一緒の通路になって行き止まりに噂されると恥ずかしいし・・・」
めろめろ☆メイズたん
〜恋の再帰をかけて〜
605 :
名前は開発中のものです。:2006/03/03(金) 04:07:08 ID:es7sjkBl
てか、おまえらネトハクぐらいやりましょうよ
わかった。つるはしアイテム持たせればいいんだよ
*壁破壊*の魔法書
つ【大逆鱗】
RPGツクール2000でランダム生成の迷路作ろうと思ってググったらこのスレがヒットした。
>>108の壁伸ばし法でやってみよう。
微妙にスレ違いすまん
>>610 微妙にスレ違いながらツクール2000の迷路自動生成は
かなり簡単に成功した記憶がある。
残念なことに使い道がなかったが・・・
(ローグ系つくりたくてここをかなり参考にしたもんだ)。
>>611 マジですか!
そんな簡単にできるもんなのか…
ミニゲームっぽいカンジで手軽に遊べるようなのを作ってみようかなと。
とりあえず床にイベント敷き詰めて
それを変化させてくって方法でやってるんだけど
なかなか時間がかかりますなあ。
SUGEEE
>>631 すげーーーーーーーー!
リアルだ。
AOMとかRONとかみたいだ・・・
これ見て「すげー」って言えばいいの?
なんとも建設的なスレですね
>>617 お気に触ったなら申し訳ありません。
以後、書き込みは慎みます。
すげーというより面白そうだよね
いや、こういうのいいよ。なんか脳がかき回されて、いいアイデアの元になりそう。
どうやってんのよヽ(`Д´)ノ
624 :
テキトーレス:2006/03/10(金) 03:56:38 ID:yzA2lvvu
もうちょっと厚みつけて地層とかあると萌え
高低差のあるマップを作りたいなら海と平地と山は同じ「陸」として処理して、
高度によって後から属性を付けたほうが簡単だと思う。
もし淋しい孤島や不毛な山頂のマップになるのを避けたい場合には、マップ全体の
高度を調整して海の割合を一定にしてやればいい。
627 :
名前は開発中のものです。:2006/03/10(金) 08:22:01 ID:Db2zOCzU
フラクタルノイズでメッシュを変形して高度で色をつけてるだけじゃん。
めずらしくもなんともない。だいいち擦れ違い。
やれやれ嫉妬か
しょうがない奴だな
地形じゃないよダンジョンの方だよヽ(`Д´)ノ
>>108 まんまじゃねーの?
別に普通だと思うけど。
前からあるどうこうじゃなくて、実物としてきちんと形にできるのが凄いんだよな。
627もなんか作って完成させてみれば?
>>631 口だけ君には無理だよ。
可哀想だから言ってやるなってw
上で画像を貼ったものです。どうも荒らしたみたいになってすいません。
立体化とパラメタ設定をはずした迷路確認ウィンドウを置いておきました。
階層・サイズ固定で、通路の曲がりやすさのパラメタのみランダムで設定されます。
本来はマップデータを書き出すのですが、はずしてあります。
「a」で再生成「b」で終了します。
ローグタイプにはなっていませんが、ご笑覧ください。
ttp://gamdev.org/up/img/4920.zip
>>634 お〜これはスゴイ!
Aボタンを連打するとドラッグムービーみたいだw
636 :
名前は開発中のものです。:2006/03/23(木) 16:04:14 ID:dZa6l8rf
ランダムな場所に点を打って、色を周囲に増殖させていくと、国取りゲームっぽい
マップができるよ!
それはオートマトととかいう
Oh!トマト
>636
ほぼ>568だな
今日は3月32日です。
Fracasで使ってるアルゴリズムが知りたい。
Fracasってなに?和訳したら喧嘩って意味しか出てこないし
バイナリを配布して何か意味あるんかね
おれはこんなにすごいんだぞー
…とか言ったりして……ハハ
やれやれ。
僕はようやくスレをageた。
649 :
名前は開発中のものです。:2006/05/05(金) 12:08:59 ID:yx9WHGs4
上がってないですよ。
650 :
名前は開発中のものです。:2006/05/06(土) 15:47:40 ID:YMpzA3SP
俺もageてみる。
つってもここで話すネタはもうないんかな?
過去ログでソース解読に励んでるあたりがgjだね。
651 :
名前は開発中のものです。:2006/05/07(日) 17:40:00 ID:6Ysj0NI/
初出から十数年経っていて、すでに評価が確定している
ソースを読むだけじゃ寂しいじゃないか!
おまえらなりに新しいダンジョンを作ってみろよ!
あの、希望を言えば、一つの階層の中で高度差が
できるやつが欲しいです。ほら2Dゼルダみたいの。
そしてソースをupしてください。詳細なコメント付きで。
それは一方通行があるランダムダンジョン作成についての考察と考えてよろしいか?
2Dゼルダだけはいまだによくわからん。
655 :
名前は開発中のものです。:2006/05/07(日) 23:03:38 ID:QsQJNO1j
あ、反応があった。651です。
ドルアーガみたいなのなら(ポリゴンだし)どうにかなると
思うです。でも、SFCゼルダや、そのフォロアーで多用された
見下ろし画面で同階層として表示されているなかに、広間と
それを取り巻く通路があって、それが階段で連結されている
ようなダンジョンって面白そうでしょ。
一層のローグライクダンジョンならソースが公開されてるし、
できてあたりまえ。こんなのを誰か作ってください。きっと
ヒーローになれますよ。
迷路2つつ作って同じ座標を階段(坂)として繋ぐことでとりあえずできそう。
きっとできるんだよ。
自分なりの考えでダンジョン自動生成もできた。
階層のあるやつだってできるさ。
でもさ。
問題はそこからゲームにまで持っていけないことなんだ。
orz
ダンジョン自動生成アルゴリズムで女の子との人間関係を構築するんだよ
で、女の子とは繋がっていないのが生成されると
>>655 言ってる意味が分からん。
うしろの方の「ヒーローになれますよ」発言とか
の人を小ばかにした発言も良くない。
はっきりとやって欲しいことをいえ。
楽したいならなおさらだろ。
だいいち、2Dゼルダってファミコン版からして沢山あるし。
なにを指しているのか、参考URLぐらい付けろよ。
誰か作ってやらせろってことだろ。
興味はあるが、態度が気に食わない。
>>655自身「ヒーローになれますよ。」の一言で何でもやっちゃうんだろw
言葉尻とか態度はどうでもいいんだけど、
>>655の意味が理解できんので、誰か解説してくれ。
ヒーローになれますよ。ってことじゃね?
たてまえ:
SFC のゼルダみたいな複雑なダンジョンを作ったなら
それはそれは皆から賞賛されるでしょうね。ですから誰か作ってみませんか?
ほんね:
パクるから誰か作れや。
言うのは楽だな
楽しそうですね。651です。
しばらく見ないあいだにレス一杯で感激です。
たしかに、あれだけの文章では一寸わかりにく
いところもありましたね。皆さん、本当に私が
悪うございました。
いろいろと言われていますが、せっかくお互い
の技術や知識を共有できる掲示板なのですから
かたいこと言わず、一緒に考えましょうよ。
ね!
別に何言ってもいいけど
それに乗るお人よしはいない
まfdsじゃfjdさ
だえふぁおfじぇいさ
、、・:、;¥。「
651ー^¥−^¥−^
生寒湖村無知戸戸画
きれいじえ
てさdfhjgkds;あ
たえrとぇろp
のいうytrtqれq
?」「::@;
おfdさおいhぎそあ
まmgklさkfgd
え臭いよ。
PSPで出たCODED ARMSの自動生成はどうだったのよ。
↑
縦方向に4,5階層ある感じ。部屋も複数階層になっていて、
エレベータとスロープで行き来ができる。
通路の途中にもエレベータがあって、別階層と繋がっている。
部屋の中には柱や、テーブル状の障害物がある。表示カットは
やってると思うんだけど、天井の高さも含めて見通しはいい。
見栄えは、単調なテクスチャだけど、相当にいい。
さすがに売り物だけあって、よくできてたよ。そのダンジョンを
銃撃しながら移動するAIというのも地味によくやってると思う。
だってランダム生成された地形で、しかも上下の概念があるん
だからねえ。移動用のフラグとかどうしてるのかしら。
デザインを変えて、RPG要素を強調すれば、国内でも売れたと
思うんだけどね。ファンタジーを強調して、ハック&スラッシュなら
海外でもいけるでしょ。中途半端な和製ハードコアよりも。
次回作は自動生成ダンジョンをやめるらしいので、まあ色々と
懲りたんでしょう。
先にBOTのルートを作ってからマップを生成してるに違いない!
やったこと無いけど
マジレスしますけども、平面構造ではないですし、いわゆるBOT用のルート生成・組み込みは難しいのではないでしょうか。
むしろ単純な構造フラグを埋めておいて、AIは、近傍のそれを捜して行動を決定するだけの古風なものではないでしょうか。
実際、地形が固定(ですよね?)のボス以外の敵は、最近のFPSにしては、非常にシンプルな動作をしているように見えます。
別に文句はありません。携帯機のゲームとしては、十分に面白かったです。安いし。
676 :
名前は開発中のものです。:2006/06/10(土) 02:39:51 ID:3YcOLxAm
ホシュ
677 :
名前は開発中のものです。:2006/06/20(火) 20:36:30 ID:L0z1lFVn
>>677 ケータイからだと文字化けで嫁ん(p_q)
でもなんか良さそうなヨカンガスル!!
二回だけ折れ曲がる理由がよく判ったよ
通路を別アルゴリズム体操でやれば………あるいは……
Diabloのアルゴリズム教えて
自分で考えるのが面白いんじゃん?
再発明してもしゃーないやん
考えるんなら新しい方が好き
ダンジョン自動生成の再開発は、公式をもう一度作るのに似てるな。
まあ、過程を知ってれば、改造も楽なんだけども。
既にある奴を作ってから、それに手を加えるのが一番楽だ。
diablo、迷路よりは、クリックで障害物をよけてすいすい歩くほうが知りたい。
>>688 A*かなんかで、経路探索だろうな・・・
海外だとRTSがはやってるから、彼らは、得意っぽい
経路探索はA*だね。
目的地からセル毎に加算した移動コストと探索元を記録していって、比較的
コストが低いセルの周囲を優先的に探索。既知のコストよりコストが低い経路が
あったら移動コストと探索元を上書き。より高いコストのセルに囲まれて
行き止まりになってたら非効率的な経路なので、探索対象から外す。
目的地セルに辿り着いたら、目的地セルから探索元セルを辿って現在地セルまでの経路をGET。
あとはこの経路を逆に使って現在地から目的地に動かすだけさ!
馬車作りたいんなら車輪の再発明は不要だわな
勉強も兼ねるんなら、(時間との兼ね合いの範囲で)どんどん再発明していい
再発明は不要だが組み立て実習は必要だよな
ユニットを動かすタイプのゲーム作る時には移動力とか障害物とか考慮して
「移動可能な領域」を表示しないといけないし、A*モドキの応用範囲は案外広い。
自分用のライブラリ作っておくのは悪くないと思う。
お初。やっぱあんだね、こういうスレ
最近自動生成に手出してんだけども。
ダンジョン生成結果的にどうでしょう?
領域端へ突進しやすいとか、通路から小さいわき道が出たり
個人的には小奇麗な部屋と単調な通路より雰囲気出てると思う
※現状、領域でかく(200x200ぐらい)でやるとなんかどっかループしてメモリリークする
http://gamdev.org/up/img/6484.zip VBソース+exe +(64x64)の連続100生成白黒bmp(番号-生成時間(秒).bmp)
696 :
名前は開発中のものです。:2006/07/10(月) 22:14:09 ID:4OPPyJI3
基本構成は、範囲内にランダムで座標取得、そこからまた適当に四角部屋作成
部屋の領域重複は無視、多重してごつごつが狙い
順番に部屋の元座標から地続き先を検索、
未接続が残っていれば、部屋の外側から壁を掘削
(基本は棒倒しで→未接続へ繋がる or 行き止まり or 曲がりすぎ まで)
終わらなければ次の元座標から >ループ
全部繋がったら終わり age
>>695 そのくらいの大きさで漏れることからしても、たぶんどっかコードがまちがってるんだと思って、
開いてみたが、VBはさっぱり分からん。
たしかに雰囲気は出てるが、みょうなわき道が多かったり、部屋と部屋が重なりすぎてたりで、
もうちょっと調整が欲しい気がする。
今、VBのExpress落としてコードレビューしてみるから今週末までにもう一度コメントしに着ます。
しばしお待ちを。
>>696 だめだ。VB.net2005 expressだとビルドできなかった。
ちょっといろいろしらべてくるぉ
どもです。
やっぱり接続先の部屋を先に決めて一発で引くロジックも組んでおきますか
部屋も1つずつ作らせればまあなんとかいくかな
無駄な生成時間もとってるし急がば回れのほうが速いっぽい
今日も暇なわけだし、クラスライブラリ充実目指してイジってみます
>>695 マップ作成中に小マップをクリックすると、マップ作成終了しなくなっちゃうね。
なんか関連あったらと思って報告まで。
あとオレの環境だと日本語の表記がおかしいみたい。
ホシュ ⊂(^ω^)⊃
702 :
名前は開発中のものです。:2006/08/26(土) 18:53:59 ID:bVvXK9ab
保守できてなす
保守はsageでもおk
704 :
名前は開発中のものです。:2006/08/27(日) 11:36:41 ID:HAksO/p0
そうなんだ。知らなかった世
705 :
名前は開発中のものです。:2006/08/27(日) 22:32:08 ID:HAksO/p0
706 :
名前は開発中のものです。:2006/08/27(日) 22:35:45 ID:HAksO/p0
■追記
部屋数の数きっちりできるわけではありません。
だいぶテキトウにつくりました。
右寄りになるのはバグかもしれません
707 :
名前は開発中のものです。:2006/08/27(日) 22:37:18 ID:HAksO/p0
バグっていうか設計ミスか・・・。
初のレス4連投してしまったぜ
DungeonCrawlはいろんなダンジョンが生成されるので一度やってみたがいいと思う。
掘ると部屋の組み合わせは基本的に出ないけどね。
よく言われる事だけど乱数は下の桁は当てにならない。
mod(余り)で取るのは厳禁。
違ってたらごめん。
乱数。メルセンヌ・ツイスターならそういう心配もないけど、
それ以外の比較的シンプルな方法で生成してる擬似乱数の場合、桁には注意したほうがいいね。
MTも初期の値はあまり良くないとか。
>>705 確証はないけど部屋から通路を伸ばす処理でプラス方向に演算してない?
乱数の値がそれっぽいように見えて、そこから演算させた時にX座標?がプラスになるパターンが多いから
右寄りになるんじゃないかな?適当なこと言ってるから気にせんでくださいな。
それでもなかなか面白い形のダンジョンを生成するね。見てて楽しい。
712 :
名前は開発中のものです。:2006/08/31(木) 20:52:26 ID:ZWaZHQ/c
ダンジョンフェチの集まるスレはここですか?
そうですここです
714 :
傷縫い ◆qEBmxzrjcA :2006/09/02(土) 23:23:30 ID:/hVA3+pA
現在、RogueLikeなGame作ってます。
プロジェクトページ
http://kizunui.blog.shinobi.jp/ プロジェクトページにてVer0.01を配布しています。
(右のDownloadからDownloadしてください)
まだ、マップ表示とマップ移動しかできませんが
操作感や色合いを確かめてみて
気づいた事があればコメント下さい。
スレ立てようか迷ったけど
とりあえずはここでダンジョンを評価してもらってからにします。
行き止まりが多すぎる。道の作り方が粗雑な感じがした。
部屋道
部屋道
部屋道道道
それに上のような作りが出てくるのはやっぱり気になるよ。
あと、通路を掘れるんなら初期配置は道が少なめでもいいんじゃない?
716 :
名前は開発中のものです。:2006/09/03(日) 14:31:23 ID:WieawH+u
たしかに行き止まりは多いですね。
通路を掘れるというか爆発系の範囲魔法を唱えたとき
範囲内に壁があれば壊すことができるっていう感じにしたいんです。
壁:■ プレイヤー:@ 魔法:● 壊れた壁:□
この状態で左に魔法を打つと
■■■■
■■■■
■■■ ←●@
■■■
■■■■
↓
■■■■
■□□□
■□□ @
■□□
■■■■
起爆位置を真ん中に3*3の範囲で壊れる。こんな感じです。
あんまり頻繁に使わせるのも面倒なだけなので
繋がってない部屋へ行く時と行き止まりばっかで
イラっときた時だけ使用するようにしたいです。
ただ、これはあくまで構想なだけで、視界制度を導入したり色々した時に
あまりにもアレな場合はダンジョン生成のアルゴリズムを1から作り直すつもりです。
貴重な意見ありがとうございます!
視界制は考えたな。
Crawlっぽいのだけど。
searchで全方向見たりとか。
718 :
傷縫い ◆qEBmxzrjcA :2006/09/04(月) 21:09:58 ID:EIo/YxYZ
Dungeon Crawlはやったことないのですが
たぶんDungeon Crawlの視界制度とMagicRogueの視界制度とは
ちょっと違う気がします・・・。
視界制度を仮導入したVer0.02をupしましたので
よろしければ確かめてみてください。
プロジェクトページ
http://kizunui.blog.shinobi.jp/
719 :
717:2006/09/05(火) 01:52:24 ID:Ze7pgSVg
ゴメン、向きってのがあったから向いた方しか見えないんだと思ってた。
Crawlにはそんなものは無い。
やってみると分かるけどv0.02はCrawlっぽい。
>>719 そうなんですか。
後でCrawlやってみようかな。。
あとおでかけダンジョンもちょっとやってみるといいかも。
>>721 やってみました。
初め、なんだこの操作のしにくさは!って思ってやってたんだけど
徐々に慣れ始めたころからシステムも理解するようになって
アイテム収集にはまってしまった。
アイテムコレクション機能はMagicRogueにも追加しよう・・・w
今ちょっとblog読んだけど
PCが魔法使いで一体多がメインってのはAngband系列がかなり当てはまってるとおも。
魔法使い以外のクラスもたくさんあるけど、基本的に一体多。
最終的にはまあ一対一に状況を持ち込まないとどうしようもなくなってはくるけど。
>>723 そうなんですか!実は自分、RogueLikeGameはあんまりやったことないんですw
でも、トルネコ、シレンには異様にはまってしまいましてこんなゲームを作ってる次第です。
RogueLikeにハマらなかった理由は「コマンドの多さ」ですね。
覚えられません。。。
MagicRogueは誰にでもわかりやすいように設計しようと思います。
あ、あと、Ver0.05公開しました。よかったら見てやってください。
二つのスレに告知するのはあんまりいいことじゃないと思うので、次から告知は
■自主製作ゲーム:開発状況報告スレVer0.7■
http://pc8.2ch.net/test/read.cgi/gamedev/1153179462/ こっちにだけにしようと思います。よろしくお願いします。
だんじょんほるほる
そういう形のタイル用意してあとは普通に生成してタイルに置き換えるだけじゃねーの?
普通に生成ってのは
>>677のやり方ですか?
どういうタイルを用意してどう置き換えたらいいんでしょうか
■■■■■■■
■■■■□■■
■■□■□□■
■□□□□■■
■■□■□□■
■■■■■■■
こういう感じでマップを用意すると考えれば単なる二次元配列の操作か
あとは交差点や行き止まりの絵を矛盾がないよう配置する処理ぐらい?
運送種
732 :
名前は開発中のものです。:2006/09/16(土) 12:13:54 ID:/4UHW4Bs
最初真っ暗にしておいて
探索したところだけ見えるようにするってのは
どうやるんだぜ?
>>732 それは、ダンジョン自動生成とは関係が・・・・
まぁ、簡単に言うと、MapDataを2つ容易しといて、
探索したところだけ完全なMapDataからSearchedMapにうつして、
表画のときは、SearchedMapを元に画像を構成すればいいだけ。
それとも、DQ1みたいな単純な視界範囲のみの表画の事をいってる?
「探索したところ」という配列変数を用意するだけでいい
「視界に入ったところだけを表示するには?」って事じゃないかな。
そして質問者の真意を差し置いて話が膨らんでいく、と。
ローグのダンジョン表示みたいなことを言ってるんじゃないか?
チョコボなら分かる
RTSで、探索したところだけ、グラフィックが更新されないで、それっぽく表示されるのは、
>>733の感じなんだろうか。
>探索したところだけ、グラフィックが更新されないで、
意味不明だw orz
一度探索したところが、グラフィックが更新されないで、
742 :
名前は開発中のものです。:2006/09/23(土) 21:25:04 ID:Jd6P5hXr
勝手にエスパー。
AoEとかで、探索した後のエリアでも自軍のユニットが近くにいないと、
更新されないで最後に見た状態のままってことだよな?
RTS開発で探索って言えばふつう経路探索の話だと思うわな
モンスターを良い男にして襲えるようにしたらどうだろうかアーッ
ガッろ〜だ〜
虐められますw
俺の前でHSPの名を出すな
じゃあ、もう後だからHSPって言っていいよね
あいだを取ってざばにいそくゆー
日本語でおk
755 :
名前は開発中のものです。:2006/10/29(日) 17:01:43 ID:MANCISgQ
独自にマップの自動生成やってるけど、バグの除去に時間がかかるかかる…
生成の時点でエラー落ちなんて致命的すぎる…
エラー落ちって、配列の参照とか?
参照するところを関数にして、きっちり範囲チェックすればいいじゃん。
毎フレームやるわけじゃ無し、多少重くても関係無いよ。
758 :
756:2006/10/31(火) 18:25:43 ID:pchkiGL1
HSPだからと言って、引け目を感じる必要は無い。
HSPに○○あれば…とか言いつつHSP使いつづけるのなら、
思いっきり引け目を感じたほうが良いと思うがw
ちょっとやってみたけど、いまんとこエラー落ちはないよ〜。
みたいね
>>761 面白いゲームだけど最後に大国が2つ残って膠着状態になるといつまで経っても終わらなくなるな
>>764 ルールがわかってれば、すんなり決着つける方法が分かると思うが・・・。
奥に溜まってる強いやつをムニャムニャ…
わからん・・・
結局は強国とのぶつかり合いで、フルになる回復量を上回らない被害に収めてはみるけど
フル同士で運任せになるだけだ。
大国が2つ残ってって片方自国だよね?
なら、攻撃させて回復してない場所を攻めていけばいいよ
2国になってある程度の面積があれば勝つのが当たり前だから
序〜中盤辺りが面白いな
そろそろスレチガイな・・・・
で、考えたんだがこのDiceWarみたいに
あるていどの大きさをもった物同士を拡張していけば、
上手い具合に入り組んだダンジョンができそう。
四角っぽいダンジョンじゃなくて、自然洞窟っぽい感じの。
AIを作って勝負させるとかしたら楽しそう
そして誰もいなくなった・・・
585 名前:RRL(100%) 進可 ◆Sinka1my5k 投稿日:2006/11/22(水) 17:17:32 g3udw0q3
ttp://gamdev.org/up/img/8164.lzh ドラクエ風自動マップ生成ソフト。一応これで完成。
でも、ツール作ってみたものの、これで何をしようとかは
まるで考えてなかったりする。
ソースジョバンニ
ほす
779 :
名前は開発中のものです。:2007/02/18(日) 17:43:34 ID:S3xtBvTQ
ホシュ ⊂(^ω^)⊃
ついでにage
780 :
名前は開発中のものです。:2007/02/19(月) 12:30:04 ID:N5sPNDQg
上のと似たような感じで国取り系のマップも作れるな。
小さすぎる国ができないようにしたり、海の割合を決めたり、山脈を置いたり、納得いくように都市を配置したり、そのへんの裁量が問題だけど。
━━━━━━┳━┳━━━━━━━━━━┓
┏━┓┏━┓┗━┃┏┓━━━━━━━┓┃
┃┃┃┗━┃━━┛┗┃━┳━━━━━┫┃
┃┃┗━━┻━━━━┛┃┃┃┏━━━┫┃
┃┗━━━━━━┳━━┫┃┃┃┏━━┃┃
┣━━━━┳━━┫━━┫┃┃┃┃┏━┫┃
┃━━┳┓┃┃━┻━━┃┃┃┗┛┃┃┃┃
┃━┓┃┗━┻┓┏━━┗┫┗━━┛┗━┫
┣━┛━━━┓┣┻━━┓┗━━━━━┓┃
┃━━━┓━┫┃ ┃┏━━┳━━┃┃
┃┏┓┃┗┓┃┗┳┓┏┫┃┏━┃┏━┫┃
┃┃┃┃┃┗╋┓┃┃┃┗┛┃┏┛┃┃┃┃
┃┏┛┗┻┓┃┃┃┗━━━┛┃┏┫┃┃┃
┣┻ ━┓┗┓┣━━┳━━┓┃┃┃┗━┫
┃┏┳━┻━┃┃━┓┃┏┓┗━┻━┓┃┃
┃┃┗┃━━┛┣━┃┃┃┗━━━┓┃┃┃
┃┗━┻━━━┛━┫┗━━━━━┛┃┗┫
┗━━━━━━━━┻━━━━━━━━━┛
↑こういうタイプの迷路を自動で生成するにはどうすればいいのでしょうか?
ベタなところでは棒倒し法とか
>>781どう調達したのかは知らないが俺が使ってるエディタはカーソルキーで罫線が引ける
スタートからゴールまでの一歩道を作ったあと
適当にハズレ道作ればいいじゃないの?
穴堀り法ですな。N88-BASIC時代は遅かった……
棒倒し法知った時に無意味に感動したなぁ
それにしても
>>781のメイロは以外に普通によくできてるな
メイロとしては秀作じゃね
真ん中の部屋はなんだろな
>>108に載ってたよ、いろいろと
でももう消えてるなぁ。
そこがスタートだろう
棒倒し法よりは穴掘り法の方が良いと思うよ。できる迷路を比べれば……、
WIzっぽく、いくつかフロアに小部屋あって、その周りに通路あるようなマップはどうやって作ればいいのでしょうか。
>>792 いくつか小部屋を作って、掘って繋げる・・・とか
794 :
名前は開発中のものです。:2007/02/20(火) 11:52:52 ID:0Sl1SEXM
上の方のJavaのがあるじゃまいか。
>>792 このスレの上のほうはもっぱらそういう感じの話題だった
ドルアーガの塔ってランダムだっけ??
ランダムだとしたら棒倒し法かな?
Java知らないけどはー、JavaのOOPってこんな感じなのか
> split_coord_y = (rand.nextInt()>>>(rect_ly+MINIMUM_RECT_SIZE))%(rect_hy-MINIMUM_RECT_SIZE);
これが怪しい気がするんだが
「>>>」って算術右シフト? で「%」は余り演算子?
たぶんほんとはこんな感じなんじゃね
split_coord_y = (rect_ly+MINIMUM_RECT_SIZE) + (rand.nextInt() % (rect_hy-rect_ly-2*MINIMUM_RECT_SIZE));
javaはわからんが、
if ((rand.nextInt()>
>>1)%2==0) { // 縦分割
は、何やってるん?
ゼロ補充して右シフトすると010010 => 00100
で、さらにその値を2で割ってあまりを0と比べる・・・・?
普通に、(rand.nextInt()%2==0じゃ駄目なのかい?
あと、split_coord_y = (rand.nextInt()>>>(rect_ly+MINIMUM_RECT_SIZE))%(rect_hy-MINIMUM_RECT_SIZE);
も何をやりたいのかわからない。
split_coord_yに乱数をかなりシフト演算させてどうしたいの?
さらに、それをまた不思議な計算値であまり出したり・・・・???
もしかして、もしかすると
C++のコードの
split_coord_y = g_random_int_range(rect_parent->ly + MINIMUM_RECT_SIZE, rect_parent->hy - MINIMUM_RECT_SIZE);
の意味を読み間違えてない?
>798
そのやり方を試してみましたが、特に変化がありませんでした。
799
乱数の出し方はよく分かってないです。
split_coord_y = (rand.nextInt()>>>(rect_ly+MINIMUM_RECT_SIZE))%(rect_hy-MINIMUM_RECT_SIZE);
のあたりが間違っているはずだけど、どこを直せばいいかわからない。
これは酷い
802 :
名前は開発中のものです。:2007/02/22(木) 11:23:08 ID:1gs9jShK
>>796 ドルアーガはなんかの本で語ってたな…
変数だか乱数だかでいじったら
0〜255までの256パターンができて
そのままフロアの迷路に対応させた
とだけはおぼえている
棒倒し法かは知らんが偶然の産物でできた
固定の迷路のパターンだった気が…?
803 :
797:2007/02/22(木) 12:01:24 ID:9EVqtHt1
804 :
797:2007/02/22(木) 18:08:00 ID:9EVqtHt1
806 :
805:2007/02/22(木) 21:13:00 ID:R+Q9SNr4
iアプリ用のJavaかぁ
開発環境エミュ設定すんのめんどいな。Win/Macでコンパイル通るようなテストケース作るのが可能だったら添付して欲シス
808 :
797:2007/02/23(金) 18:19:53 ID:gBBA2oho
>>807 iアプリしか作れないので無理ですorz
>>796 遠藤★が棒倒し法だと言ってたな、ドルアーガスレで。
フロアを種値にして、容量節約したと言ってた。
まあ、常識的に考えて60F分のデータ保持したらシャレにならんからな、あの当時じゃ。
>>809 でも宝箱の出し方は全部ロジックで保持してるんじゃなかったっけ
ロジック60階分と60階分のマップデータ(二次元配列かな?)、どっちが容量食うんだろねぇ
ん?doja導入ってそんなに面倒だったっけ?
あんま使ってないから覚えてないけど
>>811 ロジックつっても、棒倒し方だからねえ
あとは、ランダムシードが60個文化
60階ぶんって言ってるのは宝箱ロジックのことジャマイカ
ランダムシードは
>>809のいってるとおり階数そのものを流用したぽ
>>815 これって、本人光臨まつりの時のかな?
サンクス
本人降臨もなにも遠藤氏は年柄年中2ちゃんにキャップ付きで書き込んでるだろ
スマンな
年がら年中2ちゃんみてるわけじゃないんで
業界の人多いよな結構。
ドラクエのきむこう氏とか。
あきまんは最近来てんの?
>>821 出来て行く様子がリアルタイムで表示されるのが面白いな。
陸が多くなりすぎるので、変化回数が少ない方がいいかも。
自分が考えていたのに少し似ている。
適当に高い山脈を作って、それに肉付け(風化)させていく。
高い山脈が近くて肉付けが重なった場合、そこは高地になる。
>>821 自然な感じで川ができてるのはGJ!
1セルの水場が多すぎるのと、陸地が多くなりすぎるのがアレかな。
陸地は○割まで!と決めちゃうのがいいかも。
自主制作ゲームスレでローグライクなマップでのモンスターの移動が話題に。
自分としては厳密にしないで適当にやってもいいと思う。あとは
マップと同じ配列作ってモンスターが通るたびに+1。
通路の場合、通った方が少ないマスを優先させるのと。
多いほうを優先させるのを混ぜるという足跡システムか
同じく配列で、マスごとにプレイヤーの次移動先をマークしておき
モンスターはその軌跡を目印についていく。
という匂い追跡システムなんかどうだろう?
プレイヤーが通ったマスに匂いポイント(仮に10とする)を与えて、
一定時間(一歩ごととか)たつとポイントが減り、最後には匂いが消える。
モンスターは匂いの強い方へ惹かれていく、とか。
匂いが拡散しないと意味がないか。
1減る時に1/2確率でランダムに隣マスを+1したら?
妥当なスレはないのかな?
雑談スレかなあ
思考ルーチンを語ろう
830 :
名前は開発中のものです。:2007/03/09(金) 12:58:13 ID:Kj0g9OQW
(` 、 /´)
ヾ 、 -─- //
, ´ \
/ ⌒ ⌒ ゙i
l (●) o (●) ,l
ヽ トェェェイ /
\. `ー‐´ /
r ヽヽ::::::l` ー ´,1ー:::::ヽ、
{ V:::::::::∨yヽ/::::::::::/,1
|ノ''::"::::::::::ヽ/::::::::::: r" /
/:::::::::::::::::::::::::::::::::::::::::::`:y ゝ
{:::::::::::::::::::::::::::::::::::::::::::::::::} |
ゝ:::::::::::::::::::::::::::::::::::::::::::丿/
`|1::ー'::::::::::::、:::::__,.ィ' 」"
/::::::::::::::::::::::::::::::::/ /
,.ゝ:::::::::::::::::::::::::::::::/ ノ
/::::::::::::::::::::::::::::::::::ヽ/
/"''ー―-----―'''"ヽ、
/ / i! | | ヽ ヽ,
/ / | | ヽ ヽ、 ヽ.
/ i | ヽ ヽ ヽ、 ,ゝ
| | ヽ ヽ ヽ _,ゝ"
|__|__,.-|_,.-+─┴‐'",.入
| ____ | ヽ_,.-‐''" ヽ
831 :
名前は開発中のものです。:2007/03/13(火) 14:10:09 ID:Tpn/nP5n
語れよ。
ok
ランダムダンジョン作るのは難しいな
そうは思わないか諸君?
マップを1000個作る作業は意外と難しいのではないだろうか、と思った
>>834 難しいの意味次第ですね
単純労働っちゃ単純労働
うーむ、半ば素で返されたために振れるネタがない
自作アルゴリズム再研究してみる。なんか新しい生成パターンねえかな
それって意味あるのか?
ツクールに対応してるとかならいいんだけど。
ツク厨は帰れ
実用性無いよりはマシだろ?
大陸ジェネレータいいね。
グレースケールで出してくれたらそのままheightfieldつくれそうじゃん。
まぁ、、heightfieldならphotoshopで適当にぐりぐり塗ればいいだけなんだけどw
それっぽい地形になってくれるならジェネレータも悪くないね。
ツク厨でもかまわんと思うけど文句言うだけなら帰れ
文句文句文句
文句文句文句文句文句文句
文句文句文句 文 句文句文句文句
文句文句文句 句文句文句文文句文句文句文句文句文句
句文句文句文句
句文句文句文句
句文句文句文句
意味って何の話だ
ゲームに使えばいいじゃん
846 :
名前は開発中のものです。:2007/03/15(木) 03:48:28 ID:PMeVIICQ
> LightWave3D 3DStudioMax Softimage/XSI
それって意味あるのか?
ツクールに対応してるとかならいいんだけど。
アルゴリズムくらい想像できるんだから、ツクール対応ツールくらい自分で作れよ…
ああ、技術無くてそれができないからツクラーやってるんだっけ?
自分で作らないといけないツールに意味は無いらしいから
これはどう見ても釣りだろう
>>847 具体的って何?
画像吐いてくれるツールなら、画像のRGB値読んで君の都合のいいマップ情報に整形すればいいじゃん。
自分で作ったツールなら、そのデータをそのままゲーム上のマップに使えばいいじゃん。
そういう事じゃなく?
852 :
名前は開発中のものです。:2007/03/15(木) 18:27:32 ID:VzhOi8YW
むしろ、ゲームに使えなさそうなのを、使おうという姿勢がおれは好きだ
要するに実際役に立ったという人は一人としていないということですね。把握しました。
実学指向って素晴らしいよね。
剥きにならなくていいですよw
ここはゲーム制作「技術」板で、ツクラーかどうか以前に、技術的向上心の無い奴は板違い。
出来合いのツールしか使えないツクラー未満の奴は、ソフトウェア板でツールのクレクレでもしてれば?
ツクールはあくまで例に挙げただけなんだけどな。
どっちにしろ具体的な利用例をただの一つも示せないんですねwww
“技術的向上心” とやらを見せてくださいよ。
ただ色分けされただけの“地図らしきもの”見せて終わりじゃないっすよね? そっから先、考えてんですよね?
叩かれてる奴のうち、自分が叩かれてる理由について勘違いしてない奴ってのは
実は一人もいないんだ。まめちしきな
RTSの自動生成されるランダムマップのアルゴリズムどうなってんだろー とか考えたこと無いの?
寒っ
お前らは俺によって自動生成されたんだよ。
864 :
名前は開発中のものです。:2007/03/15(木) 22:39:23 ID:PMeVIICQ
なんだか、GameGemsProgramingとか見ても、
「いいから具体的なゲーム見せろよ」とかいいそうな勢いだなwwww
865 :
名前は開発中のものです。:2007/03/15(木) 23:51:27 ID:qutq4pqL
釣り宣言wwwwww
マジ哀れすぎwwwwwwwwwww
866 :
名前は開発中のものです。:2007/03/16(金) 00:02:12 ID:wlk+IDOq
x GameGemsPrograming
o GameProgramingGems
このスレ、ツクールアンチが酷いな。
酷いのは低能ツクラー演じた約一名じゃねーの
釣りとか言い出す直前まで、本気でツクラー糞オモタ
何事も鵜呑みにしちゃいかんねぇ、反省
:個人的には素材トータルで到底適わん思うツクール系製作物が存在するのは思い知ってますよ
:でもRoguelike傾倒なスレにはどうしてもコードが主役な側面があるですとよ。
:ゲ製全般に風呂敷広げて感情論やらかす気はありませんのでご了承下さいな。
久しぶりに伸びてると思ったら・・ツクールと関係ないスレでツクール云々言う馬鹿は、釣りに決まってるだろ('A`)
それが釣りに決まってないから困る
釣りとか言う方の馬鹿かな、って思っても、指摘すると開き直って荒らし始めたりするから尚更。
スレチなアフォが釣り宣言して立ち去るだけめっけもんかもしれませんぜ旦那
どうでもいいよ
ん?誰かれかまわず攻撃するキグニ族が来てたようだな。
平面だけならまだしも、階層が加わるとむずかしいなあ。。。
前も階層云々って話があったような。
自動生成されたダンジョンにイベント等の意味を持たせるのは無理がありそうだ。
部屋ごとの道順保持次第だね
一筆書きで通り抜けられるモデルを保持できれば
単純な鍵モデルを生成するのはなんとかなるよ。
そういう単純モデルから複雑化させるだけなら再帰処理で鍵往復路生成しまくれる
でも、やればやるほどゲームバランス保つのが難題になりますね
>>876 鍵モデルって、扉Bを開けるために鍵Bが必要で、鍵Bを取るために鍵Aが〜
というやつですか?
モンスターとの戦闘でダメージが蓄積していく(アイテムを使わないと
トータルでHPがマイナスになっていく)タイプのゲームだと仮定すると、
移動距離がイコール死亡率になると思います。
なので移動距離が一定の範囲に収まることが保証できれば難易度は
調整できそうな気がします。
そんな感じですね。
外れ分岐と鍵取得分岐、鍵付き扉の三つを生成するモデルで単純な穴堀り法を繰り返す形でも、
そこそこイベントへの意味付けが可能な迷路を生成できますし。
穴堀り法といっても、必ずしも画面全部を埋める必要はないし。
穴堀り法でできた迷路から、例えば偶数起点を部屋、奇数起点を部屋などと
判断してローグライクな埋め方をしていけば、かなり広い構造になってしまう
難点を除けばそれなりに形にできますよ。
ローグライクな埋め方自体は既に語られてるし、このスレの開発者諸氏なら
既にクラス化/関数化してると思うので割愛
バランス調整はむしろ敵の出現率側を操作した方がよさそうです。
俺の場合ローグライク系検討中なので、食料配置バランスで死んでます。
どうも偏りすぎて餓死する迷路か、均等過ぎてつまらない迷路のどちらかにorz
追記
再帰使う場合は、鍵/扉/生成時に再帰する(=先延ばしにする)と、良い感じに複雑化できてるような。
こちらではバグも多発してるので、動作物晒すまでにもうしばらくかかりそうですけど(ダンジョン生成以外の実装でも手間取ってるし)。
ちなみに外れ分岐時に再帰やらかすと、その先も外れ鍵/外れ扉となるのでプレイヤー怒らせそうな感じになります。ご参考までに。
外れ分岐はどこまで深くするかも気を使わないといかんね
適当に消費アイテム置いとくとかで多少は誤魔化せるけど
FF11でダンジョン自動生成きたっぽいね小規模のwだれか感想
>>881 どっかで記事だけ読んだけどFFやってないから見れないw
883 :
名前は開発中のものです。:2007/04/05(木) 02:02:49 ID:UIV+9920
AGE
いたストやカルドセプト系でのマップ自動生成はできるだろうか?
やろうと思えば大抵のゲームマップでできると思うけど・・・やり方聞いてるの?
>>884 必要なルールとかがしっかりしてないと作るの難しいと思う。
(じゃないと、編に偏ったパターンしか実現できなかったり、実際には使えないのが出てきたり)
いたストしか実際にやったこと無いので、カルドは度外視で考えるとして
簡単な例としては、循環系をつくって、それのX地点とY地点を結ぶ。
これだけで、日や田または、呂みたいな形のマップが作れる。
で、マップを作ってから、マス目のイベントとかを作っていけばいい。
ディアボロの冒険おもしれ〜な
>>887 あれは升目にわけておいて各升目に一個ずつ部屋を作る系っぽいな
890 :
888:2007/04/10(火) 23:00:20 ID:vOg756uR
通路の引き方が、穴掘り法の迷路を描かせるルーチンよりも難しい。
891 :
名前は開発中のものです。:2007/04/11(水) 00:36:14 ID:MAjw+1T8
>>888 ヒントだけ。
1:
今4*3で大枠の部屋を作ってるようだけど、
これを一つずつ使うのではなく、
2*2とかの部屋を置くように考えるとそれらしくなる。
2:
4*3の大枠のほうで迷路作ればよい
┌┐┌┬┐
│└┤└┐
└└┘─┘
こんな感じで
自由曲線っぽい通路はできないだろうか?
ちょっと斜めになってたり曲がったりしてるけど
上下左右キーでそれなりに道沿いに動くようなの。
>>892 方眼マップを描画するときにでも適当に改変すればいいんじゃね
かかかかかか壁ズリ・・・・ハァハァ
複雑な生成法を取り入れても
あんまり面白さに貢献しないような気がしないでもない
ダンジョン美学
最初マップが真っ暗で、自分で歩いたとこが明るく埋まっていくようなタイプだと、
多少マップデザイン悪くてもなんとかなるかもしれない。
どうして los をまともに計算してる家庭用ゲームがほとんどないのはなぜ
Line Of Sight の事だろ。
リアリティが出るので2Dの洋ゲーでは常識になってる。
ただゲームデザインに上手く含めるのは難しいし
プログラマも面倒なので日本ではほとんど採用されないな。
まあ日本の企画屋がアレなせいもあるけど。
目線? メタルギアソリッドとか忍道戒とかそういうの?
>>901 2Dの洋ゲー? Line Of Sight?
どういう状態だ? 無限の心臓みたいなシステムか?
洋ゲーでもあんま見ないが・・・
面白さに繋がるなら大歓迎だけどねー
シレンで完全にLoS使われたらちょっと萎える
面白さから考えたら、厳密であることよりも今の形のほうが良かったんだろうね。
日本のゲームは、明快さや快適さの方向へ進化したから、
この位置からここは見えないはず、っていうリアルさや、手探りの探索感覚は
プレイヤーのストレスのもととして捉えられたんだろう。
ドラクエの屋根や洞窟の段階的な視野変化は、折衷案として結構妥当な感じ。
909 :
名前は開発中のものです。:2007/04/14(土) 17:41:02 ID:C1mzRzhH
RTSとかDiablo系だとよく見返る手法ですな
910 :
名前は開発中のものです。:2007/04/14(土) 17:42:40 ID:C1mzRzhH
ごめん、それは、Line Of Sightじゃないな。
なんて言うんだろアレは。
目線じゃない視界。
メタルギアのミニマップ見たいなやつ?それとも上記?
壁の向こう側に俺がいるのを察知して魔法撃ってくんじゃねぇ!
テメーはエスパーか?
俺の姿が見えたら撃ってもいいッ!
みたいな?
>テメーはエスパーか?
いいえ、魔法使いです、みたいな。
誰がうまいことを
そういえば虹なら夢幻の心臓にも使われてたな
やっぱりそういう余計なリアリティはゲーマーのストレスになるって日本の作製者達が判断したんじゃないかな
ここらで復活させると知らない人には斬新にうつるかも
単にメンドクサイだけだと思う。
日本のメーカーはどこもあんまそういう方面にこだわらないし。
逆手に取って「壁や障害物を上手く使い、敵の視線をかいくぐって目的地までたどり着け!」という新感覚ゲームが
どうみてもスネークです。本当にありがとうございました。
ひもじ村のゲームにそんなのあったな
919 なんないな。
なんか、汚いダンジョン。ローグ系のダンジョンの方が遥かに出来がいい。
指向性がないから、適当だし、「で?」って感じの出来具合。
単純な穴掘り方のマップ系の強化版でももっといいのができるぞ。
そうでもない。
>>919 ダンジョンがだんだん生成されていく様子みるのっておもしろい
yahoo で「ダンジョン自動生成」で検索するとでてくるページ
cat.zero.ad.jp/~zau37982/wwa/doja/005.htm
925 :
名前は開発中のものです。:2007/05/05(土) 03:19:29 ID:WcHz0Tx6
>>924 3x3のグリッドに区切って、部屋を作り、道でつなぐ・・・
まさに不思議のダンジョン系の定番ですなあ
習作ですね
927 :
名前は開発中のものです。:2007/05/05(土) 09:29:31 ID:WcHz0Tx6
>>926 斜め引くとすげーよwwww
むしろ、部屋も斜めの方が自然に見えるかも(のか?
もしくは、部屋がでかい方がらしいかも
なるほど、たしかに
これではむしろ都市と街道からなる広域マップみたいだな
コメントもなにもないソースであれなんだけど、後学のために
誰かなぜIEだと見れないのか教えてくれるとうれしいです
そういえば、まだ都市地図の自動生成ってのは無かったな。
作るとしたら
重要拠点と人がよく集まるところを設定し、直線や曲線で繋げておいて
細かい路地を後で追加、というパターンか?
宿場町とか港町とか王都とか
そういう町の種類によっても違ってくるのでは
ランダムで作って何に利用するのかって問題があるからなぁ
932 :
名前は開発中のものです。:2007/05/05(土) 14:18:45 ID:WcHz0Tx6
>>932 画像次第って奴だな。
基本は
道作って、その両脇Xマスまでに建物を建てる。
道が重なってる付近は建物が出来やすくなる。
その時ある確率で、2×2のおおきさの建物出現。
か、
範囲をしていしてその中を街とする。
街に適当に直線を何本か引いてそれ以外のところに建物建てる。
道があったら、郊外でも多少の確率で建物を建てる。
辺りじゃね?
>>931 SLGやRTSならいくらでも使えそうだが
かなりの良スレとして育ったみたいっすね
識者の方にお願いなのですが、
次スレに行くにあたって、今までのものをGems(定石)としてまとめてくれないでしょうか
すげー村っぽくていいね
眺める分にはいいが、果たして使い道あるのか?
あるんじゃね?
このスレ的には、眺めてて楽しければそれでOKなのかも。
943 :
名前は開発中のものです。:2007/05/13(日) 05:56:02 ID:o7qNUyB+
946 :
名前は開発中のものです。:2007/05/13(日) 17:59:01 ID:o7qNUyB+
>>945 トンクス
メディーバルかあ。これまたマイナーなのを持ってきましたね
だんだんダンジョンと離れてきてる希ガス…使えるか?
道を通路に、建物を部屋に変換してみてもいいかもな。
次スレタイは是非
【迷宮】自動生成【地形】
にして欲しいです。
>>947 なるほど、確かに
これまじめにやったら、都市はどういう風にできるか
地形はどういう風にできるかっていう地理学の知識もいるし
環境工学とかの本も読まなきゃかもしれないし
もちろん情報学もだし
けっこうな卒業研究になりそうだな
むしろ、ジャンルにこだわらずに自動生成がいいな。
シナリオ自動生成とか、音楽自動生成とかも含めて。
シナリオ生成は攻略ルートという迷宮の自動生成だが
音楽生成は迷宮ではないので、なんか違うと思う。
音楽生成はDTM板とかそっちの分野じゃね?
955 :
名前は開発中のものです。:2007/05/17(木) 15:19:53 ID:yfvHDZ4Q
>>952 まあ、地形以外にも、自動生成の話題がでてそっちばっかりだったら、分離するとかあるだろうし、
とりあえず、次スレ
>>980 頼む
スレタイは、【迷宮】自動生成【地形】 でいいのかな?
テンプレいる?
958 :
名前は開発中のものです。:2007/05/18(金) 01:36:07 ID:Fxckut2p
このスレおもすれー
960 :
名前は開発中のものです。:2007/05/20(日) 20:51:52 ID:Uv50kywf
すごすぐる
>>961 どうしたぁ!!!!
大丈夫か?意識をしっかりもて。助けはくるから。
助けは絶対に来るから・・・・
Posted : 2007/05/28 03:33 No. 19 Re: Elonaのバランス改善スレ
--------------------------------------------------------------------------------
ver0.941にて追加されたエーテル風・病ですが、
これは正直な所バランス云々等を通り越して理不尽なだけのような気さえします。
第一に病回復用のアイテムが非常に高価(特に序盤では)かつ、入手困難である事。
次に、即時回避用のアイテムであるシェルターが重量・価格などの理由から(同じく特に序盤では)大きな足かせになる事。
そして、エーテル風の発生・経過が運頼みでしかないということです。
最悪の場合には数十個の食料(旅糧)を使い果たす程の期間、プレイヤーは何もすることが出来ません。
もしその際に長い期間保存の可能な食糧の備蓄が大量に無ければ、その時点でエーテル風に関係なく餓死確定となってしまいます。
また、その期間プレイヤーはただ時間を進める事しかできないのは単純に面白くありません。
追記するなら、風に関係なく(緩やかであっても)病状が進行していくというのもやりこみ的な要素の強い部分と上手くあっていないような気がします。
他にも、
新規追加された収穫依頼なのですが、時間制限が厳しい事と、敵雑魚の妨害が意外と面倒などという事もあって、運要素が非常に強くなってしまっているような気がします。
もう少し創意工夫でどうにかなるようになれば、と思いました。
ウザ系
そーゆー輩はどこにでもいる
967 :
名前は開発中のものです。:2007/06/07(木) 17:29:14 ID:YEWO8S0p
>>947 仮にそのL-systemや、L-systemを応用した論文をを自動生成に使用した場合、
使用許諾を得なければならないとかあるの?
特許でも取られてるんならあるんじゃない?
単なるアルゴリズムならそんなことないだろ
このスレは本当に財産といえるスレだったな
5年前にこのスレ立てた
>>1に感謝だ
いいね。
うちの環境では表示に時間はかからない。
でも部屋数一個とか左右で極端にバランスが悪い事があるんで、
そこらへんは必要に応じて調整するのかな…
973 :
名前は開発中のものです。:2007/06/13(水) 21:53:29 ID:Pny8Tusj
>>972 cgiだからサーバ側で生成だと思うんだが。
興味あってRogue風マップ生成とアイテム配置を書いたことがあったんだけど
その後このスレ見つけてから色々視野広がったしなぁ・・・みんなGJ。
んで、今は、”面白いマップ”を自動生成する方法を考えてる。
ダンジョン系のマップで、生成はRogue方式と事前に用意した部屋テーブルを混ぜた方法でやるんだけど、1階ごとに起承転結のあるメリハリのきいたマップが作りたいんだよね・・・
例えば、フロアの序盤で鍵みたいなのキーアイテムを拾って、奥の扉を開けるとか。
序盤で拾った武器が奥の敵に効くとか。
運任せなのもダンジョン系の魅力だけど、こういうプレイヤーの誘導みたいなのも自動化してみたい。
いんじゃね
シナリオや音楽みたいなアーティスティックwなものは含めないで欲しいなー。
もともと自動生成できる性質のものじゃない。
コンピュータにゼロから絵を描かせられると思うやつはいないのに、
文章や音楽だと、可能じゃね?と考える理系研究者やプログラマが出てくるんだよな。
やっぱ情報量が少ない分なめられてるんだろうか、と全部やってる俺の所感。
ん?全部やってるって全部でプロ?
それとも全部やってるつもりでオナニー作品作ってるだけの素人?w
980 :
天麩羅1:2007/06/19(火) 11:32:05 ID:yCKYjbUU
981 :
天麩羅2:2007/06/19(火) 11:33:10 ID:yCKYjbUU
982 :
天麩羅3:2007/06/19(火) 11:34:57 ID:yCKYjbUU
そういや Dwarf Fortress の話は出てないのかな?
世界の地図から街洞窟人物神話まで自動で生成する
もはや意味のわからないレベルの roguelike みたいだけど。
ソース公開してないし遊ぶだけの話なら製作板には関係ないんじゃね。
痴漢大学は黙っててくださいね♪
立ててくる
>>978 おいらは、コンピュータにも絵を描かせられると思ってるんだけどなぁ。
もちろん、この場合、ゼロからってのが曲者で、
生まれながらに盲目の人に、美しい色彩の絵を・風景画を描けってのは酷く困難が予想されるように、
まったくの情報なしからはムリだとは思う。
まぁ、スレ違な話っぽいので、意見の表明程度で終らせてもらう。
>>978 音楽の自動作曲ってのは非常にメジャーなジャンルなんですけど。
どんだけの歴史とソフト数が有るのかを調べてみてはどうですか?
ショボイ奴だけみて判断下すのはどうかとおもいます。
Jazzとか法則性(コード進行)とかがはっきりしていたりするものは
人間が作曲したかどうかとかとはっきり区別することは難しいですよ?
音楽の自動作曲ならDTM板に専用スレあるのでそっちいってくれ
芸術作品というのは、それを鑑賞する人の素養に左右されると思います。
もしコンピューターに芸術作品をかかせたとしても、その作品を鑑賞して感動を覚えるにはコンピューター的な素養がないと無理なんじゃないでしょうか。
思いますとかの妄想を押しつけてくれなくていいよ。
>>978 とそれへのレスは全部どこかへ飛んでいってしまえ
そして994の家へと飛んで行く一連のレス…。
ついにこのスレも次スレに到達か・・・
約5年か〜
何か一つでも出来たかな…
998 :
名前は開発中のものです。:2007/06/20(水) 20:43:55 ID:45AKkze9
俺は作ったよ
1000 なら男女も児童生成
はじめての1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。