А какие движки у нас есть?
А какие движки у нас есть?

Не статья, просто тема для размышления. Фреймворки тоже приветствуются. Что я забыл? Кто с чем работал? Интересно послушать про особенности, стабильность, подводные камни. Может быть, кто-то себе подберет, что-то по вкусу.

8181

Game Maker Studio 2

Стоит забыть про родное IDE - лучше пользоваться GMEdit, который позволяет типизировать с помощью вспомогательной разметки переменные, методы, функции и структуры.
Большие и сложные проекты без всего этого можно разрабатывать, но через какое-то время сложность поддержки кода слишком вырастет. Типизируйте.

YoYo (разработчики движка) тоже это поняли, поэтому в новых версиях появился и потихоньку развивается Feather - линтер, подсказывающий warnings и ошибки, в т.ч. несоответствие типов. Типы указываются с помощью JSDoc разметки, что сильно менее удобно, чем сторонняя реализация из GMEdit. Плюс Feather тормозной, особенно на больших проектах.

Движок стал активно развиваться после покупки оперой. Обновления выходят регулярно, есть роадмапа и активный форум.

Недавно добавили ограниченную поддержку ImGUI - теперь можно делать дебажные интерфейсы. Удобно (хотя мы используем имгуи в проекте уже несколько лет).

Так же в последних версиях добавили SDF шрифты из коробки. Приятно.

Из минусов:
- Производительность. Да, есть экспорт в c++ вермишель, это дает прирост в 2 раза по сравнению с дефолтной VM версии экспорта, но порой и этого недостаточно. Есть оверхеды при использовании структур, классов и методов вместо глобальных функций и массивов.
- Рендер. Частицы довольно всратые и медленные. Нет compute shaders. Умельцы добавляют поддержку DX12 и инстансинг, по умолчанию этого нет. Нельзя считать zbuffer напрямую. Шейдеры нужно писать ручками на GLSL или HLSL и перекомпилировать проект, чтобы посмотреть изменения. Шейдер в целом довольно медленный - обидно смотреть на какой-нибудь Unreal Engine, в котором выходят инновационные Nanite и иже с ними, а ты, тем временем, думаешь, как бы оптимизировать шейдеры в твоей 2д игре, чтобы она не - тормозила на встройке AMD.
- Для тех, кто привык к юнитям и анрилам, в гмс нужно делать довольно много своими руками, чтобы было красиво. По умолчанию в проекте ты имеешь черный пустой экран и все. Остальное на разработчике.
- Коммунити сильно меньше. Непросто найти профессионалов в случае найма. (потому что казалось бы, какие нафиг профессионалы на гейм мейкере. Зачастую пользователи гмс - это новички, либо старички, которые просто по инерции ковыряются в движке, помятуя еще версию 7.0 от Марка Овермаса. Остальное - немногочисленные исключения, т.к. если чел хочет зарабатывать в геймдеве - он пойдет учиться юнити или анрилу. На западе с кадрами получше.)
- Всратый и неудобный дебаггер. К тому же нестабильный на тяжелых проектах.

Тем не менее на нем можно сделать успешную игру. Например Norland ;)

12

Спасибо за такой шикарный обзор!

2

А игра на анриле запустится на этой самой амд встройке? 😳