デミヤンスク包囲戦
-Battle for Frozen Pocket at Demjansk-
デミヤンスク包囲戦 コラム
2021/04/19
Progress Note
装甲師団シリーズであるこのタイトルに、実はドイツ装甲師団は登場しない。しかしこの戦いを初弾として登場させた理由は、程よい戦力バランスと戦力規模、そしてとれる作戦の幅からの判断だ。ナポレオンシリーズで拡大してきた「こまあぷ規格」を、更に前進させる為にちょうど良いモチーフだと思ったのである。
そしてあとひとつ。このタイトルは装甲師団シリーズの目標点ではなく、あくまでプロローグという位置づけである。シリーズはこれから続いていく。ある程度規模を拡大しつつ今後の課題となる要素を仕込む、この独ソ戦の醍醐味を再現するシリーズのスタート地点に立つ為の足場作りこそが、今回の最たる制作テーマである。
装甲師団シリーズのAI構築
従来は手番制であった為、最適な行動ユニットを選択し、そのユニットに最適な行動をとらせればよかった。しかしターン制ではこの部分が大きく異なる。攻める、守る、待つが共存し、戦線を構築し、勝利条件を達成する為に1ターンの中で全ユニットに各々の行動と他ユニットとの共闘をAIの中に与える必要があるのだ。
勝利条件を達成するためには作戦があり、それは刻々と戦況により変化していく。AIを構築する以前に、この為にいくらかの作戦案が想定できるモチーフが必要である。またその場の状況に対応すべく、ユニットさばきの行動ロジックも必要である。これらを実装する事にしたが、全てを実装しても条件により機能しない場合もあり、リリース当初は多くのパターンを封印した。その後、ルールの開放や仕様の変更、生じていたバグのフィックス等を経て、少しずつパターンを開放・修正し、今後の背骨となるAI作りに邁進した。
デミヤンスク包囲戦における作戦の幅
ソ連軍の目標地点はマップ北西部のスタラヤルッサという町である。しかしこの町の正面には、定員割れしているがフル装備のドイツ軍が存在し、スコップ兵のソ連軍での正面突破は難しい。ドイツ軍が後退する理由が必要となる。そこで南方から迂回する作戦の実効性が高まる。南部に戦線を張らせる事で、スタラヤルッサの正面戦力が分かれれば、ここからの突破に現実味が帯びる。この南北の挟撃作戦の切り替えがAI化の目標であったが、リリース当初はバグ対策等で行動パターンを封印していた為、現実的に動くのはver1.1以降となる。
代わってドイツ軍の幅は、ソ連軍の侵攻ルートに左右される。基本的に機動防御戦で敵を削りつつ、援軍と共に反撃に移るというものだ。機動防御とは基本的に防御線を張りつつ、機動予備を捻出して敵に攻撃を仕掛ける戦術である。その機動予備を捻出する為に戦線を縮小したりする必要もある。防御戦とは言え、全軍「亀に成る」のではない点が今回のAI構築の意義である。
ソ連軍の南北挟撃作戦の切り替えAI
先にあげた様に、火力の乏しいスコップ兵がフルスペックのドイツ軍に突撃を仕掛けたところで結果は知れている。この戦いで一番お粗末な展開は、強力な防御戦線を張っているドイツ軍にソ連軍が突撃し、全滅を繰り返す行動である。戦況の流動性も出ない為、恐らくプレイしていても面白い展開にはならない。
ソ連軍はスタラヤルッサが近い点と、部隊が多い点から北方の戦線に攻撃を仕掛けやすいが、上記の問題で失敗する。ドイツ軍の弱点は南部の部隊の薄さである。そこで南方からの攻撃を仕掛けつつ、ドイツ軍がそちらへ動いた隙に北方からの攻撃を開始する切換をAIで判断させる事にしている。今回取り入れたHQユニットの指揮範囲と補給ルールにより、ドイツ軍は南北双方に展開するのが難しくなっている。この連携をAIで判断するようにしてみた。
ドイツ軍の機動防御戦AI
基本的にソ連軍がドイツ軍の戦線に突撃してくれれば、ドイツ軍は亀になっていても勝利する。だが南方から迂回されて包囲されると、デミヤンスクのドイツ軍は補給線を切られて壊滅してしまう。こうした理由から、ソ連軍は南方からの迂回作戦を取るだろう。ドイツ軍にとって幸いな事は、南方のソ連軍が序盤では少ない事である。
そんなソ連軍も次第に増強される。いくらフルスペックのドイツ軍とは言え、スタラヤルッサの南方に多くのソ連軍が投入されると苦しくなる。そこでデミヤンスク周辺の部隊を抽出して機動予備とし、この地に侵攻してくるソ連軍を撃破していく、という戦法の必要性が出てくる。この一連の行動をAI化したのが、今回の作業の割合では一番大きい。このAIは今後のタイトルでもドイツ軍の基本的な行動パターンとなり、独ソ戦の作戦級ゲームとしての面白さを引き出してくれるだろう。
装甲師団シリーズで追加されたルール
装甲師団シリーズで新たに追加されたルールとして主なものは、「HQの指揮範囲」と「補給ポイントとステップ補充」ルールである。これらは前期のAI構築とも繋がるルールで、作戦級ゲームとして是非とも採用したかったルールである。
指揮範囲ルールは戦闘グループの群形勢に寄与し、補給と補充ルールは「攻める」「守る」「待つ」の判断基準にも流用できるからだ。独ソ戦の作戦級ゲームAIを構築する上で、判断や張替えの基準となる敷居をルールに持ち込んだ例と言える。
HQの指揮範囲
この範囲が戦闘グループの行動範囲と設定できる為、戦域の変更を行いやすくし、一定突出したユニットを呼び戻すフラグとする事もできる。また別のグループに属していたユニットを、状況によりグループ替えする事で戦況の流動性に対応できる。何より司令部としての存在を、一個のユニット化している点がプレイヤー側にもわかり易い。
ネックになるのがHQユニットを失った場合である。失っている時点で何かが間違っているのであるが、採用できる行動が限定的となる。それと今回採用したカスタマイズ機能により、指揮範囲の数値も変更できるようにしているので、ゲームバランスが大きく変わる場合もある。一応ながら、AI側でも指揮範囲の数値の変化には対応させている。
補給と補充
このルールにより、補給ポイントが無くなるまでのタイムリミットや補給線を確保する為の行動、部隊の消耗状態、回復までの待ち時間など、これらに存在意義が生じる。多少ルールが複雑になるものの、AI側の判断基準となってそれが面白さに繋がる為、必ずしも駄目機能とは言えない。
こちらもカスタマイズ機能で変更できる為、ゲームバランスが変動する場合があるものの、そうした調整をユーザー側でできるのもゲームとしての機能のひとつと思い、今回採用してみた。なおカスタマイズ機能では、各ユニットレートも兵科ごとに変更可能としている。ともあれ、こうした機能を搭載する事で、今後の装甲師団シリーズの弾みとしていきたい。
2021/03/23
Progress Note
今回のデミヤンスクにおいては、調整作業の中でいくつかの判断を強いられる。その中で特に問題が大きいのが、まずドイツ軍が勝利した戦いにおいてソ連軍の表現をどうするか、次にドイツ軍装甲師団が登場しない戦いで「装甲師団シリーズ」をどう表現するか、の二点である。何故これが問題なのかと言うと、「史実で負けたソ連軍で勝つ」と「有効な装甲師団の運用」という、ふたつのテンション要素を失っているからである。
ひとつ目の問題は、この時期のソ連軍の練度や兵装等の事情や、また先々と比較して圧倒的に火力が弱いというのが打撃力の低さの原因となるのだが、それは戦闘レートを曲げる事でゲームバランスの一定の改善が可能となる。ふたつ目の問題もルールの実装だけなら解決が可能である。但しこの二点の対応策では、自ずとコアなプレイヤー側に不快感が生じてしまう。今回の判断の要は、先々の仕込みと今回の打開策を共存させる事である。
カスタマイズ機能
今回はカスタマイズ機能として、ユニットの情報や一部のルールをユーザー側で変更できる機能を仕込む事とした。今後デミヤンスクでは存在しないドイツ装甲師団が登場する事も踏まえ、二次移動や追加攻撃、オーバーランなどの有無の自由をルールとして最初から実装し、開放するかどうかは後で決めるとした。但しAIの工数にも影響するので、今回はユーザーへの開放は限定的として、今後の開発や更新により開放の段階を調整する方法を選択した。
その一環としてver1.0.0.0より「HQユニット」の初期補給量の変更機能を開放した。その補給量を難易度の基準として、先行配信版を[EASY]と位置づけそこに[NORMAL]設定を加える事で、プレイヤーが実際に変更する際の目安とした。今後は指揮範囲の変更を開放する予定である。兵科ごとのレートも変更可能ではあるものの、こちらの開放はAIの絡みを見て今後決定する。
部隊規模とスタック機能
今回より部隊規模を定め、スタック時の制限とした。スタックは限定的ではあるがルール化し、師団は不可、他は2スタックまでとして、AIの行動に加える準備を整えた。基本的に師団=2、その他は連隊・旅団・HQは1とし、規模値合計2までをスタック可能としている。
なおユニットの耐久度や消滅の目安として、ロンメル1942の延長でステップ数も設定している。アナログでは通常、ユニットの表裏を利用する事でステップ数2として設定される事が多く、半分で戦力半減という事が多いが、今回は基本ステップ5として2で半減する事をルール化してみた。これにより各ユニットは2種類のレートデータを持ち、規定のステップ数で切り替わるシステムを実装している。こちらの開放も追って研究対象としている。
スケジュール管理
今回の制作は1月初めにスタートしたものの実装は1月中盤からという状況だったが、どうしても3月初週までに公開する必要があった。根本的に見ると完全に新規の制作となるので難しいスケジュールではあるものの、ナポレオンシリーズの経験から無理ではないと判断し、決定した。
基本的に新規プログラムとなる関数の部分と、UIに関する部分、ユニットやマップのデータの部分とに完全に分離し、各々の調整を可能とした状態で最後に合体、最終調整へ移るという方法を採用した。ただこの方法だと制作チーム全体で最終的な完成像を共有するのが難しいという難点があり、モチーフに対する最低限の勉強は各自でやってもらうしかなかったが、今後の事も考えて割り切ることとした。
2021/03/06
Designers Note
デミヤンスク包囲戦の今回は、ゲームデザインと実装を平行して作業する制作スタイルを採用した。配信日を3月初めとしていた事と、決定日が1月5日であった事から、約二か月という期間の中で、年をまたいだナポレオンシリーズの手直しと大和堆の補修を初週で行い、この時に基本デザインを終わらせ、翌週から実装開始というスタイルである。実質的な実装期間はひと月半である。
ここでいろいろと起こって予定が変更してしまうが、この内容は次の「Developers Note」で行うとして、結果として段階的なターン制の移行は取り止めて、完全ターン制への移行を決定した。最大の理由は登場ユニットが50では足らず100に増えた事から、完全ターン制でないと包囲・解放戦が再現できないと判断したからである。
ドイツ軍は連隊・ソ連軍は師団と旅団規模
ユニット数が倍に嵩んだ最大の理由は、ドイツ軍を連隊規模とした事と、ソ連軍を師団規模とした事である。なおソ連軍の戦車部隊のみ旅団規模とした。もちろんソ連軍には戦車部隊以外にも旅団規模が存在したものの、それらは複数合わせて1師団ユニットとした。
ドイツ軍ユニットは連隊規模としたので、1ヘクス内にスタックできる様にした。こうして師団規模=2、その他旅団以下=1として、規模=2までスタック可能とした。もちろんHQユニットは規模=1とする。こうしてスタックAIの構築を進める事にした。
新規UIの構築
完全ターン制で新規開発となるのはAIだけでなく、UIも同じである。そこで今回からの試みとして英語表記を採用した。これはナポレオンシリーズから、急に外国の方のユーザーも増えつつある事から、ダイアログまでのUIをできるだけ英語を使う事したのである。
ただ表現方法に関してはいろいろと悩みもあり、できる限り日本人にもわかり易い英単語かつ、外国の方にも通じる言葉選びという点が、ゲームデザインより難しい壁である。特に和製英語などは気づかないまま採用してしまう可能性が高いので、できる限りこの点には配慮していきたい。
スケジュール管理
今回の最大の問題がスケジュール管理である。特にこの数年は若干の改修は行なったものの、基本は「こまあぷシステム」の流用である。まずルールが出来ているか、データが固まっているかを前提として作業を進めていたので、作業管理は一次元管理でよかった。だが今回はこれらを新規で構築していく為、多くのロスを生じさせる可能性が高い。プログラムをいじったらバランスが変わり、データをいじったらまた変わるという「イタチごっこ」がその例である。
よって今回は新規となるプログラムの実装、ユニットデータの実装、UIの確認、の三つを各々のベクトルで管理し、各工程が終わる段階でバランス調整も同時に完了するスタイルを採用した。バランス調整に関しては、基本的にバグが発生し難いデータの変更で行い、プログラムの変更は計算式のみで変更できる事を基本とした。
2021/02/19
Project Note
ソロアプ7作品目は「デミヤンスク包囲戦-Battle for Frozen Pocket at Demjansk-」であり、装甲師団シリーズのプロローグタイトルとして登場させる事とした。1942年の東部戦線を扱っているものの、ゲームタイトルとして登場させるにはマイナーなタイトル感は否めない。そしてもうひとつ。ドイツ軍の装甲師団が登場しないという問題があった。
それでもこのタイトルからスタートする理由としては、程よいバランスと規模、ソ連軍の攻勢を防ぎつつ反撃に移るドイツ軍という基本スタイルが、シリーズの基幹プログラムを構成していく上で作りやすいと判断したからである。
完全ターン制への移行準備
ナポレオンシリーズでは「こまあぷシステム」を改修して、1手番4イニング制を採用した。先行が2回行動、後攻が1回、そして強制戦闘の計4行動で1手番として登場ユニット数を増やしていった。今回はこの延長で50ユニットほどの登場を予定している。
このシステムで無理がある場合はイニング数を増やして対応し、AI構築を進めながら、全ユニット操作できる完全ターン制を追加でアップデートする計画である。このシリーズでは、従来のシステムから大きく変更する箇所が多い為、こうした順を追って後々のシリーズ展開を目指す基幹プログラムを構築していく予定である。
HQユニットと補給システム
ナポレオンシリーズでも取り入れたHQユニットであるが、今回は「司令部機能」として補給と戦闘のハブとなる機能を持たせる事とする。具体的には、補給地点よりHQユニットが補給ポイントを得て蓄積する。戦闘ユニットはHQから補給を得て、被害を回復していくというスタイルである。
これらのルールは別に特別なルールという訳ではなく、クラシカルなアナログゲームではよく見られた表現方法である。装甲師団シリーズではそうしたクラシカルなルール群を採用していきたい。なおアナログゲームではユニットの制約から、ステップ数を2とする場合が多かったが、今回はデジタルである為、この耐久度というか、被害吸収の役割を果たすステップ数を5~7程度に増やして対応してみたい。このステップロスを補給ポイントで回復するというシステムである。