Project Title: Nobody Likes To Be On Fire
Development: C# / XNA
My Role: Network / Gameplay Programmer, Designer
This game demonstrates a simple online-networked game built in XNA. Players either take control of a Fire character, or an Ice character. The Fire character must chase down the Ice characters in order to tag them, thus turning them into Fire characters as well. The Ice characters must avoid the Fire characters until the end of the time limit.
There were two important development aspects relating to this project. First, the actual networking and design was an iterative process, and reflects on of my first experiences with Game Networking. Features such as lobbies, ready systems, host changes, smoothing, prediction, and packet compression were all relatively new and challenging components that needed to be implemented. Over the duration of a few weeks, each iteration required a large amount of refactoring to continue polishing the networking framework built around the game.
The second important feature was the iterative process relating to the design of the game. The game went through a series of changes to gradually make it more fun and re-playable. For instance, initially all characters moved at the same speed. This created a problem, because it was very difficult for the Fire character to catch anyone at the start of the game. So, to improve the gameplay for the first Fire character, a progressive movement system was set in place.
The first Fire character can move slightly faster than other characters at the start. However, as Ice characters are captured, the quantity of Fire characters determines their overall speed. This means that as more Fire characters are recruited, their speed eventually drops below the Ice characters, thus forcing them to rely on teamwork in order to flank and corner the last remaining Ice characters. This improved the early design of the game, thus making the Fire character much more enjoyable to play.
Another element of the game involves the projectiles of the Ice characters. These projectiles can collide with other Ice characters to slow them down briefly. However, while this was entertaining to use sometimes, it originally didn't provide much in terms of gameplay. So, in order to encourage use of the ability, at first the game only had two wins states. Either the Fire characters would capture everyone, or a single Ice character would remain. This still lead to issues, as there was no real reason for the Fire players to finish capturing the Ice players unless they were guaranteed to stop them all, otherwise one of the Ice players would win if they were the only one left.
So, then a point system was incorporated. Ice players could generate points for being the last ones to survive, as well as tagging other Ice players and allowing them to get caught. Fire characters could gain points for catching an Ice player, as well as winning the game for the team. The actual use of points was never fully developed, but it did provide a lot more incentive for individual players to be active in each round throughout the entirety of the game.