プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
中距離戦の実装01
開発中のメイン画面
中距離戦の移動/攻撃処理が実装された。移動パターンは兵種や陣形によって異なる。また、攻撃力や防御力は距離の影響を受けるので、弓兵中心の部隊は間合いを保つことが望ましい。



今回は中距離戦を実装します。
まずは、弓小隊の移動処理から始めましょう。

◎弓兵の近接攻撃可否

陣形が「バトルスタイル:攻撃型」の場合、近接攻撃小隊の移動目標座標は敵小隊の直前でした。弓兵がこれと同じ動きをすると不自然なので、射程距離によって停止位置が異なるようにします。

・敵が射程外の場合、敵に近付く
・敵が射程内の場合、停止して攻撃する

上記ロジックは騎兵や槍兵と一緒ですが、問題は、弓兵の敵が近すぎた場合の移動先です。

間接攻撃ユニットは近接攻撃不可というゲームもありますが、その場合、敵から離れないと攻撃できないので、敵が追いかけてきた場合、延々と追いかけっこが続きます。

実際の戦場ではよくある話かもしれず、本隊から離れすぎた小隊は離散する(半分は拠点に逃げ帰る)ルールも検討しましたが、これだと弓兵の離散率が高すぎて、ゲームバランスが悪そうです。
(連弩や攻城兵器であれば、このルールもアリですが)

結局、弓兵も近接戦闘可能とし、敵が近くてもその場に踏み留まることにしました。



◎射程距離について

従来は、近接射程と中距離射程をそれぞれ固定値で設定してましたが、それでは弓と弩が差別化できないので、射程距離の扱いを変更します。

A案:近接も中距離も兵種別とする

B案:近接は固定値、中距離は兵種別とする

C案:近接と中距離に分けずに統合し兵種別とする

連弩と攻城兵器を登場させる場合、「近接射程:0」とするのが良さそうですが、それ以外の近接射程は全て固定値なので、さほど意味はない気もします。それならC案として、被害判定時に敵との距離で攻撃/防御/回避力を使い分けた方が良いとの結論に達しました。



◎コーディング

しばらくぶりのプログラミングで、自作コードの解析に時間かかりました。というのも「何でこんなコード書いたんだ?」と不可解に思い、修正しかけてようやく「ああ、そういうことか!」と当時の意図を理解するパターンが多かったからです。

そんな既存コードに中距離戦を追加するので、コーディングレベルで迷うことも多かったのですが、事例を挙げると話が長くなるので省略します。

移動関連を改修して実行すると、おかしな動きをする弓兵がいます。原因を探ると、攻撃関連も併せて改修しないとまずいケースがあったので、攻撃関連も改修します。



◎攻撃関連の仕様

攻撃関連の仕様で特に迷ったのは、「敵A(中距離)を攻撃中に、敵B(近接距離)から攻撃を受けたら、攻撃目標を敵Bに変更すべきか?」です。

敵Aへの攻撃を継続した方が効率良さそうですが、結局敵Bに攻撃目標を変更することにしました。リアルに考えれば、目前の敵を無視して遠くの敵を狙い撃つなんて無理ですし、ゲーム性を考慮すると、敵に接近されたら役に立たない弱点が際立つので差別化になるからです。

これにより弓兵が弱過ぎるようであれば、弓兵の射程やパラメータを増強してゲームバランスを調整します。



◎デバッグ

一通り実装して動かすと、弓兵が敵小隊に向けて移動し、中距離射程で停止して攻撃するようになりました。狙い通りの動きです^^

中距離戦の実装01


ところが、戦闘中に全小隊が一斉にフリーズしたり、瞬間的にモーションが切り替わる現象が発生するようになりました。騎兵や槍兵も影響するので、(小隊ではなく)部隊の処理を疑ったのですが、これは結局弓小隊の処理呼び出し漏れでした。

その後も戦闘中の小隊が突然逆方向を向いたり、敵部隊を無視して素通りするなどバグが続出しましたが、それらのバグを潰してようやく納得できるレベルになりました。



前半は弓兵のみ、後半は騎兵槍兵を含む混合編成です。
兵種や陣形によって動きが異なる点に着目してください。



◎気付いたこと

実装して幾つか気付いたことがあります。

例えば、防御型陣形同士が闘う場合、中距離で弓の撃ち合いがしばらく続きますが、その間騎兵槍兵は耐えるだけで反撃しません。最初は反撃すべきかと思ったのですが、防御型は反撃せずに耐えるのが正しいという結論になりました。

現在は、一方の弓兵が全滅すると接近戦に突入しますが、武将の思考ロジックを実装すれば、早めに接近戦に突入するケースも出てきます。また、矢数や疲労度も実装予定ですので、そうなれば反撃せずに耐えるだけでも意味があります。



◎次回予告

デバッグに時間かかってしまいましたが、ようやく中距離戦が実装できました^^

次回は攻城戦を実装します。

スポンサーサイト

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

コメント

目の治療中です

以前ブログにも少し書きましたが、毎年目の痛みに悩まされてます。花粉症かドライアイだろうと思い我慢してましたが、ついに丸一日目を開けられない状態となり、病院に行ったら‘角膜潰瘍’と診断されました。現在薬で様子見の状態ですが、最悪入院の可能性もあるとのこと。

そんなわけで開発はほぼ停止状態です。痛みは和らいだ(薬の効果?)ので、調子が良ければ来週から再開できるかもしれません。

お大事になさってください

無理なさらず、少し間を開けた方がよいですよ。

コメントの投稿


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

トラックバック


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



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