敵のわらわら移動のデモに着手(巫女&築城&防衛ゲーム)
それでは「巫女&築城&防衛ゲーム」プロジェクトの開発をしていきます。ゲーム仕様は「ねこ巫女籠城ゲーム」で行き詰まった仕様を取り除いて簡易にしたものになります。
やること
このゲームで実装が難しそうなのは、
- ユニットが大量にわらわらと移動するあたり。
- 経路の渋滞を考慮して移動するあたり。
- 垂直壁を登らせるあたり。
- 多くの候補から攻撃対象を選ぶあたり。
だと思っています。
なので、大量のユニットを指定した位置に移動させるデモの作成を最初に行っていきます。
やったこと
Boids アルゴリズムを参考にして作っていきます。最初にユニット間で距離を保つ「分離」まわりに着手します。
↓ ユニットを1体だけ配置した様子
よいです。
今回の開発では Pixel Heroes Megapack の粗めなドット絵キャラを使います。
そして、↓これが敵を密になるように配置したものです。
分離の実装というか、Boids 実装の考え方については下記サイトを参考にしました。
https://qiita.com/piyopiyomaru/items/8c2bf12356303b28fc32
とりあえず、指定したタイルにいるユニットを取得できるようにして、8方向の隣接するタイル内に他のユニットがいるときに斥力がかかるようにしました。
↓ 動作させた様子
↓タイルグリッド線ありの動作結果
気付きとしては
- 周囲の8タイルに他のユニットがいない状況は、間隔が広すぎる。
- 仮想的な細かいタイルに配置されたものとして扱うよう修正すればいい。
- ときどき斥力が大きくなりすぎるせいか弾かれるように動くユニットがいる。
- 上限を定義すればいい。
です。
上記の修正は次回以降にやります。
まとめと今後の予定
仕様を簡略化した籠城ゲームの開発をすることにしました。
そして、Boids アルゴリズムの「分離」の処理を実装して、とりあえず動作しました。よいです。
次回は、この分離まわりの微調整と評価か、タイルに「こっちに移動してね」という方向を定義して群れっぽく動くかの評価をしたいと思います。がんばります。