Es/Gameinfo.txt

From Valve Developer Community
< Es
Revision as of 09:02, 16 October 2008 by Nihilistik (talk | contribs)
Jump to navigation Jump to search

El archivo GameInfo.txt describe las herramientas SDK y el Source Engine cuyo contenido es necesario para un mod particular o un juego. Es a través de el como las herramientas y el motor saben cargar contenido Half-Life 2, Counter-Strike, o Half-Life 2: Deathmatch cuando están funcionando en el directorio de juego del mod. También es un marcador que las herramientas usan para encontrar tu directorio de juego.

Note.pngNota:Para Half-Life 1 (GoldSrc), ver The liblist.gam File Structure.

Solo un programador configurando un proyecto de mod correctamente muy al comienzo necesitará alguna vez necesitara editar este archivo. En la mayoría de casos, no necesitarás hacerlo, pero si quieres que tu juego esté basado en otro contenido que Half-Life 2, entonces necesitarás modificarlo. Una vez este archivo esté configurado para tu mod, debería ser usado con el resto del contenido del mod. El mismo archivo gameinfo.txt debe ubicarse en el directorio de juego de todos los desarrolladores que trabajan en el mod.

Configuraciones UI

Muchas configuraciones UI, incluyendo el título de tu juego, estan identificadas por gameinfo.txt. Claves incluidas:


Note.pngNota:Valores Booleanos están representados como enteros.
//Informacion General 
game		"Game Title"		// Esto es lo que se presenta en el menú de Steam.
gamelogo	boolean			// En lugar de mostrar el texto title/title2, 
					// el cambio esta en que mostrar el contenido en
					// resource/GameLogo.res donde está el texto.
					// Los controles están cargados en el VGUI del motor, asi que
					// solo puede ser soft-modded usando el archivo gamelogo.

title		"Game Title"		// Esto es lo que normalmente se presenta en el menu del juego.
title2		"..."			// Omitible.
type		singleplayer_only	// También puede ser multiplayer_only. Ayuda a GameUI a saber
					// que elementos UI crear en el panel de Opciones. Omitir 
					// para mods con ambos modos de juego MP y SP.
					// Si lo estableces amultiplayer_only, la 
					// pestaña multiplayer se añadirá primero, de lop contrario 
					// será añadida al final sino singleplayer_only.
nodifficulty	boolean			// Hides the difficulty tab in the Options panel
hasportals	boolean			// Show the Portal tab in the Options panel

//Multiplayer tab in the Options panel
nocrosshair	boolean			// Hides the crosshair selection menu
nohimodel	boolean			// Hides cvar toggles checkbox for cl_himodels
					// Only is displayed properly if cl_himodels is registered
nomodels	boolean			// Hides the model selection menu in the
					// Multiplayer tab in the Options panel.

//Steam Games list
developer	"Team name"		// Your team's name (or just yours!)
developer_url	"Web address"		// Your team's homepage. Must start with http://.

manual		"URL"			// The URL to game manual; can be local.
					// An installer can be engineered to set this value
					// to the correct directory upon installation.

icon		"path/to/icon"		// The icon must be an uncompressed 16x16px TGA.
					// For transparency to work, the TGA must be saved in 32-bit mode
					// with active alpha channel. The path is relative to the mod's
					// installation directory (i.e. the location of gameinfo.txt)
					// and should not include the TGA file extension.

//Create Server dialog
hidden_maps				// Maps between the parentheses do not appear 
{					// on the interface, but are still accessible 
		"mapname" 1		// via the autocomplete list
		"mapname" 1		// and changelevel commands.
}

nodegraph	boolean			// Lets the engine know whether or not to generate nodegraphs for maps.

When you first make a new mod, the gameinfo.txt is missing the title and type keys, so make sure to add these.

Note.pngNota:It's likely your title won't display right until you edit the resource/clientscheme.res file to change the title's font. Half-Life 2 uses a specially made font ("HalfLife2") that only has a specific set of characters; this font won't display most text properly. Change the font listed under ClientTitleFont in clientscheme.res to fix this problem.

SteamAppId

The main relevant thing in the GameInfo.txt file is the SteamAppId variable. If you look inside GameInfo.txt, you'll see a section that looks something like this:

SteamAppId 215 //This will mount all the GCFs we need (240=CS:S, 220=HL2).

The SteamAppId value specifies which game content (i.e. GCF files) is accessible to the game.

Note.pngNota:All mods should use the mod-dedicated 215 AppId unless there is a specific need for another, such as 218 to load the Orange Box Source Engine.
Warning.pngAviso:Be careful when choosing which games on which to base your mod. You will not be able to rely on unshared content from other games.
Warning.pngAviso:To VAC-protect your multiplayer mod, be sure to base it on a multiplayer game. HL2DM is usually a good choice.

The SteamAppId values for the core Source games can be found at Steam Application IDs. Shared GCFs will have 'shared' in their filename and can always be accessed; everything else is private to the game in question.

FileSystem

This section describes various components of FileSystem in detail

ToolsAppId

All GameInfo.txt files should contain a line like this:

ToolsAppId 211	//Tools will load this (ie: source SDK caches) to get
		//things like materials\debug, materials\editor, etc.

This is a special case that tools use so they can load special content that is used by the tools, but is not used by the games.

SearchPaths

The SearchPaths section of the GameInfo.txt file describes where the content is to be found, either on your hard drive or inside Steam cache files. To understand this part, we must take a detour into how programmers using the Source engine access the game's files. All files that a programmer accesses in code must exist under a path ID. A path ID describes one or more locations on your hard drive or inside virtual Steam file systems.

As an example, most of your game's resources like scripts, sounds, model files, and materials are accessed under the "Game" path ID. A programmer might say, "open a file called scripts\weapon_m4a1.txt inside the 'Game' path ID". If you were running a mod in C:\MyMod\Blasters, and you used SteamAppId 240 which would load in the Counter-Strike: Source content, then it would look for the file in these locations:

  • C:\MyMod\Blasters\scripts\weapon_m4a1.txt
  • <Steam install directory>\Steam\SteamApps\username\Counter-Strike Source\cstrike\scripts\weapon_m4a1.txt
  • <inside the virtual Steam file system>\cstrike\scripts\weapon_m4a1.txt

Using path IDs to describe where the files are saves the programmer and artist from having to worry about all these different directories. They can use names relative to the game directory (like scripts\weapon_m4a1.txt or materials\brick\brickwall001a.vmt) and the engine and tools will find the full path to the file wherever it exists, as long as GameInfo.txt describes what the "Game" path ID means.

Inside the GameInfo.txt file, there is a section called "SearchPaths", which describes the path IDs. Most mods will never need to modify the way these are setup from the way they are created when you run Create a Mod from the SDK launcher.

The first part of each line is the name of the path ID, and the second part is where to look for files when this path ID is used. A simple example, which is illustrative, but you would never use (because it uses absolute paths including drive letters, which you can never assume exist on a user's machine) is this:

SearchPaths
{
	TestPathID	C:\TestMod1
	TestPathID	C:\TestMod2
	TestPathID	C:\TestMod3
}

If a programmer were to write code that asked for scripts\weapon_m4a1.txt and specify "TestPathID" as the path ID in code, then the engine would look for the file in these locations:

  • C:\TestMod1\scripts\weapon_m4a1.txt
  • C:\TestMod2\scripts\weapon_m4a1.txt
  • C:\TestMod3\scripts\weapon_m4a1.txt

Since the Source games access most of their content in the "Game" path ID, they do some things for you automatically if you have a path ID called "Game". For each entry with a path ID of "Game":

  1. It adds a "GameBin" path ID, in <dir>\bin
  2. It adds another "Game" path in front of it with _<language> at the end. For example: c:\hl2\cstrike would get a c:\hl2\cstrike_french path added to it if you were running on a French-localized machine.

For the first "Game" search path:

  1. It adds a search path called "MOD" under the same folder.
  2. It adds a search path called "DEFAULT_WRITE_PATH".

The default SearchPaths that would be used in most mods are like this:

SearchPaths
{
	Game        |gameinfo_path|.
	Game        hl2
}

Normally, a path specifier (the part on the right side) is relative to the base directory --The directory where hl2.exe is found. If |gameinfo_path| precedes the path, then it is relative to the directory where GameInfo.txt file instead. For example, if the GameInfo.txt file were in C:\MyMod\Blasters, and it had a path like |gameinfo_path|SomeTestDirectory, then the path ID you were creating would refer to:

C:\MyMod\Blasters\SomeTestDirectory

For Counter-Strike: Source, the GameInfo.txt file has a SearchPaths section that looks like the one above. If your Counter-Strike directory was:

C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source

then it would be saying to look in these two directories:

  • C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source\cstrike

because GameInfo.txt exists here.

  • C:\Program Files\Valve\Steam\SteamApps\username\Counter-Strike Source\hl2

which only exists inside a virtual Steam file system. Template:Otherlang:es Template:Otherlang:en, Template:Otherlang:es:ru,Template:Otherlang:es:pl,Template:Otherlang:es:jp