風薙鳥 ゲーム制作日誌

モンスターへの作戦指示を実装

Visual C++ / DXライブラリでローグライク(ダンジョンRPG)を制作中です。

仲間モンスターに移動方法などの作戦指示を出せるようになりました。



各モンスターに、移動と戦闘に関する指示を出せます。
移動の方は、主人公についていくか、自由に歩き回るか。
戦闘の方は、敵を見つけたらすぐ接近するか、隣接するまで移動の作戦指示を優先するか。

この実装に合わせ、視界内にいる一番距離の近い敵モンスターを調べる処理も作りました。
これにより、作戦指示の実行は全部実装できたと思いますが、まだテストが必要です。

話は変わって。
テストプレイ中に、ある問題に気づきました。
今作では、斜め方向への通常攻撃ができない仕様です。
理由は、キャラチップの数が多く(モンスター育成RPGからの流用)、斜め向きの画像を作るのが大変な手間なこと。
もうひとつは、操作を楽にすること。
例えば、距離の離れた敵にアイテムを投げる時、斜め直線上にいるかを確認するのは、ちょっと面倒だと感じるんです。

斜め攻撃ができなくても問題はないはずでしたが、ダンジョン自動生成の改良で、通路に斜めのルートを取り入れたことで、二つの仕様の相性の悪さが出ました。
通路内の斜めにしか移動できない場所で、斜め方向に敵に挟まれると、自分も敵も攻撃できず、詰んでしまいます。

洞窟らしくするために斜めを取り入れたのに、またいかにも人工物な鋭角な通路に戻すのは嫌なので、通路の詰む可能性がある箇所を広げることにしました。
斜めでも4方向移動でも通行できる広さになり、恐らく詰むことはなくなりました。
ただ、通路で隣接する敵を横切って進むこともできてしまう場合がありますが、それは戦略のひとつということで。
あと、通路配置アルゴリズムの仕様上、一部鋭角な通路にする必要が出てしまいましたが、むしろ通路のバリエーションが増えていいのかもしれません。