Привет. Сегодня мы начинаем цикл статей, который познакомит вас с процессом разработки игр на движке Alawar Engine. Первая статья вводная, в ней мы в общих чертах расскажем о создании игрового контента, блочной системе скриптования, с помощью которой из разрозненных частей собирается игра, а также немного о других бизнес-процессах в студии Alawar Stargaze. На текущий момент движок лицензируется внешними студиями, сотрудничающими с Alawar, в разработке находится около 20 проектов. Некоторые проекты, созданные лицензиатами, уже выпущены, например Weird Park.Broken Tune.
Разработка игры начинается с человека, у которого есть идея будущей игры. Да, как обычно без большой и заразительной идеи никуда. Она должна включать в себя общее представление о создаваемой игре, описание игрового мира и персонажей. Из идеи рождается сценарий, в котором прописываются основные сюжетные линии и повороты. Гейм-дизайнеры создают проектную документацию, которая, по сути, является техническим заданием для 3D-модельеров, 2D-художников, аниматоров, специалистов по созданию эффектов, скриптеров, композиторов и других участников команды.
Процесс разработки HOPA-игры:
Движок позволяет создавать игры различных жанров, мы же в статье рассмотрим весь процесс на примере игр жанра HOPA (Hidden Object Puzzle Adventure, по-русски он называется короче – поиск предметов). Подобные игры представляют собой квесты с определенным сюжетом, наполненные задачками и логическими головоломками. Игровой контент включает в себя:
- изображения;
- звуки и музыку;
- видео, анимацию и эффекты;
- мини-игры, написанные на C++;
- строки с диалогами, пояснительными текстами и пр.
К примеру, изображение сцены проходит несколько стадий, прежде чем попадет в игру. Сначала рисуется скетч сцены, затем 3D-модельер создает текстурированный рендер и, наконец, 2D-художник заканчивает работу, создавая финальный вид игровой сцены.
Игровая сцена:
Сегодня в статье мы рассмотрим лишь вкратце некоторые отдельные этапы создания HOPA-игры: создание логики игрового процесса, систему локализаций и финальную сборку проекта.
Чтобы собрать разрозненные ресурсы воедино и превратить их в игру, мы используем тулзу собственной разработки — Quest Editor. С её помощью все объекты, клипы, видео и мини-игры добавляются на игровую сцену в один клик. Кстати, для того чтобы быстро добавить сцену со всеми объектами, нами используется скрипт, который импортирует изображения из Photoshop, а с помощью мини-игр может быть реализован любой необходимый в игре геймплей. После того, как все необходимые объекты добавлены, за работу принимается скриптер. С помощью блоков скриптования он задает игровую логику на всех участках игры.
Интерфейс Quest Editor:
Эта система скриптования позволяет визуально выстраивать цепь действий в игре, не написав ни одной строчки кода. В роли действий, происходящих в игре, выступают блоки действия. Исполнение одного блока означает, что игрок совершил некий прогресс, в прохождении игры. Так как, согласно концепции, нужно выстраивать цепь действий, все блоки снабжены входами и выходами. Соединяя последовательно блоки или группы блоков, можно наглядно выстраивать прохождение игры. Внедрение такого подхода позволило решить сразу несколько вопросов:
- Заниматься скриптованием может и не программист. Все блоки просты в использовании и интуитивно понятны.
- Создание игрового процесса унифицировано как в компании Alawar Stargaze, так и в студиях-партнерах, использующих наш движок.
- Игровой процесс всегда находится перед глазами и не возникает проблем с поиском мест, отвечающих за то или иное событие в игре.
Информация о многих игровых ресурсах (звуках, клипах, диалогах) хранится в xml-файлах, в Quest Editor указывается ID объекта, для его инициализации в игре. В следующей статье мы остановимся подробнее на описании Quest Editor и принципов работы с ним.
Следующим пунктом в процессе создания игры, который мы рассмотрим, является этап локализации. Для того чтобы сделать процесс перевода на другие языки простым и удобным, нами была разработана специальная тулза String Resource Editor. Строки в этом инструменте находятся в древовидной структуре. К каждой ветке структуры может быть прикреплено изображение (обычно скриншот), чтобы продемонстрировать в каком месте текст будет выводиться в игре. В программе поддерживается экспорт/импорт в Excel. Excel-файл может быть отправлен сразу в отдел локализаций.
Фрагмент файла-проекта SRE:
<?xml version="1.0"?>
<!--This file was generated by StringResEditor2 at 03.04.2009 17:52:19. DO NOT edit it by hand!-->
<stringreseditdata2 projectname="NB2">
<languages>
<language name="russian" />
<language name="english" />
</languages>
<auxfields>
<auxfield name="name" export="True" show="True" />
</auxfields>
<export formatting="HierarchicalGameXML" codepage="1251" />
<group name="project" inherite_images="False">
<group name="dialogs" inherite_images="False">
<group name="location1" inherite_images="False">
<image language="russian" filename="l01.jpg" />
<group name="enter_in_cab" inherite_images="False">
<string id="1" alias="" link="">
<text language="russian" value="Дедушка?! Дедушка! Где же он? Больше всего это похоже на обыск. Но зачем?" />
<text language="english" value="Grandpa? Grandpa! Where is he? It looks like someone has searched his place. But why?" />
<aux name="name" value="natalie" />
</string>
…
Фрагмент игрового XML файла:
<?xml version="1.0" encoding="UTF-8"?>
<!--Wrapper strings table. This file was generated by StringResEditor2 at 18.03.2009 18:08:51. DO NOT edit it by hand!-->
<texts>
<group name="All">
<phrase voice="" text="" />
<group name="Installer">
<phrase voice="" text="Odinstaluj" />
<phrase voice="" text="Gry Alawar" />
<group name="InstallTypesPage">
<phrase voice="" text="Rodzaj instalacji" />
<phrase voice="" text="Wybierz preferowany rodzaj instalacji." />
</group>
…
Стоит отметить, что String Resource Editor настолько универсален, что внедрен в качестве стандарта для всех студий, работающих с компанией Alawar.
После того, как весь контент готов и игровой процесс заскриптован, происходит сборка игрового проекта. Сборщик представляет собой набор скриптов и утилит для оптимизации разработческой версии игры в оптимизированную релизную версию. Так в процессе сборки игры сборщик проходит несколько этапов:
- экспорт прозрачности всех текстур в один файл, зажатый RLE компрессией. Это делается для ускорения определения попадания в текстуры с альфой;
- конвертация изображений и текстур в указанный для них формат (png, jpg, argb4, dxt1, dxt3, dxt5);
- преобразование xml-ек с описанием текстур, клипов, партиклей, звуков в двоичный формат;
- экспорт необходимой локализации в игру;
- упаковка всех файлов проекта в один, за исключением шрифтов и логотипа.
Когда РС-версия игры готова, её размещают на сайте Alawar, а также на сайтах партнеров, и она становится доступной для игроков. Но на этом работа над игрой не заканчивается, многие игры переводятся на десятки языков и размещаются на сайтах зарубежных партнеров. Кроме того, возможности движка позволяют оперативно портировать игру на Mac OS X, Android, iOS, PlayStation 3.
В своей следующей статье мы подробнее остановимся на тех инструментах, которые используются при создании игр на движке Alawar Engine. До встречи!
Автор: EgorGutorov