I have been thinking about this a long time
I honestly can’t tell you exactly when I first thought of this. It wasn’t my first game idea, and it certainly wasn’t my last, because ideas are the easy part. They arrive for free, fully formed and gleaming. Making the game is the hard part, even for a programmer, and, oh yeah, that’s the thing I’m supposed to be good at.
I can’t name the day, but I can trace the rough shape of it, because this idea has been following me from engine to engine for about twenty years.
It starts with XNA, half my lifetime ago. XNA shipped with Spacewar as a demo, and I mostly just played it instead of learning from it. What I actually built was an RC racing game with cel shading, which is a generous way of describing a bad little car model driving over some bumps. But it was cel shaded, and I was proud of that. I never made the space game there.
Then Unity, back when it still shipped with JavaScript support. You’ve probably forgotten that ever happened. This might be where the idea really took hold, because I remember rebuilding Asteroids mostly because I couldn’t play the real one at the time. I wrote it in UnityScript even though I already knew C# from XNA. UnityScript wasn’t bad, exactly. It just wasn’t JavaScript, and in hindsight that turned out to be a mercy.
After that, Phaser. I don’t have that version anymore, which is probably for the best. The idea by then was that you flew around while a timer ticked down, and the timer drained faster every time you destroyed an asteroid. So the game punished you for doing the one thing it was about, and it was not much fun. But you can see the shape of the real idea in there trying to get out: shooting should cost you something.
Now it’s Godot, and for the first time the engine isn’t fighting me. Godot’s 2D physics are genuinely good, good enough that the feel of the ship stopped being the problem. I started, like everyone does, with dodge-the-creeps. Then I rebuilt dodge-the-creeps with my old draining-timer idea stapled back on, just to see. Then, finally, I started on the actual game in earnest.
Four engines, twenty years, one stubborn idea that kept not being good enough yet. It was time to stop rehearsing it and build a real prototype.