Pull to refresh

Тест игровых движков и HTML5 (Project )

Задача: Написать игру для платформы Facebook Instant Games на HTML5, используя движок для создания игр. Полученная игра должна иметь минимальный объем и хороший фпс. Ограничение по размеру у фейсбук хостинга — не более 5Мб в заархивированном виде.

Для тестов возьмем следующие движки:

Скриншоты с тестов

  • Defold
  • Libgdx
  • Corona(HTML5 в альфа версии)
  • Unity 3d — на закуску — почти уверен, что не впишется в заявленные для объема рамки
  • Cocos не получилось скачать(хостинг DigitalOcean заблочил РКН)

Сравниваемые объективные параметры:

  • Размер архива с билдом
  • Объем загруженных данных при запуске в браузере

Остальные параметры можно считать субъективными.

Для тестов на каждом из движков создадим простенькую аркадную игру. Суть игры — сверху экрана двигаются пять блоков, каждый с собственной прочностью. Посередине экрана находится управляемый игроком круг, у которого тоже есть своя прочность. При столкновении блока и круга прочность уменьшается у обоих на 1. Если прочность круга станет меньше 0 — конец игры. А если прочность блока будет меньше 1 — он исчезает, открывая дорогу для круга. Пополнение прочности круга происходит за счет подбора бонусов, которые создаются вместе с блоками, но расположены чуть ниже.

На написание данной игры сподвиг совместный конкурс Corona Labs и VK Direct Games, основное требование которого было создание игры для VK Direct Games на движке Corona на тему «Путешествие во времени». Поэтому игра будет называться Wormhole или Кротовая нора. Начальная задумка: блоки — это кротовые норы, чтобы пройти через них требуется расход антиматерии(в описании игры сбор бонусов), ну а кружок это сборщик антиматерии и проходчик через эти норы.

Рассмотрим из каких объектов и частей состоит игра. Каждый блок состоит из трёх основных компонентов: квадратный блок, текст со значением прочности и хвост. Блоки могут быть двух видов — синие и желтые. В зависимости от типа при столкновении с кругом меняется «год назначения» (синий минус, желтый плюс). Хвост у всех одинаковый — градиент от синего к желтому или перевернут на 180 градусов от желтого к синему.

Кружочек состоит также из нескольких частей. Часть один — синий круг с текстом прочности, часть два — хвост, чья длина и отражает прочность, каждый вагончик хвоста может отображать 0 — 6 единиц прочности. Хвост следует за кружочком в режиме змейки. Положением кружочка управляет игрок передвигая пальцем по экрану, но изменяя только положение по координате Х.

Результаты испытания движков приведены в таблице:
Движок Объём архива с билдом, Мб Объём загруженных данных, Мб
Defold 1,2 1,3
Corona 2,0 2,0
Libgdx 2,7 0,8
Unity 4,5 4,5

Согласно результатам — меньший объем у Defold, однако для дальнейшей разработки я решил выбрать Libgdx и вот почему:

  1. Прошлый проект также делал на Libgdx — (меньше времени уйдёт на понимание работы движка, возможность использования собственных наработок с прошлой игры)
  2. Более быстрая загрузка игры (0,8 vs 1,3)

Corona по объему на втором месте, но ФПС наименьший из всех(да для Corona HTML5 — это альфа тестирование). Достоинством Defold можно считать встроенный редактор атласов текстур и существование специального расширения для FB Instant Games. Unity — он всё же для более крупных проектов, для мелких HTML5 игр — явный перебор.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.