Как сделать игру на сурсе

Source Modding — Часть 1 — Основы основ

В мире существует множество игровых движков, но нет ни одного движка, похожего на Source своей историей и особенностями.

В этом (пилотном) уроке мы разберем простейшие действия с исходными кодами SDK, а также внесем наше первое изменение в код Half-Life 2.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Вступление

Немножко терминов

Сам по себе Source SDK — набор утилит и программ, помогающих в разработке собственных уровней и модификаций для игры, а также исходные коды Half-Life 2 и эпизодов.

Игра/Мод (Для сурса нет никакой разницы, игра это или мод :p) — скомпилированные исходные коды SDK.

Так почему же именно Source?!

Что нам необходимо?

Введение в сурс дела

Репозиторий

Исходный код SDK находится в репозитории на GitHub. Склонируйте его в любое удобное для вас место:

Выбор ветки

Если вы хотите написать свой первый мод для Half-Life 2/Episode 1/2, то используйте директорию sp/ и Source SDK Base 2013 Singleplayer.

Стиль кода

Поля класса именуются с префиксом m_, использование венгерской нотации рекомендуется (на то есть свои причины, которые здесь обсуждать нет смысла):

Структура кода

SDK, так же как и движок, разделён на несколько частей.

Вот пути до некоторых таких файлов:

ВАЖНО: При внесении ЛЮБЫХ изменений в VPC файл решение должно быть заново перегенерировано!

Генерация проектов

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Исключение HL2

SDK имеет внутри себя также разделение на HL2 и Episodic. Использование второго позволит нам иметь некоторые фичи, например отдельную от стамины шкалу заряда фонарика.

И поэтому, чтобы не компилировать лишний код, мы можем просто исключить HL2 из скриптов:

Другие скрипты

Рядом с creategameprojects.bat также лежит его клон для bash а также два интересных файла — createallprojects.bat и его клон для bash.

Эти два скрипта заставляют VPC создавать проекты не только для чистых библиотек мода, но и для различных утилит, таких как vrad (Radiosity!) или height2normal.

Сейчас использовать я его вам настоятельно не рекомендую, так как свои собственные компиляторы карт нам пока не нужны.

Первичная сборка и запуск

Сборка

Чтобы удостовериться, что вы всё сделали правильно, необходимо собрать всё сгенерированное решение. Итак, собираем (вы же ведь открыли решение в IDE?):

После сборки в папке game/mod_hl2/bin/ или game/mod_episodic/bin/ должны появится наши клиентская и серверная библиотеки!

Запуск — Способ 1 — Steam

Запуск — Способ 2 — Visual Studio

Я рекомендую использовать именно этот способ — не копировать же бинарники мода каждый раз после сборки!

Если карта загрузилась и вы можете передвигаться и двигать камеру мышью — сборка успешна!

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Первая модификация в коде

Функции семейства Msg()

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Заключение

Чему мы научились?

[Я надеюсь, что] из данного урока мы выяснили:

Что дальше?

Во второй части мы разберем систему сущностей Source SDK.

Источник

Играем в Source SDK, руководство по маппингу для начинающих

Да, именно играем, а не модим или разрабатываем, смотрим на скриншот ниже. В нашей первой статье мы расскажем, как сделать первые шаги в создании собственных карт с помощью Source SDK.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Создавать игровые уровни сложно, но интересно, и вы не только сами сможете порадоваться (хотя иногда можно и огорчиться) результатам своих трудов, но и возможно их оценят тысячи других игроков по всему свету.

Этот урок будет сфокусирован на создании однопользовательских карт для Half-Life 2, но полученные навыки пригодятся вам и в работе над любыми другими играми, от Garry’s Mod до Portal 2. В руководстве будут затронуты некоторые моменты работы с Source SDK, изменившиеся после ввода системы SteamPipe.

Приступаем

Для первого эксперимента с дизайном уровней давайте сразу отправимся в редактор. Инструменты Source SDK больше не запускаются через Steam. Вместо этого нужно зайти в папку Steam\SteamApps\common и найти игру, для которой вы хотите сделать карту. В нашем случае это папка half-life 2, далее заходим в папку bin. Среди прочего вы найдёте здесь программы, являющиеся частью SDK. Если запускать через стим, то SDK может не очень правильно все переварить и постоянно выдавать ошибки. Там все дело в правильных путях к подгружаемым файлам, опустим этот момент, все прекрасно работает при запуске hammer в папке игры.

Запускаем hammer.exe (на будущее добавьте ярлык на рабочий стол). Вы уже могли слышать про Hammer – это редактор движка Source, в котором и создаются все карты. Здесь вы проведёте большую часть времени, работая над картой или модом. С первого взгляда такого не скажешь, но Hammer – очень мощная утилита.

Создаём новую карту выбором пункта меню File>New. Экран разделится на четыре части. В левой верхней части расположен 3D-вид, где можно перемещаться по карте, словно в режиме noclip. Остальные части – это 2D-виды, где правая верхняя показывает карту сверху, а нижние с боковых сторон.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Инструменты

Для начала немного занудства, а немного ниже начнем уже разбирать примеры. В правой части окна редактора вы можете заметить набор значков. Это инструменты, с которых вы и будете начинать работу.

Selection Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Этот инструмент используется преимущественно для выделения блоков, которые нужно переместить или изменить их форму. Блок можно выделить, нажав на его грань или на перекрестье в центре, также можно обвести его рамкой. Выделенный блок помечается красным цветом. Чтобы снять выделение, просто кликните на свободном пространстве.

Magnify

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Это не особо важный инструмент. Он используется для масштабирования 2D-видов. Для этого удобнее пользоваться колёсиком мыши. Если по какой-то причине на вашей мыши нет колёсика, то он вам пригодится.

Camera

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Тоже далеко не самый важный инструмент. Он помещает на один из 2D-видов синий круг, олицетворяющий камеру. При перемещении камеры на 3D-виде, синие круги на плоских видах тоже будут двигаться, чтобы вы понимали, где находитесь.

Entity Creation Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Этот инструмент помещает на карту объект (entity). Мы подробно рассмотрим его работу в дальнейших уроках, сейчас просто знайте, что с его помощью создаются, к примеру, стулья и столы.

Block Creation Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе
Этот инструмент вам придётся использовать очень часто. Пожалуй, в Hammer он самый важный. Он создаёт блоки – то, что у вас будет стенами, полом, потолком и т.д. Перетащите инструмент на 2D-вид, там он отобразится белым пунктирным контуром. Выбрав нужную позицию для блока, жмите Enter для его создания.

Texture Application Mode

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Этот инструмент нужен для наложения нескольких текстур на один блок. Выбор инструмента откроет вот такое меню:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

В следующих уроках я подробнее разберу этот инструмент, так что не пугайтесь обилию кнопок, там всё не так уж сложно.

Apply Current Texture to Selection

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе
Не совсем понимаю, для чего здесь этот инструмент. Вообще никогда им не пользовался. Он накладывает текущую текстуру на всё, что у вас выделено.

Decal Appliance Tool/Overlay Appliance Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Оба инструмента накладывают на ваши блоки 2D-изображения – кровь, грязь, граффити и т.д. Разница в том, что используя второй, вы сможете изменять их размер, но для обработки потребуется больше памяти.

Clipping Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе
Этот инструмент используется для отсечения части блока. На картинке ниже показан блок и голубая линия с белыми квадратами на концах.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Линия – это инструмент отсечения. Для её создания просто перенесите инструмент на желаемый 2D-вид. Белая часть блока – та, что сохранится. Когда вас устраивает результат, нажимайте Enter.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Vertex Manipulation Tool

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Этот инструмент нужен для создания сложных форм путём манипулирования вершинами блоков. Выделите блок, затем выберите этот инструмент. Должно выглядеть примерно вот так:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

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

Блок, не приводящий к ошибке:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Блок, приводящий к ошибке:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Базовые конструкции

Выбираем инструмент Block Tool в левой панели. Для создания блока жмём и растягиваем конструкцию на виде сверху. Заметьте, что его границы привязываются к сетке, это позволяет избежать нежелательных зазоров между разными блоками. Создаём блок 512×512 единиц. Вы увидите, как он появится на двух нижних видах.

Сделать сетку помельче можно, нажав на значок Smaller Grid в верхней панели. Уменьшите высоту блока с помощью боковых видов (16 единиц будет достаточно) и нажмите Enter. Чтобы посмотреть на своё творение в 3D-виде, наведите на него курсор и нажмите Z – так вы сможете передвигаться клавишами WASD, а мышью поворачивать камеру. Вы должны увидеть блок со стандартной текстурой (при этом нужно переключиться в вид с текстурами, нажав на 3D Textured в меню View), как показано в правой части экрана.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Попробуйте проделать то же самое для создания стен своей комнаты. Обычная стена имеет высоту 128 единиц и толщину 8-16 единиц. (Размер большинства текстур 128×128, и таким образом мы убедимся в их правильном наложении. Кроме того, для движка предпочтительнее размеры блоков в виде степени с основанием 2, но это не жёсткое правило). После этого создайте потолок, перетащив пол вверх с зажатой клавишей Shift на одном из боковых видов.

На этом этапе я должен указать на первое правило Hammer: сохраняйтесь чаще! Программа славится вылетами в самый неподходящий момент, и даже лучшие из нас тратили впустую по нескольку часов работы. Ctrl+S – это бесценная комбинация клавиш. Для больших карт даже рекомендуется сохранять несколько резервных копий на случай потери или повреждения данных.

Текстуры

Оглядите получившуюся комнату 3D-камерой. Вы заметите, что все блоки выглядят одинаково, как кирпичная стена. Это далековато от идеала, так что взглянем на меню текстур в правой части.

В правой части редактора вы должны видеть вот такое меню:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Нажмите Browse для открытия списка всех текстур из игры. Вы сможете выбрать практически любую, но при создании раннего прототипа люди обычно останавливаются на «мерных» текстурах, предоставленных Valve и позволяющих оценить масштаб карты и убедиться в должном положении текстур. Наберите «measure» в поле Filter и двойным кликом выберите dev_measurewall1101c (это текстура с очертанием персонажа игрока).

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Теперь вы видите эту оранжевую текстуру в правой части экрана. Чтобы наложить её на свои стены, поочерёдно выделите их, удерживая Сtrl, затем нажмите Apply Current Texture в левой панели.

Если хотите наложить текстуру только на одну поверхность блока, нажмите Toggle Texture Application, открыв небольшое окно. Теперь выберите пол комнаты в 3D-виде и, нажав Browse, выбирайте другую текстуру. В 3D-виде показывается, как изменилась только одна из сторон блока. Это окно также пригодится для выравнивания и поворота текстур.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Каждая из текстур соответствует определённому материалу из игры, так что металлическая текстура будет издавать звенящий звук при ходьбе или выстрелах по ней.

Переберите несколько вариантов текстур, познакомьтесь с настройками окна и давайте двигаться дальше.

Объекты

Статичные стены – это хорошо, но если вы хотите хоть какой-то интерактивности, вам понадобятся объекты. Объекты бывают двух типов: блоковые (создаются из уже знакомых вам блоков) и точечные (point entities). Давайте остановимся на вторых.

Нажмите на значок под названием Entity Tool. В правой части экрана найдите два выпадающих списка. Второй из них включает в себя множество объектов, которые вы можете поместить на карту. В этом списке вы, помимо всего прочего, найдёте врагов (npc_zombie), предметы (weapon_rpg) и спецэффекты (env_spark). Не поддавайтесь искушению пробовать каждый из них и найдите info_player_start. Этот объект определяет точку появления игрока на карте. Перейдите на 3D-вид и расположите где-нибудь зелёного Фримена (этот объект тоже помогает оценить масштабы карты). Как и блоки, объекты можно двигать по карте на 2D-видах (а вот размеры изменять нельзя). Чтобы поворачивать уже выделенный объект, нажмите на него ещё раз.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Если хотите разнообразить и расширить карту, добавьте ещё несколько комнат и коридоров.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Начнём с простого: разместим на карте объект prop_static. Он появится в виде маленького куба и мы должны назначить ему модель. Откройте свойства объекта двойным кликом на 3D-виде или выбрав Properties на 2D-виде. В этом меню меняются различные опции всех объектов, включая входные и выходные данные, контролирующие их функции и необходимые для скриптовых событий.

Пока что выберите World Model и нажмите Browse: здесь вы увидите все модели, существующие в игре. Как и в случае с текстурами, список можно фильтровать по названию. Например, фильтр «foliage» покажет деревья и различные растения для обустройства уровня за пределами помещения. Попробуйте подобрать другие ключевые слова для поиска нужных вам моделей. Вкладка Info покажет поддерживаемый тип модели (static, physics или dynamic). Когда найдёте, что вам нужно, расположите объект на карте с помощью 2D-видов.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Таким же образом добавьте несколько моделей prop_physics – к примеру, бочек, которые можно расшвыривать гравипушкой (в Hammer она называется weapon_physcannon). Следите, чтобы добавленные модели нигде не пересекались с блоками.

Компиляция

Прежде, чем компилировать уровень, его нужно проверить на наличие «утечек», то есть мест, где можно попасть в пустоту за пределами карты через какой-либо из объектов. Есть несколько способов обнаружить утечки, но на маленьких картах они должны быть сразу заметны. Утечки не помешают запуску карты (как это происходит при создании карт для, например Quake3), но могут привести к нежелательным последствиям.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Источник

Создание своей RPG на движке Source

Если вы хотите научиться разрабатывать игры, моддинг существующих игр — отличное начало для изучения дизайна и создания прототипов без необходимости изобретать велосипед. В этой статье мы будем использовать Source Engine от Valve (на этом движке созданы Portal, Left 4 Dead, Half-Life и Team Fortress 2) для создания RPG-подобных квестов в Half-Life 2: Episode 2.

Обратите внимание, что эта статья подразумевает, что у вас есть базовые знания по Source SDK Hammer Editor и Face Poser, так что это проект не для начинающих, а скорее для программистов среднего уровня.

Если у вас нет этих навыков, вы может изучить другие руководства по разработке игр на нашем сайте: например, созданию игр с использованием Unity или социальных игр.

Для освоения этого материала вы должны знать, как создавать и компилировать карты, размещать сущности и настраивать триггеры, прежде чем повторять действия, описанные здесь. Если вы захотите добавить свои диалоги, вам нужно знать ещё и как создавать и сохранять сцены в Face Poser. Ничего страшного, если вы никогда не работали с Source SDK раньше — в интернете полно статей, описывающих, как им пользоваться. Начните с Valve Developer Wiki, которая содержит множество полезных статей по теме, затем сходите на design3 (кстати, я один из участников проекта) за пошаговыми видеоинструкциями по Source Engine. Минимальные системные требования для использования инструментов, описанных выше, такие же, как для запуска Half Life 2: Episode 2: процессор на 1.7 ГГц, 512 Мб RAM, DirectX 8.1 и Windows не ниже XP. Ещё вам понадобится микрофон.

Подготовка

Прежде чем мы начнём, убедитесь, что у вас есть всё необходимое. Во-первых, вам нужна установленная копия Half-Life 2: Episode 2. Мы будем использовать эту игру, потому что это самая новая одиночная игра на движке Source, к которой можно написать мод. Если у вас нет второго эпизода, скачайте его с то простой Half-Life 2 тоже должен подойти.

Если вы хотите добавить свой диалог в эту RPG, вам понадобится приложение для обработки аудио. Мы будем использовать Audacity — оно свободное, имеет открытый исходный код и отлично подходит для наших задач.

Нам также понадобится патч Phoneme Extractor, который поможет Face Poser лучше работать с Windows 7/Vista. Скачайте его и следуйте инструкциям по установке. Без него не будет работать соединение текста диалога со звуковой подложкой.

Дальше ставьте GCFScape. Он даст нам возможность открывать файлы кеша от игр Steam, так что мы сможем достать оттуда необходимые нам файлы. С его помощью мы будем вынимать аудио для нашего мода.

Если вы ещё этого не сделали, установите Source SDK. Для этого откройте Steam и переключитесь на вкладку «Инструменты». Вам понадобится своя карта, с которой мы будем работать (я буду называть её «основная карта»). Это может быть что угодно: от нескольких простых комнат до обширного ландшафта. Иллюстрация 1 — скриншот уровня, который я использовал для этой статьи, вы можете скачать его здесь.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 1 — наш уровень в Hammer Editor

Сейчас наш уровень — просто грубый прототип, который полностью не текстурирован и не детализирован. Лучше всего именно с этого и начинать, а деталями заниматься уже в самом конце. Итак, давайте уже начинать делать нашу RPG. Не забывайте вовремя сохраняться! Некоторые нововведения в Hammer’е не полностью поддерживаются в Episode 2 и могут вызвать аварийное завершение редактора.

Создаём структуру квеста

В этой статье мы сосредоточимся на получении и выполнении заданий, построение системы развития персонажа с очками опыта — тема для отдельной статьи. На нашем уровне будут три неигровых персонажа (NPC), каждый будет давать нам по два задания. Мы можем их использовать также для предоставления игроку информации, атак на него или просто для того, чтоб добавить немного жизни уровню.

Для того, чтобы уровни были организованы, давайте использовать следующую конфенцию имён:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 2 — конвенция имён, которую мы будем использовать

Это поможет нам гораздо проще находить наши сущности, особенно во время работы над заданиями. Например, добавление префикса Level к сущностям, которые затрагивают только определённый уровень, автоматически разместит их в одном месте в списке, и они не будут путаться с сущностями какого-либо задания.

Прежде чем мы всё-таки начнём делать квесты, нам нужно разбить их на меньшие компоненты, а именно:

Если вы что-то из этого не поняли, не переживайте — пока мы просто составляем список всего необходимого. Это список лишь для одного задания, так что нам понадобится создать действительно много всяких сущностей. Чтобы не засорять мозг лишним, мы будем использовать VisGroups для разделения заданий и сокрытия того, что сейчас не нужно. VisGroups позволяет вам обозначить группы кистей и сущностей и быстро скрывать или показывать их. Если группа скрыта во время компиляции, всё, что содержится в этой группе, будет пропущено и не появится в игре. Это очень удобно, ведь вы можете избирательно просматривать отедльные группы объектов, сосредоточившись на них, а ничто другое вам мешать не будет.

Создание шаблона задания

Мы будем использовать шаблоны (instancing) — отличный инструмент Hammer Editor’а. Это позволит ссылаться нашей основной карте на другие. Мы создадим экземпляр задания, который в дальнейшем будем использовать как шаблон. После того, как мы его закончим, мы сможем просто раскопировать его и немного отредактировать настройки копий так, чтобы каждое задание стало уникальным. Таким образом, нам не придётся делать одну и ту же нудную работу много раз. К сожалению, Episode 2 не полностью поддерживает эту технологию, поэтому нам придётся конвертировать экземпляры в уровни перед компиляцией (мы коснёмся этого позже).

Для того, чтобы настроить наш шаблон задания, нам нужен новый файл карты. В Hammer’е выбирайте File, затем New, карту сохраните как «quest_instance» в папке «instances» в том же месте, где лежит ваша основная карта.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 4 — так должен выглядеть наш quest_instance после добавления всех сущостей.

Лучше всего размещать сущности как можно ближе к координатам (0,0,0). Также стоит размещать их выше плоскости XY, чтобы не потерять при переносе. Для правильного размещения вы можете воспользоваться Selection Tool. Наш шаблон будет автоматически добавлять выбранный нами префикс ко всем сущностям внутри него. Триггеры и выставление некоторых значений буду описаны позднее, так что не переживайте, если вам показалось, что мы что-то упустили.

Займёмся диалогом. Найдите в списке сущностей logic_choreographed_scene и поместите его за Гришей. Нам понадобится минимум две таких на каждый квест — одна для начального диалога, вторая для заключительного — так что скопируйте её и вставьте вторую поверх первой. Дайте им имена «scene_start» и «scene_end» соответственно. Добавление собственно диалога мы рассмотрим несколько позже.

После этого нам нужно добавить текст, который будет описывать задание. Создайте две сущности game_text и назовите их «text_start» и «text_end». Выставьте для обеих достаточно высокий параметр Hold Time (порядка 99999), чтобы текст не исчез, пока мы сами его не уничтожим. Нам нужно, чтобы текст был сбоку экрана и не мешал игроку, так что выставьте у обеих сущностей поля X и Y на 0.1.

Добавим ещё один триггер напротив Гриши. Он будет практически идентичным стартовому триггеру, поэтому просто скопируйте «trigger_start» и переименуйте его в «trigger_end». Убедитесь, что флаг Starts locked включен. Убедитесь, что эти сущности не перекрывают друг друга и что стартовый триггер находится перед хитбоксом NPC (иначе игра будет путаться, выбираете ли вы триггер или «кнопку»), используя виды сверху и сбоку. Чтобы определить местонахождение хитбокса, выберите Гришу — вокруг него появится жёлтая рамка.

Теперь настроим триггеры, как показано на Иллюстрации 5. Вам пока не стоит переживать за триггеры в квадратных скобках, их мы добавим позже. Выберите перечисленные сущности, откройте их Object Properties, зайдите во кладку Outputs и настройте всё в соответствии с таблице ниже. Убедитесь, что вы сохраняете все изменения (кнопка Apply)!

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 5 — настройка триггеров.
Заголовки: Выбранная сущность \ Активировать по… \ Активируемая сущность \ Что активировать у сущности

Размещаем шаблоны

Наш шаблон готов, теперь мы можем размещать такие шаблоны по карте и настраивать их более детально. Разместите «func_instance» где вам удобно, откройте его Object Properties и под VMF Filename найдите ваш файл «quest_instance». Обратите внимание, что поиск работает несколько багованно, так что вам может потребоваться ввести путь к файлу вручную. Теперь вы можете раскопировать этот шаблон по карте: создайте столько заданий, сколько хотите.

Выберите первое задание и дайте ему импортировать все необходимые сущности (нажимайте Instancing, Collapse, Selection). Hammer даст всем сущностям префикс, по умолчанию «AutoInstance-». Всё импортированное будет выделено, нам останется только добавить их в одну группу через VisGroups. Откройте Object Properties и выберите там вкладку VisGroups. Вы увидите примерно следующее:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 6 — настройка VisGroups

«Sewer» и «Main level» — группы, которые я создавал раньше, так что это нормально, что у вас их нет. Нажмите на «Edit Groups» и вы увидите следующее:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстраци 7 — добавление областей и сущностей в группы

Здесь вы можете создать новые группы, которые потом будете использовать. Нажмите «New group» и вы увидите новый элемент в списке. Переименуйте его в «Quest_n», где n — номер задания. Как закончите с этим, нажмите «Close», вы увидите свою группу в главном списке. Отметьте чекбоксами для добавления сущностей в группу, нажмите «Apply», затем снова «Close». Тперь вы можете скрывать или просматривать группы, используя панель управления VisGroup, как показано ниже. Делайте так с каждым вашим заданием.

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 8 — готовая группа

Добавление собственных звуковых файлов

Идём дальше. Создайте файл «sound_script», чтобы движок мог связать наши звуки в редакторе с игрой. Запустите GCFScape, перейдите к File->Open, перейдите к своей папке «steamapps» и откройте файл «episode two content.gcf». После того, как GCFScape его прогрузит, вам нужно будет найти файл «game_sounds_manifest.txt», который размещён в «/steamapps/ep2/scripts». Нажмите на него правой кнопкой мыши и выберите «Extract» и разместите этот манифест в «/steamapps/half-life 2 episode two/ep2/scripts». С GCFScape мы закончили, можете закрывать его.

Теперь идите в папку со скриптами и откройте «game_sounds_manifest.txt», который мы только что извлекли. В этом файле лежат все звуковые скрипты, которые игра будет использовать, и нам нужно добавить наши записи туда же. Под последней строчкой кода, в последних скобках напишите ровно следующее:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Файл манифеста можно уже закрывать. Создадим файл «rpg_sounds.txt», на который мы ссылаемся и запишем в него следующее:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Если у вас стоит Windows Vista или Windows 7, нам придётся немного помочь Face Poser. Как указано выше, вам для этого понадобится патч Phoneme Extractor. Тут стоит упомянуть, что Source SDK обновляет себя каждый раз, как вы его запускаете, поэтому патч нужно ставить каждый раз, как вы открываете Source SDK. Да, это утомительно, но это самый простой путь, поверьте.

С открытым Face Poser мы начнём создавать новую сцену. Под меню «Choreography» нажмите «New». Я порекомендую вам сразу же её сохранить. Имя выберите сами, а папка для сохранения — «/steamapps/half-life episode two/ep2/Scenes/RPG_MOD/». Её потом будет гораздо проще найти, если вы дадите ей какой-то префикс, например, «RPG_». Теперь Face Poser попросит вас дать имя главному действующему лицу (Actor). Назовите его «!_targetN», где N — число от 1 до 8, т.к. у нас будет до восьми NPC в каждой сцене. Hammer будет использовать того NPC, которого вы укажете. У нас пока есть только Гриша, поэтому назовём действующее лицо «!_target1». Сделайте правый клик по имени действующего лица, которое появилось в меню «Choreography», затем перейдите к New->Channel->Create Channel box. Назовите этот канал «Audio». Теперь создайте ещё один канал и назовите его «Anim» (для анимации).

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 9 — проигрывание анимации и звуковой подложки

Если вы хотите добавить жесты, выражения лица или другую анимацию, Вам стоит делать это сейчас. Я не буду рассказывать, как это сделать в этой статье, вы можете прочитать об этом где-то ещё. Далее сохраните свою сцену (Choreography->Save). Теперь осталось применить эту сцену к нашему NPC.

Добавление стороннего аудио к NPC

Теперь нам нужно настроить диалог. Нам нужно добавить созданные нами сцены к «scene_start» и «scene_end», которые мы создавали раньше. Для этого нажмите Alt+Enter, чтобы открыть Object Properties, там найдите опцию «Scene file». Назначьте ей недавно созданную сцену и сохраните изменения. То же самое сделайте для «scene_end».

Активация событий

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

Настройка автосохранения

Никто не любит, когда один случайный крэш убивает результат многочасовой игры. Поэтому вам стоит добавить сущность logic_autosave и вызывать её каждый раз, когда задание будет пройдено (вы уже знаете, как это делается).

Конец игры

Игра должна будет когда-нибудь закончиться, и будет не очень хорошо, если она просто вылетит в главное меню, поэтому стоит создать титры. Для этого просто разместите где-то на карте следующие сущности:

Как сделать игру на сурсе. Смотреть фото Как сделать игру на сурсе. Смотреть картинку Как сделать игру на сурсе. Картинка про Как сделать игру на сурсе. Фото Как сделать игру на сурсе

Иллюстрация 10 — сущности для титров

Заключение

Я рассказал всё, что хотел. Теперь вы можете создавать любые виды заданий, умеете работать с триггерами и, в общем-то, можете начинать писать свои несложные моды к играм. Удачи!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *