[In this technical piece, Introversion's Knottenbelt discusses the 'discrete event simulation' approach to multiplayer in the upcoming Darwinia+ for Xbox Live Arcade, in which player movements and button presses are sent over the network, instead of actual positions of the thousands of in-game objects ]
Not many people know this but Introversion's IGF award-winning title Darwinia was released incomplete: Darwinia was originally conceived as a multiplayer game.
Initially codenamed "Future War", the main game design centered around players who could take control of a massive sprite army, that could then be pitched against another players armies in massive battle-epic style. The trouble is, we ran out of money spectacularly.
As the finances at Introversion dwindled the original multiplayer component for Darwinia was hastily dropped. It wasn't until some months later, reveling in the unexpected kudos of winning those IGF awards that the opportunity for us to revisit the earlier multiplayer idea was revived.
Microsoft wanted to bring Darwinia to XBLA, and with that came the need for a multiplayer component - this would in time develop into an entirely new game called Multiwinia, which IV launched on PC at the end of 2008. Multiwinia, along with Darwinia will be released on Live Arcade as Darwinia+ this summer, a momentous occasion for us as Introversion's first release onto a console.
By the time we started work on Darwinia+, multiplayer networking was not entirely new to us - as mentioned we had dipped our toes into the water when first developing Darwinia, and although unsuccessful we had learnt an important lesson; it was better to integrate multiplayer functionality into the core of the game early on.
Nevertheless, the networking we had started with Darwinia proved useful in our later multiplayer titles, such as Defcon released in 2006, and Multiwinia released last year.
Our approach to multiplayer networking has had its advantages and drawbacks, some of which I will explore in further detail here, along with a greater insight into how we approached this key-programming problem.