スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ローグライクの妥協点

最近某商業ローグライクゲームをプレイしていて、AIの賢さに驚いているんですが、残念ながらそのレベルのAIを構築しようとすると処理負荷がかかりすぎてまともに遊べなくなります。あ、もちろんウディタの話です。ウディタは便利ですが、その分汎用性を持たせるための余計な処理を水面下で行っていたりするので、動作が遅いのです。

ということで、ウディタでローグライクをつくろうとした場合、残念ながらいくつかの要素は処理負荷を理由に切り捨てなければならなくなります。
自分の経験から、処理負荷と相談が必要になりそうな要素をまとめてみました。
処理負荷はだいたいの目安で、A~C(Cの方が処理負荷が大きい)になってます。

・オートマッピング…負荷レベルB~C
ダンジョンRPGにはつきもののオートマッピングですが、これはなかなかに重たいです。
1ターンごとに自分の周囲数マスを走査してミニマップを描画しないといけない他、敵やアイテムの位置も描画する必要があるので呼び出す頻度はかなり高いです。そのうえピクチャの描画処理は他のコマンドに比べて重いため、オートマッピングを取り入れるだけで画面ガクガクに、なんてこともあります。
たださいわい、オートマッピングは処理の仕方次第でひと工夫、ふた工夫できるシステムなため、なるべく負荷をかけないよう短いコマンドで済ませれば充分実用可能レベルです。工夫の仕方についてはローグライク製作メモの方もご覧下さい(宣伝)。
ちなみに、ミニマップはミニマップでも、オートマッピングさえ取り入れなければ処理の量はぐんと減ります(最初に表示するだけで済むため)。
ただ、どっちにせよミニマップをつくろうとするとピクチャ番号をどこかにどーん!と10000枚くらい確保しないといけなくなるので、ミニマップは最初から作るか作らないかきちんと決めておいた方がよさげですね。
余談ですが、文字列を使ってマップを1枚のピクチャで表現するという手法もあるそうです。試したことはないので、普通の描画方法と比べてどの程度負荷が変わるのかは分かりませんが。参考までに。

・視界…負荷レベルA
視界というのは、不思議のダンジョンシリーズでおなじみの通路スポットのことです。
こいつを取り入れようとすると並列実行のイベントを使うことになってハードルが高く感じられますが、処理自体はそれほど重たくはならないはずです。
ただ、視界に合わせて視界外のNPCを透明にしたりする必要もあるので、どちらかというと処理負荷よりはバグの方が気になるシステムですね。

・ダンジョンを徘徊するAI…負荷レベルB
ローグライクはローグライクでも、片道勇者みたいな解放マップといわゆる不思議のダンジョンでは敵AIの作り方がかなり変わってきます。
AIの処理負荷の点でいえば、圧倒的に軽いのは解放マップの方です。
なにしろダンジョン内でAIを動かすためには、部屋や通路の判定、移動方向の判定なんかを細かく作っていかなければならないので…。
とはいえダンジョンRPGを作るのであればこのAIは不可欠なので、ここの処理負荷は諦めざるを得ません。なるべく簡潔に組む努力をしましょう。

・主人公以外のNPCの存在も感知するAI…負荷レベルC
ややこしいですが、敵が行動するときに主人公の座標だけでなく、自分の周囲の座標も考慮するかどうかということです。
トルネコ3みたいに仲間システムをつくってダンジョン内を徘徊させる際は、仲間が自分の近くの敵を感知して接近していく必要があるので必須のAIになります。
ただ、少し考えれば分かりますが、これは最悪レベルに負荷のかかる処理です。
主人公のみに反応するAIなら主人公の座標だけを考慮すればいいですが、それ以外もとなると判定の仕方が根本的に変わってきます。視界範囲が周囲2マスだとしても、視界範囲内に敵がいないか判断して敵がいれば接近していくAIをつくるには、自分の周囲5×5マスを走査する必要があるわけで、これだけでも主人公のみに反応するAIの25倍並の負荷になってしまいます。
ローグライクゲームの負荷の原因のほとんどは、このAIにあるといっても過言ではありません。
自分もローグ崖(自作ゲー)のときはこの主人公以外のNPCも感知するAIを組んでいたんですが、やっぱり負荷が大変なことになったので、ワールドフロンティアでは妥協して仲間のみが主人公以外のNPCも感知するAIを使うようにしました(が、それでも正直負荷はギリギリです)。

・詳細な攻撃判定・特技判定…負荷レベルC
これもAIのうちですが、かなり重たいです。ほぼ毎ターン動かすことになるので。
特に、特技があってその特技が複数マスの範囲判定を行うものだったりすると、行動AI並に負荷がかかります。
判定する特技が複数あったりすると、さらに大変なことになります。
ワールドフロンティアでは判定する特技を4個までに制限していますが、これでほぼ限界です(あるいは自分の処理の組み方が下手なだけかもしれないけども)。

以上のように、ウディタでのローグライク製作はひたすらアルゴリズムと処理負荷との戦いです。それでもなお手を出してみたい方はぜひがんばってください。
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。