Особенности картостроения для Alien Swarm

в 11:12, , рубрики: game development

В этой статье описаны тонкости, о которых следует знать создавая уровни для игры Alien Swarm. Данная статья подойдет тем, кто уже умеет создавать карты используя Hammer из Source SDK или имеет представление о том как создавать примитивные объекты в этом редакторе.

Alien Swarm SDK доступен для свободной загрузки через Steam в меню Library -> Tools. После загрузки и установки вы сможете запустить Hammer World Editor и приступить к работе.

SDK устанавливается по следующему пути:
C:Program Files (x86)SteamSteamAppscommonalien swarm
Все последующие пути будут относительно этой папки или папки common

Где найти примеры карт?

— Несколько примеров поставляется с SDK: alien swarmsdk_contentmapsrc
Внимание! В исходниках официальных карт ASI-Jac1-LandingBay_01 и т.п. вы не увидите всех сущностей, так как часть этих сущностей находится в отдельных VMF файлах в папке instances.
— Используя программы GCFScape и BSPSource декомпилируйте любую понравившуюся вам карту. И смотрите как там делаются вещи.
— Рекомендую декомпилировать официальную кампанию и изучать ее в первую очередь. Так же весьма полезными являются пользовательские кампании Lana's Escape, Tears of Tarnor, City17, Paranoia, Reduction, Extermination.

Как настроить окружение для удобной работы?

Для вашего аддонакампаниикарты потребуется отдельная папка на диске. Допустим вашу кампанию вы назвали Bug Hunt.
— Создайте папку D:BugHunt
— Создайте базовую структуру подпапок и файлов: maps, materials, resource… см. «alien swarmswarmaddonsExampleAddon»
Внимание! Не используйте дефолтные названия файлов и папок CustomCampaignCredits.txt, ExampleCampaign.txt, example_map_1.txt иначе будут конфликты. Сразу переименовывайте эти файлы в ваши BughuntCredits.txt, resourcecampaignsbughunt.txt, resourceoverviewsbughut01.txt и т.д. addoninfo.txt не переименовывайте.
— Откройте файл alien swarmswarmgameinfo.txt и допишите путь к вашей папке:

        "SearchPaths"
        {
            "Game"    "|gameinfo_path|."
            "Game"    "swarm_base"
            "Game"    "platform"
            "Game"    "D:BugHunt"
        }

После того как вы добавили ваш путь в конец списка все подпапки и файлы вашего пути как будто монтируются в папку «alien swarmswarm». Ваша кампания видна в игре, ваши текстуры и звуки видны в Хаммере и в игре. Теперь вам не нужно каждый раз создавать VPK если вы хотите протестировать вашу кампанию. Вам больше не нужно загрязнять папку игры пользовательскими файлами, текстурами, моделями, скриптами. Вы все держите отдельно, в своей папке.

Что такое VMF файл?

Hammer (Хаммер) хранит исходники карт в формате VMF. Это текстовый файл с описанием всех сущностей, брашей и т.п. в вашей карте.

Как называть VMF и BSP фалы?

В Alien Swarm все считается кампаниями. Даже если у вас одна карта — это кампания. Придумайте название вашей кампании, например Extermination. Называйте VMF файл примерно так «extermination01road» или просто «extermination01». Можете добавлять underscore "_" в имя файла если вам так удобно. Такое наименование дает возможность игрокам, умеющим пользоваться поисковиком гугл или яндекс найти вашу кампанию в интернете и скачать ее. Дело в том, что когда игрок смотрит список выделенных серверов он видит только названия BSP файлов, а не кампаний. И если там что то типа myfirrstlevel.bsp то такую кампанию он вряд ли найдет в интернете. А по поиску «alien swarm extermination campaign» вероятнее всего найдет. Так же советуют в поисковик добавлять слова moddb swarmarmory fpsbanana так как это 3 сайта на которых выкладывают аддоны для Сворма.
Внимание! После компиляции не переименовывайте BSP файл, файл будет не валиден.

Как создать самый простой уровенькарту?

Вам нужно:
— Создать браш с видимой текстурой. Это будет «земля» по которой ходит игрок.
— Создать сущность info_player_start с верхней стороны браша. Вики советует ставить по 8 таких сущностей на каждую карту. Хотя игроков в игре может быть максимум 5.
— Создать браш с текстурой nolight который по всем размерам намного больше всей карты. Он окутывает карту и не дает свету выходить за пределы мира.
— Сделать этот браш пустым: клик правой кнопкой в любом 2Д окне — Make Hollow, значение 32 можно оставить по умолчанию.
— Ctrl + T или правый клик Tie to Entity, вводим func_brush в поле для имени класса и Enter. Мы поменяли класс нашего браша на func_brush.
— Теперь задаем ему имя в поле Name: structure_seal и Enter.

Выполнив эти шаги вы можете скомпилировать вашу карту по F9 и запустить ее в игре. Если в карте нету источников света то все в ней будет на 100% освещено, fullbright.

Что должно присутствовать в любой карте для Alien Swarm?

Две сущности: logic_auto и env_tonemap_controller. Советую их копировать из уже готовых карт или семпловых уровней которые идут вместе с SDK. Можете поиграться с параметрами. Они влияют на количество блума. Если этих сущностей в вашей карте не будет, то цвета будут очень яркими, режущими глаза.

Как компилировать?

Для компиляции карт советую сразу переключится из Нормального режима в режим Эксперта, нажав на соотвутствующую кнопку.
Тут у вас больше вариантов и параметров. Вы избегаете странного поведения, при котором карта не может автоматически открыться в игре после компиляции. Во время разработки карты я пользуюсь вариантом Fast и лишь когда нужно посмотреть тени и как красиво ложится свет я использую Full. Для релиза карты естественно нужно использовать опцию Full.

Как подготовить карту к релизу?

— Скомпилировать ее с настройками Full и открыть в игре
— Открыть консоль и прописать
stringabledictionary
buildcubemaps
nav_generate

После buildcubemaps игра перезагрузит уровень, так же и после nav_generate. buildcubemaps создает технические файлы и записывает их в BSP файл в папке swarm/maps. nav_generate создает навигационный меш и создает NAV файл рядом возле BSP. Желательно включать NAV файл в поставку вашей карты(VPK), что бы потом через пол года народные умельцы не поставляли его отдельно в аддоне NavMesh.vpk

— Пробежаться по уровню с
sv_cheats 1
asw_god 1
asw_marine_speedscale_hard 6

и проверить что все работает и можно это давать людям.

— Все готово, вы можете приступить к запаковке вашей карты. Ваш результат находится в папке swarmmaps

Внимание! После компиляции не переименовывайте BSP файл, файл будет не валиден.

Что такое VPK и как с ним обращаться?

VPK — формат файла созданный компанией Valve. Созданные пользователями аддоны для игр Left 4 Dead, Alien Swarm и т.п. распространяются файлами в этом формате. Сама Valve использует его для хранения медиа данных своих игр: текстуры и материалы, скрипты и т.п.
Думайте про VPK как про архив, внутри которого находятся файлы и папки. Думайте, что во время запуска игры она в памяти извлекает все файлы из VPK файлов в папку «alien swarmswarm» и перезаписывает все что в ней находится. Таким образом если вы в свой VPK положите какой-то, уже существующий в папке swarm файл, то в игре будет использоваться именно ваш файл, а не оригинальный. Таким образом вы можете менять все файлы игры используя VPK файл.

Как открыть VPK файл?

Используя программу GCFScape.

Как создать VPK файл?

Создать этот файл можно перетащив папку на ярлык для VPK.EXE. Создайте ярлык для файла «alien swarmbinvpk.exe». Перетащите папку на этот ярлык и рядом с перетаскиваемой папкой появится ваш VPK файл.

Как настроить TXT файлы кампании?

— С каждым публичным релизом вашей кампании вам следует менять версию в файлах addoninfo.txt, resourceoverviewsbughunt01.txt. Так же важно что бы в этих файлах была указана рабочая и постоянная ссылка на веб-страничку, откуда можно загрузить вашу карту. Это поля addonversion и addonURL0 в файле addoninfo.txt, version и website в файле bughunt01.txt. Советую использовать sites.google.com, создать там свою страничку для стабильной ссылки на вашу карту.

Как выпустить новую версию карты?

Итак вы скомпилировали вашу карту и у вас теперь есть 3 файла: в swarmmaps: BSP, NAV. В папке swarmmapsgraphs: AIN.
— Переместите эти файлы в вашу директорию D:BugHunt учитывая пути.
— Поменяйте версию addoninfo.txt и во всех файла описаний ваших карт в папке resourceoverviews
— Создайте VPK
— Заархивируйте VPK используя 7z
— Загрузите архив в постоянное хранилище. Советую drive.google.com, www.moddb.com/games/alien-swarm/addons, gamebanana.com. Swarmarmory.com к сожалению все чаще в оффлайне.
— Опубликуйте об этом новость на форумах игры, в игровом хабе, в Стим группе модов и кампаний

Несколько напутствий

Первое, если вы хотите что бы на вашей карте играли часто — не делайте карту на выживание. Их много. Их никто не играет. Сделайте хоть и простую, но карту на прохождение.
Второе, не пытайтесь «изобрести колесо», вы можете потратить кучу времени. Как можно чаще используйте готовые решения, подсмотрев их в чужих картах и особенно в картах официальных. Что бы открыть чужую карту в редакторе Hammer(Хаммер) нужно две программы для декомпиляции GCFScape и BSPSource, позже вам так же понадобится pakrat что бы дописывать или вытягивать файлы из BSP файлов. GCFScape открывает файлы VPK, а так же GCF, NCF, BSP и т.п. Программа BSPSource способна практически идеально декомпилировать любую карту для Сворма, так что вы получите исходник любой карты и сможете посмотреть как делаются нужные вам вещи.

Полезные ссылки

developer.valvesoftware.com/wiki/Alien_Swarm_Level_Creation
developer.valvesoftware.com/wiki/GCFScape
developer.valvesoftware.com/wiki/Pakrat
developer.valvesoftware.com/wiki/BSPSource

Автор: geotavros

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js