I keep saying this, but Galactic Gladiators is starting to feel like a proper game now.
Not just a collection of Visual FoxPro experiments that happen to move around the screen. The different bits are beginning to join together and affect each other.
The asteroid field now has eight large asteroids, harmless smaller rocks, salvage to collect, fuel to manage and a boost that can get you out of trouble. The boost feels brilliant, but it absolutely drinks fuel if you abuse it.
That is becoming one of the main ideas behind the game: things have consequences.
You can collect one of three salvage items, but you cannot keep all three. If you collect another, it replaces the one already in the cargo hold. You can use the boost, but you may regret it later. You can even avoid starting the battle completely—but then you will never experience it.
The fuel gauge now changes colour as the tank empties. There is an alarm when it reaches amber, another warning when it reaches red and eventually BARF announces:
“Fuel exhausted. We are now travelling mostly through optimism… and fumes.”
Then there is the mothership.
It slowly descends into view after the asteroid field has been cleared, accompanied by its own music. It is enormous, ridiculously detailed and looks like an entire city floating in space. Against the much smaller player ship, the scale is slightly absurd—which is exactly what I wanted.
For a while, though, it looked as if Visual FoxPro had finally reached its limit. Any smaller ship flying across the mothership flickered horribly. It was beginning to feel like a serious problem. A game where nothing can fly over a detailed background is a fairly limited space game.
The solution was to stop asking FoxPro to move lots of individual image controls over each other. The battle scene is now drawn into an off-screen buffer first, then the completed frame is copied to the screen in one go.
The result is quite astonishing.
Eight moving ships work perfectly. Sixteen still work, with a little judder occasionally, but no flicker whatsoever. The player ship, bullets, shuttle, mothership, lives and HUD can all be drawn as part of the same frame.
That has completely changed what I think might be possible.
We now have controller support, rumble, screen shake, particles, explosions, speech, music, sound effects, fuel, cargo, shields, boost, an asteroid field, a huge mothership and the beginnings of a battle system.
All running in Visual FoxPro 9.
A development tool released in 2004.
I’m no longer wondering whether FoxPro can handle a game.
I’m wondering how far we can push it.