SpaceInflators banner


Period: August 2017
Platform: Xcode
Languages: C++
Gameplay: Link
SpaceInflators is a 2D video game similar to the classic arcade game “Space Invaders.” As I had thoroughly enjoyed implementing the FrackMan video game, I decided that I wanted to implement another “knockoff” classic arcade game, and decided to take a shot at SpaceInflators. As with FrackMan, the framework was provided by the same professor, but all of the contents within the gameplay and the algorithms were developed and implemented by myself. Similar to Space Invaders, the player controls a spaceship, and is Earth's last line of defense against an advancing alien onslaught. The objective of the game is to destroy all of the alien spaceships for a given round, without being destroyed by the alien spaceships, to advance to the next round. The player spaceship is able to move up, down, left, and right, and can fire two types of projectiles; bullets and torpedoes (which inflict much more damage than bullets). In addition, there are three types of alien spaceships: Nachlings, Wealthy Nachlings, and Smallbots. Each of these alien classes exhibit different movement control algorithms, but all fire projectiles with the hopes of destroying the player’s spaceship, and finally conquering planet Earth. Certain alien spaceships drop pickup-able items, which can be used to either give the player spaceship an extra live, torpedo ammunition, or fully replenish the spaceship’s energy shields. Good luck! And welcome to Earth!

This game involved the implementation of a large set of classes to represent each of the in-game objects (i.e. actors). The StudentWorld class serves as the world, in which all of the in-game objects belong to (i.e the space field). The actors consist of the player spaceship, the enemies (i.e. Nachlings, Wealthy Nachlings, and Smallbots), pickupable goodies (i.e. free lives, energy boosts, and torpedo ammunition), projectiles (i.e. bullets and torpedoes), and lastly, stars, which add to the design of the space field. Implementing all of these classes involved strategically creating a certain set of base classes, and the corresponding derived classes to exploit similarities in both functionality and private variables. Moreover, this project involved implementing an in-game timing mechanism (based off of a frequency determined by the game framework), in which objects interact and do specific actions on each tick of the game clock.

GitHub Source Code