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

в 11:48, , рубрики: разработка игр

Задача: Написать игру для платформы 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 игр — явный перебор.

Автор: Жрец

Источник

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


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