As anyone who has developed multiplayer games is well aware, most of the issues come down to maintaining state. As players interact with the world, there’s a balance that has to be struck between a snappy, responsive user experience and the state validation and propagation.
When any given request in a client-server setup could require anywhere from 40 to 400 milliseconds to complete, you have to do some fudging, and it’s handling cases where your guesswork failed that really take some solid engineering. Alternately, a peer-to-peer approach gives saves you half that trip in time, but adds a host of complexities to state management that make it just as difficult to use effectively. Add on top of this that the Xbox system through XBLIG can only handle about 40 kb/s throughput, and you find yourself jumping through an incredible number of hoops to send as few packets and as little data as possible at any given time. The amount of engineering that has to go into making a Multiplayer experience on the Xbox (as opposed to standard PC or web) is enormous, and easily more obtuse by an order of magnitude.
That isn’t to say any of these things are new problems, or obstacles related only to our development or that make multiplayer for XenoMiner unique – they’re the shared pains of the entire community, as can be seen on multiple threads and how-to’s when you do a few pointed searches. Some games handle it more effectively than others, we’re shooting for a smooth, efficient and accurate system for the players which has of course required more thought and more time.