👋 Hey there! Who We Are & What We’re Doing
We’re Seb and Nout, and together we’re building our very own game engine from scratch - because apparently, we enjoy suffering.
Our current project, APE, is a Vulkan-based hybrid ECS engine written in C++. It’s still in its early days, but the long-term goal is to make the tools we want for our own games — and hopefully for others too. We want this thing to be cross-platform and capable of supporting prototypes and full productions alike.
We both work on everything, but we have our “natural territories”:
-
I (Seb) — mostly the “engine dev” guy, wrangling the build system, DevOps, and anything that needs to compile on more than one platform without catching fire.
- I run a personal home server for storing project assets and tooling.
- I built an internal project management tool that sits on top of the build system and makes building/running to multiple targets painless. Think: build system on top of a build system, except not horrible (Nout will back me up on that one).
-
Nout — mostly the “game dev” guy, bending the engine into something fun, creating gameplay systems, and making sure the tech is actually used to make a game instead of just a renderer test.
- He also built an insane ECS system from scratch (which still feels like template black magic to me).
Here's an image of our GMTK 25 Game Jam project running on Windows and a Raspberry Pi 5:
🎯 Why We Joined GMTK 2025
We joined the GMTK Game Jam 2025 because deadlines force you to ship something meaningful.
We’d been building this Vulkan-based ECS engine for a while, but had never actually made a full game with it.
The jam was the perfect stress test - either we’d make something playable, or we’d uncover everything wrong with our engine in 96 hours. Spoiler: we did both — and lost some sanity along the way.
We had a warden watching over us during these gruesome hours:
🗺️ Pre-Jam Roadmap
One month before the jam, we made a feature hit-list for the engine:
High Priority Goals (mostly hit)
- ECS fully integrated with Rendering
- 2D Sprite Rendering
- Release Build Config
- Batch Rendering for speed
- Multithreading (basic task/job system)
- Simple Audio (SFX + music)
- Text Rendering
- Level Editor (planned, but didn’t finish)
Low Priority Goals (some untouched)
- Simple Physics (basic collisions)
- Simple Animation (not started)
- Post-Processing Effects (not started)
We achieved most of these in the sense that we glued everything together and hoped it would work. To be frank, we should have created a more extensive roadmap and given ourselves at least 2 months instead of just 1.
🎮 The Game - Rooms
Theme: Loop
The idea: you’re trapped in a series of rooms, and each time you loop, something changes — enemies, environment, even the player. These changes are based on actions you performed in the previous room.
We got it running on Windows (sorry iGPU users - no luck) and submitted something that’s part game, part tech demo.
Here's the end result:
💬 Player Feedback
We didn’t expect much - but people actually played it and commented.
“Really cool because your own game engine, but it is not interesting, 1 type of levels, grey map and characters and it is infinity without any reward. Good luck in future! I think you can do some cool!” - Carduus
“Well, I gotta give it to you, I don’t think many people make game jam games in their own custom 3d engine, that alone is very impressive.” - avengerandy
“I realized that I had to go through as many doors as possible, but after four or five, even going through the door didn't reload the room. Also, it seems to me that the opponent doesn't do anything after the first room. At least the setting and music give a well-defined feeling of oppression and tension.” - SingolettoGames
Even though we knew it wasn’t complete, it was still wild seeing people engage with something we built from scratch.
📝 Postmortem
Was It a Success?
Our jam goal wasn’t to win - it was to see if our engine could produce an actual game.
✅ Yes, it can.
❌ But not without pain.
Biggest Engine Pain Points
- ECS paradigm is still “black magic” in some areas
- No robust event system yet
- Renderer features are barebones, inconsistent across platforms
- Shader system is clunky - we need a proper shader transpiler
- Model loading requires too much manual shader wrangling
- No hot-reload for assets or code
- Asset/resource organization is chaos - needs a manager system
💭 Seb’s Thoughts
C++ is powerful - but the iteration speed sucks. Change one variable, recompile for ages. Even with all the devops magic I've done, it’s still a pain.
It’s why we want to fully switch to Carbon once it’s stable enough.
Our dream? To make APE one of the first major game engines written in Carbon, in the same way that Bevy has become one of the most well-known engines written in Rust.
We’re also praying Carbon ships with its own package manager and build system, because CMake is… CMake.
I’ve looked into alternatives, but our CMake scripts are massive now - rewriting them in something like Meson would take two weeks minimum, and that’s time we’d rather spend building features. For now, we follow the golden rule: don’t fix what isn’t broken.
💭 Nout’s Thoughts
I'm honestly getting more and more excited to just build cool stuff. With the heavylifting Seb does on the DevOps side, I can focus on creating user-empowering game development systems that make putting your thoughts into reality more comfortable than ever. There are definitely some things to work out, but so far at least we've proven that we can make it work.
We'd love for everything behind the scenes to be equally logical to the user experience, though with C++ it still requires a ton of complexity to make it all work. There is some template magic within the ECS system that I wrote that still confuses me at times. I am not sure if using a different, newer language will change any of this, but we have our hopes. Either way, we will find a way to make it work, regardless of the language and tools we use.
Overall, I can't wait to see what our future beholds, and after the gamejam I am especially excited to make some actual games.
📌 Topics for Future Devlogs
- Building our internal asset manager
- Overhauling the shader system with a transpiler
- Experimenting with hot-reloading in C++ (and maybe Lua bindings)
- Improving cross-platform rendering consistency
- Add DirectX and Metal support
- Attempt to build and run something on Android or iOS
- Preparing for the Carbon language transition
- Expanding editor tools & serialization
- Making the engine jam-ready without hacks
Thanks for sticking around through our game jam journey! We can’t wait to share more updates as we continue to develop our engine and create new experiences.
- Seb from Alien Arcade
Top comments (0)