スクリーンショット_2019-07-25_11

敵や味方の移動ロジックを改善 RogueEna

今日の作業は移動するキャラクター(敵や仲間など)の移動の仕組みを改善でした。

今日の作業前は、このような動きになっていました。モンスターはプレイヤーなどの敵対勢力を見つけるまでモンスター同士で固まって行動するように振る舞っていましたが、その群れが部屋の中や通路を移動することはほとんどありませんでした。

それを今回は、部屋を巡回しながら、出入り口同士を最短経路で移動する挙動に書き換えました。

この時点ではまだ少し違和感のある動きもありますが、今日の作業では10体ほどの敵を同時に移動させても、ほぼ違和感なく部屋を横断していくようになりました。

今の所、部屋に入った瞬間に次の行き先の出入り口を探すロジックがとても重くなっています。すべての出入り口の中から今いる部屋の中のものに絞り込むときのアルゴリズムに問題があるためです。
部屋だけが通過可能な経路探索でダンジョン内すべての出入り口までの経路を探索しようとするため、到達不可能な出入り口の数とその部屋の大きさに依存してとても計算時間が掛かっています。
これを解決するために、シンプルな方法として部屋ごとにIDを持たせて同一IDの部屋の出入り口だけを取得する、という経路探索を行わない方法か、塗りつぶしアルゴリズムで取得する方法の導入を考えています。

部屋に出入りしたときにその部屋で眠っていた敵が起きる仕組みも実装したいので、いずれにしても指定した座標が属する部屋の座標列を取得できる仕組みは作っておく必要があります。

以上です。

応援してくださると嬉しいです。よろしくお願いいたします!