Taking Halo 2 to Xbox Live
An anonymous reader writes "In this new interview, Bungie Studios engineering lead Chris Butcher explains how his team took Halo 2 multiplayer battles to Xbox Live, with minimal glitches. Turns out there are a lot of clever tricks involved." From the article: "It's actually the same network model we used in Marathon back in the day, although Marathon had some bugs in it. The thing with this networking model is if there's a bug in the computer code where two machines could provide the same inputs but get different outputs, there can be problems. There are lots of different ways that could happen."
I mean, this is an excellent piece on understanding how a client/server model works in an FPS game over the internet. But he's describing an authoritative server with client side lag prediction. You've been seeing this kind of stuff since like Quake II in one form or another, it's just that it's gotten better prediction over time.
Don't get me wrong - he clearly knows his stuff, and knows it well enough to explain it detail using plain words - no easy task. When my girlfriend once asked me why one of my mods wasn't working, I told her that network replication was a bit like trying to get two men in a completely dark room to solve a jigsaw puzzle. I'd say he's putting it more eloquently than I could.
Here are some of my thoughts on this matter:
(1) Anyone who has been playing a lot of Halo 2 on Xbox Live (and that describes me bigtime) will know about the "standby Glitch" that is being used to "cheat" in matchmade games. Essentially people are putting there DSL/Cable modems into standby, then taking them out of standby, and while in standby, they can actually run in and take the flag while no one else can even see them, then when they go out of standby, poof! Your flag is gone. This seems like a huge blunder in the netcode.
(3) This whole business of choosing the server for you sucks too. I guess it works for the most part, and it maybe removes a little of host advantage, and for people who don't know better overall they probably get less lag in their games. BUT, I have a GREAT upstream connection at home, and if were the host in the games I play in, there'd be no lag and the host wouldn't quit, but with this system sometimes Bungie picks a worse server, plus then they quit and you get the dredded blue screen of server-switching death.
(3) On a final note, there are no server lists and no real way to find the map/gametype of your choice in Halo 2's live implementation (you have to use "matchmaking" which gives you some control, but not enough in my view). This sucks if you like custom games because it can be really hard to find one. Basically, you have to rely on your friends list and your clan list to build up a party to play custom games. They bascially went against the way every FPS online game works with some of these decisions -- some worked out, others didn't.
I'll end with saying, that I still LOVE THIS GAME, and I actually like the ranking and matchmade games, and the whole party system thing is totally freakin' awesome, but there are problems, and it isn't perfect...