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 负责。
怎么把它跑起来?克隆仓库,用 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 后端支持导出到桌面、移动端和主机平台。Web 支持还没有——计划中有一个用于 Web 导出的 KNI-engine 后端。
作者为什么把一个没做完的引擎开源?他很喜欢做这个项目,但空闲时间太少,一个人开发不过来,所以把它发布出来,希望有人来试验、改进语言和工具、补上缺失的功能、修 bug。他目前是唯一的开发者,欢迎随时提问。
代码里有 AI 写的部分吗?几乎没有。唯一的例外是碰撞检测用到的分离轴定理公式,是在 Claude 的帮助下写的;引擎、IDE、语言和整体架构都是手写的,因为作者做这个就是为了乐趣和挑战。
路线图上还有什么?与旧版 C# 版本的功能对齐、用于 Web 导出的 KNI-engine 后端、更完整更稳定的 Exp 语言、drawRect() 和 setRoomWidth() 这类常用游戏函数、移动端和主机的构建模板,还有文档、教程和示例项目。
What are similar projects?MonoGame, ebiten, sbox-public, raylib, libgdx, OpenDiablo2, luanti, BRUTAL
Size
15.3 MB
Stars
154
Updated
CommitOct 07
Age
5mo
Commits · 90 Days