Gameplay
Player can move in an arbitrary direction determined by the left thumb stick.
Player can shoot in an arbitrary direction determined by the right thumb stick.
Asteroids "bounce" off of eachother on contact
Power-Ups are spawned procedurally. (example: if the player has a kill streak divisible by 50 times the player's rank, an extra-bullet power-up will appear)
Enemy packs are randomly generated and spawn off-screen at a distance within a fixed radius of the player.
Destroy the red "pack boss" and the entire pack will be destroyed.
Gain a kill streak of 100 or more and a "seeker" will spawn to hunt you down
The "B" power-up causes the player's projectiles to bounce off of the edge of the screen.
The pink orb attaches to the player to be used as a shield/melee weapon.
The pink orb can be launched in the direction of the player's gun to be used as a ranged weapon
The pink orb will assist the player by shooting directly at the most recently attached enemy if it is not attached to the player
The pink orb will stay within a fixed radius of the player if the player moves too far away.
The mini-map radar in the top right of the screen indicates the position of enemies, asteroids, player and camera
The blue power bar can be drained by holding both triggers to shoot a quick burst of projectiles.
Asteroids obstruct the player's ship and absorb projectiles. Enemies and their projectiles can pass through asteroids
Damage applied to enemies is indicated by text which floats and fades away. Critical hits scale up and are colored yellow. Regular hits scale down and are colored white.
Lose all of your health and Game Over. Being pushed out of the world by an asteroid is also Game Over
Collision Vectors
Collision vectors implement a variation of the separating axis theorem.
2D Primitive lines are used to represent collision vectors in debug mode
If two convex objects are not penetrating, there exists an axis for which the projection of the objects will not overlap.
(i.e. Can you see light shine between the two objects?)
Optimization
Above is a demonstration of projectiles post-optimization in an attempt to stress-test the collision and physics systems.
The number of projectiles shot by the player has been increased significantly, and the player is given
the power-up which allows projectiles to bounce off the edge of the screen.
Parallax Backgrounds
Layers of depth are simulated by a procedural parallax effect.
The game is played in the foreground, with 4 layers of stars and then a static background image of space.
The larger stars move faster, relative to the player, than the smaller stars in the background.