Создание собственного Portal-мода

From Valve Developer Community
Jump to: navigation, search
English (en)русский (ru)
... Icon-Important.png
Создание уровней Portal

Эта статья описывает процесс создания модификации Portal с нуля. Почему с нуля? Да потому что Valve не предоставляет специальный SDK или шаблон мода для этой игры. Однако, создать свой мод с нуля не так уж и сложно, так что давайте приступим.

Note.pngNote:Portal-моды отличаются от прочих игр на движке Source тем, что исходный код для создания файлов client.dll и server.dll не предоставляется разработчиком, т.е. Valve. Впрочем, создатель мода по прежнему может модифицировать всё, что не вшито прямо в игру, вроде сцен, скриптов, звуков, текстур, моделей и прочего.

Необходимые требования

Чтобы приступить к созданию Portal-мода, вам сперва необходим сам Portal, установленный в Steam. Инструмент Source SDK загружается по необходимости.

Создание мода

Создание мода представляет собой создание игровой директории и последующее её заполнение определенными файлами конфигурации и специальными файлами для мода. Давайте создадим мод с названием "My Portal Mod".

Создание игровой директории

Зайдите в папку C:\Program Files (x86)\Steam\SteamApps\SourceMods и создайте там папку. Назовите её "MyPortalMod". Это и будет наша игровая директория.

Внутри этой новой папки создайте файл GameInfo.txt.

Запишите в него код, схожий с приведенным ниже, и отредактируйте его так, как вам требуется. Для подробной информации о структуре этого файла прочтите эту статью.

Note.pngNote: Эта страница была отредактирована после обновления SteamPipe
"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" - английский вариант названия первой главы. Аналогично можно прописать и названия последующих глав.

Warning.pngWarning:Файл необходимо сохранить в формате Unicode. Для этого в Блокноте выберите Сохранить как... и в окне сохранения выставить нужный параметр у пункта Формат.

Настройка Hammer'а

Warning.pngWarning:Лично у переводчика статьи этот способ не сработал - Hammer просто вылетал при попытке создать карту. При аналогичной ситуации читайте раздел Альтернатива
Note.pngNote:Если вы ещё не создавали мод через 'Source SDK' tool (создание методом 'Source code only' не в счет), то сперва вам нужно создать один. Иначе, вам не удастся создать файл конфигурации для MyPortalMod. Он необходим, чтобы Hammer мог сохранить особые настройки для мода. Ознакомитесь с этой статьёй для подробной информации. Не создавайте мод методом 'Source code only'.
Подтверждаю:А разве vconfig.exe не альтернатива для создания мода?

Запустите в Steam инструмент 'Source SDK' из раздела 'Tools'. Убедитесь, что в пункте 'Engine Version' выбрано "Source Engine 2009". В меню выберите пункт 'Edit Game Configurations', и в новом окне кликните 'Add'. Появится ещё одно окно, спрашивающее имя и игровую директорию. В графе Name пишем название мода (пробелы допустимы), а в Directory - путь к нашей игровой директории игры. В нашем случае это: (C:\Program Files (x86)\Steam\SteamApps\sourcemods\MyPortalMod). Кликните 'OK' на обоих всплывающих окнах. Наша конфигурация создана!

Making your portal mod 00.png

Перезапустите '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'а, стараясь избегать удаления стандартных файлов.

Смотрите также