まず、ドワーフ要塞についての歴史生成のヒントがいくつかあります。誰かがBay12フォーラムでしばらく前に尋ねたところ、トランスクリプトが共有され、「今日のトピックは世界の生成と歴史の生成」を検索することで議論の始まりを見つけることができます。
ドワーフ要塞がどのようにそれを行っているかは正確にはわかりませんが、ゲームで非常に基本的な最初のドラフトを実装する方法を説明します。単純なセルオートマトンを使用します。細胞培養やバイオームなど、これらの胞子のプロトタイプをご覧ください。
これらは、セルラーオートメーションの例であり、それらが生成できるものです。基本的に、さまざまな人種のルールを作成します。ルールの例を次に示します。
- 他の種族に対する敵意
- 気候の好み
- リソース要件
- 彼らの出生率と寿命
- 彼らの欲望(技術研究、商業、平和な存在、世界支配)
- それらの機能(構造の構築、リソースの収集、戦争の作成など)
- 等々...
したがって、これらすべてが機能するための最も重要なインプットは、これらの人種を投入する世界です。地形によって好みと広がりが決まります。したがって、世界を生成したら、これらの種族が適切に生活する世界のランダムな場所を選択し、それらを解放します。今、興味深いことが起こり始めています。欲望と能力を備えた土地とレースを手に入れたので、歴史を築き始めることができます。これらのレースはリソースを収集し、構造が構築されます。
- 資源が多く住みやすい地域の町。
- 道路は大きな町をつないでいます。
- 川を渡る橋。
- 山を通るトンネル。
- 戦闘に応じて拡張の最前線にある要塞。
他の種族はどのような構造物も襲撃/征服できます。(町や要塞のような)構造物が歴史上に長く存在するほど、防衛力が強いほど、引き継ぐことが難しくなります。そして、より望ましいのは、コントロールを望む種族です。レースが行われる場所で戦闘が行われます(少なくとも1つは敵対的です)。戦いは、ランドマークまたは近くの建造物にちなんで命名されます。または、戦いが重要であるか、ランドマークに名前が付けられていない場合、ランドマークには戦いにちなんで命名されます。
道路、橋、トンネルは、商業と資源の輸送によって拡大されます。それぞれに最大のスループットがあり、リソースの消費とともに増加します。草原の真ん中に石の要塞を建てる?これらの道路は、必要な石を輸送するために頻繁に使用されます。彼らは大きくなり、名前を取得します。
自然災害が発生し、人口と歴史に影響を与えています。地震は町を破壊し、トンネルを崩壊させる可能性があります。洪水は道路や橋を洗い流すかもしれません。
それはドワーフ要塞ほど詳細ではありませんが、始まりです。あなたが想像できるように(そしてジョナサン・ホッブスが言及したように)、これらの種族が拡大するほど、より多くの細胞がシミュレートされています。より多くのセルがシミュレートされるだけでなく、構築/維持する構造、賃金との戦い、商取引と...商取引などが存在するため、シミュレーションはより複雑になります。これはどの言語でも重くなります。Javascriptがすぐに遅くなる可能性があります。ただし、速度を向上させるために常に複雑さを犠牲にすることができます。
それはすべてシミュレーションですが(複雑ではありますが)、途中で重要なイベントを記録し、それを履歴と呼んでいます。
また、ドワーフ要塞の世界世代をより速くする方法をブレインストーミングする人々のためのBay12フォーラム投稿を見つけました。私はそれを読み通していませんが、実装が遅すぎるという問題に遭遇した場合、いくつかのヒントを提供するかもしれません。