Gameinfo.txt
- Для Half-Life 1/GoldSrc , см. статью liblist.gam .
gameinfo.txt
содержит описание вашего мода. Он содержит такие метаданные, как его имя, ссылка на веб-сайт или руководство, и определяет, какие игры он использует. Он хранится в папке вашего мода и нужен для определения мода в Steam. Source и SDK инструменты используют его, для получения информации о подгружаемом контенте.
SDK launcher сгенерирует gameinfo.txt, как только вы запустите Create a Mod Wizard. Он подходит для разработки, но перед релизом, вы захотите изменить информацию об игре.
Настройки UI
Название
game <строка >
- Название вашего мода в ASCII. Отображается в Steam и на панели задач Windows, но не в главном меню (если вы не определили
title
). title <строка>
title2 <строка>
- Эти значения отображаются в виде Юникода в главном меню вашего мода. Они могут отличаться от отображаемых в Steam и на рабочем столе, если вы используете свой шрифт.
title2
(и 3, 4, и т.д.), чтобы применять разные стили к различным частям вашего названия.Примечание:Вполне возможно, ваш заголовок не будет отображаться, пока вы не отредактируетеClientTitleFont
вresource\clientscheme.res
для изменения шрифта. По умолчанию ("HalfLife2") имеет только определённый набор символов, и большая часть текста не будет отображаться правильно.
gamelogo <логическое значение >
(во всех играх начиная с )
- Вместо отображения текста
title
/title2
, отображает содержимоеresource\GameLogo.res
. См. Добавление Своего Лого в Меню .
Настройки
type <singleplayer_only | multiplayer_only>
- Влияет на появление закладок в настройках. Может так же влиять на скорость загрузки в Steam. Пропустите, если ваш мод как однопользовательский, так и многопользовательский.
nodifficulty <логическое значение >
- Скрывает вкладку Уровень сложности (это случается автоматически, если ваш мод
multiplayer_only
)
hasportals <логическое значение >
(во всех играх начиная с )
- Показывает вкладку настроек "Порталы"
nocrosshair <логическое значение >
- Скрывает настройки прицела в мультиплеере
advcrosshair
- Включает дополнительные настройки прицела.
nomodels <логическое значение >
- Скрывает настройку модели в мультиплеере
nohimodel <логическое значение >
- Скрывает флажок для переключения
cl_himodels
, который использовался в GoldSrc . Отображается правильно, только еслиcl_himodels
расположен в первую очередь!
Список игр в Steam
developer <строка >
- Название вашей команды (или ваше имя!)
developer_url <строка>
- Веб-сайт мода, или ваш. Должен начинаться с
http://
. manual <строка>
- Ссылка на руководство к моду; может быть локальная.
icon <строка>
- Локальный путь, относительно gameinfo.txt, иконка, отображающаяся в Steam. Не пишите расширение файла. Должна быть в несжатом 16x16 TGA.
Большие 32px иконки, которые отображаются в детальном виде должны находится там же где и обычная 16px иконка, и должна называться <icon>_big.tga
.
- Template:2009 add
- Заставляет запустить игру в режиме DirectX8, отсюда - не все эффекты.
Разное
hidden_maps <подраздел>
- Карты, которые нельзя загрузить через диалог "create server" (их можно загрузить через консоль).
- Синтаксис:
mapname 1
, по одной записи на строку. Не пишите.bsp
. Помните, чтобы открыть или закрыть подраздел, используйте { и }.
nodegraph <логическое значение >
(во всех играх начиная с )
- Когда ложь, запрещает движку создавать сетку навигации для NPC .
GameData <строка>
(во всех играх начиная с )
- Путь к FGD, относительно Hammer'а. В настоящее время не имеет никакого эффекта.
InstancePath <строка>
(во всех играх начиная с )
- Найдено в gameinfo TF2 со значением
maps/instances/
...
Подгрузка Контента
Существуют два этапа для добавления игрового контента:
- Монтирование через AppID
- Монтирование папки через searchpath
При этом всё происходит в ключе filesystem
. См. ниже для примера.
SteamAppID <целое число >
- AppID игры, на которой базируется мод. Мод имеет доступ к любому доступному игровому контенту, если необходимый контент не установлен, он не будет воспроизводится. Совет:Для большинства модов это будет либо 215 (Ep1), либо 218 (OB), каждый из них использует разную версию Source SDK Base .
AdditionalContentId <целое число>
(во всех играх начиная с )
- Мод для другой игры имеет доступ только к (и перечисление). В
AdditionalContentId
может быть указан любой номер.Баг:Эту команду понимает движок, но не SDK инструменты! Лучшим решением, на данный момент, является копирование контента игры на локальный жёсткий диск и добавления абсолютного пути вSearchPath
(см. ниже). Не забудьте удалить SearchPath перед релизом. [todo tested in?]- Совет:Исправление доступно здесь
ToolsAppId <целое число>
- Это AppID который в настоящий момент использует SDK. В текущий момент, есть только один работающий ID - 211 (the Source SDK).
SearchPaths
SearchPaths
- это еще одна группа в рамках подраздела FileSystem
. В ней содержится список папок (в виде Game <путь>
, на каждую линию), это список файлов, которые будет искать движок.
Движок начинает поиск с первого пути, и останавливает, как только находит то, что ему необходимо. Это означает, что порядок, в котором вы предоставляете список файлов - очень важен: сначала загружаются файлы из первого пути, а потом файлы из путей, расположенных ниже.
Путь поиска, как правило, является относительным к корневой директории SteamAppID
(то есть где находится hl2.exe) или он абсолютный (например, C:\SomeFolder\
). К счастью, существуют две строки, которые очень полезны:
|all_source_engine_paths|
(основная директорияSteamAppID
и директорияAdditionalContentId
, которую вы используете)|gameinfo_path|
(папка с вашим gameinfo.txt)
Локализация
Source автоматически создаст SearchPaths для локализаций. Если вы монтируете hl2
, а игрок запускает ваш мод на Французском, hl2_french
автоматически смонтируется надлежащим образом.
Пример
Следующий код смонтирует контент Episode Two и Portal :
FileSystem
{
SteamAppId 420 // Ep2
ToolsAppId 211
AdditionalContentId 400 // Portal
SearchPaths
{
Game |gameinfo_path|. // В первую очередь указывается директория вашего мода
Game |all_source_engine_paths|ep2
Game |all_source_engine_paths|episodic // Ep2 так же использует некоторый Ep1 контент
Game |all_source_engine_paths|portal
Game |all_source_engine_paths|hl2 // HL2 всегда должен быть последним
}
}
Episode Two загружается первым и имеет приоритет. Это означает, что как только Ep2 бинарники будут загружены, вы не сможете использовать порталы, однако вы можете использовать GLaDOS и Охотников !
Если вы хотите использовать бинарники портала, вы должны просто поместить его поисковой путь выше Ep2. (Излишне говорить, что если эти бинарники в папке вашего мода, тогда будут загружены они.)
Пример Source 2013
Следующий код смонтирует контент Episode Two и Portal на 2013 версии движка:
FileSystem
{
SteamAppId 243730 // Source SDK Base 2013 Singleplayer
SearchPaths
{
// No /custom/ folders because they can interfere with mod content and shouldn't be in mod gameinfo.
game+mod+mod_write+default_write_path |gameinfo_path|. // Mod
gamebin |gameinfo_path|bin // Mod's Binaries
// Using SSDKBase13 path, then back to /common/ and then using Portal folder.
// |all_source_engine_paths| magic help here too.
game |all_source_engine_paths|../Portal/portal/portal_sound_vo_english.vpk
game |all_source_engine_paths|../Portal/portal/portal_pak.vpk
// Base Half-Life 2 Content: ep2, episodic, hl2
game_lv |all_source_engine_paths|hl2/hl2_lv.vpk
game |all_source_engine_paths|ep2/ep2_english.vpk
game |all_source_engine_paths|ep2/ep2_pak.vpk
game |all_source_engine_paths|episodic/ep1_english.vpk
game |all_source_engine_paths|episodic/ep1_pak.vpk
game |all_source_engine_paths|hl2/hl2_english.vpk
game |all_source_engine_paths|hl2/hl2_pak.vpk
game |all_source_engine_paths|hl2/hl2_textures.vpk
game |all_source_engine_paths|hl2/hl2_sound_vo_english.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
// TODO; find out what is it and why it's here
game |all_source_engine_paths|episodic
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}