How Stuff Works: Halo 2 Networking
December 16th, 2004
HSW has done it again with another interesting Halo 2 article. This time its all about Halo 2’s networking. Very neat stuff.
“The thing is, we run the simulation and we run the world, that’s one part of what we do, but then every frame we also have to do things just for the local player, like you have to figure out what their first person weapon is doing, whether they’re reloading or throwing a grenade. We actually render their view of the world as well.
So those actions — because they only take place on one machine — those actions can’t be allowed to affect the deterministic state of the world. So basically we have a separation inside our game. This is the stuff that is deterministic — it’s all the objects in the world and how they move. This is the stuff that is not deterministic — the sounds that you can hear on the local machine, what you are rendering with your graphics and a couple of other things. We have to separate those two.
If we keep them separated, then the game will stay in sync between the other machines. But if they are not separated correctly — if there is information transferred between the two — then the machines will diverge in the simulation, and you might not necessarily notice that because one machine could be like the player is here but the same player is [in a slightly different place] on somebody else’s machine, so you might not necessarily notice that, unless you tried to shoot them and the bullet hit them in such a way that hit them on one machine and missed them on another machine. Then the divergence basically cascades like that until eventually the game is completely different on different machines and then it’s meaningless of course.”



