RetroKidsGame is a retro-style browser game where kids pilot a colorful airplane — a biplane, jet, prop plane, or rocket — through a side-scrolling sky, dodging birds, storm clouds, and lightning bolts. The goal is to survive 10 levels and land safely.
WHAT IS IT?
Players choose their plane color, pick a difficulty (from Easy to Impossible), and take off using arrow keys on a keyboard or a virtual joystick on a phone or tablet.
The game looks and feels like the classic video games of the 1980s and 90s, complete with pixel fonts, chunky sprites, and synthesized sound effects — no audio files needed, all the sounds are generated live in the browser.
ONE FILE. THAT'S IT.
The entire game — the graphics, the physics, the menus, the sound engine, the leaderboard display — lives in a single HTML file. There's no app to download, no installer, no account to create. You open a web browser, go to the URL, and you're playing.
THE GLOBAL LEADERBOARD
When a player finishes a game, their score is submitted to a global leaderboard so they can see how they stack up against other players around the world. This part of the system runs on Cloudflare Workers — small programs that run at Cloudflare's data centers around the globe, right at the "edge" of the internet, close to wherever the player happens to be. This means the leaderboard responds quickly no matter where you're playing from.
The scores are stored in Cloudflare D1, a lightweight database that also runs on Cloudflare's infrastructure. It records each player's score, level reached, how long they played, and what kind of plane they flew. The whole backend costs nothing for a modest number of players — it runs within Cloudflare's free tier.
BUILT SAFE FOR KIDS
Child safety was a core design requirement, not an afterthought. Here's how it's baked in:
- NO TYPING, EVER Kids never type anything into the game. Pilot names are automatically generated by combining two words from a pre-approved list — things like "Swift Eagle" or "Cosmic Falcon." There's no chat, no comments, no free-text fields anywhere.
- A STRICT WHITELIST FOR EVERYTHING When a score is submitted, the server checks every piece of data against an approved list. Pilot names must be one of ~768 approved combinations. Locations must be from a list of 49 cities and countries. Plane types and colors are limited to four options each. Anything outside those lists is rejected outright.
- CHEAT-RESISTANT SCORING The server does a basic sanity check on every score: if someone claims they scored 100,000 points in 30 seconds, that's mathematically impossible given how the game works, and the submission is rejected.
- RATE LIMITING To prevent any one person from flooding the leaderboard, each internet address is limited to 3 submissions every 5 minutes and 10 per hour.
- PRIVACY BY DESIGN IP addresses are never stored directly. They're converted to a scrambled fingerprint using a one-way process called hashing, which is enough to enforce rate limits without logging anyone's actual address.
- PHYSICS TUNED FOR YOUNG PLAYERS The plane controls are deliberately forgiving — gradual acceleration, smooth braking, and a collision system that gives kids a bit of extra leeway before registering a hit. There's also a "brake" move (spacebar) that temporarily slows everything down, giving younger players a moment to react.
HOW WE DEPLOYED IT
Deployment was straightforward by design. The game itself is just a static HTML file — it can be hosted anywhere that serves web pages, including Cloudflare Pages, which is free for projects like this.
The backend (the leaderboard API) was deployed using Cloudflare's Wrangler command-line tool. The steps were essentially:
- Create a Cloudflare account
- Run a few commands to create the database and deploy the Worker
- Paste the resulting URL into the HTML file
The whole backend was live in under an hour. No servers to provision, no operating systems to manage, no security patches to worry about — Cloudflare handles all of that. The only ongoing maintenance is the game code itself.