Nothing You Shoot Is a Person
Save the World is a browser game I built for a seven-year-old in the family. Ten waves, four arenas, and a shop between every single one. It is one HTML file with no build step and no dependencies.
It was the first of the two games, and it set the rule the 3D one inherited.
Play it
Mouse and WASD on a laptop, or two thumbs on a tablet. Clear a wave, spend your coins, go again. Wave 10 is a very large gator.
The rule, and where it actually lives
Every enemy in the game is invented: sock monsters, homework bots, squirrels, zoomie dogs, laser cats, baby gators, and a boss gator at the end. Not one of them is a person.
The people and pets are on a separate list, and you rescue them by running into them. That pays the biggest coins in the game, and the wave counts how many you saved.
is what you get for blasting a friend. The game takes coins back and says so. The rule is not a note in a readme. It is a penalty in the scoring.
I did not want to hand a kid a game where the fun thing to do is shoot at people. Deciding that once, early, was easier than relitigating it every time I added an enemy.
What actually hooks a seven-year-old
It is not the shooting. It is the unlock loop. So the whole game is built around short waves with a shop after every one, and something new to want on the other side of it.
Coins buy a faster blaster, extra hearts, fast boots, a coin magnet, a bubble shield, and outfits. There are also secret codes you type in, which I printed on a card and gave with the game.
The difficulty tiers, and why the hardest one pays double
Three tiers. CADET gives five hearts, weaker and slower enemies, and strong aim assist. TROOPER is the intended game. LEGEND cuts you to three hearts, makes enemies 1.75 times tougher and faster, and turns aim assist nearly off.
LEGEND pays double coins, so the hard tier is worth attempting rather than just punishing. Best wave and best score are tracked separately per tier.
One file, on purpose
The whole game is a single HTML file of about 1,800 lines. No bundler, no framework, no package install, and it makes no network requests at all once it is open.
That was not minimalism for its own sake. It means the game can be emailed, dropped on a USB stick, or opened from a folder, and it will still work in ten years.
How it re-themes for a different kid
Everything player-specific sits in one config block near the top: the hero name, the list of friends to rescue, and the secret codes.
Swap those six lines and the game belongs to somebody else. The waves, the shop and the scoring do not change.
Progress saves to local storage on the device, so each player keeps their own coins, unlocks and best runs.
What came next
This one worked well enough that the follow-up was a 3D version, built the same way and carrying the same rule about targets.
If you want the more technically interesting build, that is the one to look at.