Hey, I’m Pavlo 👋

Developer and engineer. I build a game engine in C/C++ (Kaban Engine), design machines that run in production (Golf Ball Counter), and write about how it all works. See Projects and About.

Navigation Meshes Are Back, Now With Levels

Maps get levels and hand-drawn navigation areas, my Clipper rewrite finally comes into the engine, and games move over the baked mesh.

November 6, 2026 · 8 min · 1636 words · pvlso

The Map Editor, Rebuilt: Tile Sets, Layers, and Entities Designed Four Times

The engine gets a new map editor with curated tile sets, plain text map files, and an entity system that got smaller every time I redesigned it.

November 6, 2026 · 7 min · 1467 words · pvlso

A New Renderer: OpenGL 3.3, a Pixel World, and a Very Stubborn Wobble

The engine drops fixed-function OpenGL for shaders, and games get a pixel-art world with smooth scrolling, their own shaders, and lights.

November 6, 2026 · 8 min · 1565 words · pvlso

Golf Ball Counting Machine v2: Removing the Electronics

The second version of the counting table drops the Arduino and motors for a lever, a ratchet spool and a spring-loaded bag clamp. It’s now in daily production.

October 26, 2026 · 5 min · 880 words · pvlso

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