Premise

Couch co-op has always been very dear to me. There was just something special about staying up till five in the morning screaming at your friend because he killed you for the tenth time. It’s something that I feel is missing in alot of games today. So with Wingman I aimed to recreate that old-school feeling.

The game is a top down shooter with RPG elements thrown in. You fly around in a fighter plane blowing up enemies, collecting money to upgrade your plane with an endless wave survival mode and arcade/story mode all in true jump in, jump out co-op. It sounds pretty straight forward but there’s alot going on under the hood.

Architecture

Firstly the game was built for the Xbox 360 in the XNA engine with all programming being done in C#. It featured an “AI director” with the same premise to the one featured in “Left 4 Dead 2”, the idea was to have dynamic difficulty and scaling depending on how the players were progressing.

So if they were struggling more health packs would be found and less enemies were spawned among many other variables. The trick in this situation was the co-op functionality, Wingman was built to have an additional player join at any point in the game all they had to do was press “Start” on their controller, while this lead to some fun moments of being on the verge of losing your last life only to have your friend swoop in and save the day – no doubt bragging about it in the process.

This presented a particular challenge with balancing the amount of money being earned and the difficulty, this is something the AI director took care of.

This project marks my first exposure into the higher level shader language (HLSL) which allowed the game to have a greater level of customisability regarding the colour of their planes among other things. A particle engine was also created from the ground up to allow unique, explosions, smoke, muzzle flare and real-time damage to also be displayed in game.

Adding Replayability

After each level (or wave) you could improve your plane in an in-game shop, here you could improve your speed, damage etc or buy a new plane entirely.

I opted for a unique code to be generated whenever the plane was altered allowing you to write the code down and insert it on another console to carry your plane across (just like in older games!).

However this code system allowed for a unique opportunity for inter-game marketing. The players of another game of mine “Divide & Conquer” received a code as a thank you for playing, which if entered into Wingman gave them access to a unique plane, other planes were also made based on seasonal holidays or other promotions.

Wingman was in early beta at the time the Xbox XNA program closed its doors so it sadly never saw a public release.