Project Raygine
The recent 2 weeks, I've been toying around with writing a game engine. I have some ideas I want to try out and I don't want to rely on Unity any more (you know why). The reason why I am not looking into Godot or Lumberjack and so on is, that I am always not quite happy with their approaches and decisions. Besides - I am never making a game anyway!
So here's: Raygine. A game engine written in C++ and Lua using Raylib as foundation and Dear ImGui for the UI.
I have a bit of a vision here - and it differs from what usually game engines try center around:
- It's not about rendering; while I want to leverage 3d rendering, this isn't what I want to focus on. Simplicity here.
- Asset management: Assets should be as easy to import and utilize as in Unity. Renaming a file should not break the game. Linking files happens through unique identifiers - not through paths.
- Visual editing: Just like with Unity, I want a visual scene editor, featuring a hierarchy and an inspector to edit entities. The UI is rendered through Dear ImGui.
- Editor extensibility: The editor is a tool. It should be customizable everywhere. Integrating new tools needed for making a game should be easy.
- Scripting: LuaJIT - running pretty much everything aside from lowlevel tasks. Performance is NOT my main concern. It should be fine for smaller games without worrying much.
- Testing the game: Running the game in editor or in browser or on mobile should be easy. Connecting a runtime with the editor should be easy and the runtime scene state should be shown at any time.
- Debugging: Debugging should be easy. I want to be able to set breakpoints and inspect the state of the game at any time.
- Building: Building the game should be easy. I want to set things up that deploying to Windows, browser and Android is just a few clicks. I have no idea about the other platforms, but in case those platforms work, it should be possible to integrate others later on.
These are some big goals. I am not sure if I can achieve them, as I usually can't stick to one thing for more than 2 weeks. But I am going to try. I am going to write about my progress here.
In the meantime, here's a screenshot of the current state of the editor: