The toy-car racer
Seventeen stadium tracks, fifteen cars to unlock, paint and sticker, and four rivals who actually race you. Lap races, treasure runs and car soccer in the same bright bowl.
Fifteen chunky cars, a stadium full of ramps and spinning bars, and four rival drivers with a mind of their own. One tap and the stadium loads, right here in the page you already have open.
CodeFantasy makes bright arcade games for kids, and for whoever gets handed the second turn. A stadium racer, a candy platformer, an idle zoo: three worlds that look like a toy box and behave like clockwork.
The same promises hold in all of them: a five year old can finish what they start, everything worth having is earned by playing, and each game opens in a browser tab and is already running while a grown-up is still reading this sentence.
Seventeen stadium tracks, fifteen cars to unlock, paint and sticker, and four rivals who actually race you. Lap races, treasure runs and car soccer in the same bright bowl.
Bounce across floating candy islands, sweep up the sweets and free the friends hiding on each one. The Candy King is waiting at the end, and it takes three good hops to knock him off his throne.
Tap an animal and the coins fly. Every one you collect keeps earning, even while you are away. Fifty-seven are waiting, from the first chicken on the farm to a polar bear on the ice.
A fourth game is in the works. It appears here the day it is ready to play.
COMING SOONThe racer is written in Rust on the Bevy engine and compiled to WebAssembly. The version in the browser is that same binary with the editor tooling stripped out, so the game a phone runs is the game the code says it is.
RUST + BEVY · COMPILED TO WASM · TESTED ON IPHONE 12 SAFARI
Spinning bars, sliding doors and discs that shrug a car off the racing line. Gold rings pay out when a whole chain is threaded clean, and the next checkpoint lights up on its own, so a five year old always knows where to go next.
CP 3/8 · RING CHAIN CLEAN · SPIN-BAR SURVIVED
Each rival is rolled from a handful of numbers at the start line: how much it weaves, how late it brakes, how long it takes to notice the car beside it. That alone spreads the pack out over a lap.
They wait their turn behind a slower car and ease off once they are well clear, so a win feels earned and a second place feels fair.
4 RIVALS · OWN WOBBLE, NERVE, REACTION TIME
CAPTURED IN GAME · REAL FRAMES, EXACTLY AS PLAYED
Three candy worlds to explore, with a boss arena waiting at the end. Each world hides three gems and three friends, and finding all of them is what turns one star into three. Along the way there are ladders to climb, trampolines to bounce off, moving platforms to ride, and dozing Grummy bears who sit straight back down after a hop on the head.
Every fall puts the player back at the last checkpoint, so a tricky jump can be tried as many times as it takes. The jump itself is tuned to forgive: it still counts for a moment after you run off an edge, it remembers a button pressed a little too early, and a second hop is always there if the first one was misjudged. It plays with a keyboard, a gamepad or a thumb, and on a phone the stick appears wherever you first touch the left of the screen, next to a jump button the size of a plum.
KEYBOARD · GAMEPAD · TOUCH · EVERY FALL GETS ANOTHER GO
A level ships as a simple placement list. Blender exports about a hundred kilobytes of JSON that points at one shared, compressed prop kit, so the 221 props download once and the runtime batches identical ones together. A whole world costs fewer than seventy draw calls, which is why it holds a steady frame on a four year old phone.
Before a level loads, the game walks it from the spawn point using the player's measured jump budget and flags anything out of reach. Two hand-built worlds once had gaps wider than any jump could clear, and that check is why they were fixed long before anyone played them. Quality adapts to the device as well: when the frame budget slips, the game quietly steps the resolution down, then the shadows, so a laptop and a supermarket tablet both stay smooth. The same pipeline is how the art pack's own showcase scene got in, twelve hundred objects in one pass, left in the game as a free-roam playground.
THREE.JS · BLENDER LEVEL PIPELINE · REACHABILITY-CHECKED
Tapping any animal pays on the spot and sets it performing, and every animal in the pen adds to a coin rate that keeps running on its own. Coins buy the next species or raise the level of one already there, which lifts its income and fills the pen with more of them. Collect five kinds in a world and the next one opens, farm to forest to savanna to jungle to ice, with a picture book filling in as each species arrives.
Coming back is the good part: time away pays out on arrival, so a zoo left overnight has something waiting. Play runs one-handed in portrait on a phone and reframes itself for a tablet or a desktop window, because the camera solves its own distance from the shape of the screen. Progress is held on the device, so a session picks up where it stopped.
PHONE · TABLET · DESKTOP · ONE THUMB
Every prop and every animal shares one 256-pixel palette atlas, seventeen kilobytes for the whole game. Models ship with their textures stripped and the material is bound by name at load, so a world costs a single texture download, four shader programs, and twenty-seven draw calls with sixteen animated animals in the pen.
The simulation runs on a fixed 20 Hz timestep, kept apart from rendering, so a 120 Hz tablet and a five year old phone earn exactly the same coins. Time spent away is solved in closed form, which turns a week off into one step of arithmetic. Each world streams in when it opens, which is how the first frame arrives in well under a megabyte.
Twenty-one species answer with a real recorded call, each one public domain or CC0, with its licence and source page carried through into the shipped manifest. Giving the next species a voice takes one line in that manifest.
THREE.JS · ONE MATERIAL FOR THE WHOLE ZOO
Drag a stick with one thumb, tap the screen, or use the arrow keys. All three games play one-handed, and each one teaches itself in the first ten seconds.
ONE THUMB IS ENOUGHEvery game is tuned for a phone first: steady capped frame rates, quality that adapts on its own to keep the picture smooth, and payloads measured in kilobytes.
TESTED ON IPHONE 12 SAFARICoins come from playing, and everything in the games can be reached that way. Rewarded ads sit on top as an optional extra: double a payout, top up when a few coins short, thirty more seconds in a treasure run. The same rule holds in all three games.
EVERYTHING UNLOCKS BY PLAYINGPublishers, platforms, press, or anyone with a question about the games: email gets the fastest answer.