ブラウザゲームにおける囲まれた空間の効率的な検出

2025-02-07
ブラウザゲームにおける囲まれた空間の効率的な検出

ブラウザゲームにおいて、プレイヤーは敵を妨害するために障害物を配置します。プレイヤーが自分自身や敵を囲い込むことでチートをするのを防ぐために、著者は囲まれた空間を効率的に検出するアルゴリズムを設計しました。初期の総当たり法(各セルのフラッドフィル)は遅すぎることが判明しました。著者は、「開いている」セル(障害物に囲まれていないセル)のキャッシュを利用して、フラッドフィルの探索空間を削減する改良アルゴリズムを考案しました。障害物が追加または削除されると、アルゴリズムは開いているセルのセットを更新し、合法的な配置場所を再計算します。最悪の場合の時間計算量は総当たり法と同じですが、実際にはこのアルゴリズムは遅延を大幅に削減します。著者は、反復的な更新や複数の障害物に隣接するセルのみのチェックなど、他の最適化テクニックについても説明しています。最後に、著者は別の可能な解決策として、サイクル検出に基づくアルゴリズムについて述べています。

続きを読む

変化する地形における移動目標への経路探索

2025-01-11
変化する地形における移動目標への経路探索

このブログ投稿では、Unityブラウザゲーム『Build + Brawl』における経路探索の斬新な解決策について説明しています。数百体の敵が動的に変化する環境の中で移動するプレイヤーに向かって移動するという状況において、A*アルゴリズムの代わりに、方向場アプローチが実装されました。これは、各グリッドセルの最適な移動方向と距離を事前に計算することで、プレイヤーや障害物の変更時の更新を最小限に抑えます。これにより、パフォーマンスが大幅に向上し、ブラウザの遅延が回避されます。この投稿は2つのパートに分かれており、アルゴリズムの構築と障害物の処理を明確な図解とともに説明しています。ゲーム開発者にとって素晴らしいケーススタディです。

続きを読む
ゲーム 方向場