Ja/Gameinfo.txt

Game Definition Files
GameInfo.txtのファイル構造
GameInfo.txtは特定のMODやゲームにどのコンテントが必要なのかをSDKツールやSourceEngine向けに記述するファイルです。 これを使うことによってMODのゲームディレクトリ内でツールやエンジンを実行してもHalf-Life 2、 Counter-Strike、もしくはHalf-Life 2: Deathmatchのコンテントを読み込むことができます。 またこれはツールがゲームディレクトリを見つけるためのマーカーでもあります。
注意: このファイルを編集する必要があるのはMODプロジェクトを最初に設定するプログラマだけです。 大抵の場合において編集する必要はありませんが、Half-Life 2以外のコンテントを元にしたゲームを作りたいのなら、変更する必要があります。 自分のMOD向けの設定が完了したら、このgameinfo.txtはMODのコンテントとともにリリースされる必要があります。 MODの作業をしている全ての開発者のゲームディレクトリには同一のgameinfo.txtがあるべきです。
=UI(ユーザインタフェース)設定=
ゲームのタイトルを含む多くのUI(ユーザインタフェース)設定はgameinfo.txtによって指定されます。 以下のキーがあります:
 game		"Game Title（ゲームのタイトル）"		// これがSteamのゲームメニューで表示されます
 title		"Game Title(ゲームのタイトル)"		// これが実際のゲームメニューで表示されるタイトルです
 
 title2		"..."			//省略可能
 title3		"..."			//省略可能(2つ以上のタイトルのテストはされていません)
 title#		"..."			//省略可能(2つ以上のタイトルのテストはされていません)
 
 type		singleplayer_only	//シングルプレイのみの場合、他にmultiplayer_only（マルチプレイのみ）の指定も可能
 					//様々なUI要素とゲームルールの定義
 					//、両方のModの場合は省略
 
 nocrosshair	boolean			//オプションのマルチプレイヤータブでの照準選択メニューを隠します。
 nohimodel	boolean			//不明
 nomodels	boolean			//不明
 
 developer	"Team name(チーム名)"		//開発したチームの名前(もしくは個人名)
 developer_url	"Webアドレス"		//チームのホームページ http://から始まる必要があります
 
 icon		"path/to/icon"		//アイコンは非圧縮の16x16ピクセルのTGA
 					//MODのインストールディレクトリからの相対パス
 					//(GameInfo.txtのあるディレクトリ)で、TGAのファイル拡張子は不要
 hidden_maps //指定したマップはインタフェースに表示されませんが
 { //アクセスは可能です
 	"mapname" 1
 	"mapname" 1
 }
最初に新しいMODを作成するときには、gameinfo.txtにtitle(ゲームタイトル)とtype(シングル・マルチ)のキーがないので、それらの追加を忘れないようにしてください。
=GameInfo.txtの使用の基本=
GameInfo.txtで重要なのはSteamAppId変数です。 GameInfo.txtの内部を見ると、以下のようなセクションがあるはずです:
SteamAppId 220 // 必要なGCFをマウントします(240=CS:S, 220=HL2)
GameInfo.txtでのSteamAppIdの値が、このゲームではどのゲームコンテント (Steam .GCF files) を利用するかを指定しています。
Source Engineの主要ゲームのSteamAppIdの値はに説明があります。
さらにSteam UIから見えるように開発者名やURLの情報を追加することもできます。 を参照してください。
=GameInfo.txtの応用トピック=
このセクションではGameInfo.txtの様々な要素についての詳細を説明します。
==ToolsAppId==
全てのGameInfo.txtには以下のような行が含まれる必要があります:
ToolsAppId 211
これはゲームでは使用されないがツールでのみ使われるコンテントがある特別な場合です。
==SearchPaths==
GameInfo.txt内のSearchPathsセクションはどこでコンテンツが見つかるか、ハードドライブもしくはSteamキャッシュファイル内部を指定しています。 この部分を理解するには、まずプログラマがどのようにSource Engineのゲームファイルアクセスを使用しているかを回り道して説明する必要があります。 コード内でプログラマがアクセスするファイル全てはpath IDの下の存在する必要があります。 path IDはハードディスク、もしくはSteamの仮想ファイルシステム内部の1つ以上の場所を指定しています。
例として、スクリプト、音、モデルファイル、そしてマテリアルといったほとんどのゲームマテリアルは"Game"というpath IDを使ってアクセスされます。 プログラマは「'Game'path IDの中のscripts\weapon_m4a1.txtというファイルを開く」などと言います。 もしModをC:\MyMod\Blastersで実行し、Counter-Strike: Sourceのコンテントを読み込むSteamAppId 240を使用していたのなら、以下の場所でファイルを探すことになるでしょう:
* C:\MyMod\Blasters\scripts\weapon_m4a1.txt
* <Steamインストールディレクトリ>\Steam\SteamApps\username\Counter-Strike Source\cstrike\scripts\weapon_m4a1.txt
* <Steam仮想ファイルシステム内部>\cstrike\scripts\weapon_m4a1.txt
path IDを使ってファイルを指定することで、プログラマやアーティストがこれらの違うディレクトリの心配をする必要がなくなります。 ゲームディレクトリからの相対でのファイル位置(例えばscripts\weapon_m4a1.txtやmaterials\brick\brickwall001a.vmt)を使えば、GameInfo.txtが"Game"path IDの指定をしている限り、エンジンやツールはファイルが存在する場所をフルパスで見つけ出します。
GameInfo.txtファイルの内部にはpath IDを指定する"SearchPaths"セクションがあります。 大抵のModにおいてはSDKランチャーのCreate a Modで作成されたものから編集する必要はないでしょう。
それぞれの行の最初の部分はpath IDの名前で、次の部分はそのpath IDが使用されたときにファイルを探す場所を指定しています。 解説のためで実際には使用しない(ドライブ名も含んだ絶対パスを使っているため、ユーザマシンにあると仮定できない)簡単な例は以下のようになります:
TestPathID	C:\TestMod1
TestPathID	C:\TestMod2
TestPathID	C:\TestMod3
ここでプログラマがpath IDを"TestPathID"に指定してscripts\weapon_m4a1.txtを呼び出すコードを書いたとしたら、エンジンは以下の場所でファイルを探します:
* C:\TestMod1\scripts\weapon_m4a1.txt
* C:\TestMod2\scripts\weapon_m4a1.txt
* C:\TestMod3\scripts\weapon_m4a1.txt
Source Engineのゲームはほとんどのコンテントを"Game" path IDを使ってアクセスしているため、"Game"という名前のpath IDがあると上と同じようなことが自動的に実行されます。 "Game"というpath IDのエントリーそれぞれに対して:
# <dir>\binに"GameBin"という名前のpath IDを追加します
# 後ろに_<language>が追加されたパスも"Game"に追加します 例えば: 
c:\hl2\cstrikeと指定した場合にはフランス語のマシンでの実行時にc:\hl2\cstrike_frenchパスも追加されます。
最初の"Game"サーチパスに対しては:
# "MOD"というサーチパスを同一のフォルダに設定します
# "DEAULT_WRITE_PATH"というサーチパスを同一のフォルダに設定します
ほとんどのMODで使用されるデフォルトのSearchPathsは以下のようになります:
Game |gameinfo_path|.
Game hl2
通常の場合、パスの指定(右側の部分)はhl2.exeがあるベースディレクトリに相対になります。 もし|gameinfo_path|がパスの前にある場合は、GameInfo.txtがあるディレクトリからの相対パスになります。 例えば、GameInfo.txtがC:\MyMod\Blastersにある場合に、path IDが|gameinfo_path|SomeTestDirectoryというパスを指定していると:
C:\MyMod\Blasters\SomeTestDirectory
Counter-Strike: SourceのGameInfo.txtでは上のようなSearchPathsセクションがあります。 もしあなたのCounter-Strikeのディレクトリが:
C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source
だったとすると、次の2つのディレクトリを見ることになります:
* C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source\cstrike
GameInfo.txtがここにあるからです。
* C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source\hl2
これはSteamの仮想ファイルシステムのみに存在しています。