Wave 1October 20, 9:13 pmThe first build
It started with a question
I remember an old VIC‑20 game… Would it be possible to have that be a game in a web browser?
Joe
Joe asked that in the middle of a session about something else entirely. The game he remembered was a 1982 VIC‑20 cartridge: you fly a ship round a walled track with a box in the middle, enemies circle the track, and your shots bounce off the walls.
Claude offered two looks: glowing arcade vector lines, or the VIC‑20's chunky pixels. Joe wanted both, with a switch between them. Eleven minutes later there was a playable game in a single HTML file with no downloads, no plugins and no sound files. Every sound is made by the browser as it plays. Joe gave it its name.


Nine minutes later Joe asked what would make it better. Claude listed ten ideas. Joe's answer was I like all these suggestions,
and they all went in that night:
- Shots that bank off the walls
- A slingshot boost off a fast wall hit
- A combo multiplier up to ×4
- A bonus saucer worth 5,000
- Gamepad support
- A top-10 table with three initials
- A heartbeat that speeds up as a wave thins out
- VIC‑20 sound-chip imitation
- A CRT glass effect and screen shake
- A VIC‑20 boot and tape-loading screen
Wave 2October 24–25Two games in one
A faithful copy and a spinoff
After a few days away, Joe came back with Can you think of any improvements to level up Alpha Chase?
That brought music, rising difficulty, power-ups, the first boss, a daily challenge, medals and a new laser look with its own sound.
I think we can branch into two games. One that's faithful to the vic20, and another that's our own spinoff with advanced features.
Joe, October 25
A few minutes later he refined it: both should live in one game. Pressing V ends your current game and starts a fresh one in the other style. The VIC‑20 side became a careful copy of the 1982 cartridge, with its rules, its white-on-black look and its sounds. Joe asked to keep the tape-loading intro.
For the sound, Claude measured a recording of the original cartridge. The bass loop is four notes, G, G♯, G and F, about 0.4 seconds each. The laser is a sweep of 16 pitch steps, one every sixtieth of a second, from 1,583 Hz down to 97 Hz. Alpha Chase's version matches it within about 1%.


PRESS V TO SWITCH STYLES · THE GAME STARTS FRESH
The arcade side took the opposite road. A seven-stage build that morning added controls and settings, new enemies and a boss rotation, cabinet art, lifetime stats, unlockable ships, an offline app and an online leaderboard. Then came a full code, security and performance review, fixed in eight commits. Joe had one condition for anything online: Make sure that this will still work with Cloudflare's free plan.
Side questOctober 24, lateNever built
The heavy-metal detour
In the middle of the laser work, Joe asked for a screenshot of the game in an 80s heavy-metal style. A separate agent built it as a working mockup: chrome rivets, flaming skulls, lightning instead of lasers. A full Metal mode was estimated at a day or more of work, and Joe left it as a concept.

Wave 3October 27v1.0 · v1.1 · v1.4
Live on the web
On the morning of the 27th the game got its own home at play.joeraasch.com/alpha-chase, served by a Cloudflare Worker on the free plan. The leaderboard went live the same afternoon. From then on every publish bumped a version number on the title screen.
The rest of that day added eight ships that each trade a strength for a weakness, each with its own special weapon. Also new: a fourth boss called the Carrier, with hangar bays that open and launch droids, plus a one-minute guided tutorial, voice callouts and phone haptics. By late evening the enemies had become turning 3D wireframe war machines.

Wave 4October 28v1.5 → v2.1
Seven versions in one day
The 28th was the busiest day of the build. Work was split into parallel branches, one each for combat, modes, foes, the arena, look, effects and sound, and then merged back. The repository has 41 merge commits, most of them from this day and the next.
Arena twists arrived: walls that close in, a gravity well that bends every shot, and a centre console that changes shape. Bosses got death sequences and name cards as they fly in. Then came an attract-mode demo that plays itself, a 16:9 wide arena option and a new sky for every wave.



Wave 5October 29v2.2 → v2.5
A logo from Joe's sketch
The opening logo went through three versions that morning. The first two were neon takes on a classic arcade marquee. Then Joe supplied his own design: block letters with ALPHA over CHASE, and wings that sweep out from the legs of the A. The intro draws it line by line, the way a vector monitor would.




The same day brought a frame-rate governor that steps the effects down on slow machines. Ships were rebalanced with fire-rate, power and brake stats, and the game got a brake, a reverse thruster.
Wave 6October 30v2.7 → v2.12
Neon pixels
A new game type, Classic, plays the cartridge's rules tick for tick, but in the arcade's glowing look. That raised a design question: what does a 1982 pixel sprite look like as a neon tube? Claude drew every enemy six ways, keeping the cartridge's exact pixels and changing only how the outline is lit. Joe picked A2, rounded, like bent glass tubing.

Wave 7October 30–31v2.13
The design review
With the gameplay in place, every menu and non-game screen got a full design review. A capture script photographed every screen at four sizes, from desktop to phone landscape. Mockups were made two ways: as HTML pages, and as images from GPT Image 2.5 through Kie.ai. Joe approved the whole report, and it was built in ten ranked steps overnight.
Each built screen was checked against its mockup in a side-by-side image. Joe also trimmed the game list. Casual, Weekly and Hard were cut, leaving Arcade, Classic, Endless, Daily and Boss Rush.



The app icon went the same way. Eight neon candidates were painted, and Joe picked E, the ship running the top lane round the console.


Wave 8October 31v2.14 → v2.16
The front door
I would like the beginning to be impressive. I have a few credits on Kie.ai. Would having a cool song intro on the main page be nice?
Joe, October 31
The game's opening had been left out of the redesign. Now a visit opens on PRESS START over the demo game. Pressing it powers up the monitor and draws the logo in time with music, then shows the title.
The music started from the game's own synthesized overture, built from the wave-clear tune. Kie.ai's music model turned that into five takes: synthwave, arcade rock and the original synth. Joe picked B2. The animation runs on the track's own clock, so the logo lands on the beat even if the file starts late. If the track can't play, the synth version plays instead.
The synth overture
Made in code by the browser. Still the fallback.
Take B2 Joe's pick
The Kie.ai synthwave take that ships with the game.




Bonus roundAll twelve daysHow it was made
The working method
Every feature started with a request, a reaction or a pick from a set of options. Claude worked on its own between check-ins and logged every decision.
42 test suites drive the game in headless browsers. A golden test keeps the VIC‑20 style pixel-identical unless a change is meant for it.
A code and security review ran before every publish. Nothing went live until Joe said "deploy".
All gameplay randomness comes from a seed set by the date and wave, so the Daily challenge is the same run for everyone.
The game, the leaderboard and its database run on Cloudflare's free plan, with no paid services.
Every change has a changelog entry. The changelog is now about 300 KB of notes.
Bug reportsFrom the pilot's seatFound by playing
What only a human could catch
The tests checked the rules. Joe checked how it felt, on his own phone and browsers. A few of his reports:
I think the game still plays when the power up cards are there… I hit a mine and I died.The world now freezes while you choose an upgrade.
The ship in 'classic' mode is always showing it's thruster animation, even if it's not active.The attract demo's autopilot had left a flag on.
If I use Safari, it works fine. If I save it to my home screen, it's the synth version.The intro track is now loaded whole and played through Web Audio, which works in the iPhone home-screen app.
The opening screen, it's hard to read the logo with the game behind it.A soft dark pool now sits behind the logo and PRESS START.
