Alawar Engine. Часть третья. Создаем игру на демо-версии движка

в 4:50, , рубрики: alawar entertainment, game development, game engine, Блог компании «Alawar Entertainment», метки: , ,

Всем привет. Вот и подошла очередь нашей очередной статьи. В первой мы познакомили вас с рабочими процессами нашей студии и вскользь упомянули тулзы, которыми мы пользуемся при создании игр. Вторая статья была посвящена кроссплатформенности движка Alawar Engine и предназначалась во многом для тех, кто уже сталкивался с подобными вопросами в своей работе. К слову о кроссплатформенности – 13 марта вышла наша игра для PlayStation 3, которую мы впервые создали на движке Alawar Engine. Помимо кроссплатформенности движок поддерживает и мультижанровость, так уже были выпущены игры в таких жанрах как: арканоид Hyperballoid 2, match-3 The Treasures of Montezuma 2, аркада Space Op (iOS), готовится к выпуску тайм менеджер из серии «Веселая ферма».

В третьей статье мы подробнее остановимся на процессе создания игры. Вашему вниманию представляется демо-версия движка Alawar Engine, а данная статья будет служить своего рода инструкцией по работе с ним.

Игру можно создать, используя только языки программирования, без каких-то дополнительных приложений и инструментов. Однако многие моменты при создании игровых проектов, содержащих большое количество ресурсов (изображений, видео, звуков и текстов), требуют существенной оптимизации. Добавлять и изменять свойства этих ресурсов намного проще через визуальный редактор, чем в коде игры или конфигурационных файлах, а набор фреймворков существенно облегчает процесс создания игры. Именно поэтому представленный движок – это не только набор библиотек, написанных на C++, но и мощный инструментарий, с помощью которого процесс создания игр существенно упрощается.

Центральным приложением, вокруг которого вертится создания игрового процесса квестов жанра «поиск предметов», является Quest Editor. С его помощью мы создаем новые сцены (интерфейс игры), размещаем на них объекты (изображения, видео, анимацию), прописываем сценарную логику игры и взаимосвязь событий и сцен. Интерфейс Quest Editor представляет собой три области, которые содержат:

  • список сцен и уровней, имеющихся в игре, а также ресурсов (изображения, видео, клипов) доступных для добавления на сцену (вкладка Resource);
  • экран предварительного просмотра сцены, на него можно быстро добавить новый объект, создать игровую область;
  • окно со списком объектов и настройками их свойств.

Alawar Engine. Часть третья. Создаем игру на демо версии движка

В демо-версии уже имеется набор ресурсов, расположенных на игровых сценах: при работе с демо-версией движка вы можете самостоятельно добавлять в игру новые изображения, звуки, тексты или видео (и сюжетное видео между сценами, и видео, запускаемое по клику на объект). А так же в проект добавлены две мини-игры и приведены примеры функционирования блоков скриптования, из которых складывается небольшой геймплей. Будьте внимательны, в демо-версии введено ограничение на количество добавляемых объектов — 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 отображаются его свойства.

Alawar Engine. Часть третья. Создаем игру на демо версии движка

Я не буду подробно останавливаться на описании блоков и команд, которые присутствуют в Quest Editor – эта тема слишком обширна и поэтому, я думаю, не нужно ее раскрывать в рамках этой статьи. Но для тех, кто решит всерьез подойти к ознакомлению с процессом создания игры, в папке 1.0-demodoc лежит подробная документация.

Здесь мы разберем пример добавления в проект мини-игр, которые могут выступать как в качестве ключевых моментов в прохождении игры, так и не влиять на него. Перед написанием мини-игры в Quest Editor создается отдельная сцена и на ней размещаются все необходимые объекты. Например, сцена Scene01_Minigame в Quest Editor. Таким образом готовится графическая составляющая для мини-игры, после чего можно приступать к программированию.

С точки зрения движка мини-игра представляет собой класс, который создается при разблокировке блока мини-игры и удаляется после выполнения этого блока. В блоке прописывается идентификатор мини-игры, по которому создается объект. Предварительно этот идентификатор должен быть зарегистрирован в движке.

Alawar Engine. Часть третья. Создаем игру на демо версии движка Пока блок мини-игры не разблокирован, она не будет отрисовываться и реагировать на действия пользователя. После того как мини-игра разблокируется, она может начать работать, но её прохождение может быть невозможным. Например, если игрок не знает нужный шифр для прохождения и должен сначала его найти. Для этого используется вход условия. И только после того как все подключения ко всем входам отработали, мини-игра работает и проходится.

Мини-игры должны быть унаследованы от класса game::CMinigame и иметь свой уникальный строковый идентификатор, по которому должна быть зарегистрирована в qe::CMinigameFactory. В шаблонном проекте выделен отдельный файл, в котором происходит регистрация всех мини-игр: Game/Minigames/RegisterMinigames.cpp.

Вся инициализация должна происходить в методе Init. Методом Update вызывается каждый кадр, в нем следует рассчитывать логику мини-игры. Draw позволяет мини-игре отображать ресурсы поверх сцены, к которой привязана мини-игра. OnMouseClick и OnMouseMove отлавливают события мыши. Для завершения мини-игры она должна вызвать OnMinigameComplete. Чтобы запустить игру из Quest Editor нажмите кнопку Play, при этом вы сможете как проверить основной игровой процесс, так и добавленные мини-игры.

Чтобы проверить игровую логику, до запуска игры в Quest Editor присутствует система валидации, которая позволяет отлавливать различные баги и несоответствия, появляющиеся при сборке и скриптовании сцен в редакторе. Например, если попытаться вызвать объект сцены в блоке или команде, система валидации проверит, существует ли данный объект. Если он отсутствует, она пометит его как объект с ошибкой, обведя в красную рамку или поставив рядом с проблемой восклицательный знак.

Alawar Engine. Часть третья. Создаем игру на демо версии движка

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

Alawar Engine. Часть третья. Создаем игру на демо версии движка

После того как игра создана, её можно скомпилировать, чтобы оптимизировать файлы игры и повысить скорость её запуска. В демо-версии движка добавлена возможность сборки игр под 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, предоставляется только и исключительно в ознакомительных (демонстрационных) целях. Любая попытка коммерческого использования программного обеспечения, его декомпиляции, дезассемблирования, модификации является нарушением исключительных прав.

Автор: EgorGutorov

Источник

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


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