Crystal Drive Z
Returning to Crystal Drive with critical eyes. The same verb at the centre, now inside a field where everything collides, rivals hunt the same ore, four bosses interrupt the climb, and every death funds one more run.
Expand the first game to better deliver its fantasy: a living asteroid field where everything collides, enemies hunting the same ore, authored boss fights, an identity to fly - and a progression loop that turns dying into one more run.
Crystal Drive Z started with going back to the first game and looking at it with critical eyes. Crystal Drive proved the verb - catch the falling thing, with a score attached - and proved I could ship in Godot. The question for the sequel was different: how do I expand on this to better deliver on the fantasy? An ace pilot braving a deadly asteroid field deserved more than hazards falling politely in straight lines.
Z keeps the verb and builds around it. The pilot picks a hull and a pilot before launching, spends banked crystals in a hangar between runs, and climbs a 99 level ramp interrupted by four boss fights. Two players at the same skill level end up playing measurably different games.
One pickup, four rewards
A crystal is score, hull repair, dash charge and level progress at once. There's no separate health pickup, no separate currency, no separate combo token. That overloading is the economic idea the whole game rests on: it's what lets a single verb carry a full run, and it means every design question about rewards routes back through the same object. In Z that object gained rivals - you're no longer the only one who wants it.
The combo is what turns collection into movement. It counts consecutive pickups and expires five seconds after the last one, so standing still isn't a neutral choice, it's a decaying one. Crystals fall in a spread wide enough that covering it means crossing the screen, and hazards fall into that same space. Moving toward reward is moving toward risk, and there's no safe corner.
A field that fights back
In the first game, nothing interacted with anything except the player. The field looked dangerous, but it was secretly polite. In Z, everything interacts: asteroids drift unpredictably, crash into each other, take damage and change direction, and every collision passes on momentum. A crash on one side of the screen changes what arrives on the other. The player has to think about their positioning on screen, not just dodge what falls next.
The field also gained enemies - space pirates and aliens, all keen on the same crystal ore you're collecting. And because everything collides, the classic sci-fi action movie beat comes free: fly into the asteroid field and watch your pursuers crash because they can't match your moves.
Missing a crystal costs the multiplier and nothing else - no health, no loss of anything already banked. Stacking a health cost on top would punish the same mistake twice. When an enemy steals a crystal off the field it costs even less: no combo break, no penalty, just the crystal. The enemy took an opportunity away rather than punishing the pilot for something they couldn't have reached.
Bosses are dismantled, not just damaged
Four authored fights interrupt the climb, spread across the 99 levels. When one starts, ambient spawning stops and the field clears - collection ends entirely and the game asks for pattern reading and precise movement instead. Each fight runs in three phases with different behaviour and attack patterns to solve, and in three of the four the target itself changes at each transition: the peripheral weapons first, then the central cannon, then the hull.
That structure is worth the complexity because each component owns one of the boss's attacks, so destroying a turret permanently removes what it was firing. A boss with one long health bar feels the same at 90% and at 10%. A boss losing its guns visibly slows down, and the pilot can see exactly which of their shots caused it. Choosing which turret to kill first is choosing which attack to remove first, which gives the player control over the difficulty inside the fight.
The rule that came out of playtesting
The level 25 Saucer has a blink that teleports it to a new position and fires immediately along its arrival vector. In testing it produced situations where no input survived, and the fight was decided by whether the dash happened to be off cooldown. That's not difficulty, it's a coin flip.
The fix wasn't slowing the projectiles. The real lever was how close the blink was allowed to land, because that set how much time the player had to react. Both are now tuned against a simple budget: the slowest hull in the roster, a quarter second of human reaction time, and the distance needed to clear the shot. Every phase is checked against the worst case rather than the average one.
That became a standing rule for every encounter in the game. Each attack must be survivable on movement alone, with the dash unavailable. The dash turns a survivable situation into a comfortable one; it's never the only thing that makes it survivable. A death should always trace back to a decision.
An identity to fly
I also wanted the game to have more personality, and to give players a way to have an identity inside it. There are three playable pilots and five ship types, each with their own strengths and weaknesses, and each pilot has their own colours - so your choice of pilot recolours your ship, and the pairing you fly reads as yours at a glance.
A run's numbers come from the hull, the pilot and the hangar, multiplied together rather than replacing each other. That protects each hull's character no matter how much has been spent on it: a Viper flown by Giana is still the twitchiest ship in the game, and a Bulwark with every plating level bought is still slow. All five hulls are available from the start, because locking them away would put the most expressive choice in the game behind a grind.
The select screen bars are computed from the real tuning rather than authored by hand, so a bar can never promise something the ship doesn't do, and retuning a ship moves its bar automatically. They're scaled against a range wider than the roster actually uses, with a floor no bar can drop below. An earlier version scaled against the roster extremes, which drew the slowest hull near zero and made it read as broken when it was really doing about two thirds of the fastest ship's speed. A bar tells you where a ship stands in the roster, not a percentage of some ideal.
The one-more-run problem
The original had a retention problem I could watch happening. Players would fly a few runs and die at whatever level was theirs - some reached level 20, some level 35 - and once they'd died there a few times, they put the controller down. That was how far they could get, and the desire to grind and get better wasn't really there. Nothing about the next run promised to be any different.
The hangar is the answer. Every run banks its crystals, and between runs they buy permanent upgrades across eight tracks - more damage, more health, a greater rate of fire, a better dash. Dying at your level now ends with a purchase that makes the next attempt visibly stronger, and the question changes from "is that as far as I go?" to "maybe I'm strong enough to beat this level now". Failure banks progress instead of wasting time.