Out of Warranty
A turn-based 2D arena game where small service robots fight for the right to spare parts.
How this was measured: No build step; index.html runs directly. Closed test report is in the repo.
- SHELL
- index.htmlno build step
- MODULES
- 46 JS modülü
- sahne izolasyonu
- TESTS
- 26 test sahnesi
- RENDER
- Canvas
Problem
The most expensive mistake in a small game prototype is a design decision made before playing. Economy, damage, ammo balance and AI behaviour look reasonable on paper and collapse in the first ten minutes.
So the prototype's first goal was not to look good, but to run and measure every system in isolation.
Constraints
- No build step: the game must open from file://. That constrains module loading and asset paths from the start.
- Solo developer, and the art direction changed later (robot theme).
- Multiplayer is a target, but the single-player core has to hold first.
Architecture decisions
Buildless core
Plain JavaScript with no ES modules; open index.html and the game runs. Feedback loops measured in seconds, and "forgot to build" never happens.
Cost: No module system, bundling or type checking; file discipline is manual.
A test scene per system
Separate HTML scenes for combat, HUD, market, targeting, projectiles and robot picking. A balance change is measured there before it enters the whole game.
Cost: Scene files are upkeep; in return "what did this change break" takes 30 seconds.
Balance documented, not buried in code
Ammo balance, difficulty curve and map combat layout live in separate docs; code implements the document. Design decision and implementation read separately.
Cost: Consistency between two places is on me.
Art direction change managed by plan
The move to a robot theme was done plan-first, code-second; a single conversion with a defined way back.
Cost: Writing the plan before coding; slow at first, fast after.
Proof
- JS modules46
- Isolated scenes26 HTML
- Design/balance docs28 Markdown
- StatusPlayable arena prototype, closed test done
Known limits
- Multiplayer (Steam lobbies) is at the planning stage; no working network layer.
- Not published; itch.io text is ready, release date is not.
- No test automation: verification is visual in isolated scenes plus closed-test feedback.
- Source is in a private repo.
What I learned
In a game prototype the most valuable tool is not the engine, it is the isolated scene. The moment you can run one system alone, design arguments end: instead of "it feels bad" you compare two numbers.