ArcadeMaker README

The project's README from github.com/ArcadeMakerSources/ArcadeMaker. As one markdown file: README.md.

ArcadeMaker

rbr_ss4 rbr_ss22 rbr_ss3 rbr_ss1

Video of an example game made with the engine

ArcadeMaker is a simple 2D cross‑platform game engine that includes its own programming language (its prototype is called Exp) and an integrated IDE.
The engine and IDE themselves are written in C#, but the language you use inside ArcadeMaker to program your games is my custom language, not C#.

Currently, the graphics and audio backend is powered by MonoGame, which allows exporting to desktop, mobile, and consoles. I’m also planning to add a KNI-engine implementation to enable web support.

This project is not finished yet.
But since I have very little time to work on it, I decided to open‑source it in the hope that others will find it interesting and help turn it into something real.

ArcadeMaker is based on GameMaker 8, so if you’ve ever used it, you’ll find it very easy to learn.


Project Background

ArcadeMaker has been built in several stages over the span of a few years, and different parts of it were written at very different points in my programming journey.

Originally, ArcadeMaker started as a C#‑based engine where users wrote their game logic directly in C#. After leaving the project for a while, I eventually created my own programming language and decided to return to ArcadeMaker — replacing the old C# scripting layer with my language and rewriting the core engine around it.

Because of this long, staggered development history, the IDE currently includes many features that the new engine backend does not yet support. For example:

The long‑term goal is to bring the new engine up to feature parity with the old C# version — and then expand far beyond it.


Planned Features


Why Open Source?

I love working on ArcadeMaker, but I don’t have enough time to develop it at the pace it deserves.
By open‑sourcing it, I hope others will:

If you enjoy GameMaker‑style workflows or want to contribute to a lightweight, beginner‑friendly 2D engine, you’re more than welcome to join.


How to Build

  1. Clone the repository.
  2. Open the solution in your preferred C# IDE (Visual Studio, Rider, or VS Code).
  3. Restore NuGet packages.
  4. Build the project.
  5. Run the IDE project to start ArcadeMaker.
  6. (Optionally) - After the IDE is loaded, go to "File -> Open Project" to load an example project from "tests/Example Projects".

Contributing

Contributions of all kinds are appreciated:

Before submitting a pull request, please open an issue to discuss your idea. Currently I'm only one dev working on this project alone in my free time, so documentation is really, really missing. I'll try do my best to improve it, but please feel free to ask any question you have about anything related to the project, I'll answer to anything!


License

This project is licensed under the MIT License.
See the LICENSE file for details.


Note About This README and AI Usage

I used GPT to help write this README file.

And since AI is mentioned, a few words about it:
This project contains almost 0% AI‑generated code or architecture. The only exception is that I used Claude to write the Separating Axis Theorem formulas for collision detection, because that math is a bit too heavy for me. Other than that, everything — the engine, the IDE, the language, the architecture — is hand‑written.

Not because there’s anything wrong with using AI as a programming tool. I know it’s a huge part of the future of software development.
It’s just that I built this project for fun and for the challenge, and personally I enjoy writing the code myself rather than having a machine do it for me.

In the era of AI and its growing power, I still believe a complete version of this project could be genuinely useful. ArcadeMaker is a beginner‑friendly engine, and people will always need to understand how code works, even if they eventually stop writing every line by hand. The only real way to learn that is by actually writing code.
And beyond learning, this engine can also be a great tool for anyone who simply wants to make games for fun, by themselves, without relying on AI to do all the work.

ArcadeMaker (ArcadeMakerSources/ArcadeMaker)

Searching Database…

Что это такое?ArcadeMaker — простой кроссплатформенный 2D-движок для игр, в который встроен собственный язык программирования (прототип называется Exp) и интегрированная IDE; сделан по образцу GameMaker 8.
То есть игры я пишу на C#, или тут свой язык?Движок и IDE написаны на C#, но игры вы программируете на авторском языке Exp, а не на C#. За графику и звук отвечает MonoGame.
Как его запустить?Клонируйте репозиторий, откройте solution в Visual Studio, Rider или VS Code, восстановите NuGet-пакеты, соберите проект и запустите проект IDE. Затем через File -> Open Project можно открыть пример из tests/Example Projects.
Что нужно установить, чтобы собрать проект?Только среда разработки на C#: Visual Studio, Rider или VS Code, плюс перед сборкой нужно восстановить NuGet-пакеты.
На нём уже реально можно сделать игру, или пока всё сыро?Пока не доделан. В IDE есть функции, которые новый бэкенд движка не поддерживает: родительские объекты в движке не реализованы, менеджер DLL-пакетов сейчас ни на что не влияет, а документации сильно не хватает.
Я никогда не пользовался GameMaker — новичку это под силу?Да — задуман как лёгкий движок, дружелюбный к новичкам. Он основан на GameMaker 8, так что пользователи GameMaker почувствуют себя как дома, а автор видит в нём ещё и практический способ разобраться, как устроен код.
На каких платформах смогут работать мои игры?Бэкенд на MonoGame позволяет экспортировать игры на десктоп, мобильные устройства и консоли. Веба пока нет — для веб-экспорта планируется бэкенд на движке KNI.
Зачем автор выложил в открытый доступ недоделанный движок?Ему нравится над ним работать, но свободного времени слишком мало, чтобы развивать его в одиночку. Поэтому он выложил его в надежде, что другие будут экспериментировать, улучшать язык и инструменты, добавлять недостающие функции и исправлять баги. Сейчас он единственный разработчик и приглашает задавать вопросы о чём угодно.
Какой-нибудь код писала нейросеть?Почти нет. Единственное исключение — формулы теоремы о разделяющей оси для проверки столкновений, написанные с помощью Claude; сам движок, IDE, язык и архитектура написаны вручную, потому что автор делал это для удовольствия и ради интереса.
Что ещё есть в планах?Паритет функций со старой версией на C#, бэкенд на движке KNI для веб-экспорта, более полный и стабильный язык Exp, обычные игровые функции вроде drawRect() и setRoomWidth(), шаблоны сборки для мобильных устройств и консолей, а также документация, уроки и примеры проектов.
What are similar projects?MonoGame, ebiten, sbox-public, raylib, libgdx, OpenDiablo2, luanti, BRUTAL
Size
15.4 MB
Stars
155
Updated
CommitOct 17
Age
5mo
Commits · 90 Days