Brick Game 9999-in-1
A recreation of the retro LCD handheld console in Kotlin on the Canvas API — five games sharing one 10x20 grid engine, verified by actually playing them.
Overview
The grey plastic handheld that claimed 9999 games and shipped with about nine. This is a recreation for Android, written in Kotlin directly on the Canvas API with no game engine — five games running on one shared 10x20 grid engine, the same constraint the original hardware imposed.
The interesting constraint
One engine, five games. The grid, the render loop, the input handling and the scoring shell are shared; each game supplies only its own rules for what happens on the next tick. That is a pleasant design pressure — it forces a genuine separation between "how the world advances and draws" and "what this particular game means", and it means a rendering fix lands in all five at once.
Verified by playing it
Canvas games hide a specific class of bug that no static check catches:
shared mutable Paint state. Configure a Paint in one draw call, forget to
reset it, and a later shape inherits the wrong colour, alpha or stroke — a
defect that compiles cleanly, passes review, and is instantly obvious the
moment you look at the screen.
So every game got driven on a real emulator session, not just built. It is the only way to be sure.