Search For a Star
A 2D Space Shooter created in C++ for the Search For a Star competition.
HistoryThis game was originally written for a competition in which all competitors were given a broken, base, game with very little functionality and were expected to fix, then improve, the game in a single week. I opted to keep the original spirit of the game, which was a 2D shooter, and themed it as a space shooter.
GameplayIn the game the player must destroy all enemies before his lives reach zero, at which point you get a game over. There are a variety of enemies, some that fly directly into the player, some that have laser weapons, and some that have homing rockets. Some enemies have armour and can survive several shots from the default player weapon.
- Multiple levels, enemies and weapons
- JSON level format for easy level editing, including the skybox, level music and enemies present.
- Adding extra levels, enemies and weapons is also data driven
- JSON enemy and player description allowing for any combination of traits
- Easy to expand data format, using a custom built JSON parser (due to competition restrictions we could not use an existing library)
- XBox 360 Controller support through XInput
- Maintains high score of players
Implementation DetailsThis project uses the following technologies:
- C++ (2003)
- DirectX 9
Technical ChallengesGenerally this project was a challenge because previously I had only developed games on Linux using OpenGL and several cross platform APIs. Having to switch to Windows without being able to use any of the cross platform middleware, as per the competition specification, meant that I had to learn many of the technologies involved during the writing of this project.
JSON LibraryOne of the optional criteria for the competition was to make the game data driven, but because third party libraries were not allowed I had to implement a data parser. JSON, being very simple structured data format was the perfect choice for a game of this small scale. For this I needed to implement a parser, and this proved to be one of the largest technical challenges I faced during the project, taking approximately half a day to complete.
In game footage from the originally submitted version for the SFAS competition.