Buildable Highlight Strings, Be Gone
We cached highlight coords and culled by viewport so buildable overlays stopped splitting "x,y" strings every frame.
Read More
Behind-the-scenes insights, development updates, and the latest news from our indie game studio.
We cached highlight coords and culled by viewport so buildable overlays stopped splitting "x,y" strings every frame.
Read MoreCatch up on the 9 most recent articles. Older stories live in the archive explorer.
We memoized the building render list and swapped per-item scans for a destruction lookup set, turning O(n log n + n·m) churn into simple cached draws.
Read More
Grid overlays, brush previews, and wood assets each stopped redoing the same per-frame work thanks to offscreen caches and WeakMaps.
Read More
We split the z-order pass into bridge and building buckets so the renderer only compares objects that can actually overlap, killing an O(B × n) hotspot.
Read More
We turned the eraser overlay's O(rows × cols) hover scan into a constant-time doodad lookup by caching footprints and sampling only nearby anchors.
Read More
We replaced an O(placements × footprint²) collision pass with a memoized occupancy index so ghost previews cost only their own footprint, not the whole map.
Read More
Reflecting on our journey as an indie game studio and the lessons we've learned along the way.
Read More
How we debugged a phantom tower dependency bug that only appeared after a precise choreography of placements, and discovered that coverage-first thinking solved what graph theory couldn't.
Read More
An inside look at our level design philosophy for our upcoming puzzle game Wildermine.
Read MoreHow delta-based history, renderer refactoring, and state management consolidation achieved 99.8% memory savings with zero regressions
Read MoreArchive Explorer
November 2025
Loaded 6 stories.

We cached highlight coords and culled by viewport so buildable overlays stopped splitting "x,y" strings every frame.

We memoized the building render list and swapped per-item scans for a destruction lookup set, turning O(n log n + n·m) churn into simple cached draws.

Grid overlays, brush previews, and wood assets each stopped redoing the same per-frame work thanks to offscreen caches and WeakMaps.

We split the z-order pass into bridge and building buckets so the renderer only compares objects that can actually overlap, killing an O(B × n) hotspot.

We turned the eraser overlay's O(rows × cols) hover scan into a constant-time doodad lookup by caching footprints and sampling only nearby anchors.

We replaced an O(placements × footprint²) collision pass with a memoized occupancy index so ghost previews cost only their own footprint, not the whole map.