Создание собственного Portal-мода
Эта статья описывает процесс создания модификации Portal с нуля. Почему с нуля? Да потому что Valve не предоставляет специальный SDK или шаблон мода для этой игры. Однако, создать свой мод с нуля не так уж и сложно, так что давайте приступим.
client.dll
и server.dll
не предоставляется разработчиком, т.е. Valve. Впрочем, создатель мода по прежнему может модифицировать всё, что не вшито прямо в игру, вроде сцен, скриптов, звуков, текстур, моделей и прочего.Необходимые требования
Чтобы приступить к созданию Portal-мода, вам сперва необходим сам Portal, установленный в Steam. Инструмент Source SDK загружается по необходимости.
Создание мода
Создание мода представляет собой создание игровой директории и последующее её заполнение определенными файлами конфигурации и специальными файлами для мода. Давайте создадим мод с названием "My Portal Mod".
Создание игровой директории
Зайдите в папку C:\Program Files (x86)\Steam\SteamApps\SourceMods
и создайте там папку. Назовите её "MyPortalMod". Это и будет наша игровая директория.
Внутри этой новой папки создайте файл GameInfo.txt
.
Запишите в него код, схожий с приведенным ниже, и отредактируйте его так, как вам требуется. Для подробной информации о структуре этого файла прочтите эту статью .
"GameInfo"
{
game "My Portal Mod"
title "My Portal Mod"
type singleplayer_only
nodifficulty 1
hasportals 1
nocrosshair 1
nomodels 1
developer " Name "
developer_url " Link "
manual " - "
icon "resource/icon"
FileSystem
{
SteamAppId 400
ToolsAppId 211
SearchPaths
{
game+mod |gameinfo_path|.
platform |gameinfo_path|.
// 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 portal/portal_lv.vpk
game+mod portal/portal_sound_vo_english.vpk
game+mod portal/portal_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
// 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 Portal directory as a game search path. This is also where where writes
// to the "game" path go.
game+game_write portal
// Where the game's binaries are
gamebin portal/bin
// Last, mount in shared HL2 loose files
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}
}
Теперь перезагрузите Steam-клиент. На данном этапе, если всё сделано верно, в списке игр появиться наш мод.
Конфигурация мода
Подготовка
А теперь, давайте создадим некоторые обязательные папки, без которого наш мод не может существовать. Добавьте следующие папки в игровую директорию:
cfg
resource
maps
.
Также, можно добавить и эти папки, если у вас в моде присутствуют свои модели или звуки:
materials
models
scenes
scripts
sound
Создание списка карт
В вашей игровой директории создайте файл maplist.txt
. В нем мы запишем список названий всех карт (без расширения .bsp
), используемых в моде. Это позволит нашей модификации заранее подзагрузить звуки для них, дабы карты запускались быстрее [подтвердить].
Для примера, внесем в наш maplist.txt
две карты: myportalmod_map_00.bsp
и myportalmod_map_01.bsp
.
myportalmod_map_00
myportalmod_map_01
Создание глав
Ваш мод, само собой, будет делиться на главы. Для этого нужно создать определенные конфигурационные файлы в папке cfg
: для первой главы - chapter1.cfg
, для второй - chapter2.cfg
и т.д
В этих файлах прописываются консольные команды, выполняемые при запуске главы. Как правило, применяется одна единственная команда: map название_карты
Например, первая глава начинается на карте myportalmod_map_00. Тогда в файле chapter1.cfg
нужно прописать следующее:
map myportalmod_map_00
Создание файла локализации
Далее создадим файл локализации. Это нужно для того, чтобы можно было легко редактировать или переводить его на другой язык текст, применяемый в моде.
Сначала создадим английскую локализацию. Для этого создайте файл MyPortalMod_english.txt
в нашей папке resource
.
Теперь пропишите в него текст, схожий с приведенным ниже:
"lang"
{
"Language" "english"
"Tokens"
{
"MyPortalMod_chapter1" "The First Chapter"
"MyPortalMod_chapter2" "The Second Chapter"
}
}
MyPortalMod
используется в названии локализации, поскольку точно так была названа игровая директория. "The First Chapter" - английский вариант названия первой главы. Аналогично можно прописать и названия последующих глав.
Сохранить как...
и в окне сохранения выставить нужный параметр у пункта Формат.Настройка Hammer'а
Запустите в Steam инструмент 'Source SDK' из раздела 'Tools'. Убедитесь, что в пункте 'Engine Version' выбрано "Source Engine 2009". В меню выберите пункт 'Edit
Game Configurations', и в новом окне кликните 'Add'. Появится ещё одно окно, спрашивающее имя и игровую директорию. В графе Name пишем название мода (пробелы допустимы), а в Directory - путь к нашей игровой директории игры. В нашем случае это: (C:\Program Files (x86)\Steam\SteamApps\sourcemods\MyPortalMod
).
Кликните 'OK' на обоих всплывающих окнах. Наша конфигурация создана!
Перезапустите 'Source SDK'. Убедитесь, что в 'Engine Version' и 'Current Game'
выставлено 'Source Engine 2009' и 'My Portal Mod', соответственно. Теперь, выберите пункт 'Hammer Editor'. В редакторе зайдите в пункт Tools > Options
. Появится окно 'Configure Hammer'. Выберите вкладку 'Game Configurations' и кликните кнопку 'Add' рядом с 'Game Data Files'. Выберите файл portal.fgd
(C:\Program Files (x86)\Steam\SteamApps\common\SourceSDK\bin\source2009\bin
). Сохраните настройки и перезапустите Hammer.
Альтернатива
Если предыдущий способ не сработал: Hammer вылетает при создании файла или интерфейс отображается неверно... то лучше вообще не трогать 'Source SDK'. Вместо этого проще воспользоваться Hammer'ом, представляемым в самой игре. Он расположен в директории C:\Program Files (x86)\Steam\SteamApps\common\Portal\bin
и представлен файлом hammer.exe
Используемый модом контент можно временно закинуть в игровую директорию оригинального Portal'а, стараясь избегать удаления стандартных файлов.