プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
回避移動04
開発中のメイン画面
回避移動が実装された。敵前で後続部隊が左右に展開し、各個撃破に奔走する戦場の雰囲気が楽しめる。


◎すれ違いと包囲

今回は、移動先に味方部隊が在る場合、その部隊を避けながら目的地に向かう部隊移動処理を実装します。

図に描くとこんな感じです。

すれ違い01   包囲01

すれ違いの際は、

・格上の部隊は待機
・格下の部隊は回避移動

とします。さらに、地形や他部隊による侵入不可のパターンも考慮する必要がありますね。

すれ違い02   包囲02

包囲パターンでさらに後続部隊があった場合は…二重に取り囲んだ位置で待機かな?

…なんか、予想以上に複雑な気がしてきました(汗)



◎設計

前述のパターンを踏まえて、回避移動のロジックを設計します。

回避移動フローチャート(PDF)

あれ?意外とシンプルにまとまったようですが、これで本当に上手くいくのでしょうか?(^_^;



◎実装

とりあえず左前方と右前方の回避移動のみ実装して動かすと、一応回避移動はするのですが、あるタイミングから経路探索が完了せず全部隊停止してしまいます。

回避移動01   回避移動02

原因が解らず悩みまくったのですが、経路探索内のopenListとcloseListの件数が上下しているので、

1 ある部隊の経路探索が完了
2 しかし移動先は味方部隊が存在し移動不可
3 移動処理のやり直し(1に戻る)

上記の永久ループに陥ったものと結論付けました。経路探索対象が他の部隊に移ってくれれば良いのですが、現在のロジックでは、1部隊の周囲が味方部隊で塞がると、探索対象が移行せず永久ループに陥るようです。

そこで、前回の探索要求クライアントと同一かチェックし、同一の場合は経路探索処理を一回パスするようにすると、各部隊が動き始めました。



◎重なった部隊の問題

拠点から再出撃した部隊が動かなくなるケースがあります。

回避移動04

これは、複数の部隊が拠点から一斉に出撃すると、「移動先に味方部隊が存在する」という判定に該当し、停止してしまうことが原因でした。

…そうか、今回は「1つのセル(マス目)に複数部隊は存在しない」という前提で改修してきましたが、このケースはその前提が崩れたわけですね。

対処案を検討します。

A案:部隊の出現位置を複数用意する

B案:部隊の出陣タイミングをずらす

C案:1つのセルに複数部隊もアリとする

A案は、部隊出陣数に上限を設ける必要があるので却下。
B案は、出撃待ちの部隊をプレイヤーに分かりやすく見せるのが面倒なので却下。
消去法で、C案とします。

複数部隊が重なった場合、プレイヤーが参照/指示する部隊を選択するミニウィンドウが必要になりそうですが、その辺は後日検討します。

とりあえず、C案前提で移動処理を改修したら、動くようになりました。



◎現状

左斜め前方と右斜め前方の回避移動を追加しました。現在はこんな感じです。



今回は、部隊展開の様子を見せたかったので、移動やダメージを倍速としています。
(倍速はパフォーマンスがキツイですw)

各部隊が敵前でわらわらと分散展開する様は、なかなか味があると思うのですが、いかがでしょうか?



◎次回予告

幾つか気になる点があるので、次回はそれらに対応します。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。