This marks the start of the Developer Blog for the game we are building with a mix between Unity3D and straight C++. Here goes some indie development.
When OOP was first introduced to games most games were simple to represent using a basic hierarchy. All game objects were inherited off of some base object and each subsequent inherited object would introduce some new functionality.
This works pretty well for the smaller games and is even still part of a lot of engines. This system however gets a little complicated when you have things inherit across multiple objects to get the functionality you need. It also fails when you have a small bit of functionality you want from an object and you don’t want to inherit the entire substructure.
The solution was originally introduced to me by an article out of Game Programming Gems Volume 5: component based architecture. Basically you take all of the functionality of each object and break it into chunks of related functionality called components. Then each game object becomes a collection of these components.
This concept is at the core of the Zombie Infestation architecture, both in Unity 3D and in our C++ version. I’ll go into more specifics on it later, but for further reading on the concept try here, or even search for “Component Based Architecture”.
Our current working title for the game is Zombie Infestation.
The game consists of top down exploration of an infested city. To survive this harsh environment, the player has access to guns aimed by the mouse but these simple weapons do little in the face of an oncoming horde of walking dead. Instead you have in your arsenal a series of traps that you can use to lead the swarm to its hungry doom. No overall goal for the game has been determined as of yet but more thank likely we will be scoring the player and giving bonuses for mass extermination of the zombie threat.
Origins of the game:
A few years ago I wrote a paper on techniques on creating a post-human involving, among other things, concepts derived from the supposed behavior of zombies. The idea was simply that zombies trend towards 2 different states: wander and hunt. A wandering zombie shambles aimlessly about. A hunting zombie has detected prey in some form or another and is chasing after it and moaning as it goes. The moaning is the important part since it alerts other zombies in the area of the existence of prey.
When a zombie hears a moan it goes to investigate and moans as well alerting even more zombies about the food. This chaining effect in theory can cause mass swarming and is usually pretty bad for the unlucky fellow who incited the zombies in the first place. I theorized in the paper that it was possible to have a pseudo path-finding occur from the chaining as well. The original work of Zombie Infestation was to experiment with if this effect actually happens.
As with any good musing on the possibility of a zombie outbreak, I had to wonder how I might be able to use this scenario to my advantage rather than being swarmed as inevitably as it seemed. Since zombies probably have no real intelligence and will never really learn not to walk straight into spiked pit that seemed like the most logical way to take care of the problem and the game bloomed from there.