From a one-paragraph brief to a tested, deployed browser game: what the AI did, what we decided, and what caught the mistakes.
automated tests run before every deploy
browser journeys, in 3 browser engines and on a phone screen
plugins or game engines
Anchor Drop is a small retro game: a ship sails across the sea, you drop the Code Anchor, and it sinks through coins, treasure chests and rocks to the sea bed. We built it with AI to show what an AI-assisted project looks like when it's done properly, with design, tests and a paper trail, not just code that appears to work.
We began with a one-paragraph brief: a retro game, playable in any browser, with the testing and the process documented. The AI came back with a planning document covering five game styles, a recommended stack, a testing strategy and a six-phase roadmap.
Its suggested game was a brick breaker. That was sensible, but generic. We swapped in our own idea, which carries the brand: the anchor in our logo, dropped from a moving ship, drifting on a current. The AI rewrote the plan around it, worked out the physics, and listed nine open questions for us to answer. The AI gave us speed; the direction stayed with us.
The plan said TypeScript and Vite. Before building, the AI read this website's repository and found three things that changed that: a custom build that renames CSS classes, a link checker that fails any deploy with a broken link, and Netlify running the tests before every release. So it dropped the new tooling and wrote the game as plain JavaScript modules that browsers load directly, tested the same way as the rest of the site.
The game's rules are a pure state machine: no canvas, no clock, just "given this state and this key press, what happens next?" The AI wrote 41 tests for them before writing the code. For example: the anchor keeps the ship's speed when dropped; a coin scores once; one rattle against a rock costs five points, not five per frame.
It also balanced the game by simulation. It played 400 games with random timing in code, found that the rocks won far too often (median score โ11), adjusted the layout and checked again (median about โ1). No one had to play 400 games by hand.
A score sent from a browser can be faked. Because the game is deterministic (a fixed time step, a seeded random number generator, and only arithmetic every browser computes identically), the server can simply replay it.
same code The browser and the server run the same game.mjs. The browser sends only when each anchor was dropped; the server works out the score itself.
This is the part most AI demos leave out. Every mistake went into a bug log:
Then, with every test green, we handed the work to a second AI agent that hadn't seen it and asked only for defects. It found a bug every test had missed: the on-screen "tap to drop" prompt never appeared, because no test looked at what the canvas drew. It also found a way to flood the database. Both were fixed the same day.
None of these needed heroics. They needed a safety net that was in place before the code was written, and a second pair of eyes at the end.
Unit tests prove the rules. End-to-end tests prove the page. Playwright opens the built site in Chrome, Firefox, Safari's engine and a phone-sized screen, and plays it: it starts a game, drops all five anchors, checks the scoreboard and confirms the game still works when the score server is down. One test takes the drop times the page sends and replays them with the server's code, so if the browser and server ever disagree about a score, the test run on GitHub fails before the change can be merged.
Players never type a name. The game generates one, like "Salty Kraken 42", and the server rejects anything else. The high-score table holds no personal data, and the database sits in London.
Play Anchor Drop, or talk to us about our Adaptive course on using AI in your workflow.