2026 · 1.3k LOC
Smereski TD
A native Android tower defense with a framework-free game loop you can unit-test on the JVM.
Smereski TD is a from-scratch tower defense for Android, no game engine involved. Drop Arrow, Cannon, and Frost towers along a snaking path, spend the gold you earn from kills, and hold the line across ten waves that scale enemy health and speed as they climb.
The interesting part is the architecture. The whole game world is framework-free Kotlin — towers and enemies are immutable data updated by copy, and the simulation lives in a plain object you can run and assert against on the JVM with no device in the loop. Rendering happens on a dedicated thread drawing to a SurfaceView Canvas, with touch input queued across the thread boundary to stay clear of concurrency bugs.
Twenty lives, a hundred starting gold, a fixed S-curve path on a grid, and a clean menu / playing / paused / game-over state machine. Small, native, and honest about what it is.
Kotlin on native Android, minimum SDK 24, landscape-locked, built with Gradle. Ships through my own app store.