Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- To any aspiring game developers out there: If you need AAA-equivalent graphics and are willing to tank the overhead, use UE5. Otherwise, homebrew everything in the language you prefer (use an LLM, make sure you understand the architecture perfectly).
Using a half-baked semi-supported game engine which you don't understand will destroy your project sooner or later. The cognitive overhead of understanding someone else's code is far, far higher than using your own. If you can't handle any of this, get a developer on board who can - you aren't equipped for this.
- Eh, what's wrong with using Unity or Godot or GameMaker?
- Just write your own SDL how hard could it beby xgulfie
- As mentioned there are plenty of engines mature and worthy to develop with, like Godot.
Advising to homebrew everything with an LLM just sounds insane to me. Cognitive overhead of what? Using well thought out and standardized libraries that have proper documentation? Creating a new engine with an LLM is only going to achieve the opposite of fully understanding your codebase.
by semyonsh - looking for open source game engines lately, this is soooo cool :)by wingardium
- Thanksby am-gm
- We are reaching levels of based that shouldn't even be possible.by FLeXMurphy
- I think if you're looking for other people to use your game engine, it helps to have one killer feature. I'm not clear what yours is at this point. Even if your killer feature is not something you have yet completely implemented, but it is simply a long-term goal, I think it is worth listing that front and center.by BSTRhino
- If I'll have an idea for such a "killer-feature", I'll do my best to implement it... :)by am-gm
- Owning the language, IDE, and engine might actually be the interesting part here. The question is what workflow that lets you build that would be awkward or impossible in Godot/GameMaker. If you find that, you probably find the project's killer feature too.by kiops
- > 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#.
Is there a plugin system that allows me to code in C#? (Or F#, or perhaps any of the other dotnet scripting languages?) I'd prefer to avoid a new language if possible.
by gwbas1c - Seems rather trivial, just extend the codebase.by ux266478
- So I need to implement again the assembly manager in the IDE. which will allow you to add your own C# libraries (DLLs) and then the answer would be yes, but from within the engine's language, like this:
There is already a relection-based way to call C# functions from my language, i call it "extern classes":C#: public void DoSomething(Exp.Instance? callingInst, Exp.IValue?[] args) { ... } Exp: doSomething("hello")
it can also be used with non-static classes, and you can use new(...) expressions on them, and "is" tests and access properties and so on... it SHOULD feel like a normal Exp class. The only exception is that it does not fit to performance-critical contexts, because it uses the slow reflection APIs of C#. but it's already working, unlike the assembly manager feature that is not implemented yet but will allow fast invocations.extern class File = "System.IO.File" println(File.readAllText(filePath))by am-gm - That is an ambitious undertaking.
Out of personal interest, what role do you envision for Exp in the long term? Do you see it primarily as a scripting language for a game engine, similar to a Lua-like language embedded in a C# application, or as a standalone programming language in its own right?
by puffball1567 - Thanks! Exp is the prototype for something I'm not sure how it would look at the end. Originally, i thought of a standalone language that is not only for game dev, but generally for anything requiring scripting. But I'm pretty much open for ideas on how to shape its futureby am-gm
- It seems for me fundamentally wrong to use C# to write some scripting language, since C# itself is pretty high-level and is used widely for scripting (like in Unity).by Panzerschrek
- The README mentions that C# was used initially so I'd be surprised if that support is not still in there.by jocoda
- I've also been making a game engine based on MonoGame (and prime31/Nez), and one thing I recommend looking into is headless mode for both the game and the editor. I started my engine in the first place because I want to get back into gamedev, but there's no way I'm going back to the convoluted editor-centered workflow of Unity/Godot. And with proper MVVM, you can get the game headless too, so agents can play without the UI and run thousands of simulations of the gameplay.
Overall, MVVM should be getting a renaissance because of how well it determines the layers and data flow for AI. I have multiple projects using it, and even in early 2025, models had almost no issues understanding my code and implementing new features. Now I set up MVVM-inspired headless architectures including for Swift or React Native projects and it works like a charm.
by ivm - The thing is that doing a separation for editors necessitates that you create a "client-server" protocol and things needs to flow through it, and that adds quite a bit of complexity over a "plain" editor.
And for authoring tools, especially in gamedev that can really blow up in complexity, because you often want to create custom editors (imagine things like enemy paths, layered enemy paths, skin customization options, and so on) and every customized one risks adding more complexity to the protocol (unless ridiculously overspecified from start).
This is why "dear ImGui" is so popular (look at the example screenshots for the library.. tons of editors), the magic is that you can tie rendering of the editor to the editables quite easily so there is very little overhead in makin an editor (a task that normally can gobble up inordinate amounts of time).
by whizzter - The inspiration on GameMaker is clear and very much appreciated.
Can the IDE run on other OSes besides Windows? You seem to be using WinForms.I tried building it and running through Wine, but it didn't work.
Congrats on the project, making an IDE is no easy task. I believe there's room for a game engine to offer what GameMaker 8.1 used to (near instant runs, extremely fast iteration time for 2D games).
- Thanks. As you said, the IDE is built on winforms, so it's windows only. maybe it was a mistake to not to use a cross platform framework like avalonia, but i really like the winforms designer, and winforms is the only UI framework i ever used, except for MAUI which is not a good idea to build an IDE on.by am-gm
- This is a massive undertaking... building a whole language + IDE + engine from scratch is insane. I am curious: what made you go with a custom language instead of just embedding Lua or something? Was it a learning thing, or do you think Exp brings something Lua (or GML) doesn't?by h2aichat
- As somebody else with a game engine that has its own scripting language:
AI is incredibly good at making scripting languages with your ideal dream syntax/functionality. It's pretty fun to use it.
(No, neither my engine nor my language is worth using and never will be)
- Reminds me of the Tomorrow Corporation (developer of World of Goo) tech demo: https://www.youtube.com/watch?v=72y2EC5fkcE
Their entire stack is custom (language, compiler, IDE, build system, engine). Has neat features like time-travelling debugging and instant hot-reloading for code and assets.
by scrlk - Thanks! so, at first i really used C# for scripting language, so it was like GameMaker-8 but C# instead of GML... but after almost year of development, i was bored. it wasn't exciting anymore, and when i asked myself what would make it exciting again, the answer was "my own language". i don't know why, but it's something i always wanted to build by myself. i had absolutly 0% idea on HOW, but after a break of more than a year, one day i just tried and unlike a few previous times, this time it started clicking, and this what bringed me back to the abandoned game engineby am-gm
- Wow, my post suddenly went viral! Just opened GitHub a few minutes ago, and saw +17 stars on my project from the last few hours... Anyway, i see a lot of people asking WHY making ky own engine or language. So the main answer is: for fun. it's clearly not going to be even close to a professional engine like godot/unity/modern gamemaker, but this is mine, and the others aren't :) But i wrote more about it here: https://www.reddit.com/r/csharp/comments/1tmcg6j/my_biggest_...by am-gm
- Two thoughts/questions:
- do you feel that this could be used to make a (simple) drawing program?
- have you considered setting up your codebase as a Literate Program?
http://literateprogramming.com/
Notably, that would then allow publishing the project as a PDF for didactive purposes.
by WillAdams - Thanks for sharing! Great attitude!by spacechild1