Orbital Panic
Orbital Panic is a one-tap arcade game: your probe auto-orbits a planet, you tap
to fling it at the next capture ring, and you keep the chain alive until you
don't. Every graphic is drawn in code, and every sound is synthesized at runtime -
there isn't a single image or audio file in the project.
v1.3.0 is the biggest update since launch. Here's what went in, and - more
interestingly - what didn't.
The Hangar
There are now four craft: Pathfinder, Dart, Hauler, and Ringed
Probe. Each has its own silhouette, accent colour, engine ember, thruster, and
trail. Each one even crashes with its own voice - Dart a bright fast crack,
Hauler a dark thud with a metallic clank, Ringed Probe a glassy ring.
They are 100% cosmetic. Identical physics, identical handling, identical
everything that touches your score.
That was the hard call of this release. Craft that actually handled differently
would have been more fun to build and more fun to talk about. But Orbital Panic
has one global all-time leaderboard, and the moment a craft has a mechanical
edge, that board stops measuring skill and starts measuring which craft you
unlocked. The alternative - a separate board per craft - splits a small player
base into four sparse boards and buys a permanent balancing job. So: cosmetics
only, and the rule is enforced in the code rather than in my memory. Even the FX
follow it. Each craft varies on the identity channel (hue, ember character,
flame width) while the state channel (flame timing, trail length, apparent
travel speed) is frozen across all four, so no craft can visually imply an edge
it doesn't have.
Unlocks derive from cumulative stats - career orbits, runs played, whether
you've reached the Star phase - so there's no separate unlock list to drift out
of sync with reality.
A secret with no progress bar
There's a second cosmetic in this build: the style of the capture ring itself.
You unlock the styles by playing, and there is no announcement, no progress
bar, and no list of what you haven't got yet. If you find the little orbit
button in the Hangar, you'll notice you have more options than you used to.
This is deliberate. The moment you show someone a row of locked slots with
progress bars, you've converted a discovery into a chore. I'd rather a handful of
players find it on their own than have everyone dutifully grind it.
One fairness detail even here: three ring styles that exist in the code
(`gate`, `comet`, `lock`) are excluded from the player-facing set, because they
draw marks at points where the probe can't actually land. A cosmetic that lies
to you about your aim isn't a cosmetic.
The fairness bug
An external systems review caught something I'd never have found by playing, and
it's the part of this release I most want to talk about.
Orbital Panic resolves your launch analytically at the instant you tap -
there's no per-frame collision loop; the geometry is solved once and the outcome
is known immediately. That's a good design for a precision game. But the orbit
was being advanced on the raw render delta, which meant your refresh rate
silently changed the difficulty. At 120 Hz your probe's position was sampled
twice as finely as at 60 Hz, so you got twice the aim resolution. On a
thermally-throttled 30 Hz phone, the capture window could collapse to one or two
frames.
All of those runs were being ranked against each other on one global board.
The sim now advances on a fixed 60 Hz accumulator regardless of what the
display is doing, so every device is scored on the same grid. Intake is clamped
so coming back from a backgrounded app can't spiral into a burst of catch-up
steps.
While in there, a second one: tapping during the post-capture settle used to set
a sticky flag with no expiry, which would auto-fire your shot a fraction of a
second later at an angle you never chose. An invisible cause of death - you'd
watch a launch you didn't aim. It's now a real 0.15 s expiring buffer: a fumbled
early tap is cleanly dropped, a late deliberate one still registers.
Neither of these is a feature. Both make the game fairer, and one of them was
quietly poisoning the leaderboard.
Feel
Capture hitstop now scales continuously with how well you hit - about 0.02 s for
a scrape along the edge of the band, up to 0.10 s dead-centre - so your hand
feels the grade before your eyes read it. Crashes get their own brief impact
freeze before the flash and shake land. Total freeze is capped per second so a
fast chain doesn't turn into a stutter.
Numbers
271 automated tests, all green. Still zero external assets. Still no ads and no
in-app purchases.
If you play it, I'd genuinely like to know where your run falls apart, for most
people it's the Star phase, and I'm not sure yet whether that's the right place
for the wall to be.
| Published | 2 days ago |
| Status | Released |
| Platforms | HTML5 |
| Author | ForceSensitiveSaiyan |
| Genre | Action |
| Tags | Arcade, Endless, Godot, High Score, Minimalist, one-button, Procedural Generation, Space |
| AI Disclosure | AI Assisted, Code |
Also available on
Development log
- Orbital Panic2 days ago






Comments
Log in with itch.io to leave a comment.
Would you like to join my discord server with other devs to give you suggestions etc and just chat overall? My discord server is in my creator profile hope to see you there!
This game is so addictif and polished well done!
Thanks for the kind words, @Plattelukaas! :)
Really enjoyed the game! The only points I found a bit annoying: The "nice" or "clean" text with the points gained might make more sense to fix them to screen opposed to planet as it is sometimes impossible to read during the POV change. And I guess the black hole spawns are random? I could swear I hit 2 black holes where there was pretty much no possible path to the next planet, this could be a bit frustrating if you are deeper in a run. Worst case some kind of "2nd life" system could make sense here as some minor bad luck protection.
Thanks for your comments and kind words, @GaboMakes! I'll take this into consideration in my next major release! :)