Cosmic Mischief is a 3rd person arena shooter with a camera that trails behind the player. The objective is to have the most kills scored on other miners by the end of a timed battle. In a typical game match, players will fly from one planetoid to the next collecting upgrades for their laser gun, jetpack and shield to give them an edge over opposing miners in combat. Upgrades are dispersed across all of the planetoids that make up the playing field proportional to that planetoid’s size. These upgrades are acquired by defeating the grunt that is guarding it and then mining the upgrade from the crystal node. Enemy miners are equipped with a drill and a laser gun just like the player. Enemy miners are able to move around like the player and have the same goal that the player has. Players can either kill or die to enemy miners via the laser gun or drill. Grunts are only a light threat but can still damage and kill miners with melee or ranged attacks.
As the technical lead of Cosmic Mischief i was responsible for managing a team of eight programmers, designing the games code architecture, paralellizing several of the games modules and developing local and remote debugging tools. The single biggest performance increase of Cosmic Mischief came from multithreading the animations system. Rather than offload animations into a shader we decided to implement a multithreaded animations system. This system used the boss-worker pattern where we had a queue of animations to be processed, a master thread distributing the work and several worker threads processing animations when needed.