This version of Missile Drizzle was made as the final project for Graphics/Game Engine Programming I. The purpose was to show off our knowledge of 2D Graphics Programming. We were required to make use of animations, depth, particles, pixel shaders and polish. The game was also required to run on an Xbox 360. My friend Brook did the art and I did the programming.
The sport of Missile Drizzle involves two sides trying to blow each other up with explosive balls. In this iteration it is portrayed as a civilized sport similar to tennis. Each player takes a side on the court and launches balls over the net in the center while being watched by a referee.
The sense of depth in this demo is achieved through Brook’s art but also with the use of a matrix camera. The scene is split into three layers. There is a background, middle, and foreground layer. The background layer contains the sky with clouds the scroll by at different speeds in the distance. Other than the clouds scrolling, this layer does not change. The middle layer contains the stands and acts as a buffer between the foreground and the background. The main action of the game takes place on the foreground. The three layers of the camera contain a percentage for how much they are affected by the camera. The foreground is affected the most translating and scaling based on the midpoint and distance between the characters. So the foreground with be affected the most, followed by the middle layer, with the background being affected only slightly if not at all. This adds a parallax effect to the demo.
The pixel shader used in the game can be seen during the title splash and the menus. It resembles a projection of a sepia film. The shader contains two parts. The first part of the shader takes in a noise texture. Depending on the value of the color in the noise texture, the value of the pixel on the screen will either be unchanged or set to black. The shader cycles through a couple of noise textures generating the filmgrain on screen. The second part of the shader draws a black line down the screen at a random spot to give it a sense of it running through a projector.
The particle system that was used can be seen in two parts of the game. It is used when the balls explode on impact on the ground and when the cannons fire. Since this project was suppose to also run on an Xbox 360, the particles needed to be managed properly. This is done simply through the use of creating a pool of particles at runtime. When a particle event is fired, it draws the particles it needs from the pool and when the particle effect is over, it returns them to the pool. By doing it this way, C# does not need to waste time creating and deleting the particles, which helps with performance on the Xbox 360.