A stubborn attempt to build a game engine from scratch.
Introduction
After several years of learning, experimenting, and slowly turning a Handmade Hero practice project into something independent, Kaban Engine is now public. It is early, imperfect, and incomplete, but it represents a real foundation to build on. The goal of publishing it now is not to claim it’s ready, but to let the development become open and visible.
A Brief Background
The project began as many do: by studying and following someone else’s work. In this case, it was Casey Muratori’s Handmade Hero series. For a long time, it was a one-to-one learning exercise — a way to understand how an experienced programmer approaches systems and decisions.
About a year ago, the project shifted. Instead of continuing to follow along, I started redesigning parts, rewriting systems, and building features that weren’t in the original example. That change is what turned a learning exercise into Kaban Engine.
Current State of the Engine
The engine builds, it runs, and it contains several core systems that are functional, though far from complete.
Currently implemented:
- A basic editor with multiple modes for asset management, map editing, and general tooling.
- An asset system capable of importing, editing, and packaging data for the engine.
- A navigation mesh subsystem, currently at prototype level, but operational and supporting agent movement.
- A rendering layer that is stable enough for ongoing development.
These systems are not finished, but they are usable enough to support future work.
What’s Missing or Incomplete
Several important systems are in their earliest stages:
- The entity system is minimal and not yet suitable for complex gameplay.
- The animation system is mostly conceptual, with only basic code in place.
- Some editor tools depend on unfinished systems, so functionality is incomplete or temporarily disabled.
- There is little to no documentation aimed at external users.
- No guarantee of stability, platform support, or ease of compilation outside a similar development environment.
The goal is not to present a polished framework but to show honest progress.
Why Publish It Now
Projects that stay private often stagnate. Making the engine public sets a direction and encourages consistency. It also allows the progress to be recorded, shared, and eventually improved with clearer goals.
The intention is not to attract users, nor to claim this engine is ready for production. It is simply to acknowledge that the project has outgrown being a private learning tool.
Closing
Kaban Engine is not a polished product. It is a work in progress, built with the goal of understanding systems by creating them. Publishing it is not a milestone of completion, but a step toward continued development with more clarity and accountability.
The engine will grow, improve, and change over time — and now, its progress won’t be hidden.
Note: Most of the blog posts on this website are about development of this engine, feel free to check them out!