マップ作成法

このページでは,配布されている以外のマップを自作する方法を説明します.

マップ作成という文化:

大戦略系のゲームでは,「人間同士で対戦して面白いマップ」「コンピュータと対戦してぎりぎり勝てそうなマップ」 「意趣を凝らしたマップ」などを自作して交換・配布することがしばしば行われます.

本ゲームでも,例えば「陣形を考慮しないと勝てないマップ」「特定のユニットが極端に重要なマップ」など (人間と,もちろんコンピュータの)思考ルーチンを試すような多くのマップが望まれます.

将来的には,マップエディタ,マップの投稿・ユーザによる評価システムの導入を検討していますが, とりあえず現状では,テキストファイルを直接編集してもらう形を紹介します.

マップファイルの形式:

マップファイル(拡張子 .tbsmap)は,サイズ・地形・ユニットの3パートからなるテキストファイルです.
下記の8×6の小さなマップと対応するマップファイルは以下の通りです.
こちらからダウンロードもできます.



SIZEX[10];SIZEY[8];
TURNLIMIT[19];HPTHRESHOLD[10];
UNITNUMRED[4];UNITNUMBLUE[3];
UNIT[2,6,infantry,0,10,0];
UNIT[2,5,infantry,0,8,1];
UNIT[1,1,fighter,0,10,0];
UNIT[3,5,panzer,0,10,0];
UNIT[8,2,cannon,1,10,0];
UNIT[8,1,attacker,1,10,0];
UNIT[7,2,antiair,1,10,0];
MAP[0,0,0,0,0,0,0,0,0,0];
MAP[0,2,2,2,2,2,2,2,2,0];
MAP[0,2,2,3,1,1,1,1,1,0];
MAP[0,2,3,5,5,5,5,5,5,0];
MAP[0,3,1,5,1,1,1,3,3,0];
MAP[0,1,1,5,1,1,3,3,4,0];
MAP[0,1,1,5,3,3,4,4,4,0];
MAP[0,0,0,0,0,0,0,0,0,0];

[一行目]
 マップのサイズを表します.
 SIZEX[] の中に横サイズ+2,SIZEY[] の中に縦サイズ+2 を入れてください.

[二行目]
 TURNLIMIT[]の中には判定に移行するターン数を記入してください.
 HPTHRESHOLD[]は判定の際に総HP量の差がどこまでを引き分けとするかの定義です.
 例えば青の総HP15 赤の総HP10の場合においてHPTHRESHOLDが5の場合は引き分けの判定になります.
 4以下の場合は青の勝利となります.

[三行目]
 UNITNUMRED[] の中に先攻赤軍のユニット数,UNITNUMBLUE[] に青軍のユニット数を入れます.
 それぞれにセミコロン ; を忘れずに.

[ユニットパート]
 ユニットは,UNIT[]; を用いて,1ユニットごとに書きます.
 中身は,X座標,Y座標,ユニット種類,所属,HP,行動終了フラグの6つです.
 ・X座標は(実際利用できる)左端が1です.Y座標は上端が1です.
 ・ユニット種類は F=fighter, A=attacker, P=panzer, U=cannon, R=antiair, I=infantry と書きます.
 ・所属は先攻赤軍なら0,後攻青軍なら1です.
 ・行動終了フラグは通常0(未行動)ですが,先攻側ユニットを1(行動終了)にできます.

[地形パート]
 地形は,MAP[]; を用いて横1行ごとに書きます.
 1は平原を,2は海を,3は森を,4は山を,5は道路を,6は陣地を表します.0は侵入禁止区域です.
 周囲1マス分は必ず0で埋めてください.そのため,8×6のマップでも,データ上は10×8になります.

上記ファイルを map フォルダに入れておけば,実行時に読み込むことができます.
楽しいマップを作成してください.


JAIST ターン制戦略ゲーム 学術用基盤プロジェクト