top of page

Physics Invaders

Unity 3D / C#

For my graduate-level graphics course CIS 5680: Game Design Practicum, I independently implemented "Physics Invaders," a 3D PC game that replicates the classic Atari-age game, Space Invaders, using the Unity 3D game engine. This was the first project that allowed me to explore the Unity engine. In my re-imagined version, you play as a a little dog who wants to collect as many heart shaped biscuits as possible by shooting them down as they descend down the screen and knocking them into a nearby, comically large doggy bag.   

My responsibilities included:

1) Recreating all the functionality and gameplay of Space Invaders  ​​​​​​

  • Player/Enemy Movement and Controls 

    • The player controls a shooter that can be moved horizontally across the screen using the left and right arrow keys and fires bullets upwards when pressing the space bar. 

    • Enemies descend down the screen in a serpentine pattern and will fire upon the player at random.  If an enemy bullet collides with a player bullet, they cancel each other out. 

  • Win/Loss  Conditions and Levels

    • The player wins the level once they are able to clear all of the enemies on screen. If a player loses all of their lives due to being hit by too many enemy bullets or an enemy descends far enough to reach the player, they player loses the game. With every new level, the speed at which enemies descend the screen increases.  

  • Shields

    • A row of 4 stationary shields acts as temporary shelter for the player as they protect them from enemy fire but gradually deteriorate with each sustained hit. They can be damaged by both enemy bullets as well as player bullets, just like in the original game. 

  • Scoring 

    • Points are awarded based on the number of enemies hit by the player.  The scoring system is as follows:

      • 10 points for destroying an enemy in the bottom rows 

      • 20 points for destroying an enemy  in the middle rows

      • 30 points for destroying an enemy in the top row ​

      • A random number between 50-300 points for destroying a randomly generated "mystery ufo" ​ (in this case, the "golden heart") that flies across the top of the screen  

  • 2D GUI 

    • I implemented a 2D GUI that displays the player's current score, number of lives, and level. 

2) Some new added features 

  • Sound/Visual effects  

    • I implemented various visual effects such as a 3D camera shake and particle-based explosions. Additionally, I added sound effects and background music. 

  • Rigid Body Physics and Physically-Based Bullets

    • Physics were added to the player, bullets, and enemies such that enemies and bullets would fall after being hit. Enemies and bullets that accumulate on the platform would impact gameplay by inhibiting the player's movement, and could be cleared by the player by moving left or right. 

  • Blue Heart Powerup

    • Like the golden heart, I implemented a blue heart powerup that would be randomly generated and flies across the top of the screen. When hit by one of the player's bullets, it would add a life to the player's total life count.

bottom of page