Ascension

This was the first game I produced on my own. I enlisted the help of a friend with musical talents who created the audio tracks and sound effects for the game. He also provided me with some of the art assets which were necessary to be custom for the game. Additional content, such as character models and backdrops, were purchased as needed from stock content sites.

When I created Ascension, I wanted to incorporate a unique mechanic that would challenge the player. The player has access to a standard weapon and four special abilities. Access to the special abilities is granted by "charging" the special, done by successfully striking enemies with the primary weapon. Accomplishing a streak with successive accurate shots increases the rate at which the special charges. However, a single missed shot resets the multiplier rate. Ultimately, this led to making ammo a resource, even though it was unlimited, and also tied in to the aiming mechanic.

Gameplay

Ascension takes place across multiple scrolling stages, with waves of enemies approaching the player. Each enemy has a unique behaviour dependent on the difficulty setting. For example, on easy difficulty, one enemy fires straight forward, but on hard, it actively tracks and fires toward the player. Each stage ends with a boss battle.

The player moves their ship using the controller, and also an on-screen reticle that indicates the current target. Shooting fires a projectile from the player's current location toward the reticle. This makes it necessary to lead the target in order to land shots and subsequently charge the special ability. The player has access to four previously-mentioned special abilities: a mine field, a laser cannon, a repulsar blast, and a regenerator. Using these abilities tactically, as well as keeping them charged, can spell the difference between success and failure.

Technical

The game makes heavy use of class inheritance and the template pattern, implements interfaces where deemed necessary, and delegates for each enemy for each difficulty setting. Levels are handled as a list of sets of enemies, the appearance of each set controlled with an internal timer.

Levels are stored and loaded from Xml. I created a graphical level builder which would allow me to place enemies on the screen with some context of where they would be at any instant during the game, and automatically serialize the output to Xml.

Ascension on the Xbox Marketplace