There has been rather a lot of progress since my last update.
What started as another experiment in seeing how far I could push Visual FoxPro is beginning to develop some actual game systems — and, more importantly, some decisions for the player to make.
The asteroid field has had a lot of work. The number, speed and positioning of the asteroids have been adjusted repeatedly, largely through the highly scientific process of letting my family play it and watching what happens. It went from too easy, to virtually impossible, and eventually reached something that feels about right.
The player’s ship now has fuel, including a proper HUD gauge. Fuel is only consumed when the ship is actually moving, so sitting still is now a legitimate — although potentially dangerous — way of conserving it. Using boost consumes considerably more fuel.
There is also salvage to collect during the asteroid field. At the moment this includes fuel, engine and shield components. The ship can only carry one item, so collecting something isn’t automatically the correct decision. Carrying salvage also makes the ship heavier and increases fuel consumption.
That seemingly small addition has changed the feel of the level quite a bit. Instead of simply dodging rocks until you reach the end, there are now little decisions being made along the way.
I’ve also added achievements and score bonuses for doing things in less obvious ways. For example, the game notices if you manage to complete the asteroid section without firing the laser, and there are rewards for experimenting with the different salvage items rather than simply following the most obvious route.
After the asteroid field, things have become considerably more ambitious.
There is now a huge mothership sequence, complete with a shuttle encounter and combat. Getting all of that working with the buffered graphics system has produced more than a few entertaining bugs, but the sequence is finally behaving properly.
I’ve also started adding pilot profiles. Players can create and select a pilot rather than the game simply starting anonymously, which opens the door to persistent scores, achievements and progress later.
Audio continues to grow as well. There is music, speech, explosions, weapon effects, controller rumble and now a separate boost effect. The PS4 controller support in particular continues to be one of my favourite examples of something that Visual FoxPro was presumably never expected to be doing.
There have also been plenty of less glamorous fixes: respawning, state transitions, collision behaviour, asteroid completion logic and numerous little edge cases. One particularly good bug allowed the player to die just before the end of the asteroid field and then, a fraction of a second later, be congratulated for successfully completing it.
Apparently death was merely a technicality.
The interesting thing is that I’m no longer just asking “Can Visual FoxPro do this?”
I’m increasingly asking “Would this make the game more fun?”
That’s quite a change.
And Visual FoxPro is still running the whole thing.
Seeing what’s possible.