Games · AI · Browser game / personal project

Space Pirates

A 90-second shooting gallery for the browser: goofy pirate birds cross an alien desert at three depths, and the farther a bird, the more it is worth. It follows the rules of the 1999 German classic Moorhuhnjagd, with every name, picture, sound and joke original.

×4 combo multiplier
TypeScript Canvas 2D Web Audio Tauri PHP
Role
Solo developer
Platform
Browser · Mobile · Windows
Status
Playable prototype
Workflow
AI-assisted, agent-driven

Space Pirates takes a compact arcade loop (look around, aim, shoot, reload) and fills it with competing opportunities. Small birds in the distance are worth more than big ones up close, a golden bird demands attention right now, a supply crate offers a shotgun, and tourists and the mail blimp are expensive distractions. The round lasts 90 seconds, and learning where to look matters as much as learning how to aim.

  • 90 s per round
  • 3 target depths
  • ×4 maximum combo
  • D → SSS rank ladder

A small game with room to learn

Every shot is a choice between an easy hit and a better score.

A far bird starts at 25 points and is worth 100 at the top multiplier; the big, easy bird in front of it is worth much less. Eight rounds in the pistol make accuracy tangible. Reloading keeps the combo, so it can be a deliberate pause, but a miss breaks the streak, and a penalty target costs points and resets it too. Once the multiplier reaches ×4, protecting it matters as much as finding the next target.

What makes a round

  • Three depths of pirate birds Near, middle and far birds score 5, 10 and 25 points before multipliers. Armoured birds need two hits; jetpack birds explode as they fall.
  • Brief opportunities A rare golden bird arrives with a radio squawk, and a critter peeks out of its burrow with a coin before vanishing again.
  • Loot worth planning for A salvage rotor carries four canisters: four in a row earn a sweep bonus. A treasure chest gives another reason to explore.
  • Things to leave alone Tourist saucers, the mail blimp and the signpost each cost 25 points. A busy scene rewards recognition as well as speed.
  • A change of weapon Forty seconds in, a supply crate parachutes down. Two hits within 15 seconds open it, for ten seconds with the shotgun.
  • Feats and secrets Accuracy, perfect magazines, distant targets and clean play earn bonuses at the end. Some discoveries stay hidden for players to find.
Ten seconds with the shotgun

The shotgun changes the rhythm: unlimited ammunition, but a 0.4-second pump between shots. One blast can take several targets, and the spread narrows with distance, so far birds still need careful aim. The crosshair ring grows and shrinks with the spread, and firing at its widest can catch a difficult group. A tourist inside the same spray still costs points and breaks the combo, so the power-up rewards aggression without removing the need to choose a shot.

Making every action readable

Feedback carries much of the game’s personality. Birds dodge and lose a feather after a near miss, armour dents with a clank, spent cartridges spin out of the ammo row, and the combo display glows hotter until it shatters when the streak ends. The round opens with a READY countdown and closes with a staged results sequence: score count-up, hits and accuracy, feat bonuses and a drum roll before one of seven rank badges lands.

Hit-stop and the slow final second only affect the targets; the round clock keeps its pace, so the spectacle never adds time to a round.

One play field, several ways to play

Every device uses the same 16:9 play field, with side bars on wider screens and bars above and below on taller ones, so a bigger monitor never reveals extra targets and scores stay comparable.

  • Desktop browser Click to shoot, right-click or R to reload, pan at the screen edges or with the arrow keys. Switching tabs pauses the round.
  • Phones and tablets Landscape play: tap to shoot, hold an edge to pan, tap the cartridge row to reload. One finger can aim while another keeps the view moving.
  • Installed web app Opens from its own icon and works offline after the first online visit.
  • Windows A Tauri build runs the game in its own window with the system’s WebView2 engine, as a portable exe or with an installer.

Art, sound and music

Cartoon pirate birds, weathered machinery, riveted interface plates and a desert pirate camp share one scene, tied together by warm windows, contact shadows, brief muzzle light and a sky that grows darker and warmer as the round runs down.

Synthesized sound effects back up every action, from firing and reloading to armour hits, close calls and the final score. The music gives the menu and the round their own moods: Dusty Frontier plays on the title screen, and Space Western Groove carries the countdown, the round and the results. Both tracks are by kudesi, made with Suno.

AI-assisted development

Space Pirates is also an experiment in human-directed development with coding agents, covering implementation, tests, documentation and review. The project is organised so that every contribution is concrete and checkable:

  • Interfaces, then ownership The first build fixed the shared interfaces; then every task got explicitly assigned files, so agents could build modules in parallel before integration and balancing.
  • Notes and a ledger Larger changes start with a design note, branches and worktrees keep edits apart, and a work ledger tracks open decisions and checks.
  • Test the effect Checks ask what the player would see: does pause freeze the clock, does a shot score correctly, did the image change as intended, do the packed assets match their sources?
  • Break it on purpose A rule is broken deliberately to prove its regression test fails. When an older design note disagrees with the code, the code wins.

Human judgement stays central: choosing the art direction, tuning the feel, deciding whether an effect helps readability, and playing the game to judge what no automated check can.

Current state

A playable prototype: the core round, scoring, special targets, shotgun, feats, results, touch controls, offline support and both score boards all work. Work continues on visual and audio polish, browser smoothness and release testing. The aim is not a bigger game, but a sharper short one: clearer feedback, a more cohesive world and a good reason to play one more round.

Under the hood

The game is TypeScript and Canvas 2D, built with Vite, without a game framework. A central conductor connects a fixed-step simulation, input, rendering, audio and interface, and the rules live in separate modules that are tested without a browser. The order of each step is part of the feel: a shot is resolved before the targets move, so it always hits what the player aimed at.

Frame pacing is measured, not just the average frame rate. Reusable gradients are painted once, sprite atlases are sized to how large the art is actually drawn, and an adaptive resolution controller lowers the world’s pixel count when frames keep missing the display’s refresh, then recovers.

Local play keeps the five best scores on the device. The online top ten runs on a small PHP service on the same webspace, with file storage and no database; it issues signed round tickets and checks timing, reuse, score bounds and request rates. For a small arcade board that is proportionate, but since the game runs on the player’s device, it cannot prove that every score was honestly earned.