Each sphere is made up of cubes positioned in the shape of a sphere. Sphere will break apart when shot, sending the individual cubes flying.
Each cube has its own rigidbody that allows it to interact with the world. This rigidbody uses stript down physics with only what is needed to increase performace.
The spheres will continually spawn in random points around the player. The player must locate them and destroy them before their numbers become too much to handle.
The start of a unique first person shooter. The objective is simple: destroy the spheres before they overwhelm the gpu. You fire as fast as you can click the mouse and there is no limit to ammo. Destroy the spheres by shooting chunks off them until there is nothing left. Once they are almost completely destroyed, about 10% left, they will detonate themselves so that you don't have to worry about hitting each individual cube left.
To increase performance, this game only uses very simple physics. A cube does not have any physics until it is shot. Once this happens, it gets an initial velocity based on the distance from the impact point. Then the velocity is updated each frame with gravity to give the illusion of it falling towards the ground. Once it reaches the ground physics are turned off and the cube disappears.
Spheres will spawn randomly around the player every couple seconds. When a cube is caught in the explosion, it will change its material to be a gradient between the starting silver color and a red color. Once a cube shot off a sphere reaches the floor, it will sink into the floor and be removed from the game once completely submerged. As long as the spheres are consistently destroyed, there will be no drop in performance as the session goes on.
Currently, the material gradient for when a cube is hit will not always have the correct gradient. This incorrect gradient will either happen every time during a session or never during a session, it won't happen only every once in a while during a session. If the color of a cube after it is hit looks weird, restart the game until it doesn't look weird. The only thing left to add would be an overlay in the game for the score instead of printing it out to the command line like it does right now.