Princeton TD Game Engine
Kevin built a full tower defense game in the browser with no engine, no sprite sheets, just a hand-rolled Canvas 2D renderer forcing the browser to do real labor.
Princeton Tower Defense is the most intense browser game build Kevin has done: 26 levels across 5 biomes, 7 towers with branching upgrades, 9 heroes, 6 spells, and 100-plus enemy types, all rendered procedurally in Canvas 2D. Source: Princeton Tower Defense The constraint was the point. Refusing a game engine forced the invention, offscreen layer caching, adaptive quality scaling, batched strokes, and gradient caching, which is exactly the pattern in Constraints Breed Creativity. The dev-diary line captures it: no engine, no hand-wavy abstraction layer, just a hand-rolled renderer. Source: Princeton Tower Defense
It was also nobody's assignment, which is why it produced the work it did. This is Want It Bad Enough in artifact form: 655 Cursor agent sessions across more than two months, a personal project that pulled the 3am flow state rather than a spec that had to be met. Source: Princeton Tower Defense
The project doubled as proof in public. A 31-day dev diary ran on X, and the format of filming Nicky He playing the game produced two high-engagement posts, a repeatable QA-as-content loop. Source: Princeton Tower Defense; Kevin Liu That public arc is told more broadly in Building in Public. The Princeton theming, towers and levels named for Nassau, Firestone, Blair, and Dinky, made it unmistakably his.
The diary doubled as a notebook of craft principles. Lines like "great game UI is a compression codec for chaos" and "a lot of canvas performance is just having the courage to not repaint things" turned the build into shareable lessons rather than only screenshots. Source: Princeton Tower Defense The scale behind those lessons was real: render modules running into the tens of thousands of lines, no engine underneath any of it.
Timeline
- 2026-03 | 31-day dev diary on X; game shipped and live at princetontd.vercel.app. Source: Princeton Tower Defense
- 2026-03 to 2026-05 | 655 Cursor agent sessions across continuous development. Source: Princeton Tower Defense
- 2026-04-28 | Domain purchased (ptd.quest); Twitter OpenGraph fixed. Source: Princeton Tower Defense
- 2026-04-22 | Wiki project page created; post-launch development ongoing (new levels, enemies, sandbox mode). Source: Princeton Tower Defense
- 2026-05-31 | Story page compiled. Source: compiled from wiki graph