Игровые движки и HTML5: а что по размеру билдов?

На рынке игровых движков полно вариантов на любой вкус и цвет, начиная от Open Source решений и заканчивая огромными коммерческими комбайнами. Большое количество игровых движков поддерживают сборку проекта для веб-платформ. Но от движка к движку различается итоговый размер собранного проекта. И это может влиять очень критично - не все платформы дистрибуции готовы хостить веб-проекты сами, а если и готовы, то они часто имеют ограничение на размер проекта.В связи с этим решил посмотреть, а что по размеру сборок у основных игроков на рынке?

Тестовая сцена влючает в себя лого Godot 128x128 32 бита, размер 4,209 килобайт.

Результаты сборки при максимальных возможных оптимизациях на уровне движка:

1. Godot (4.2.2) - 18.7 мегабайта. Остались включенными только модули GDScript, OpenGL, Brotli. Для полноценной работы маловато, но терпимо. Снизить ниже уже в разы сложнее.

2. Unity (2022.3 LTS) - 8.42 мегабайта. Потенциально можно дойти до 3-5 мегабайт.

3. Defold (1.8.1) - 2.62 мегабайта. Размер сборок мониторится, графики правдоподобные.

4. Game Maker (2024.4.1) - 2.32 мегабайта. Ужать можно сильнее, если залезть в код

Сюда не вошли:

1. Unreal Engine. Последняя версия с поддержкой web-платформ была 4.24, дальше только в виде отдельного расширения.

2. Нативные для браузеров движки на JS/TS, коих множество.

3. Прочие решения, которые не подошли мне по разным параметрам: Phaser, PlayCanvas, Construct, GDevelop и другие.

Возможно, я где-то ошибся или что-то не учел, поэтому буду рад конструктивным комментариям

44
24 комментария

Тольку от Godot 4.2.2? Он требует поддержку SharedArrayBuffer, а ни один сайт с веб играми не хочет добавлять этот флаг в заголовки. Вот Godot 3.5 уже весит 15 мегабайт и не имеет такой зависимости. Ещё можно прогнать .wasm файл через Binaryen, который для Godot 3 оптимизирует wasm файл и уменьшает его в среднем на 4 мегабайт без сжатия.

3

Кек, Itch. Io с нативной поддержкой этой фичи вышел из чата

Требуют, это правда. Но, кажется, они признали эти требования как факап и планируют отказаться от них в 4.3. Не нашел, как вставить гиперссылку:
https://godotengine.org/article/progress-report-web-export-in-4-3/#betting-on-the-wrong-horse

Про Binaryen не знал, спасибо! Постараюсь на неделе прогнать через него файлы и обновить информацию

У poki есть обзор почти всех движков, которые ориентированы на веб, там в т.ч. есть сравнение размера билда https://developers.poki.com/guide/web-game-engines

2

Хороший ресурс, спасибо!
Но информация по размеру сборок, похоже, устаревшая - я так и не смог получить 10 мегабайт для проекта на Godot.
Плюс там отсутствует информация, как именно они упаковывали проекты, какие инструменты использовали и прочее. А это интересный аспект сокращения размера билдов

У Unity не 15 мб файл пустого проекта, походу это личные терки Poki с Unity..

Интересно было бы посмотреть Phaser ?