| Infection - Mentorship Project |
"Infection"
www.infectiongame.com
Download - Full install package (includes DX9 June 2007, .NET 2.0, and XNA runtimes) 109MB. Windows Alpha version 1.0.
Download - Game only (requires XNA Refresh 1 be installed) 43.5MB. Windows Alpha version 1.0.
Infection is a multiplayer vehicular combat game in which you score points by infecting your opponents. Once you infect someone they become your minion, at which point you get some of the points they score as well. Minions can vaccinate themselves if they find the vaccines throughout the level, so you must constantly try to maintain as large of team as possible. The player with the most score after time expires wins.
The game is still in a very early Alpha version, Single player mode is for testing only, and there are still some moderately annoying bugs to be concerned with. Some networking issues when people leave a game pre-maturely, occasional camera glitches, physics issues, and some other minor stuff. Multi-player is currently direct IP only.
Future versions may include:
- More vehicles, weapons, and powerups.
- New special categories of powerups.
- More levels.
- Different game modes, like capture the flag, last man standing, etc....
- Improved graphics, (shadows, blur effects, more detailed texturing)
Project history:
Infection is a project I worked on with 5 other programmers and 4 artists as part of a Mentorship with Tim Weisser, an industry vet with a gaming company in Colorado. Using C# and XNA we're building an entire 3D game from the ground up. This includes our own custom 3D Physics,
Collision Detection, and artwork. I've included particle effects and shading effects as well, but those are with some assistance from open source samples.
Not sure what my position on the team should be called. I've pretty much setup the class heirarchy and game framework. I'm not lead programmer, I'm a main programmer I guess.
Important features that I'm working on:
Custom physics - XNA has NO built-in physics functions, only the math for bounding spheres and boxes. I was tasked with making the main game engine, and that included physics. So far I've included: Gravity, momentum (sliding, drifting), momentum transfer on collision, rotation/spin on collisions, terrain collision, acceleration/deceleration, wind-resistance (terminal velocity), friction, and some other small stuff.
Custom A.I. - A.I. is currently a side project inside "Infection". We've designed infection to be played as a multi-player game, not single-player. However, as a side project I'm taking on the task of adding in A.I. So far the bots have a visual range that their A.I. does not go beyond, they know if someone is on their team or not, they can follow enemies or teammates, they can traverse maps through nodes using a custom Dijkstra's algorithm (soon with A* hybrid), they have a "memory" that allows them to forget about players that got away from them a certain time ago, and they have a fuzzy logic type of desire that allows them to prioritize between different entities that they see in their view.
Collision detection - This has been one of the largest hurdles in the project. XNA includes a way to read-in vertices from a model, but you have to create your own math to detect and setup per-vertex collision. Since XNA was so new we were forced to use what we've got. Collision is set up using collision spheres for the entities.
Object Orientation - The entire game was designed on a class heirarchy, every 3D object in the game is part of an entity class; An image of the basic heirarchy of the entities be found here. This is not a true UML type diagram, just a very very basic outline of the early design stages.
Gameplay - Complete setup of keyboard, mouse, and XBox360 controller.
Graphics and UI - I'm in charge of all graphic features (less animation). Although I will add that I have definitely benefitted from Microsoft's bloom and particle effect code. I was also in charge of setting up all of the HUD's and menu systems (UI).
Misc other things:
2D radar, speedometer, and inventory system.
| My Mentorship Teammates - Yeah....they did stuff too, a lot actually. : ) |
Our programming lead is Randall Furino, he has contributed design to the game, and has setup a Scrum system and created a bug hosting server, and CVS server. He deserves lots of credit, he really kept the team in check, on task, and organized.
Important features that my programming teammates worked on:
Alex Abbott - Sound effects and 3D sound. (XACT audio)
Alex Abbott - 3D model animation
Randall Furino and Jason Yegge - Networking (Open Source, Lindgren's Networking)
Sean Glass - Custom weapon and powerup effects
Randall Fowle - Got networking started and setup the install package.
Important features that my artist teammates worked:
Justin Voye - Art Lead & vehicles, and level models.
Derek Grasmik - Menus, HUDs, vehicles, powerups and weapons.
Ryan Morris - Vehicles, concept art.
Kelly Malavasick - Animation.
Russell Smith - 3D Modeling and Texturing.
