ロヌグラむクでの手続き型ダンゞョン䞖代

画像






手続き的に生成されたカヌドは、ロヌグラむクの基本的な機胜です。 「ランダム性」の抂念ずほが同矩のおよび正圓な理由でゞャンルでは、ランダム化されたカヌドが重芁な芁玠を瀺す最も簡単な方法になりたした。



泚-戊略ゲヌムを完了するためのヒントでは、䞀般的なバトルマップのキヌポむントが通垞説明され、それらで䜕をする必芁があるかが瀺されおいたす。指瀺された手順に埓っお、い぀でも勝぀こずができたす。 もちろん、プレむダヌはパズルを解こうずするこずを楜しむこずができたすが、ゲヌムがどれほど゚キサむティングであっおも、すべおの解決策を芋぀けた埌、興味は消えたす。



したがっお、ランダム化されたカヌドは、さたざたなタスクを蚭定するたびに無限の再生可胜性を提䟛したす。 さらに、プレむダヌの進歩は詊行錯誀ではなく、自分のスキルに䟝存するずいう事実によっお喜びが増したす。 それぞれの新しいカヌドのレむアりトは100䞍明であり、これも孊習プロセスに緊匵を䞎えたす。



もちろん、手続き型マップの利点は、メカニズムずコンテンツに倧きなばら぀きがない限り意味がありたせん-単調なハックアンドスラッシュはここでは適しおいたせん。 したがっお、時の詊緎に耐えたすべおのロヌグラむクゲヌムには深いゲヌムプレむがありたす。



この投皿は、Cogmindのマップ生成に関する私の仕事の結果です。



方法



マップを生成するには倚くの方法がありたす。 圓然、普遍的な゜リュヌションである方法はないため、ほずんどの開発者は遞択した方法を調敎したす

ゲヌムに合う方法。 もちろん、最初から独自の方法を開発するこずもできたすが、このトピックの孊習を開始するには、最も䞀般的なアプロヌチを怜蚎するこずをお勧めしたす。



このような情報はむンタヌネット䞊でいっぱいなので、実装の詳现には觊れたせん。 代わりに、説明のために各画像の゜ヌスぞのリンクを残したす。



Bsp朚



BSPツリヌを䜿甚しお、最も単玔で最も兞型的なロヌグラむクマップ-廊䞋で接続された長方圢の郚屋を䜜成できたす。









BSPツリヌの䟋1 ゜ヌス 









BSPツリヌの䟋2 ゜ヌス 



トンネリングアルゎリズム



トンネルアルゎリズムは、実際のダンゞョンの建築家のように、廊䞋や郚屋を堅固な「地面」に掘りたす。 アルゎリズムを䜿甚するず、倚くの堎合、無駄なパスや冗長なパスが生じるこずを陀きたす。









トンネルプロットの䟋 ゜ヌス 



高床にランダム化されたトンネリングアルゎリズムであるDrunkard's Walkは、開いた空間ず閉じた空間が混圚する掞窟のようなマップを䜜成するのに圹立ちたす。









酔っぱらいの散歩の䟋1 ゜ヌス 









酔っぱらいの散歩、2 ゜ヌス 



セルオヌトマトン



セルラヌマシンは 、自然に芋える掞窟システムを掘り出すのに最適です。 他の方法ずは異なり、この開発者では、マップを生成した埌、接続を個別に提䟛する必芁がありたす。䞀郚のアルゎリズムは分割された領域を䜜成する可胜性が高いためです。









セルオヌトマトンの䟋1 ゜ヌス 









セルオヌトマトンの䟋2 ゜ヌス 



䞊蚘のタむプのアルゎリズムからわかるように、蚘事ではダンゞョンの手順生成に぀いお説明したす。 ほずんどのロヌグラむクは地䞋で行われたすが、これは蚭蚈の芳点からは論理的です。 「ベヌグル」の非垞にランダムな性質は、ある時点でそしお非垞に頻繁にプレむダヌが完党に準備ができおおらず逃げなければならない盞手に䌚えるこずを意味したす。 ダンゞョンには、芖点の可芖領域ず䞍可芖領域を制埡するために䜿甚できる十分な量のネガティブスペヌスがあり、これらはすべお簡単に消化できる圢匏で衚瀺されたす。 長方圢の郚屋、廊䞋、掞窟の壁の圢で。 敵ずの䌚議を郚屋に分割するず、より激しいゲヌムプレむを䜜成し、小さなスペヌスに倚くのコンテンツを収めるこずができたす。 はい、逃げようずするず、ある敵ずの䌚談が別の敵ずの䌚談で終わる堎合がありたすが、経隓豊富なロヌグラむク愛奜家なら誰でも未知の䞖界に出くわさないようにアドバむスしおいたす



蚭蚈



生成方法たたはいく぀かの方法の組み合わせを遞択するこずに加えお、ゲヌムプレむに適したカヌドを䜜成するためのすべおのパラメヌタヌを蚭定および構成する必芁がありたす。 倚くの小さな郚屋たたはいく぀かの倧きな郚屋 長い廊䞋がたくさんあるのか、廊䞋がたったくないのか、郚屋がドアで぀ながっおいるだけですか プレむダヌが探玢するのを促進する広々ずした曲がりくねった掞窟システム、たたは倧気のためにこのように蚭蚈された線圢の掞窟がありたすか



マップレむアりトはトピックを反映するだけでなく、ゲヌムたたはその䞀郚を枡すプロセスに圱響したす。 倚くのロヌグラむクは、密集した戊闘の割合が高いため、かなり狭い郚屋ず狭い廊䞋を䜿甚したす。 Cogmindでは、戊闘はほずんどの堎合、離れた堎所で行われたす。そのため、通垞、ゲヌムでは広い廊䞋ず倧きな郚屋が䜿甚されたす。



探怜ず魅力



ゲヌムの仕組みを補完するマップを䜜成するこずに加えお、ある敵から別の敵ぞの可胜な移動ルヌトに泚意を払うこずも重芁です。 空の廊䞋ず郚屋は、プレむダヌが毎タヌン戊う必芁がないため、実際に圹立ちたす。 実際のプレヌダヌにはリラックスする機䌚を䞎える必芁があり、さらに重芁なこずは、すべおがうたくいかなかった堎合にそれを把握できるスペヌスを䞎えるこずです。 特に、Cogmindでは、このような远加スペヌスはステルスの䜿甚にも圹立ちたす。コンポヌネントず戊術を適切に䜿甚すれば、倚くの敵を回避できたす。



しかし、カヌドのパラメヌタヌを蚭定するずき、私が泚意を払う䞻な芁因は、ルヌプの数ず密床です。 ルヌプずは、耇数のパスが1぀のポむントに぀ながる堎所を意味したす。 ルヌプのない、たたはほずんどルヌプのないマップでは、プレむダヌはしばしば戻る必芁がありたすが、戻るのは面癜くありたせん  もちろん、プレむダヌは以前のパスに沿っおルヌトを遞択するこずもできたす。たずえば、オブゞェクトを拟ったり、敵を避けたりするこずはできたすが、同じルヌトを䜕床か匷制するこずはできたせん。 行き止たりで終わる長い道のりでは、少なくずも宝物を敷くか、新しい゚リアでドアを芋぀ける必芁がありたす。 Cogmindにはロヌグラむクの暙準によるかなり倧きなマップがあるため、意味のない方法には特に泚意する必芁がありたした。



たた、マップゞェネレヌタヌの開発ず構成は、ゲヌム自䜓では実行されないこずが倚いこずにも泚意しおください。 マップ党䜓を衚瀺しお、高レベルで孊習できたすが、マップが「芋栄えが良い」堎合、それをプレむするのが面癜いずいう意味ではありたせん。









掞窟システムのように芋えるマップの䟋を次に瀺したすが、正しいメカニズムがなければ、プレむするのはあたり面癜くありたせん。行き止たりで終わる長いパスが倚すぎたす。



生成段階埌にカヌドの接続をテストするこずは、カヌドを䜿甚するかどうかを決定するための重芁なステップですこれに぀いおは以䞋で詳しく説明したす。 より耇雑な手続き型メ゜ッドを䜿甚するず、生成プロセス自䜓にこの芁件を組み蟌むこずができたす。









ルヌプの総数 source を提䟛するグラフベヌスのマップ生成手法。



内容



別の課題は、マップ䞊のオブゞェクトの䜍眮を特定するこずです。 圌女の決定は、ゲヌム自䜓に倧きく䟝存しおいたす。 オブゞェクトのランダムな配眮は興味深いものになりたすこれは私が7DRLで行ったこずずたったく同じです。 倚くの堎合、この段階はダンゞョンのパラメヌタヌに䟝存したす。これに぀いおは、別のセクションで説明したす。



私のCogmindゲヌムでは、䞀郚が手䜜業で䜜成されたダンゞョン゚リアを䜿甚しおいるこずに蚀及する䟡倀がありたす。 このような空癜の領域は、既補のダンゞョン生成アルゎリズムに埋め蟌む必芁がありたす。 そのようなブランクを補造する前に、それらを䜜成および倉曎する問題がありたした。 このプロセスは、テキストファむルず組み合わせおREXPaintで実行する方が䟿利です。



空癜のマップフラグメントには倚くの利点があり、実際には、手動で䜜成されたレベルのすべおの利点がありたす。ゲヌムプロセスの特定の郚分に察する制埡の改善、およびその䞀意性はそれらに泚目を集め、より蚘憶/重芁にしたす。 さらに、それらはプレむダヌ同士が議論できる共通の基盀になりたす。 空癜を䜜成するこずにあたり熱心ではありたせん。手続き型マップのもう1぀の利点は、コンテンツの䜜成にかかる時間を節玄できるこずです。 ただし、プロットの芳点から重芁な堎所の倖芳ず内容をさらに制埡する必芁がある堎合がありたす。



コグマむンド



Cogmindマップは、トンネリングアルゎリズムずセルオヌトマトンの組み合わせを䜿甚したす。これに぀いおは、以䞋で説明したす。



パヌト2.マップ生成トンネリングアルゎリズム



䞻芁なCogmindダンゞョンのマップは、トンネリングによっお「掘り䞋げられ」たす。 廊䞋ず郚屋は、ダンゞョン建築家が䞻人の召䜿のために䜏居を建おるのずほが同じ方法で掘られたす。 空のマップは、マップ内を移動する1぀以䞊のトンネリングメカニズムによっお生成され、自由空間になるすべおの領域廊䞋、ドア、郚屋、ホヌルを衚瀺したす。



適切なパラメヌタを䜿甚するず、非垞に珟実的な環境を䜜成できるため、トンネリングアルゎリズムが奜きです。









ロボットの地䞋耇合斜蚭を芋よ



むンスピレヌションの源



最初に、むンスピレヌションの源に敬意を払う必芁がありたす。 以前は、トンネリングアルゎリズムには興味がありたせんでした。なぜなら、倧きなダンゞョンを生成するずき、通垞は退屈な繰り返しパタヌンを䜜成するからです。 しかし、数幎前、 このプロゞェクトに出䌚い、最も重芁な抂念を玹介したした-トンネリングメカニズムは、移動䞭に独自のパラメヌタヌを倉曎できたすこのサむトでは、このアむデアの抂芁を説明しおいたす。 その結果、特にCogmindが䜿甚する倧きなマップでは、より倚様なダンゞョンができたす。



具䜓的には、このアルゎリズムにはいく぀かの奇劙な点がありたす。なぜこれらすべおの無駄で冗長な廊䞋が必芁なのでしょうか なぜ圌は均等な幅の廊䞋を䜜成しないのですか*アルゎリズムの䜜成者が実際のゲヌムでそれを䜿甚しなかったため、圌の欠点の倚くは決しお明癜にならなかったず思いたす。









芋た目は玠晎らしいが、珟実的ではない。



*これは、コヌド内で察称トンネリングメカニズムを䜿甚する方が簡単であるずいう事実ず䜕らかの関係があるず思われたす。 ロゞックの芳点からトンネルを2ピクセルず぀狭くしたり広げたりする必芁があるため、任意の幅の廊䞋を操䜜するための独自のアルゎリズムを䜜成したしたが、偶数幅の廊䞋は埐々に幅が奇数の廊䞋になりたした。 









䞀定の幅䞊郚䞭倮点から開始で1぀のトンネリングメカニズムによっお時間の経過ずずもに掘られたダンゞョンは、奇数の幅青のコリドヌをさらに䜜成し始めたすが、最初は偶数の幅オレンゞのコリドヌが䜜成されたした。



幅の狭い廊䞋を䜿甚するこずに぀いお心配するこずはできたせん。なぜなら、あたりきれいに芋えない䞭心から倖れた接続を䜜成する可胜性が高いからです。 ゲヌムプレむの芳点からは幅が2セルの廊䞋が奜きです。狭いので、他のナニットの呚りを操䜜するのに十分なスペヌスを確保できるからです。 しかし、Cogmindのようなゲヌムの暙準ずしお、3セルの幅の廊䞋は、戊闘が通垞遠くに行われるため、より良い可胜性が高くなりたす。目的のシュヌティングラむンを遞択するのに十分なスペヌスが必芁です。



それはずもかく、長幎にわたっお同じ原理に基づいお独自のアルゎリズムを䜜成しおきたした。ダンゞョンを䜜成するトンネリングメカニズムは時間ずずもに進化しおパタヌンを倉化させるこずができたす。



パラメヌタ



トンネリングメカニズムの動䜜では、幅、方向、速床、回転の確率、郚屋を䜜成する確率、䜜成した郚屋のサむズず圢状、メカニズムずダンゞョンの他のオブゞェクトの間に残されたスペヌス、完了の瞬間など、倚くのパラメヌタヌを制埡できたす...









䟋プレむダヌが次の郚屋/廊䞋ぞの道を簡単に舗装したくない堎合は、廊䞋ず郚屋の間の境界線を拡倧するこずが望たしい堎合がありたす。 私の堎合、囜境を小さくしたした。なぜなら、状況をより動的にするためにあなたの利点に䜿甚するこずができない堎合、砎壊可胜な地圢は䜕のためですか しかし、泚意しおください-決意した敵はあなたを壁を突き通すこずさえできたす



カヌドの手続き型生成を知っおいる人なら誰でも、同じアルゎリズムでもパラメヌタを倉曎するず非垞に異なる結果が埗られるこずを知っおいたす。 埌で、このアルゎリズムず組み合わせおさらに動的にする他の関数を瀺したすが、実際には、ゲヌムの基瀎に必芁なすべおをすでに調べたした。



倧きさ



倚くのCogmindカヌドは7DRLよりも倧きくなり、より倚くのオヌプンスペヌスがありたす。 メむンダンゞョンはマップごずに100×100で、最倧のマップは最倧200×200です。 これは4倍です。









最倧の地図。 レむアりトずスタむルはただ完党には準備できおいたせんが、アルゎリズム自䜓は90完成しおいたす-歯を枛らすためにコヌドをクリヌンアップする必芁がありたす。



なぜ倧きなカヌドが必芁なのですか 第䞀に、コグマむンドは垞により倚くのスペヌスを必芁ずしたした。なぜなら、戊闘は䞻に長距離で戊われるためです-平均しお、敵はプレむダヌから15セル以䞊離れおいたす。 ゲヌムのコンテンツの倉曎に察応するために、マップはさらに倧きくなりたす。



䞖界はより倧きくなり、より倚くの堎所が衚瀺されるため、地域間の遷移がそれほど頻繁に発生しないようにメむンマップを配垃する必芁がありたす。 䞀郚のゲヌムスタむルでは、戊いが倧きくなるこずがありたす。 誰が知っおいる、倚分あなたは小さな戊争を開始するためにロボットの小さな軍隊を䜜成するこずにしたしたか プレむダヌはゲヌム内でより倚くのこずができるようになったため、これにはより倚くのスペヌスが必芁です。



さらに、ゲヌムは情報の収集に重点を眮いおいたす。 7DRLのゲヌムバヌゞョンにあったセンサヌの詳现に加えお、プレむダヌは端末を䜿甚しおマップを調べるこずができたす。 倧きなカヌドは、可胜な限りプレむダヌがこれらの情報源を䜿甚するように動機付けたす。 マップスキヌムず敵の動きに぀いお詳しく孊んだので、秘密のルヌトをたどるこずができたすが、マップはそれほど小さくないため、この知識はすぐに成功に぀ながりたす。



7DRLで空いおいるマップの倚くの領域がマシンで占有されるようになるため、より少ないマップスペヌスが無料になりたす。 マップ生成の珟圚の段階では、アルゎリズムはマップの連結性、その通過、およびオヌプン/クロヌズドスペヌスの比率のみに関心がありたす。 以䞋で怜蚎するオブゞェクトの堎所。



構成



䞊で述べたようにそしお画像に瀺されおいるように、新しいマップにはかなりの数の広い廊䞋ず空き地がありたす。



7DRLのバヌゞョンには、より倚くの隠された廊䞋ず堎所があったため、実際よりも隠すのが簡単であるように芋えたした-敵はあなたよりもダンゞョンをよく知っおいるので、簡単にあなたを芋぀けたり、あなたの呚りを回ったりするこずさえできたした



マップの開攟性は、敵ずの衝突に぀ながる可胜性があるため、プレむダヌは泚意を匕くこずに぀いおより倚く考えるようになりたす。



スキヌム



生成プロセス䞭、トンネリングメカニズムは、プレむダヌが入り口から出口ぞ移動するための道を開きたす。これは通垞数個であり、保蚌された距離で分離されおいたす。 トンネリングメカニズムの移動方法ずその決定の採甚は、マップの倖芳を決定する最も重芁な偎面です。



可胜な限り、ほずんどのメカニズムはmechanisms骚に沿っお郚屋を突砎しようずしたす。 これらは、パヌツを非衚瀺/埅機たたは怜玢できる堎所ずしお䜿甚されたす。 たた、それらは時々倧気のためだけに䜿甚されるマシンを含む堎合がありたす。 耇数のドアのある郚屋は通垞、亀差点のようなものであり、䞻芁な廊䞋からの分岐ぞのアクセスを可胜にしたす。



幅を倉曎たたは倉曎するず、トンネリングメカニズムによっお接続が䜜成されるこずがありたす。 これらは矎孊だけでなく、そのような接続には、オペレヌタのボットが近隣で発生する掻動を制埡できる端末がある堎合がありたす。









これらの接続は、䞻な廊䞋に沿っお配眮されおおり、ほずんどの堎合、タヌミナルぞのアクセスが含たれおいたす。









タヌミナルコリドヌを接続するずいう考え方は、ゲヌムの最初のレむアりトで䜿甚されたした。



トンネリングメカニズムは、ホヌルず呌ばれる倧きな領域にも寄䞎したす。 気付かれずに行きたい堎合は、そのようなホヌルを通過する前に、パトロヌルやスカりトの隣に移動するず芋぀かる可胜性が高いため、よく考えおください。









ホヌルには通垞、分割可胜な倧型車が含たれおおり、そこから障害物を䜜成しお背埌に隠すこずができたす。



投皿の次の郚分でトンネリングによっお生成されたマップに戻りたす。



パヌト3.カヌドの生成セルオヌトマトン



10レベルの「メむンダンゞョン」のみに拡匵された7DRLゲヌムずは異なり、Cogmindははるかに広い領域をカバヌしたす。 圓然、䞖界が倧きいほど、研究察象地域の倉動性は高くなりたす。 アクションは地䞋で行われるため、倚くの゚リアが掞窟であるこずが刀明したす。通垞、セルラヌオヌトマトンは䞖代に最適な遞択肢です。



しかし、実際には、セルオヌトマトンの暙準゜リュヌションは䜿甚したせん。 暙準的なプロセスはここ 、 ここ 、 ここに曞かれおいたす。詳しくは説明したせん。その代わりに、私が気に入ったAndy“ Evil Scientist” Stobirskyのアむデアを䜿甚したす。



悪科孊



この方法では、セルオヌトマトンも䜿甚されたす-近隣のルヌルを適甚しお自然な方法でセルを開閉したすが、マップ党䜓にルヌルを垞に適甚する代わりに、セルをランダムに同時に遞択したす。 私たちはロヌグラむクを行い、ランダムが倧奜きなので、ランダムを䜿甚したす



パフォヌマンスに関しおは、完党な最適化により、Andyメ゜ッドは暙準よりも高速ですが、同等の結果が埗られ、私の目的にははるかに柔軟です。 私はセルオヌトマトンを䜿った経隓はあたりありたせんが、それらを詊しおみお、良い結果を埗るためにそれらを調敎するこずはほずんどできたせんでした。 アンディの方法は簡単に良い結果を生み出したす。 もちろん、「良い」ずいうのは䞻芳的な芖点ですが、私が望んでいたこずは、バニラのセルオヌトマトンを䜿甚しお達成するこずはできたせんでした。 より倚くの可倉性が必芁でしたが、この方法の柔軟性により、倚くの矎しいマップを簡単に䜜成できたした。 セルオヌトマトンを䜿甚しお可倉性を実珟できるず確信しおいたす生成プロセス䞭のルヌルの倉曎によるが、管理したほど簡単ではありたせん。





















倚くのマップ䞊で、ルヌルの適甚のランダムな分垃が、同じマップ内でもシャヌプずラりンド、倧小の゚リアが混圚する圢で倉動性を生み出すこずが奜きです。



この方法を䜿甚しお倉曎でき、セルオヌトマトンを䜿甚するずきに通垞は䞍可胜な倉数の1぀は、ランダムにアクセスされたセルの数であり、そこから远加の可倉性が䜜成されたす。 適甚されるルヌルの数が枛るず、より粗いマップが䜜成されたすが、最埌のスムヌゞングフェヌズは䟝然ずしお適甚可胜であり、かなり興味深い結果が䜜成されたす。









぀ながり



セルオヌトマトンに基づくカヌドの手続き型生成のアルゎリズムの堎合ず同様に、重芁なタスクは接続性を確保するこずです。 マップの耇数の無関係な゚リア間を移動する方法がない堎合、これらの゚リアは完党に存圚しないように芋えたす。 解決策の1぀は、そのような遠い未接続領域を完党に削陀するこずですが、䞀郚の掞窟スタむルの堎合は適甚できたせん。圓然、郚屋の倧きなスポットの代わりに狭い廊䞋を持぀拡匵マップを䜜成するためのアルゎリズムを䜿甚するず、 倚くの矛盟が生じるためです。



したがっお、これらの領域を接続する新しい接続を䜜成するこずをお勧めしたす。 1぀のオプションは、䞀郚の領域を「成長」させお、他の領域ず再接続するこずです。 2番目は、それらの間のトンネルを砎るこずです。トンネルは、1必芁なスタむルずテヌマに察応し、2倚くの小さな掞窟から掞窟のシステムを䜜成し、個々に郚屋ず考えお、そこにオブゞェクトを配眮できるため、トンネルが奜きですこの利点は次のパヌトで明らかになりたす。ダンゞョンメトリック。



ここで、私の゜リュヌションは、Mr。Evil Scientistの゜リュヌションずは少し異なりたす䞻に、ゲヌムでのアプリケヌションの詳现を考慮し、より䞀般的なゞェネレヌタヌを䜜成するためです。私の解決策は、U字型の折り畳みのほずんどを排陀し、すべおの掞窟に適甚されない可胜性のあるいく぀かの段階の掘り回しを実行し、掞窟ずしお䜜成された回廊ず分岐回廊の比率を調敎したす。時々、䞎えられたパラメヌタヌず、接続されおいる掞窟の盞察的なサむズに基づいお、より広いトンネルを掘るこずに決めたす。









個々の掞窟を぀なぐトンネル。



制埡発電



Cogmindの掞窟マップは、前のセクションで瀺したメむンのダンゞョンマップほど倧きくはありたせんが、小さな正方圢の掞窟マップであっおも、少なくずも私が遞択した区画のスタむルでは、探玢するのは面癜くありたせん。䞊蚘のマップを䟋にずりたすこれは、これから䜿甚するスタむルの1぀です。









正方圢の掞窟マップのパス。



各デッドロックに重芁な宛先ポむントがないず仮定した堎合、䞊蚘のマップでは頻繁に戻る必芁があり、さらに倚くの掘られたトンネルでさえ、それをより耇雑な接続ネットワヌクに倉えるだけですより倚くのルヌプを䜜成したす。ただし、掞窟ず通垞のダンゞョンマップずの根本的な違いのため、マップを探玢するのはそれほど興味深いものではありたせん。マップの倧たかな゚ッゞには、重芁な通路を芋逃さないように慎重に調べる必芁のある隅がたくさんありたす。



平らな壁ず四角い郚屋がある普通のダンゞョンでは、目に芋える゚リア党䜓をすばやく芋お、通路がある堎所ずない堎所をかなり正確に刀断できたす。掞窟では、すべおを慎重にチェックするたで、重芁な䜕かを芋逃しおいないかどうかはわかりたせん。特にすぐに正しい方向に移動しなかった堎合は、退屈になりたす。



゜リュヌションは、「制埡された」セルオヌトマトンにありたす。生成は通垞の方法で行われたすが、たずえば以䞋に瀺す狭い廊䞋のように、掞窟が収たる䞀般的な圢匏を制限したす。









制埡されたセルオヌトマトンによっお䜜成された興味深い掞窟。



したがっお、長い枝を持぀鋭いスタむルを䜿甚できたすが、同時にすべおが1぀の䞀般的な方向に移動したす。



私の



このアルゎリズムの別のバリ゚ヌションを地雷に䜿甚できたす。通垞、これらは小さな地図であり、その䞊には、保管および加工機械甚に掘削された長方圢の領域ず、廊䞋で接続されたシャフト自䜓の領域がありたす。









鉱山にはさらにゞョむントずルヌプがありたす。



耇合カヌド



1぀のアルゎリズムでカヌド党䜓を管理する必芁があるず蚀ったのは誰ですか特殊な領域の特殊なケヌスでは、セルオヌトマトンをトンネリングアルゎリズムずうたく組み合わせるこずができたす。









秘密基地



パヌト4.ダンゞョンメトリックス



アルゎリズムが理想的に手続き的に生成されたマップを䜜成するこずはほずんどありたせん。これが発生しおも、そのスキヌムを分析するために埌凊理が必芁です。ゞェネレヌタヌによっお䜜成されたマップを芋るず、このスキヌムがニヌズに十分かどうかをすぐに把握できたす。たた、プレむダヌを止めるために敵が集たるボトルネックや、宝物が暪たわるメむンパスの倖偎の領域にも気付く可胜性がありたす。ただし、プログラムの堎合、マップは、この゚リアたたはその゚リアが䜕であるかを瀺す単なる座暙であり、䞀般的な構成やスキヌムに぀いおの手がかりを䞎えたせん。私たちず同じ方法でマップを理解しお䜿甚するようにゲヌムを教えるにはどうすればよいですか 「ダンゞョンメトリック」が必芁です。



必芁条件



最初の最も重芁なこずは、結果のカヌドが必芁であるこずを確認するこずです。結果を制限するこずなく、1぀のアルゎリズムでさたざたなカヌドのバリ゚ヌションを䜜成できたすが、その䞭には䞍適切なものやプレむできないものもありたす。そのような堎合、そのようなカヌドを砎棄し、再床生成を開始する必芁がありたす。



構成



基本的な最も単玔な芁件は、結果ずしお埗られる再生可胜な「オヌプン」スペヌスのボリュヌムです。䞋の境界線は、カヌドが圧瞮されすぎないこずを保蚌し、䞊の境界線は、カヌドを開きすぎないようにしたす。









これらの2぀の掞窟は、同じアルゎリズムによっお生成されたすが、1぀のパラメヌタヌのみが異なりたす。必芁なオヌプンスペヌスのボリュヌム15〜30以䞊、40〜60未満。



別の重芁な芁件は、異なるサむズの個々の郚屋/掞窟の数です。









これらの2぀のカヌドは同じアルゎリズムを䜿甚しお生成され、必芁な郚屋数だけが異なりたす20以䞊の小さな郚屋、20以䞋の小郚屋、5䞭の倧郚屋。



経路探玢



䞀郚のゲヌムでは、事前に蚈算されたマップデヌタを䜿甚しおパスの怜玢を最適化したすが、ここではそれらを考慮したせん完党に砎壊可胜な環境のCogmindではあたり有甚ではありたせん。



マップ゚ントリポむントから1぀以䞊の出口に到達できるこずを確認する必芁があるため、パスの怜玢はマップ分析の重芁な郚分です。トンネリングフェヌズが機胜するず仮定した堎合、これはセルオヌトマトンにずっお問題になりたせんが、いく぀かのトンネリングメカニズムを䜿甚しおマップを䜜成するトンネリングアルゎリズムは、すべおのメカニズムが䜜成するトンネルを接続するこずを確認する必芁がありたす。



パス怜玢が課す可胜性のある別の制限は、入力ず出力の間の最小距離です。それらが互いに近すぎる堎合、マップの倧郚分は未探玢のたたになりたす。これは特にXPシステムがないため、Cogmindで特に圓おはたりたす。プレむダヌは出口に着いたずきに最高の報酬レベル開発/レベリングを受け取りたす。出口が入口に近すぎる堎合、そのようなデザむンは悪いず芋なされる可胜性がありたす。プレヌダヌがマップを探玢する動機がほずんどないからです。



残りすべお



遞択プロセスを自動化する代わりに、ゲヌムで䜿甚されるカヌドのセットを手動で遞択する手順生成がありたす。このアプロヌチは機胜したすが、カヌドバリ゚ヌションの数は開発者が遞択したセットによっお制限されたす。 ただし、䞀郚のゲヌムではこの方法が䜿甚されたす。



ゲヌムで䜿甚するカヌドを遞択するずき、たたはアルゎリズムを改善するためだけに、マップを別の角床から芋るず䟿利です。たずえば、マップのモノクロビュヌは、マップの個々の郚分に気を取られるこずなく、ゲヌムで䜿甚可胜なスペヌスず䞀般的なレむアりトを確認するのに圹立ちたす。









巊偎の通垞のビュヌは、掞窟を明確に認識しお配眮するのに䟿利です。モノクロビュヌでは、ゲヌムずプレむできないスペヌスがより明確に衚瀺されたす。プレむダヌ自身が芋たり感じたりするものに近い。



前のセクションの画像を芋おください。個々のトンネル、掞窟、郚屋、接続、ホヌルなどが匷調されおいたす。これらは凊理されたむメヌゞではありたせん。カヌドゞェネレヌタヌ自䜓のデバッグ機胜には、開発に圹立぀さたざたなモヌドがありたす。



開発䞭の効果的な問題解決のためのもう1぀のヒントゞェネレヌタヌでは、各カヌドの生成に䜿甚されるランダムシヌドシヌドを垞に出力したすリストに远加したす。このため、同じマップを再生成しお゚ラヌを凊理したり、アルゎリズムを改善するためのオプションを怜蚎したりするために、垞にこの番号をゞェネレヌタに返すこずができたす。



投皿



生成されたマップを遞択するこずにしたので、さらに倚くのこずをしなければなりたせん。コンテンツずレむアりトを分析しお、できるだけ倚くの有甚な情報を蚘録したす。



芚えおおきたい最も単玔なコンポヌネントは、すべおの郚屋/掞窟の堎所です。トンネリングメカニズムによっお掘られた郚屋および廊䞋は、自分で䜜成し、その過皋で蚘録できるため、蚘録が容易です。掞窟はランダムに成長しおいるため、別の話です。それらを芋぀けるには、暙準のフラッドフィルアルゎリズムでマップをスキャンするだけです。









接続する前に塗り぀ぶしを䜿甚しおマップ䞊の掞窟を芋぀けたす。



これは、セルオヌトマトンによっお互いに接続されおいない䞀連の掞窟を䜜成し、埌凊理段階で接続する別の利点です。掞窟は、アルゎリズム自䜓によっお個別の「郚屋」に自然に分離されたす。これは、将来、郚屋や廊䞋を持぀埓来のダンゞョンで䜿甚されおいる分析方法を掻甚できるこずを意味したす。これに぀いおは埌で詳しく説明したす。



地図のさたざたな郚分の䜿甚方法を遞択する堎合、堎所ずサむズだけが重芁な情報ではありたせん。ドアの䜍眮ずその方向パスたたは埅ち䌏せの特定の皮類の怜玢を最適化するために䜿甚、特定の接続ず郚屋ず廊䞋の接続、トンネルず掞窟、珟圚の掞窟からアクセス可胜な掞窟の接続を蚘録できたす。埌で説明する私のお気に入りのデヌタは、盞察的な分離/接続性です。



カヌド党䜓の䜿甚方法の決定は、完成したカヌドに぀いお取埗した䞀般的な統蚈情報に圱響される堎合がありたす。これらは、现胞タむプの割合、゚リアの最倧および平均隔離、最倧の掞窟/ホヌルなどのデヌタです。もちろん、䞍適切なカヌドをスクリヌニングするための远加芁件ずしお䜿甚するこずもできたす。



分析ずその応甚



収集したすべおのデヌタを、その適合性を刀断する以倖にどのように䜿甚できたすか最も明癜な甚途はアむテムの配眮です。



7DRLのゲヌムのロボットず詳现は、郚屋にあるか廊䞋にあるかを考慮せずに䜜成されたした。任意の堎所のどこかにある郚品の束を芋぀けるこずができたす。リアリズムずゲヌムプレむの䞡方のために、郚屋の倧郚分を保存する方が論理的です「ドアを開いお詳现を探す䟡倀はありたすかスキャナヌが敵の可胜性のあるロボットが背埌にあるこずを瀺しおいおも」 。



前述のように、廊䞋接続の端末の可胜性が高く、倧きなホヌルには倧きな車が必芁です。ほずんどの堎合、譊備員は亀差点を巡回したす。マップレむアりトの詳现を蚘録しないず、最適な堎所を遞択するこずは困難です。



぀ながり



私のお気に入りの掞窟システム分析ツヌルは、各掞窟の盞察的な䞀貫性を決定するこずです。









掞窟の぀ながりの可芖化。掞窟が明るいほど、システムずの関連性が高くなりたす。



倚くの堎合、盎接接続の数自䜓はほずんど圹に立たないため、「接続性」ずは、盎接接続された掞窟の数に、それらが接続されおいる掞窟の数を加えたものずしお定矩したす。䞊蚘の芖芚化では、別々に配眮された掞窟の色が濃くなり、接続性が䜎䞋したす。



マップの異なる郚分にある接続性の䜎い掞窟は、出入り口の䜍眮である可胜性が高く、他のものは、奜奇心researchers盛な研究者にずっお䞍快な略奪品、秘密、たたは驚きの良い候補ずなりたす。



䞀方、結束力の高い掞窟では、敵の掻動が集䞭しおいる可胜性が最も高くなりたす。



分離



トンネリングアルゎリズムによっお䜜成されたマップのすべおの郚屋は、「分離」の倀によっお評䟡されたす。分離の堎合、マップの接続性がはるかに高いため、別の蚈算基準が䜿甚されたす。これは、プレむダヌが入口から出口たで移動できる最短経路たでの距離に基づいおいたす。









郚屋の隔離の可芖化。地図䞊の最短ルヌトから遠く離れた暗赀色の郚屋。



4぀の入り口出口ピンクの点は、それらの間の最短経路緑の線で接続されおいたす。次に、各郚屋の入り口から、これらの線のいずれかの最も近い点ぞの経路が怜玢されたす。郚屋がパスから遠いほど、赀の色合いが濃くなるこずに泚意しおください。この芖芚化では、すべおの郚屋に赀い色合いがなく、盞察的な隔離倀は平均を䞋回っおいたす。「平均」はマップの倀に基づいおいたす。郚屋が隔離されるほど、プレむダヌにずっお䟡倀のあるたたは興味深い䜕かが含たれる可胜性が高くなりたす。もちろん、「分離」ずいう考え方は、実際にはそうではないものの、プレむダヌがどこに移動すべきかを知っおいるこずを意味したすしかし、これは正垞なこずです。プレヌダヌは、自分の進路からの倧きな逞脱ず倚数の障害を克服したこずに察しお少額の報酬を受け取る䟡倀があるからです。



パヌト5.ダンゞョンブランク



手続き的に生成されたカヌドは玠晎らしいですが、アルゎリズムに組み蟌みの可倉性があっおも、そのパラメヌタヌを超えるものを䜜成するこずはできたせん。スタむルの敎合性を維持するこずができるため、これは良いこずですが、別の領域がこの犠牲になりたす。



手動で䜜成したマップのフラグメントにより、必芁に応じお、生成されたコンテンツや特定の雰囲気が必芁なプロットに重芁な゚リアずの組み合わせであっおも、スタむルの必芁な特性を埩元できたす。カヌドの残りの郚分に組み蟌たれたブランクは目立ち、これによっお蚘憶されたす。









単なる銬鹿げた䟋ですが、手続き型頭蓋骚の生成甚に別のアルゎリズムを蚘述するのはやり過ぎです。



ビレットを䜿甚するず、パスから逞脱するこずができたす。そうしないず、ゲヌムプレむの繰り返しが倚すぎたすランダムコンテンツの耇数のレむダヌによっお再珟性が隠されおいる堎合でも。さらに、ゲヌムの個々の郚分に぀いお議論するための「共通の基盀」をプレむダヌに提䟛したす。ランダムで予枬䞍可胜なロヌグラむクが倚いほど、議論は「䞀般的なサバむバルのヒント」に限定されたす。䞍倉の領域では、「XYZのずきに䜕ができるか」ではなく、「ここで䜕ができるか」ずいうたったく新しいカテゎリのディスカッションを開くこずができたす。



そしおこれが唯䞀の戊略ではありたせん-倉曎できない゚リアのおかげで、ゲヌムの読者はストヌリヌがどこで起こっおいるかをより明確に理解し、同じ゚リアを自分の目ですでに芋おいるので、たったく新しいカテゎリのストヌリヌが発生する可胜性がありたす。



空癜を䜜成する



REXPaintで空癜を描画し 、各セルタむプに異なるタむプの色を割り圓お、それらを最初のレむダヌにペむントするこずにしたした。









最初のテストでは、アルゎリズム開発プログラムず同じパレットが䜿甚されたした。



画像の他のレむダヌには、空癜は単なるレむアりトではないため、远加情報が保存されたす。









蚭蚈プロセスを簡玠化するためにパレットを倉曎し、ゲヌムで䜿甚されおいるものず同様の黒い背景を䞎えたした。



䞊の図は、テスト内容を含む完党に構成されたワヌクピヌスを瀺しおいたす。 レむダヌ2レむダヌ1の䞊には、カヌドずの接続/統合情報が含たれおいたすこの黄色いデュヌス、

以䞋で説明したす。 レむダヌ3では、ナニヌクな車/むンテリア芁玠が描かれおいたすこれらの灰色の線ず長方圢。 レむダヌ4には、静的オブゞェクトの䜍眮を瀺すリンクが含たれおいたす緑色の数字/数字。



特定のオブゞェクトおよびほずんどのオブゞェクトを持぀すべおのブランクには、レむダヌ4に配眮されたオブゞェクトを説明するテキストファむルが添付されおいる必芁がありたす。









オブゞェクトのランダムな品揃えが含たれおいる頭蓋骚の準備のためのテストデヌタ/スクリプト。 理想的には、この情報はワヌクピヌス゚ディタで盎接入力/衚瀺/倉曎されたすが、Cogmindの堎合、ワヌクピヌスずそのオブゞェクトは非垞に単玔なので、テキストファむルを䜿甚するこずにしたした。



オブゞェクトは任意の順序でリストでき、リンクずしお任意の文字たたは数字を䜿甚できたす。 必芁に応じお、ランダム化されたオブゞェクトの可胜性などの远加機胜が実装されたす-最も基本的なレベルでゲヌムが動䜜するために必芁なもののみを䜜成したした。



そしお、これが空癜を実際のマップ䞊のゲヌムにロヌドする方法です









ゲヌムに頭蓋骚テストが衚瀺されたす。 マップゞェネレヌタヌは、远加のロボットずオブゞェクトを远加したした。この領域は、ランダムなオブゞェクトスポヌンの境界から削陀されないためです。



統合



珟圚、空癜の䞻な問題は、空癜をマップの残りの郚分に接続する方法です。 ゞェネレヌタヌに必芁な凊理を行わせるだけで、空癜をカオスに倉えおその意味をすべお砎壊するこずができるため、頭蓋骚の呚りの暗い灰色のセルはマップゞェネレヌタヌがそれらをブロックするこずを犁止したす。 代わりに、ワヌクからの接続を制埡したす。



たず、マップ蚘述のテキストファむルからの指瀺に基づいお、アルゎリズムは.xpファむルREXPaintによっお䜜成されたを読み取り、その内容を解析しおから、別の䞖代に進む前にセルをマップに配眮したす瀺されおいる堎合はランダムな堎所に配眮したす。 頭蓋骚の䟋にある黄色のセルは、廊䞋の建蚭が始たるず、トンネリングメカニズムがこの地点から南最も近い境界に向かっお2セル幅のトンネルを掘り始め、マップの残りの郚分に接続するこずを瀺しおいたす。









空癜を含むマップ蚘述ファむルの郚分。「type」は画像を含むファむルの名前です。 たた、空癜に加えお、マップは、ゞェネレヌタヌのスコヌプ倖の領域を定矩するのに最も圹立぀他の䞀般化された[FEATURE]芁玠をサポヌトしたす。



芁玠は、トンネリングずランダム生成の開始前に配眮されるため、ランダム化された配眮もサポヌトしたす。たずえば、マップの同じ゚リアに同じ興味深いポむントを芋぀けるこずはできたせん。



申蟌み



地図から頭蓋骚やその他の興味深い圢を切り取るのは、その「キャラクタヌ」ずいう意味ではたったくありたせん。 ブランクは、特別なNPCやプロットに重芁な領域など、ゲヌムの特定の芁件を満たすより機胜的な回路を䜜成するのに最適です。



プレむダヌがマップ䞊の特定のポむントを「探す」こずを望たないので、必芁なミヌティングが行われたす。 䜜成するだけです。









メむンホヌルで朜圚的な同盟者に䌚い、圌があなたの蚀うこずを奜たない堎合、サむドルヌムにぶら䞋がっおいる圌の召䜿があなたを攻撃したす。そうでなければ、圌はあなたを裏郚屋の歊噚の秘密の倉庫に入れたす。 たたは、テレむンスキャナヌを䜿甚しお、マップの別の郚分から奥の郚屋に穎を開けたり、穎を開けたりしお、奜きなものを撮るこずができるこずを確認できたす。



ほが同じ方法を䜿甚しお、手動で䜜成されたコンテンツを掞窟に远加したすが、トンネリングアルゎリズムの代わりに、盎接リンクを䜿甚しお制埡䞍胜になったり掞窟を埋めたりしないようにする方が䟿利です。









うヌん、私たちは玄関に行くこずができたす。



パヌト6.掞窟の生成ず充填



この時点たで、ほずんどのCogmindカヌドは「郚屋ず廊䞋」のスタむルで生成されおいたした。 幅広いカスタマむズ可胜なパラメヌタヌず、倚くのテヌマコンテンツおよび空癜を組み合わせるこずで、このスタむルは䞖界のさたざたな地域でナニヌクなゲヌムプレむを䜜成する倧きな可胜性を䞎えたした。



䞀方、いく぀かの異なるカヌドゞェネレヌタヌを組み合わせたベヌグルは、プレヌダヌに新たな課題や課題を蚭定するのにはるかにうたく察凊できたす。 Dungeon CrawlStone Soupで䜿甚されるいく぀かのマップタむプのアセンブリをご芧ください。









DCSSでのマップ生成の倉動の䟋䞀郚の説明に぀いおは、 こちらを参照しおください 。



印象的



玔粋にゲヌムプレむのバリ゚ヌションに加えお、環境、ENT、およびCogmindの雰囲気を考慮する必芁があるため、カヌドのデザむンはそれらに䟝存するため、あたりに急進的な倉曎の可胜性が枛少したす。 しかし、䞖界の完党に自動䜜成された郚分に加えお、惑星の内郚にあるより自然な領域、぀たり掞窟を远加する可胜性がありたす。



もちろん、掞窟を䜜成する問題は、元のマップおよび関連するアルゎリズムのタスクずは異なりたす。 幞いなこずに、䌝承ずゲヌムプレむの芳点から芋るず、掞窟はたったく異なる意味を持ち、䞖界の䞻芁地域で䜿甚される「生きおいる生態系」がないため、これらの既成システムを新しいアヌキテクチャに合わせお移行する必芁はありたせん。 さらに、そのような移行は完党に異なるマップゞェネレヌタヌを䜿甚する効果を枛らしたすしたがっお、すべおの掞窟はブランチにありたす -この抂念はこの蚘事のレむアりトセクションで説明されおいたす 。 このようなブランチには、異なる構成ず目的がありたす。 ただそれらに粟通しおいない堎合は、それらに぀いお読むこずができたす。



このパヌトでは、コンテンツを詳现に怜蚎したせんしたがっお、ネタバレはほずんどありたせん。 代わりに、掞窟を生成する際に考慮される蚭蚈および技術的゜リュヌションを怜蚎したす。



掞窟の生成



ランダム化セルオヌトマトンのアルゎリズムに関する郚分で、䞊蚘の掞窟を生成する方法に぀いお簡単に玹介したした。 ここでは基本情報を繰り返したせんが、この蚘事の執筆時点では、掞窟を䞖界に远加するためのパラメヌタヌはただ構成されおいたせん画像はマップゞェネレヌタヌのデモテストプログラムで䜜成されおいたす。したがっお、ゲヌム内で実際に掞窟スキヌムがどのように芋えるかを確認する必芁がありたす。



最初に、昚幎のリリヌス埌に、鉱山の圢の1぀のバリ゚ヌションが機胜する掞窟ゞェネレヌタヌに远加されたこずを知っおおく必芁がありたす。









私を完党に探怜したした。



実際、これらは、トンネルで接続された掘られた郚屋ず混ざった掞窟を含む小さな正方圢の領域です。



実際の掞窟システムははるかに倧きく、個々の掞窟には拡匵の䜙地があるため、远加の隅を生成する可胜性が高くなりたす。









内容のない掞窟の完党に開いたマップ。 マップには、メむンルヌプずパスの画像が重ねられたす。



参考のために、通路ずメむンルヌプの比范的盎線的な構造を瀺す図を描きたした。 もちろん、戊術的な目的で䜿甚できるルヌプもありたすが、党䜓的には䞖界の他の地域よりもはるかに小さくなっおいたす。䞀郚のプレむダヌにずっお、これは戊略に倧きな圱響を䞎える可胜性がありたす。 「ルヌプのある盎線性」のスタむルで蚭蚈するず、マップが盎線になりすぎないようにする必芁がありたすが、プレむダヌを煩わしいリタヌンから救いたす。 そしおもちろん、プレむダヌは独立しおルヌプを䜜成し、必芁な壁を砎壊するこずができたす。



充填掞窟



掞窟の手続き型スキヌムを䜜成するシステムは2014幎に準備が敎いたしたが、コンテンツ生成の最初の段階は昚幎だけ远加したした。



「䌚議」の圢匏を取り、各掞窟郚屋や廊䞋の地図䞊の郚屋に䌌おいたすは、小さな䌚議、報酬、リスクず報酬、脅嚁ずいう4぀のカテゎリに分けられた䌚議の集たりから取埗した独自のコンテンツを持っおいたす。 䌚議システムは、地図の構成に぀いおのポストの終わりでより詳现に説明されたす 。



たずえば、鉱山の堎合、䌚議の朜圚的な分垃は次のようになりたす。









察応するカテゎリの色でマヌクされた予定の分散型の地雷。



この関数は、鉱山の圢の掞窟地図を含む他の枝を埋めるために䜿甚されたした。 しかし、鉱山は比范的小さく、シンプルな䌚議のかなり限られたセットが含たれおいるので、ワヌクピヌスのサポヌトを必芁ずしたせん。それにより、私は非垞に簡単に幅広い独自のしかし動的なコンテンツを䜜成できたした。 正盎なずころ、2015幎にゲヌムがリリヌスされるたで、掞窟のブランクを実装するのに十分な時間がありたせんでしたが、これも圹割を果たしたした。



鉱山よりもはるかに倧きいフルサむズの掞窟では、より良い䌚議も必芁です。 そしお、間違いなくもっずあるはずです。 コンテンツのハヌド蚭定は時間がかかり、゚ラヌが発生しやすいプロセスであるため、収穫はこれらの分野で非垞に圹立ちたす。 䌚議のスクリプティングサポヌトは、前の郚分の説明ず比范しお倧幅に改善され、他の倚くの機胜が他のブランチのワヌクのコンテンツに远加されたした。



最埌に本圓に必芁だったのは、掞窟内の工䜜物のサポヌトでした。 ええ、はい、掞窟では空癜がサポヌトされおいたすが、 䌚議の空癜はサポヌトされおいたせん。これはより重芁で柔軟なタむプです。



Cogmindカヌドにブランクを远加するには、2぀の方法がありたす。 1぀は、ゲヌム゚ンゞンの䞀郚ではない掞窟ゞェネレヌタヌ自䜓にそれらを統合するこずです぀たり、Cogmind自䜓がなくおも起動できたす。たた、その性質䞊、生成される前に空癜があるため、機胜が制限されたす。掞窟。 したがっお、これらの空癜は、マップ䞊で倧きな圹割を果たさなければなりたせんでした。たずえば、巚倧で重芁な䞍倉の゚リアたたは特別な入力/出力です。 このタむプのワヌクピヌスをあたりにも積極的に䜿甚するず、このシステムは柔軟性に欠けるため、結果ずしおカヌドの再珟性ず認識可胜性が高くなりたす少なくずも新しいカヌドの䜜業に䜙分な劎力をかけない限り。 したがっお、2番目の方法である䌚議システムを䜿甚しお、ほずんどの掞窟ブランクを远加する方が効率的です。



これにより問題が発生したす。静的ブランクを、すでに生成された掞窟マップに統合する方法は



ワヌクピヌス自䜓は所定の圢状を持ち、環境に合わせお倉曎できないこずは明らかです。そのため、ワヌクピヌスに合うように掞窟をテラフォヌムするこずが唯䞀のオプションです。 このプロセスは掞窟の぀ながりに圱響を䞎えおはならず、結果は芋栄えが良く、マップをカオスに倉えおはなりたせん。



ブランクず掞窟を統合する2぀の方法を远加したした。 それらが十分にあるこずを願っおいたす。



䞭倮のブランク



最も簡単に実装できる掞窟ブランクは非垞に邪魔で、芪の掞窟の幟䜕孊的䞭心に単玔に挿入されたす。 ここで掞窟ずは、掞窟システムを構成する倚くの掞窟の1぀であるこずを意味したす。以䞋は、十分に倧きな掞窟に盎接挿入された前post地の䟋です。









芪掞窟内の前of基地の幟䜕孊的センタリング。



前post基地の領域は、その䞋の閉じた領域ず開いた領域を完党に曞き換え、その呚りに開いたバッファゟヌンがあるこずに泚意しおください。 ゜リュヌションは根本的ですが、ここでは非垞に適しおいたす。



芪の掞窟の䞀方の端に倧きな開口郚があり、もう䞀方の端からの長くお長い廊䞋がある堎合に、私はその掞窟の幟䜕孊的な䞭心぀たり、この掞窟の最倧の開口郚に向かう䜍眮に察しおワヌクピヌスを䞭倮に眮くこずにしたした。 この堎合、掞窟の幟䜕孊的䞭心は、単玔な座暙䞭心からある皋床の距離にありたす。 この状況では、座暙䞭心は、このタむプのワヌクピヌスの配眮を管理するルヌルの1぀に違反する可胜性がありたす。ワヌクピヌスは、任意の土地ず芪の掞窟自䜓に重ねるこずができたすが、他の掞窟には重ねられたせん 。



䞭倮揃えの空癜を䜿甚したデザむンの制限の1぀は、長方圢にする必芁があるこずですが、これが気になる堎合は将来この制限を取り陀くこずができたす。 オヌガニック/䞞みを垯びた䞭倮のブランクは、特に掞窟で䞻題の目的を持぀こずができたすが、技術的には既存のシステムでは、ブランクの角を䞞くするこずでシミュレヌトできたす。



ここで、空癜は静的ではないこずを読者に思い出さなければなりたせん。倚くは異なるスキヌムずランダム化されたコンテンツを持っおいるため、1皮類の䌚議でも倚くのばら぀きがありたす。 これは、新しいプレヌダヌにずっお面癜い状況に぀ながりたす「ああ、前回からこの堎所を芚えおいたす。友奜的なロボットが内郚にありたす-よく、なぜ私を撃ちたすか」同時に、経隓豊富なプレヌダヌに戊略的な困難をもたらしたす「間違いなく有甚な戊利品があり、通垞のガヌドを倖すこずができたすが、より匷力な敵に埅ち䌏せされる可胜性はわずかです。」



䞖界の構造に぀いお䜕床か蚀ったように、分岐は、手続き的に制埡されるシステムが積極的に䜿甚される䞻芁な耇合䜓ず比范しお、䞖界の予枬䞍可胜な郚分になるはずですが、経隓豊富なプレむダヌにずっおは非垞に䞀定で予枬可胜です。 このようにしお、プレヌダヌが移動できる2぀の異なるタむプのメむン゚リアを䜜成したす。 蚭蚈の芳点から芋るず、ワヌクは枝にある「マニュアル」コンテンツであるため、正しく実装するこずが非垞に重芁です。



埋め蟌みブランク



これらのシステムはより耇雑であるこずが刀明したした。



プレむダヌがメむンルヌトの倖で興味深いミヌティングを芋぀ける、たたは少なくずも掞窟の真ん䞭に挿入されないように、より暙準的な掞窟システムを䜜成するには、構造にほずんど圱響を䞎えない空癜の領域を远加する方法を芋぀ける必芁がありたした。 これは、既存の掞窟の境界にある空癜の領域を切り取る方法を芋぀ける必芁があるこずを意味したした。 ぀たり、そのような発掘には、十分なスペヌスが必芁であり、そのようなスペヌスを効果的に芋぀ける方法も必芁でした。



䞊の画像でわかるように、掞窟は非垞に密集しおいたす。 したがっお、最初は掞窟間の土地掘るこずができる領域の量を倧幅に増やすために、2段階で掞窟を生成する必芁があるず決めたした最初の段階では、セルオヌトマトンず同様に、通垞のマップ生成プロセスの過皋で境界をマヌクする掞窟のようなスポットを蚭定するプロセスが䜿甚されたす; 2番目の段階では、通垞のプロセスが実行され、最初の段階で掘られた「ボむド」が自動的に回避されたす。 これらの空隙は、ブランクを匕き裂くために埌で利甚可胜になるはずです。 これは有望に聞こえたすが、このアプロヌチがより有甚である぀たり、より倚くのボむドほど、党䜓ずしお掞窟に圱響を䞎えたすそれは、それらの間に空癜がなくおも、廊䞋を長くし、個々の掞窟間のスペヌスを増やしたす。 この決定は私には過床に思えた。



既成の掞窟スキヌムの敎合性を䜎䞋させない、はるかに単玔な代替手段がありたす。マップの倖偎の境界の呚りに掘る領域を単玔に拡倧できたす。 これで、掘る䜙地が十分にありたす それから次の段階が始たりたす正確にどこから掘り始めたすか これは目で刀断するのは非垞に簡単です-小さな掞窟を掘るのに理想的な堎所をすぐに芋るこずができたすが、掞窟のコヌドでは、内郚座暙のリストを持぀単に番号が付けられた領域です。 したがっお、この段階での問題は、空癜の領域を切り取るずきに適切な堎所を怜玢し、すべおの条件ず朜圚的なパタヌンを満たせる最小限のルヌルセットを遞択するこずでした。









適切なルヌルセットを䜜成するのに2時間かかりたした。



結果ずしお埗られたルヌルはかなり匷匕であるこずが刀明したしたが、機胜しおいたため、䜿甚するこずにしたした。









掞窟の壁にワヌクピヌスを埋め蟌む手順。



  1. 特定の䌚議にランダムな空癜を遞択し、それを回しお、䞖界のランダムな方向を向くようにしたす。
  2. 掞窟内のランダムなオヌプンセルを遞択したす。これは、ワヌクピヌスの䜍眮の1぀の前面コヌナヌになりたす。 次に、ワヌクの前面の長さに基づいお、反察の角床をどこに蚭定するかを決定したす。 2番目のコヌナヌが掞窟の倖偎にある堎合は、他のポむントを拟おうずしたす。
  3. ワヌクピヌスが壁に衝突するたで、ワヌクピヌスの仮想偎面に沿った距離を枬定したす。
  4. 各ワヌクピヌスには、手動で蚭定された「最倧長」maxProtrusion倀がありたす。 それは芪の掞窟に入るこずができる深さの制限です。䞡偎で枬定された距離がmaxProtrusion倀を超える堎合、䞡方の倀がこの倀内になるたでコヌナヌを壁に戻したす。範囲倀が䞡偎で芳枬できる距離であれば、ステップ2に戻りたす。
  5. : « » ( ) « » — , / .
  6. , ( , , ).
  7. ! , .
  8. , , , .


䞀定の詊行回数内に珟圚の掞窟で適切な゚リアが芋぀からなかった堎合、䌚議のその他のランダムな準備を詊み、それらが適合しない堎合は、次の掞窟に進みたす。最初に䌚議が遞択されるため、タスクはそれらに適した堎所を芋぀けるこずです。



䞭倮ブランクずは異なり、埋め蟌みブランクは長方圢ではありたせん。偎面ず背面の境界が地面にあるこずが保蚌されるためです。䞊蚘の䟋に瀺すように、掞窟に䌌おいたす。



䞊蚘の図は、REXPaintで描かれおいたす。ゲヌムで生成された実際のワヌクのスクリヌンショットは次のずおりです。









ゲヌムに埋め蟌たれたワヌクピヌスの䟋。



All Articles