- PVSM.RU - https://www.pvsm.ru -
Всем привет. Вот и подошла очередь нашей очередной статьи. В первой [1] мы познакомили вас с рабочими процессами нашей студии и вскользь упомянули тулзы, которыми мы пользуемся при создании игр. Вторая статья [2] была посвящена кроссплатформенности движка Alawar Engine и предназначалась во многом для тех, кто уже сталкивался с подобными вопросами в своей работе. К слову о кроссплатформенности – 13 марта вышла наша игра для PlayStation 3 [3], которую мы впервые создали на движке Alawar Engine. Помимо кроссплатформенности движок поддерживает и мультижанровость, так уже были выпущены игры в таких жанрах как: арканоид Hyperballoid 2 [4], match-3 The Treasures of Montezuma 2 [5], аркада Space Op (iOS) [6], готовится к выпуску тайм менеджер из серии «Веселая ферма».
В третьей статье мы подробнее остановимся на процессе создания игры. Вашему вниманию представляется демо-версия движка Alawar Engine [7], а данная статья будет служить своего рода инструкцией по работе с ним.
Игру можно создать, используя только языки программирования, без каких-то дополнительных приложений и инструментов. Однако многие моменты при создании игровых проектов, содержащих большое количество ресурсов (изображений, видео, звуков и текстов), требуют существенной оптимизации. Добавлять и изменять свойства этих ресурсов намного проще через визуальный редактор, чем в коде игры или конфигурационных файлах, а набор фреймворков существенно облегчает процесс создания игры. Именно поэтому представленный движок – это не только набор библиотек, написанных на C++, но и мощный инструментарий, с помощью которого процесс создания игр существенно упрощается.
Центральным приложением, вокруг которого вертится создания игрового процесса квестов жанра «поиск предметов», является Quest Editor. С его помощью мы создаем новые сцены (интерфейс игры), размещаем на них объекты (изображения, видео, анимацию), прописываем сценарную логику игры и взаимосвязь событий и сцен. Интерфейс Quest Editor представляет собой три области, которые содержат:

В демо-версии уже имеется набор ресурсов, расположенных на игровых сценах: при работе с демо-версией движка вы можете самостоятельно добавлять в игру новые изображения, звуки, тексты или видео (и сюжетное видео между сценами, и видео, запускаемое по клику на объект). А так же в проект добавлены две мини-игры и приведены примеры функционирования блоков скриптования, из которых складывается небольшой геймплей. Будьте внимательны, в демо-версии введено ограничение на количество добавляемых объектов — 500 изображений, 50 звуков, 70 клипов, 100 строк.
Для того чтобы новые изображения стали доступны в игровых ресурсах их необходимо поместить в папку 1.0-demogame-templatelivegameimages. Обратите внимание, что внутри этой директории находятся подпапки, каждая из которых связана с определенной составляющей игры. Так, например, в папке font лежат игровые шрифты, а в папку scenes нужно добавлять изображения, которые впоследствии будут добавлены на соответствующие игровые сцены.
После того, как изображения добавлены в папку, необходимо запустить приложение Image Resource Editor (1.0-demogame-templatelivegamerun-image-resource-editor.bat). Оно обновляет файл resource.xml, в котором хранится информация обо всех изображениях. Кроме того в нем можно устанавливать параметры изображений и анимации.
Для добавления в игру новых видео-файлов достаточно поместить их в папку 1.0-demogame-templatelivegamevideo. В игре существует разделение на видео – это полноценный, закодированный видео поток в форматах webm или ogg; и клипы – это анимация, «оживленные» картинки. Видео может быть более качественной, но в то же время и более ресурсоемкой компонентой. Его обычно используют, если надо показать какие-то эффекты, например, взрывы, магия, анимация персонажей, анимация воды. Простые, повторяющиеся действия лучше реализуются клипами. Для создания клипов используется приложение ClipMaker, а для анимации частиц Particle Editor (в демо-версию они не включены).
Все тексты хранятся в файле strings.xml, добавление новых строк осуществляется простым редактированием данного файла. Добавление звука в игру происходит путем копирования файлов в папки gamemusic и gamesounds. Типы воспроизводимых звуков прописывается в soundtemplates.xml, а сами файлы в sounds.xml в папке gameproperties.
На этом мы закончим краткий обзор того как добавляется игровой контент и перейдем непосредственно к созданию игры.
Запустите Quest Editor (1.0-demogame-templatelivegamerun-quest-editor.bat), в левом окне выберите уровень Example и Scene01. В развернувшемся списке дважды щелкните на пункте Scene01. В центральном окне откроется изображение сцены со всеми добавленными на неё объектами. Под окном сцены расположена область для добавления блоков скриптования, с помощью которых задается логика игры. В правом окне находится окно со свойствами сцены и список объектов, расположенных на ней. Кликая на объекте в списке вы выделяете его в окне сцены, а в окне Properties отображаются его свойства.

Я не буду подробно останавливаться на описании блоков и команд, которые присутствуют в Quest Editor – эта тема слишком обширна и поэтому, я думаю, не нужно ее раскрывать в рамках этой статьи. Но для тех, кто решит всерьез подойти к ознакомлению с процессом создания игры, в папке 1.0-demodoc лежит подробная документация.
Здесь мы разберем пример добавления в проект мини-игр, которые могут выступать как в качестве ключевых моментов в прохождении игры, так и не влиять на него. Перед написанием мини-игры в Quest Editor создается отдельная сцена и на ней размещаются все необходимые объекты. Например, сцена Scene01_Minigame в Quest Editor. Таким образом готовится графическая составляющая для мини-игры, после чего можно приступать к программированию.
С точки зрения движка мини-игра представляет собой класс, который создается при разблокировке блока мини-игры и удаляется после выполнения этого блока. В блоке прописывается идентификатор мини-игры, по которому создается объект. Предварительно этот идентификатор должен быть зарегистрирован в движке.
Пока блок мини-игры не разблокирован, она не будет отрисовываться и реагировать на действия пользователя. После того как мини-игра разблокируется, она может начать работать, но её прохождение может быть невозможным. Например, если игрок не знает нужный шифр для прохождения и должен сначала его найти. Для этого используется вход условия. И только после того как все подключения ко всем входам отработали, мини-игра работает и проходится.
Мини-игры должны быть унаследованы от класса game::CMinigame и иметь свой уникальный строковый идентификатор, по которому должна быть зарегистрирована в qe::CMinigameFactory. В шаблонном проекте выделен отдельный файл, в котором происходит регистрация всех мини-игр: Game/Minigames/RegisterMinigames.cpp.
Вся инициализация должна происходить в методе Init. Методом Update вызывается каждый кадр, в нем следует рассчитывать логику мини-игры. Draw позволяет мини-игре отображать ресурсы поверх сцены, к которой привязана мини-игра. OnMouseClick и OnMouseMove отлавливают события мыши. Для завершения мини-игры она должна вызвать OnMinigameComplete. Чтобы запустить игру из Quest Editor нажмите кнопку Play, при этом вы сможете как проверить основной игровой процесс, так и добавленные мини-игры.
Чтобы проверить игровую логику, до запуска игры в Quest Editor присутствует система валидации, которая позволяет отлавливать различные баги и несоответствия, появляющиеся при сборке и скриптовании сцен в редакторе. Например, если попытаться вызвать объект сцены в блоке или команде, система валидации проверит, существует ли данный объект. Если он отсутствует, она пометит его как объект с ошибкой, обведя в красную рамку или поставив рядом с проблемой восклицательный знак.

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

После того как игра создана, её можно скомпилировать, чтобы оптимизировать файлы игры и повысить скорость её запуска. В демо-версии движка добавлена возможность сборки игр под Windows (собирается при помощи Visual Studio 2008) и Mac (собирается в XCode 4.5). Игру можно запускать и без сборки – в Windows для этого запустите файл game_release.exe в папке game. Чтобы сделать то же самое под Mac, наберите в консоли mac_run.sh, находясь в папке game.
Приложения, идущие в комплекте с движком, не имеют привязки к жанрам, поэтому с помощью движка Alawar Engine сегодня создаются игры различных жанров – это квесты, экономические симуляторы, стратегии, которые распространяются, в частности, и по free-to-play модели. Конечно, применять Quest Editor целесообразнее всего при создании квестов, т.к. в нем заложен язык скриптования, позволяющий выстроить четкую последовательность прохождения игры. В других жанрах это приложение используется для добавления игровых объектов, видео и клипов на игровые сцены. Игровая механика создается на C++ и связывается с объектами через их id.
P.S. Если в процессе создания игры у вас возникнут вопросы по движку, вы можете воспользоваться документацией, которая лежит в папке doc/. Или задать их в комментариях к статье.
P.P.S. Программное обеспечение в виде загружаемого файла, расположенного по ссылке pubext.alawar.com/AE-1.0-demo.zip [7], предоставляется только и исключительно в ознакомительных (демонстрационных) целях. Любая попытка коммерческого использования программного обеспечения, его декомпиляции, дезассемблирования, модификации является нарушением исключительных прав.
Автор: EgorGutorov
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/game-development/30673
Ссылки в тексте:
[1] первой: http://habrahabr.ru/company/alawar/blog/167743/
[2] Вторая статья: http://habrahabr.ru/company/alawar/blog/169897/
[3] игра для PlayStation 3: https://store.sonyentertainmentnetwork.com/#!/ru-ru/%25d0%25b8%25d0%25b3%25d1%2580%25d1%258b/mountain-crime-requital/cid=EP4173-NPEB01161_00-MOUNTAINCRIME000
[4] Hyperballoid 2: http://www.alawar.ru/game/hyperballoid-2-time-rider
[5] The Treasures of Montezuma 2: http://www.alawar.ru/game/the-treasures-of-montezuma-2
[6] Space Op (iOS): http://www.alawar.ru/iphone/game/SpaceOp
[7] демо-версия движка Alawar Engine: http://pubext.alawar.com/AE-1.0-demo.zip
[8] Источник: http://habrahabr.ru/post/174571/
Нажмите здесь для печати.