Gameinfo.txt:ru

From Valve Developer Community
Revision as of 13:05, 20 March 2007 by Coolspot (talk | contribs) (Just created)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Файл GameInfo.txt указывает SDK tools и движку Source какой контент нужен для данного мода или игры. Именно так утилиты SDK и движок узнают загружать ли им контент Half-Life 2, Counter-Strike, или Half-Life 2: Deathmatch когда они были запущены в директории мода. Это также маркер, по которому утилиты находят директорию мода.

Примечание:Для Half-Life 1 (GoldSrc), смотри Структура файла liblist.gam.

Только программист, настраивающий проект мода в самом начале, когда-либо должен редактировать этот файл. В большинстве случаев, вам не придётся редактировать его, но если вы хотите сделать игру на контенте, отличном от контента Half-Life 2, тогда Вам потребуется изменить его. Однажды настроенный, этот файл должен распространяться вместе с контентом мода. Точно такой же gameinfo.txt должен лежать в папке мода всех его разработчиков.

Настройки пользовательского интерфейса (UI)

Много настроек UI, включая заголовок Вашей игры (game's title), обрабатываются gameinfo.txt. Ключи:

Примечание:Булевы значения представляются как целые числа.
//Generic information (пер: "Общая информация")
game		"Game Title"		// Это то, что отображается в игровом меню Steam.
title		"Game Title"		// Это то, что отображается в игровом меню.
title2		"..."			//Можно пропустить.
type		singleplayer_only	//Также может принимать значение "multiplayer_only".  Помогает игровому интерфейсу 
					//узнать какие элементы UI необходимо создать в панели параметров. Пропустите для
					//модов, имеющих оба режима игры MP and SP (одиночная и сетевая).
					//Если установлено в "multiplayer_only", то вкладка "сетевая игра" в меню "параметры"
					//будет добавлена первой, иначе - последней, если не задан "singleplayer_only".
fallback_dir	"Dir"			//Непроверенная функция (Работает в Goldsource)

//Multiplayer tab in the Options panel (пер: "Вкладка 'сетевая игра' в панели 'параметры' ")
nocrosshair	boolean			//Скрыть меню выбора прицела
nohimodel	boolean			//Hides cvar toggles checkbox for cl_himodels
					//Отображается правильно только, если cl_himodels установлено
nomodels	boolean			//Скрыть меню выбора модели во вкладке сетевой игры на панели параметров

//Steam Games List (пер: Список игр Steam)
developer	"Team name"		//Название вашей команды (Или просто Ваше имя!)
developer_url	"Web address"		//Домашняя страница Вашей команды. Должно начинаться с http://.
//--------------------------------------------------------------------------------------
manual		"Address"		//Путь к руководству пользователя
					//Это может быть локальный путь. Программа-установщик 
					//может быть разработана так, что установит этот параметр равным 
					//установочному пути.
//--------------------------------------------------------------------------------------
icon		"path/to/icon"		//Иконка должна быть несжатым TGA 16x16 пикселей.
					//Что бы работала прозрачность, TGA должен быть сохранён в 32-битном
					//режиме с активным альфа-каналом.
					//Этот путь относителен к установочному пути мода
					//(т.е. к тому, месту где GameInfo.txt) и не должен включать
					//расширение TGA файла.

//Create games dialog (пер: Диалог создания игры)
hidden_maps				//Карты заданные между скобками не будут появляться в интерфейсе
{					//но останутся доступными
	"mapname" 1			//(тоесть появятся в автоматических списках)
	"mapname" 1			//для команд "map" и "changelevel".
}

Когда вы только создайте новый мод, gameinfo.txt не содержит ключей "title" и "type", так что не забудьте их добавить.

Примечание:Возможно ваш заголовок (title) не будет отображаться правильно до тех пор, пока вы не отредактируете файл resource/clientscheme.res , и измените в нём шрифт заголовка. Half-Life 2 использует специально разработанный шрифт, который имеет специфический набор символов; этот шрифт будет неправильно отображать большинство текстов.

SteamAppId

Ещё одна важная вещь в файле GameInfo.txt это переменная SteamAppId. Если Вы загляните внутрь GameInfo.txt, вы увидите кусок, который выглядит примерно так:

SteamAppId 215 //This will mount all the GCFs we need (240=CS:S, 220=HL2). 
               // Пер: Это смонтирует все GFC, которые нам нужны (240=CS:S, 220=HL2)

Значение SteamAppId задаёт, контент какой игры (т.е. GCF файлы) доступен этой игре/модификации.

Примечание:Все модификации должны использовать специально выделенный для модификаций 215 AppId , до тех пор, пока не понадобится другой для чего-то специфического.
Предупреждение:Будьте осторожны при выборе игры, на которой будет основываться Ваш мод. Вы не можете копировать не-общедоступный (unshared) контент из других игр.
Предупреждение:Для защиты Вашей сетевой игры с помощью VAC, будьте уверены, что Ваш мод основан на сетевой игре. HL2DM обычно хороший выбор.

Значения SteamAppId для основных игр Source можно найти в Steam Application IDs. Общедоступные GCF имеют слово 'shared' в своём имени файла и всегда могут быть использованы; всё остальное - собственность данной игры.

Часть о файловых системах

Эта часть описывает некоторые компоненты файловой системы в деталях

Раздел ToolsAppId

Все файлы GameInfo.txt будут содержать строку типа этой:

ToolsAppId 211	//Утилиты используют это (в том числе: source SDK), чтобы взять 
		//такие вещи как materials\debug, materials\editor, и т.п..

Это специальный случай, который используется только утилитами, которым нужно загрузить особый контент. И он используется только утилитами и не используется игрой.

Раздел SearchPaths

Раздел SearchPaths файла GameInfo.txt описывает где может быть найден игровой контент, всё равно на жестком диске или внутри файлов кэша Steam. Что бы понять эту часть, мы сделаем отступление о том, как программисты используют движок Source для доступа к файлам игры. Все файлы, к которым обращается программист в коде, должны иметь сосуществующий path ID (Идентификатор пути). Path ID описывает одно или более местоположений на Вашем жестком диске или внутри виртуальных файловых систем Steam.

Например, большинство ресурсов Вашей игры, таких как скрипты (scripts), звуки (sounds), файлы моделей и материалы доступны через path ID равный "Game". Программист может сказать "открой файл называемый scripts\weapon_m4a1.txt внутри path ID с именем 'Game'". Если вы запускаете мод в C:\MyMod\Blasters, и используете SteamAppId 240 , который загрузил бы контент Counter-Strike: Source, тогда бы он искал файл в следующих местах:

  • 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 описывает что значит path ID с именем "Game".

В файле GameInfo.txt , этот раздел называется "SearchPaths", в нём описываются path ID. Для большинства модификаций не требуется менять пути, после того, как вы создали мод, нажав Create a Mod из SDK launcher.

Первая часть каждой строки - это имя path ID, а вторая часть - это где искать файлы, когда используется этот path ID. Вот простой пример для иллюстрации, который бы Вы никогда не использовали, потому что там применяются абсолютные пути, включая буквы дисков, которых может и не быть на компьютере игрока:

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

Если программист напишет код, который запрашивает scripts\weapon_m4a1.txt и укажет "TestPathID" как path ID в коде, тогда движок будет искать файл в следующих местах:

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

С тех пор как Source-игра получает свой контент используя path ID с именем "Game", она делает некоторые вещи для Вас автоматически, если у Вас есть path ID с именем "Game". Для каждой записи с path ID равным "Game":

  1. Добавляется path ID с именем "GameBin" , и путём <dir>\bin
  2. Добавляется другой путь с "Game" в начале, и заканчивающийся на _<язык>. Например: c:\hl2\cstrike даст дополнительный путь c:\hl2\cstrike_french, если вы запускаете мод на компьютере с Французской локализацией.

Для первого пути поиска "Game":

  1. Добавляется путь поиска с именем "MOD" в той же папке.
  2. Добавляется путь поиска с именем "DEFAULT_WRITE_PATH".

По умолчанию SearchPaths который может использоваться в большинстве игр выглядит примерно так:

SearchPaths
{
	Game        |gameinfo_path|.
	Game        hl2
}

В норме, путь (правая часть) - относителен к базовой директории - директории, где находится hl2.exe. Если |gameinfo_path| выше базовой директории, тогда пути относительны того места, где находится GameInfo.txt . Например, если файл GameInfo.txt находится в C:\MyMod\Blasters, и есть путь типа |gameinfo_path|SomeTestDirectory, тогда path ID , который вы создали, указывает на:

C:\MyMod\Blasters\SomeTestDirectory

Если для Counter-Strike: Source, файл GameInfo.txt имеет часть SearchPaths , которая выглядит как вышепредставленная. И если ваша папка с Counter-Strike:

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

тогда поиск файла будет производится в следующих двух папках:

  • 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.Template:Otherlang:ru Template:Otherlang:ru:en,Template:Otherlang:ru:pl,Template:Otherlang:ru:jp