Prune 2D Game Engine

Prune is a C++ 2D Game Engine where the game and editor exist within the same runtime. It is not trying to be a traditional engine where the editing happens in one mode and gameplay happens in another. The core goal is a play-and-build system where the editor is part of the runtime.

Prune has a shared editor shell. Different scene types reuse the main shell and then define their own behaviour, tools, panels, inspectors, object semantics, defaults and how to save their own data.

I pushed the initial commit to GitHub on the 2nd April 2026 and have been working on it steadily since then outside of my work and other commitments.

This is not my first attempt (Prune 2D) at building a 2D Game Engine in C++, I’ve tried a couple of times before; once from scratch and one using a template from The Cherno, a C++ YouTuber. Both previous attempts failed for the same reason, I leaned too far into building a general-purpose 2D game engine and all the required pieces, not what I needed and I didn’t even consider the editor.

Prune is different, this time the project has a clear purpose, I am building it for four reasons:

  • I have limited time to work on Prune. It is a hobby project so I need to be efficient with my time.
  • I want to improve my C++ knowledge.
  • I want to be able to build games with my children.
  • I want to create a system where the editor and runtime coexist.

The approach

My development approach is simple, I’m only plan a few phases each time, I’m always validating that everything works across of the game slices and I’m only developing the tools and features which are immediately useful to one or more game slices, or solve real UX problems.

The repository has an active record of what is happening, along with documentation explaining why decisions were, and were not made.

NOTES details what I will be working on in the short term and the goals for each phase.

DECISIONS is an ADR (Architecture Decision Record). The ADR details important decisions made during development. The most important entries are often why something is not eing done, along with the rationale behind it, these help me ground the project and retain focus.

The Goal

Prune has a specific goal which I have detailed above. The README includes a “Ready for users when…” section. My immediate larger goal is releasing a 0.x version of Prune, that section details what I need working before I consider the project ready for users at large.

I will blog more on Prune in the future, when I reach specific milestones, make important decisions or feel like explaining a more about the project.

I have not blogged for a few years, Prune felt like the right way to get started writing again.