Back to the work
Project

ArrowSpark
An ad-free arrow puzzle game I built in a week in an engine I'd never used, by treating it like any other system: bounded specs, real tests and decisions written down.

ArrowSparkarrow puzzle gameGodotspec-driven developmentAI-assisted developmentpuzzle generation
The story
An ad-free arrow puzzle game, built in a week in a game engine I'd never used.
- Problem
- The arrow puzzle games I enjoy stop every thirty seconds for an advertisement. I wanted the puzzle without the interruptions, and I'm not a game developer.
- Decision
- Treat a game like any other system: break each capability into a bounded spec, test it, and write down why each decision was made. One design rule sits above the rest: hard is fine, unsolvable is not.
- Implementation
- AI helped me find my way around Godot, and I supplied the judgment about what to build and why. Every generated puzzle is checked to make sure it can be solved, and the specs, tests and decisions are public.
- Outcome
- It's live, with no ads, no lives and no waiting. A difficulty analyzer passed every test, but playing the puzzles showed they weren't much fun, so I reworked generation around what the tests had missed.
Overview
An ad-free arrow puzzle game I built in a week in an engine I'd never used, by treating it like any other system: bounded specs, real tests and decisions written down.
Details
An ad-free arrow puzzle game with no lives and no waiting. Every puzzle is checked so it can be hard but never unsolvable.
Related insights
Articles that explain the architecture decisions, implementation patterns, or delivery trade-offs behind this project.