Zh/Gameinfo.txt

Game Definition Files
:关于HL1/,请查阅.
gameinfo.txt是一个描述起源游戏的配置文件。除了包含诸如模组名称或开发者网站链接之类的元数据外，它还定义了它所依赖的游戏/工具以及引擎用来读取资源的SearchPaths。它位于在MOD的根文件夹中。引擎、SDK工具和Steam都依赖于它。
SDK会在你开始制作一个MOD时，自动生成一个gameinfo文件. 这将会使得你有一个很好的开头, 但是别以为你可以一劳永逸，你还需要在适当的时候编辑它
== 界面设置 ==
=== 名字 ===
影响菜单及窗口标题的关键字
; 
=== 设置 ===
影响选项面板中显示选项卡和选项的关键字
=== Steam游戏相关 ===
影响你的游戏或MOD在Steam库上的显示方式的键值
=== 引擎及工具相关 ===
影响引擎/创作工具的键值和工具本身的一些属性。
== 资源读取相关 ==
用于文件系统的键值
== 搜索路径 ==
SearchPaths是FileSystem中的一个子键值。它将每个搜索路径储存为一个键值。当引擎需要读取一个文件时，它会按顺序遍历搜索路径，在找到所需的文件后停止遍历，因此搜索路径的顺序非常重要。
=== 目录 ===
The directory, which is the value of the key, will either be relative to the SteamAppID's root directory (i.e. where the executable of the game is located), relative to GameInfo.txt or absolute. A example of each one respectively would be this:
 Game |All_Source_Engine_Paths|HL2 // Go to the executable directory, and mount a folder called HL2 in it.
 Game |GameInfo_Path|. // Go to the directory of where GameInfo.txt is located, and mount the folder it's in.
 Game "C:\MyFolderOfContent\content" // Mount this absolute directory, useful for mounting content temporarily.
The 2 variables above will start the search in a certain directory, |All_Source_Engine_Paths| will start the directory within the root folder, and |GameInfo_Path| will start it in the folder where GameInfo.txt is located. Both of these variables can be appended with any number of folders. There are also some special commands you can append in addition to the folders and variables, the known ones are:
* ../ Goes back one folder, this will useful for mounting other games' content like , since AdditionalContentID is deprecated. If you wanted to mount Portal, and your game is in, say for example "<SteamFolder>\SteamApps\Common\MyGame\FolderWhereGameInfoIs", you would create a search path like this to mount it's content:
 // Start in the executable directory, then go back one folder so we're in Common, and then go into Portal/portal and mount portal_pak.vpk
 Game |All_Source_Engine_Paths|../Portal/portal/portal_pak.vpk 
Here is also an example of how to mount a :
 // Start in the executable directory, then go back two folders so we're in SteamApps, and then go into SourceMods and mount the MySourceMod folder.
 Game |All_Source_Engine_Paths|../../SourceMods/MySourceMod
* . This stops the search in the current directory, this should only be used if you want to directly mount where |All_Source_Engine_Paths| or |GameInfo_Path| are. An example of both:
 // Mount both |All_Source_Engine_Paths| and |GameInfo_Path| variables' path.
 Game |All_Source_Engine_Paths|.
 Game |GameInfo_Path|.
* /* Mount every sub-folder and in the current directory, this command is what makes the custom folder work in most update to date Source games. An example of it's use:
 // Mount the custom folder's sub-folders and VPKs.
 Game |GameInfo_Path|custom/*
=== Keys ===
In most older Source games, the only keys for search pathing is Game and Platform, while these keys will suit most search pathing, in Source 2013 a few new keys where introduced that add more control.
目前已知的关键字是:
* Game Adds the path as a simple search path. Will add any content it finds. Also writes sound.cache file in each Game directory.
* Game_Write Marks the search path as a Game write path. It marks the directory as the default directory for writing (what exactly?) for this game. 
* GameBin A special key that requires that the path lead to a game's binary files (where Server.dll and Client.dll are located), and will use any other DLL files it finds. This should lead to your own mod's Bin folder, or the game you're basing it off's Bin folder if you're not building your own DLLs.
* Platform Adds a special search path to the folder containing core engine files, this will usually lead to the game's Platform folder.
* Mod Marks the search path as a Mod path. This is usually where the game executable is. Essential for displaying chapter list in New Game menu, and probably for something else.
* Mod_Write Marks the search path as a Mod write path. This is usually where GameInfo.txt is. It marks the directory as the default directory for writing save files and downloadlists for this mod.
* Default_Write_Path Marks the search path as a Default write path. This is usually where GameInfo.txt is. It marks the directory as the default directory for writing config.cfg, node graphs, screenshots and some other files for this mod. Also a fallback for when either Mod_Write or Game_Write isn't specified.
* VPK Used to mount a by name. Do not put .vpk at the end.
In Source 2013, you may also append keys to each other by separating each key name by a + sign, this way if you need to use one directory for multiple keys, instead of writing this:
 Game |GameInfo_Path|MyFolder
 Mod |GameInfo_Path|MyFolder
It can instead be shortened like this:
 Game+Mod |GameInfo_Path|MyFolder
This saves you time from having to retype the directory over again.
=== 自动读取本地化文件 ===
Source automatically creates localized search paths. If you mount the folder HL2, then when your mod runs in French HL2_French is automatically mounted just above it, overriding any content in HL2. 
=== 示例 ===
一个能够正常在 游戏中使用的 GameInfo.txt
"GameInfo"
{
	game 		"HALF-LIFE 2"
	title 		"HALF-LIFE'"
	type		singleplayer_only
	supportsvr	1
	FileSystem
	{
		SteamAppId				220		// This will mount all the GCFs we need (240=CS:S, 220=HL2).
		
		//
		// The code that loads this file automatically does a few things here:
		//
		// 1. For each "Game" search path, it adds a "GameBin" path, in <dir>\bin
		// 2. For each "Game" search path, it adds another "Game" path in front of it with _<langage> at the end.
		// For example: c:\hl2\cstrike on a french machine would get a c:\hl2\cstrike_french path added to it.
		// 3. For the first "Game" search path, it adds a search path called "MOD".
		// 4. For the first "Game" search path, it adds a search path called "DEFAULT_WRITE_PATH".
		//
		//
		// Search paths are relative to the base directory, which is where hl2.exe is found.
		//
		// |gameinfo_path| points at the directory where gameinfo.txt is.
		// We always want to mount that directory relative to gameinfo.txt, so
		// people can mount stuff in c:\mymod, and the main game resources are in
		// someplace like c:\program files\valve\steam\steamapps\half-life 2.
		//
		SearchPaths
		{
			// First, mount all user customizations. This will search for VPKs and subfolders
			// and mount them in alphabetical order. The easiest way to distribute a mod is to
			// pack up the custom content into a VPK. To "install" a mod, just drop it in this
			// folder.
			//
			// Note that this folder is scanned only when the game is booted.
			game+mod			hl2/custom/*
			// We search VPK files before ordinary folders, because most files will be found in
			// VPK and we can avoid making thousands of file system calls to attempt to open files
			// in folders where they don't exist. (Searching a VPK is much faster than making an operating
			// system call.)
			game_lv				hl2/hl2_lv.vpk
			game+mod			hl2/hl2_sound_vo_english.vpk
			game+mod			hl2/hl2_pak.vpk
			game				|all_source_engine_paths|hl2/hl2_textures.vpk
			game				|all_source_engine_paths|hl2/hl2_sound_misc.vpk
			game				|all_source_engine_paths|hl2/hl2_misc.vpk
			platform			|all_source_engine_paths|platform/platform_misc.vpk
			// Now search loose files. We'll set the directory containing the gameinfo.txt file
			// as the first "mod" search path (after any user customizations). This is also the one
			// that's used when writing to the "mod" path.
			mod+mod_write+default_write_path		|gameinfo_path|.
			// Add the HL2 directory as a game search path. This is also where where writes
			// to the "game" path go.
			game+game_write		hl2
			// Where the game's binaries are
			gamebin				hl2/bin
			// Last, mount in shared HL2 loose files
			game				|all_source_engine_paths|hl2
			platform			|all_source_engine_paths|platform
		}
	}
}
== 使用 XBLAH's Modding Tool 编辑 GameInfo 文件==
The mod information can be edited with through a comprehensive UI without requiring the modder to mess with text files. It includes all the major keys of Source SDK 2013 Single-player and Source SDK 2013 Multi-player, more than enough for the majority of Source modders.
This can be accessed within the tool through Modding > Game info.
File:XBLAH's Modding Tool - Modding - Game info 1.png|Name
File:XBLAH's Modding Tool - Modding - Game info 2.png|Options
File:XBLAH's Modding Tool - Modding - Game info 3.png|Steam games list
File:XBLAH's Modding Tool - Modding - Game info 4.png|Engine and tools
== 站外链接 ==
*XBLAH's Modding Tool Homepage