ArcadeMaker — это простой кросс-платформенный 2D-движок с собственным языком программирования Exp и встроенной IDE. Сам движок и редактор написаны на C#, но игры внутри программируются на Exp, а не на C#. За графику и звук отвечает MonoGame, поэтому сборка возможна под десктоп, мобильные платформы и консоли. Ещё планируется backend на KNI, чтобы добавить веб-экспорт. Проект пока не завершён, и времени на него у разработчика мало, поэтому он открыл исходники в надежде, что комьюнити поможет довести дело до ума.
ArcadeMaker сделан по мотивам GameMaker 8 — если с ним работал, разберёшься быстро. Движок писался несколько лет, и разные его части появились в очень разное время. IDE создана около трёх лет назад, потом появился язык Exp, а уже после — новый core и реализация на MonoGame. Изначально логика игр была на C#, но разработчик вернулся к проекту, заменил C#-скрипты на Exp и переписал ядро. Из-за такой истории в IDE есть функции, которые новый движок пока не поддерживает. Например, parent objects есть в редакторе, но не работают в движке. Менеджер DLL-пакетов в IDE тоже есть, но сейчас ни на что не влияет — он имел смысл, когда скрипты были на C#.
Долгосрочная цель — довести движок до паритета со старой C#-версией, а потом расширять дальше. В планах: реализовать недостающие фичи IDE, сделать KNI-backend для веба, довести до ума язык Exp, добавить повседневные функции вроде drawRect(), deactivateInstancesInRegion(), setRoomWidth(), шаблоны для мобильных и консольных сборок, документацию и примеры проектов.
Разработчик надеется, что open source поможет: можно экспериментировать, улучшать язык и тулинг, добавлять фичи, чинить баги. Чтобы собрать ArcadeMaker, нужно склонировать репозиторий, открыть solution в Visual Studio, Rider или VS Code, восстановить NuGet-пакеты и запустить IDE-проект. Потом можно открыть пример из "tests/Example Projects". Контрибьюции любые: код, исправления, документация, идеи по языку и движку. Перед pull request лучше открыть issue.
Сейчас над проектом работает один человек в свободное время, поэтому документации почти нет. Он обещает отвечать на любые вопросы. Лицензия — MIT.
Отдельно про AI: README писался с помощью GPT, но код почти целиком рукописный. Единственное исключение — Claude помог с формулами Separating Axis Theorem для коллизий, потому что математика для автора тяжеловата. Он не против AI как инструмента, но получает удовольствие от самостоятельного написания кода. По его словам, даже в эпоху AI людям нужно понимать, как работает код, а для этого надо писать его руками. Такой движок подойдёт и для обучения, и для тех, кто хочет просто делать игры в своё удовольствие.