Projects: Games Now Live Outside the Engine

This is the last of three catch-up posts, after the asset system and the platform layer. It’s about the change that the other two were leading up to: games are no longer part of the engine. They are projects that the editor builds, runs, and hot reloads. The Problem In the asset system post I described how Arkham ended up compiled directly into the engine after my first attempt at loading it as a module. That kept me productive for a while, but it meant the engine had an Arkham editor mode, Arkham game state, Arkham assets, and a “Play Game” button that only worked for one game. Starting a second game would have meant adding all of that again. ...

October 20, 2026 · 6 min · 1251 words · pvlso

Finishing the Asset System

In the last post I said that I would write a dedicated post about the asset system once it was finished. The rewrite was finished at the end of December, followed by a couple of weeks of work on tags in January, and then the engine sat untouched for most of the year. Since then a lot has changed, so I’m splitting the catch-up into three posts. This one closes the asset system chapter, the next one is about the new platform layer, and the last one is about how games are built on top of the engine now. ...

October 20, 2026 · 6 min · 1198 words · pvlso

Reworking the Asset System (and Rethinking the Engine)

Before making Kaban Engine public, I started reworking the asset system. What was supposed to be a small, focused change turned into a larger cleanup pass, because once I touched it, several weak spots became obvious. The original goal was simple: end up with a built asset file that the game can load quickly and query efficiently. That meant tightening definitions, removing ambiguity, and enforcing rules. Tags The first thing I tackled was the tag system. ...

December 18, 2025 · 5 min · 983 words · pvlso

Implementing Navigation Meshes

In my previous blog post, I explained what navigation meshes are and why they’re essential for my game. In this post, I’ll walk you through how I implemented this functionality in my game engine, breaking down the process step by step. Step 1: Creating Native Polygons The foundation of the navigation mesh is a set of “native” polygons that define all walkable areas in the game. I call them “native” because the mesh generation process relies on them. To create these polygons, I added tools to draw, edit, and save them within the engine. For now, this manual approach works well since the map is relatively small, but I’m considering automating this process in the future to handle larger or more complex maps. ...

June 1, 2025 · 10 min · 2110 words · pvlso

Progress on Navigation Meshes for Map Editing Mode

Over the past few weeks, I’ve made significant progress on the navigation mesh system for my map editing mode, a core feature for creating interactive game levels. This post dives into why I chose navigation meshes, the details of what I’ve built, the challenges I’ve faced, and the next steps I’m tackling. For those unfamiliar, the map editing mode in my game engine allows users to design game environments, including ground tiles, entity placement, and navigation meshes. My current focus is on navigation meshes, which are critical for enabling entities to move intelligently within the environment. Let’s explore the motivation behind this choice and my recent progress. ...

May 24, 2025 · 5 min · 930 words · pvlso