Crystal Drive
After ten years in Unreal, I gave myself three weeks to learn Godot by shipping a complete arcade score attack. It started as a gem catcher tutorial and refused to stay one. You can play it in your browser.
Learn a new engine by shipping something complete in three weeks: one action, one screen and a score, with the speed, danger and greed of an old-school arcade game.
Crystal Drive was the first game I made in Godot. After more than ten years in Unreal, I wanted to see what a lighter engine could do for smaller personal projects. The only way to find out was to build something real. I gave myself three weeks to learn the editor, understand how Godot works, learn GDScript and ship the game.
I started the way everyone starts - tutorials. A paddle game, a gem catcher, little things. I got bored real quick. So I stopped following along with the videos and set myself a better brief: take the gem catcher and turn it into a small game I'd actually want to play. I grew up on arcade games, so the question became - what makes catching falling gems interesting to an old-school arcade player?
A fantasy worth the danger
The answer started with a fantasy. You're an ace pilot recruited to collect valuable ore from asteroid fields no one else will enter - no one can do it except a small group of daredevils with the skills and the madness to fly in. That framing gave the design its targets: a sense of speed, a sense of danger, and the feeling of putting the pedal to the metal and pushing past your limits for greater rewards.
Everything in the game is there to serve those three feelings, and everything was made from scratch inside the time box - gameplay design, GDScript, pixel art and audio.
One crystal, four jobs
One crystal does four jobs: score, combo, level progress and dash charge. Missing one takes its full value out of the crystal reserve, and the run ends when that reserve is empty. The same object keeps you alive and pushes the score higher, so greed isn't optional - flying safe is just losing slowly.
The combo expires five seconds after the last pickup and multiplies score up to six times on a hot streak. Stopping to play safe isn't a neutral choice; it's a decaying one. The multiplier is what turns collection into movement, because covering the spawn spread means crossing a screen the hazards are falling into.
The dash that rewards aggression
Phase Slip is a short invulnerable dash - 80 pixels in 0.15 seconds - on a three second cooldown. The rule that defines the game is that every collected crystal resets that cooldown to zero. Played timidly, the dash is rarely there when you need it. Played aggressively, it always is. The ideal rhythm is collect, dash through what you can't avoid, collect again - the game's defence is powered by its offence.
Selling the speed
Most of the speed comes from what the player sees and feels. The ship banks into turns, motion lines speed up with every level, the star field moves faster as the run deepens, and pickups, misses and deaths each get their own shake, flash and controller rumble. The combo counter changes colour, grows and throws sparks at 5, 10, 25, 50 and 100, so a good run visibly heats up.
Underneath, the difficulty ramps to match: obstacle spawns accelerate toward a hard floor, mines telegraph and track, and patterned formations make you read routes instead of just reacting - lanes to choose instead of noise to survive.
Shipped, not shelved
Finishing and shipping a small game teaches things an unfinished big one never does: what the last ten percent really costs, how the game reads to somebody who hasn't stared at it for a month, and which ideas still work once there's a real build. Crystal Drive shipped with three local pilot profiles, saved records, playful result titles and an online top 20 leaderboard. It's a complete score attack, not a prototype.
It also proved the core ideas worked. The combo timer, Phase Slip and the crystal-as-everything idea all came out of those three weeks, and all three went straight into Crystal Drive Z.