2017年2月21日火曜日

【Unity】RTS: Bwars2 戦略モード


戦略モードにおけるターン制の基礎部分が実装できた。戦略モードでは両軍はそれぞれの戦闘グループをゾーン単位で移動させることができる。一つのゾーンに2つ以上の戦闘グループは存在できない。ただし敵がいるゾーンには現状だと複数の戦闘グループを送り出せるので攻撃側が有利になっている(防御側は常に1戦闘グループ)。これについては防御側に恩恵を与えるなどの改良が必要かもしれない。移動は各戦闘グループに設定されるイニシアティブが高い順に行われる。このあたりはターンベースのタクティカルゲームによくあるものだ。一つのゾーンに敵味方が移動しようとすると戦闘が発生する。戦闘は複数ゾーンで発生する可能性があり、戦闘を開始すると戦術モードに移行しリアルタイムでの戦闘となる。
 AIは戦略モードでの移動について影響マップを利用し戦闘グループの移動先を決定している。上の写真では左側中央あたりに青、赤軍の戦闘グループの望ましい移動先が優先度順に緑の濃淡で示されている。

2017年2月11日土曜日

【Unity】 RTS :Bwars2 戦略モードと戦術モード


 マップを動的に幾つもの区画に分割する偽のボロノイ図の試験的な実装はうまくいったので、ゲームの新しい要素として戦略モードと戦術モードを導入する大きな改修を始めた。戦略モードはターン制で「戦闘グループ」と呼ばれる戦闘部隊の集合体を動かし、戦闘が始まると戦術モードに切り替わりリアルタイムの戦闘となる、RTSでよく見られるルールだ。現行のルールだと撤退や補給などの概念が生きにくいと感じたのでターン制の戦略モードを盛り込むことにした。これにより燃料や支援砲撃などの仕様も持ち込みやすくなる。
 このモードを盛り込むために区間単位の情報に基づいた戦闘グループの効果的な移動を研究していて、要衝や戦闘力に基づく影響マップによって各区画のポイントを計算し魅力的なポイントを持つ区画に移動する仕組みを仮実装した。上の写真では上段に様々な影響マップが表示され、下段に各戦闘グループにとって魅力的な区画が緑の濃淡で示されている。かなり大規模な改修になるので3月中旬のアップデートを目指しているが遅れる可能性が高い。

2017年2月5日日曜日

【Unity】 RTS:Bwars 2 偽のボロノイ図


いくつかの目的のためにボロノイ図を生成する機能を実装した。ボロノイ図とは簡単に言うと平面上に基準点を設置することで平面を基準点の数だけ分割し区画別に色分けた図である。
 もっともほんとのボロノイ図を作るには時間がかかるので、今回は基準点を起点に周りに色を塗り始めどんどん塗り広げて他の基準点の色と隣り合った時点で塗りをやめるという手法にしている。CPUをぶん回しているので処理は早くないが200 * 200ピクセルほどならすぐに生成できる。上の図はポアソンディスクサンプリングにより生成した基準点を与えて生成している。ボロノイ図っぽく見える。
 この図の生成時にそれぞれの区画のデータ、つまり区画の中心点(基準点)、区画の範囲(座標の配列)、区画の境界線(座標の配列)、隣接する区画のデータを生成している。この区画のデータを利用して地形の塗りつぶしを行ってみた。従来の地形生成に比べるとやや角ばっている。



 いまのところあまり見た目は冴えないがボロノイ図を利用したランダムな地形の生成の手法をおいおい適用できる準備が整ったといえる。隣接した区画のデータもあるので経路探索への利用も期待できる。
 一番期待しているのは「戦域」への利用で、これは地図上に戦域という区画を設置してAIの戦術決定の基準とすることを目指している。イメージとしてはCOHのマップが近い。


 ひとつの戦域には一つの中隊しか入れないなど制限を設けることになるだろう。AIの戦況評価も戦域が基準になる。つまりAIを大改造することになるということだ。これはやりたくないが避け得ない作業である。

Bwars2のダウンロードはここ