The Initial Design of Outpost
I wanted to create a game that was easy to write, looked good, had some rudimentary gameplay, and used scrolling (if I had a dollar for every scrolling question I received, I would be a millionaire). Thus, I picked an Asteroids-type space game because the only background is black space. Plus, the artificial intelligence (AI) for Asteroids, along with search-and-destroy AI for the enemies, is pretty simple, so it all sounded like a good idea.
The story goes something like this: You are the pilot of the top-secret Wraith, a highly armored attack fighter sent to sector Alpha 11 to rid the area of an alien incursion. The aliens have infested the area with outposts that you must destroy. The only problem is that the sector is filled with heavy debris (the asteroids), alien warships, and homing mines protecting each outpost. That's about all there is to the story. (Sounds like a great movie, huh?) Figures 15.1 and 15.2 show the game during startup and gameplay.
Although in most cases I think that creating the story of a game is one of the least important things about writing a program, it does give you a point of reference to build from and keeps the game semi-coherent.
Designing the Gameplay
Once I had the story down, I started designing the gameplay. This consisted of making up the rules. Which object/control performs which function? What's the goal? And so forth. The game isn't that advanced, so I basically thought up what the player can do, what the enemies can do, how the player wins (or loses), what kind of AI everything has, and so on. Because Outpost isn't level-based and doesn't have any kind of strategy, there's not much else to the design.