2012年10月09日
川俣晶の縁側ソフトウェア六角大戦開発日誌 total 7384 count

Windows 8用SLG「六角大戦」販売開始へ

Written By: 川俣 晶連絡先

「弊社2番目のWindows Store Appである「六角大戦」が販売開始された」

「2番目って、これ1つしか無いよ」

「1番目のソフトはまだ審査を通ってないんだよ」

「えー」

狙い目の問題 §

「なぜ君がこんなゲームを作ったのか説明してくれよ」

「六角形のゲームは嫌いではない。それなりにやった」

「それは、今になって作った理由になってないよ」

「うん。いい質問だ。実は六角大戦の原形ソフトを作ったのは、10年ぐらい前なのだ」

「えー」

「名前はHexaBoard。C# 1.0の時代に作った。試作品として作った。実は六角大戦のマップグラフィック、ユニットグラフィック、各種ユニットデータ、デュエルワンとミニマムフィールドのマップはその時に作ったものなのだ」

「何を求めて作ったの?」

「HexaBoardのポイントは、3つあった」

  • C#で書く
  • データはXMLで保管する
  • 何もかもプレイヤーが自由に作れるが、破綻無くコンピュータ思考が対応できる

「3番目の特徴が六角大戦とはかなり違うよ」

「実は、六角大戦の思考ルーチンは、ユニットセットに依存しない。たとえば、フラグを守るために対空機銃車を配置するだろう? あれは実はフラグを守るために対空機銃車を配置せよというコードは書かれていない。できるだけ多くの敵に攻撃できるユニットの中でもっとも安いユニットを配置せよというコードが書いてある。だから、ユニットセットが違えば自動的に配置するユニットも変わるのだ」

「ユニットエディタが付いてないよ」

「時間が無かったので、今回はマップエディタだけにした。残りは将来への布石だ」

「編集できるマップが1つきりというのも?」

「単純に時間が無いからだ。もっともロードセーブできるので、事実上無限の数のマップを作れる。一度にプレイできるカスタムマップの種類が1つだけという制約だ」

XMLの問題 §

「なぜ開発が頓挫したの?」

「XMLを活用するために、スキーマ言語のRelaxからXML文書を読み書きするコードを自動生成するツールの試作品があったのだ。RelaxerというJava用のツールが流行っていた時代だ。C#用の似たようなコンセプトのツールの試作品を作ったので、それを使ってロードセーブ機能を実装したのだが、これはダメじゃないだろうかと思い始めた」

「なぜ?」

「構造が硬直的すぎるのだ。データ構造が変化するとすぐ対応できなくなる」

「そうか」

「だから今回は素直にデータをXML形式で読み書きするスタイルに転換したよ。スキーマレスで、柔らかい。バージョンアップで項目が増えても破綻しない構造だ」

「そうか」

「保存データなんか、ただのXMLのシリアリズだ。凝ったことは何もしていない。シリアライズの時に存在していない項目がデシリアライズ時にあっても破綻しない技術が確立済みだからだ」

「そんなことできるの?」

「できる。拙著のダイナミックプログラミングの付録を読んでくれ。Windows Store Appでは使うクラスが違うが考え方は同じで良い」

自滅の問題 §

「このゲーム、時々コンピュータ思考が自滅するよ」

「人間プレイヤーも時々自滅するよ」

「なぜ自滅があるの?」

「資金切れという敗北条件を導入しているからだ」

「資金切れとは何?」

「対人対戦で姑息な引き延ばし策を使われると相手が飽きてしまうので、ある程度以上の引き延ばしができないようにするためのシステムだ」

「それによってゲームはどう変わるの?」

「たとえば、劣勢でも敵の資金が乏しいと思うなら、たとえ負けても戦闘を仕掛けて相手に出費を強いる方法で逆転できる可能性がある」

「つまり、強力で高価なユニットを多数買って戦闘で優勢になっても、その分だけ資金アウトで負けるリスクが高まるわけだね」

「そうだ。ただし、コンピュータ思考はかなりバカなので、初期配置が悪いと資金アウトする確率が跳ね上がる。そこは生暖かい目で見て欲しい」

マップの問題 §

「ブリッジ・レーサーって何?」

「橋を競争で奪い合うマップだ」

「どこかのレース・ゲームと名前が似ているよ」

「気のせいだ。橋の争奪を競い合うという意味でブリッジ・レーサーという名前が付いている」

「他にも変な名前のマップが一杯あるよ。鎮守湾攻撃とか空軍犬戦略とか」

「何かに似ている気がするのは気のせいだ」

「ひ~」

将来計画 §

「このゲームはいくつかの点で未完と言える」

  • ユニットエディタを備えていない
  • チップエディタを備えていない
  • カスタムマップが同時に1つしか扱えない
  • コンピュータ思考の初期配置がランダムでバランスを考えていない
  • 移動思考が直線での移動しか想定していない (障害物を遠回りで移動できない)
  • 日本語版しか存在しない

「エディタ関連はUIを全部新規で作ったので手間が追いついていないだけだ。みんなが買ってくれれば追加していける」

「思考の問題は?」

「10年前の試作品をそのまま使っている。そこは改良が必要だ」

「直線だと何が問題なの?」

「たとえば、談合Sアタックのマップは本来なら遠回りしてしか進めないというデザインだったが、思考が受け付けないので、移動の障害となる地形を並べるというデザインに変更されている。マップのデザインにも影響を与えている問題だ」

「遠回りして進むか飛行機で飛び越えるか、プレイヤー間の談合で決めろ、とやりたかったマップなのだね」

「うむ」

「ところで、このマップに意味の無い海があるのだけど」

「SPR ATKと書いてある。意味は良く分からない。というか綴りが間違ってるっぽいぞ」

「SPR ATK。略してSAだね」

「談合SAだ」

「このマップに坂は無いの?」

「残念ながらシステム上坂という設定は存在しない」

「日本語版しか無いとは?」

「英語版が欲しいと思うが、翻訳すべきリソース量が多いので考え込んでいるところだ。手を上げてくれる会社があれば任せても良いと思っている。中国語版ハングル版については、やりたいところがあればソースをライセンスしてもよいと思っている」

「では、君自身もこれを拡張していく意志はあるのかい?」

「気持だけなら拡張したいと思う。でも、どこまで可能かは状況次第だ」

「ラプターっぽい戦闘機で遊びたいとか、フランカーっぽい戦闘機で遊びたいとか、そういう+アルファのリクエストの多ければできるわけだね」

「それもあるが、売れる数も多ければだな」

「ぎゃふん」

「そうそう。ゲーム中にデザイナーズ・ノートがあるから忘れずに見てくれよな」

補足 §

「自分以外がプレイしてどうなるのかは、自分には分からないことだ。だからゲームバランスがこれで良いかは微妙なところもある。この兵器強すぎとか、この地形は防御力ありすぎとか、このマップは初期予算が少なすぎとか、意見があればどんどんくれ。ゲームバランスは随時バージョンアップ時に修正していく可能性がある」

「ユニットエディタがあれば自分で修正することもできるだけだね?」

「まあそうだな。今はまだ無いけど、組み込める構造になっている」

補足の補足 §

「ちなみに今のユニットセットは入門用のシンプルセットとしてデザインされていて本命のユニットセットというわけでも無い」

「本命のユニットセットってどんなセット?」

「ユニットが全部艦船とか、全部女の子とか、全部モンスターとか、全部宇宙戦艦とか。いろいろ作れる可能性の萌芽は含んでいるアプリだ。今はまだ無理というだけ」

「ただの可能性か」

「チャンスがあれば実現できる可能性だ」

六角大戦

Windows 8用Windows Store App 六角大戦2 定価280円 (試用版アリマス) (六角大戦2の詳細、入手はこちらへ)