klad
A team shooter where the codebase enforces its own quality rules automatically.
- Game Development
- React
- Testing
- Real-time Systems
- Lua
A class-based round shooter with loadouts, map voting, an in-game economy, and player progression — about 31,400 lines across 416 files, with 12 server-side systems.
The interesting part is not the game. It is that the rules about how the code is written are checked by a program, not by memory.
Quality enforced by machine
Every commit runs a set of checks that will reject the commit outright:
- No raw colors or fonts in the interface. Every one has to come from the theme, so changing the look means changing one file instead of hunting through hundreds.
- Only two files are allowed to build certain visual primitives. Everything else composes them.
- Strict layering. High-level systems may call downward, low-level pieces may never call upward, and two systems at the same level may not talk to each other directly.
Written down, these are the kind of rules a team agrees to and then quietly stops following. Enforced by a script, they hold.
One-way data flow
Data goes down — saved player data, to a server system, to the client, to the interface. Player intent goes up — the interface asks, the server validates, and only then does the data change. The interface never changes data directly, which means an exploiting player cannot either.
Every component is previewable in isolation
Every piece of interface has a story file that renders it on its own. The rule is: if it cannot render alone, it is too tangled and needs splitting.