Slashdot Mirror


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."

30 comments

  1. Slightly more readable version... by Ford+Prefect · · Score: 3, Informative

    ... Here ;-)

    I still reckon the best game networking in the world is that in Quake and its successors, such as Half-Life and its sequel. Unlike Halo and Halo 2, where co-operative play online was apparently an insurmountable technical challenge, in Quake-based stuff even single-player games are inherently client-server anyway.

    From the article, it sounds like Halo 2 multiplayer has moved in that direction away from the all-clients-equal approach of Marathon and Doom, with a single server accepting or denying player-damaging events. Although each client apparently still has a full version of the game world at hand, unlike Quake-style games where a client is only sent relevant stuff - might this allow for some audacious, map-spanning ultra-vision hacks and so on?

    Still, that's how they do the recovery thing if the server gets unexpectedly removed from play...

    --
    Tedious Bloggy Stuff - hooray?
    1. Re:Slightly more readable version... by Anonymous Coward · · Score: 1, Interesting

      Although each client apparently still has a full version of the game world at hand, unlike Quake-style games where a client is only sent relevant stuff - might this allow for some audacious, map-spanning ultra-vision hacks and so on?

      Considering the difficulty (impossibility?) of getting a hacked XBox on Live, I'd say this isn't much of a problem.

    2. Re:Slightly more readable version... by Anonymous Coward · · Score: 2, Informative

      Read through it again.

      Halo's networking model was like Marathon's. Every client was sent every individual thing about the game world. This was awesome for a LAN, as games were extremely smooth. However, this is simply too much data to send over the internet reliably.

      Halo 2 however, like Quakeworld (Though not Quake), uses client-side prediction to determine where players are. This results in a massive bandwidth decrease. Also like Quakeworld, and most other FPS games, the server, not the client, confirms or denies the hit.

      The server is also only sending relevant information by assigning objects a priority, as he discussed. The closer you are to said object, the more frequent it will be updated.

      The way a new server is found if the host is lost, is that the Xbox with the smallest ping time is selected, and then the other Xboxes sync up data with the host, leaving you more or less where you were before the previous host left.

  2. Great article by Isbiten · · Score: 1

    I actually read it through, yes yes pat on the back. And it was very interesting I don't really know much about networking but he explains how the networking model for at least Halo2 works, the part on how the master priortize certain events was neat...

    --
    I fought the corporate America, and the corporate America bought the law.
  3. Client Server Worldview by poena.dare · · Score: 4, Funny

    ...because every client is being sent the persistent state of the entities in the world (the entities are what we call the persistent objects in the world), that means that any client has all the information about the world. Because the client knows everything about the world, we can support making them be a new server, if the server machine was to turn off, get disconnected from Xbox Live or the player just wants to leave the game...

    Interestingly enough, Bungie's master server and client model is the same model humans use for perceiving the world. For example, right now, Milton Flapdoodle in New Jersey is responsible for perceiving the world, authorizing adjustments to humanity's world view, and beaming the changes to each of us telepathically. Should something happen to Milton, a new server can be chosen because we each carry a copy of the complete world state inside us.

    Unfortunately, the technique isn't foolproof and due to the high density of telepathic messages required there is some unexpected bleed-through amongst the clients. You can tell this happens when you witness a profoundly anomalous event like Britney Spears sudden rise in popularity or Brussel Sprouts that inexplicably taste good.

    1. Re:Client Server Worldview by Ford+Prefect · · Score: 2

      Interestingly enough, Bungie's master server and client model is the same model humans use for perceiving the world. For example, right now, Milton Flapdoodle in New Jersey is responsible for perceiving the world, authorizing adjustments to humanity's world view, and beaming the changes to each of us telepathically.

      Something tells me that you're perceiving the world in an ever so slightly different manner to the rest of us... ;-)

      --
      Tedious Bloggy Stuff - hooray?
    2. Re:Client Server Worldview by Anonymous Coward · · Score: 0

      And thus we say goodbye to the Church of the Subgenius, and hello to Master poena.dare and his Church of the Milton Flapdoodle.

      (I love it when an Internet Religion is born.)

      Now go spread it to Fark and let it multiply, and let it be seen as good.

  4. Summary is incorrect by Have+Blue · · Score: 4, Informative

    The Marathon quote is referring to Halo 1. Halo 2 is nothing like this, as the article explains.

    1. Re:Summary is incorrect by necro2607 · · Score: 1

      Dude, are you Have Blue from Hotline and the good old days of Marathon and so on??

      Dunno if you'd remember me, I always used the name Necromancer and/or "Necromancer [necro.ath.cx]"... used to hang out on that bungie.org hotline server and stuff...

    2. Re:Summary is incorrect by rowanxmas · · Score: 1

      Given his low number, I would bet he is.

    3. Re:Summary is incorrect by Have+Blue · · Score: 1

      Yes :P

  5. Re:halo2 network code sucks!!! by EinsteinRival · · Score: 2

    It doesn't necessarily suck, per se. I've played the game, and had the same problems, due mostly to flooding the connection on the end I was on with two Xboxs having four players apiece. Generally, this model would work extremely well, and is basically the same as the old model but with a priority queue (as I understand it), and would decrease bandwidth usage and increase framerate. However, the main problem is that if you flood a connection, without a proper judge of speed, then you create an alternate world in your client a few seconds behind the actual occurence. Eventually this is solved by resetting everyone back to where the slowest player is. However, with those network engines (once again, as I understand it), they still use the "transmit everything model," which doesn't lag much, but if it does stops everything in its tracks. Long story short, it's just a tradeoff for bandwidth v. client consistency v. playability

  6. Interesting by Taulin · · Score: 1
    I haven't played Halo2, so I can't say if it works well. The big catcher was how he said it was not a pure peer model because clients do things like handle reloading your weapon animations? I guess he doesn't understand the difference between the presentation layer and the network, or he just explained it badly.

    Being able to drop a server, and continue with another is pretty cool, but I think the increased trafic for keeping all systems syced is not worth it. I thought XBox live servers were supposed to host games anyways to stop cheaters?

    1. Re:Interesting by bigman2003 · · Score: 1

      Xbox Live servers don't host any of the games I play...

      Just about everything is hosted on one of the 'clients'. (Crimson Skies, Rainbow Six, etc) and it actually works out well.

      As far as whether or not Halo 2 network code works....yes, it works very well. The number of people I have seen lagging has been very, very low. The number of times I could blame a death, or a missed kill, on lag is maybe 2 or 3. And that is after many hundreds of games, and thousands of kills (and millions of deaths).

      --
      No reason to lie.
  7. At least a week since the last Halo 2 ad by Red+Moose · · Score: 0, Troll
    Hmmm, now it's only a week since the last Slashdot Halo 2 "Article" (Advert).

    Running out of thigns to say about it? How about: "Halo 2 is best sequel" or "Halo 2 saves white mice from experiments" seeing as Slashdot has ran just about every other Halo 2 related story for no good reason.

    --

    Acting stupid isn't much fun when there's someone around who knows better

    1. Re:At least a week since the last Halo 2 ad by Anonymous Coward · · Score: 0

      I wonder why Sony and Nintendo articles get none of these assclows.

  8. First Person Shooters and Quantum Physics by HTH+NE1 · · Score: 2, Funny

    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.

    I'll say. Every time two machines provide the same inputs but get different outputs, Schrödinger half-kills another cat.

    --
    Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
  9. Interesting, but not terribly inventive by inkless1 · · Score: 2, Insightful

    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.

  10. nothing new here... by Alban · · Score: 1

    Running a deterministic model based on peer input, dead-reckoning locally if you haven't received the current input frame from the server, correcting the simulation later on once you've received the missing information from the server (with the server always being authorative).

    And he mentions some typical (but not all) caveats:

    - uninitialized variables that end up having a different value on the different hosts (since, if they're not initialized, their value is whatever was at their location in memory/on the stack)

    - making sure that the simulation is perfectly deterministic (very hard!)

    - calling repeatable random streams in deterministic code, but _not_ doing so in the non deterministic parts of the code otherwise this desyncs the streams

    - and many more!!

    Basically, all this stuff has been done in games for a while now. Of course, these guys had it figured out since marathon (not sure that they were doing dead-reckoning at the time since marathon was LAN only... was it?).

    For sure, their implementation is solid.

    1. Re:nothing new here... by Alban · · Score: 1

      oh and of course, locally process anything that doesn't have feedback on the world.

  11. Netcode Critiques from Die-Hard Halo 2 Player by Anonymous Coward · · Score: 2, Insightful

    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...

    1. Re:Netcode Critiques from Die-Hard Halo 2 Player by bigman2003 · · Score: 1

      Good post responding to your points:

      (1) I've heard about this, but never experienced it first hand. Bungie had a big story on Bungie.net about how they were attempting to correct this problem.

      (2) (Your first '3')I would much rather have the system determine which server is best, rather than some stupid kid who thinks that his awesome cable connection is the best thing going. While you might have a good idea of how your connection rates, many other people don't. I probably get the 'server dropped' screen in 1 in every 20 or so games...and the fact that it just means you have to wait 10-20 seconds to continue the game isn't too bad. Better than the game going away.

      (3) I initially thought the whole matchmaking thing sucked. I hated it...but then after playing it for a few hours, I started to think of it the same way that they described it on PennyArcade...'organic'. You can just brainlessly waft from game to game, with good competition every time. And since nobody 'owns' the game, there are no idiotic rules...Rainbow Six 3 was a pain in the ass, because it was 'pistols only', but if you didn't get the message people thought you were an idiot.

      The place I DON'T like their matchmaking system though, is the large team battles. You can't really take the time to come up with a good strategy when only playing one game. Of course as you mentioned, the party system fills this gap.

      I agree wholeheartedly with your final paragraph...

      --
      No reason to lie.
    2. Re:Netcode Critiques from Die-Hard Halo 2 Player by si618 · · Score: 1

      Try XLink Kai then. I can't (won't and don't want to) use XBox Live, but i've been having an absolute hoot playing Halo2 through Kai...much to the detriment of my real work :)

      XLink Kai

      The latest Linux version of Kaid is usable, as is the Java UI (haven't tried the ncurses UI yet) and XMBC integration. They're all actively supported and getting better with each release.

      --
      Sometimes I doubt your commitment to Sparkle Motion
    3. Re:Netcode Critiques from Die-Hard Halo 2 Player by Quixotic · · Score: 1

      xbox live actually keeps stats on your bandwidth and will build a profile of known good servers. so over time, if you have good upstream, then xbox live should choose you to server more often than not.

      --
      --
  12. so sad... by Anonymous Coward · · Score: 0

    Being a bungie fan from way back (Myth series especially) I was disgusted with them for switching from RTS to FPS and selling out the micro$oft.

    Myth 2 is still one of the best PC games evah, too bad they're wasting their talent on consoles.

    1. Re:so sad... by Kingfox · · Score: 1

      Because it would have been so much better if Micro$oft didn't save Bungie from bankruptcy? You would rather that no one play Halo 1 instead of it being playable on the Xbox and later other systems? That's just foolish.

    2. Re:so sad... by Anonymous Coward · · Score: 0

      Don't we have enough mindless FPS games?

      Also, let's not forget that without Halo, Xbox might have flopped, then PC gaming might have been safe from the endless slew of dumbed down, crossplatform, codeveloped shite that the industry is putting out.

      Better that Bungie died than made Xbox a success, thereby damaging PC gaming.

      Ironic that a Mac developer will ultimately be to blame for the death of teh pc gaming.

    3. Re:so sad... by AcIdR3IgN · · Score: 0

      But has it ever occured to you guys that most people don't have enough money to buy the needed hardware to play most modern day PC games (that look decent!). I mean consoles are pretty cheap (and you can get em even cheaper second hand), and all games are specially coded to be able to produce nice grafics and smooth gameplay, something that I miss on my own pc. I would rather play games on my PC, but having them on a console is just wonderful, it does save me an aweful lot of money.

  13. And so? by Anonymous Coward · · Score: 0

    Well sure. Nothing new here. In case you hadn't noticed, this is not an article on something new. The article is not headlined "Dramatically new multiplayer approach!"

    The subject of the article is how they implemented Halo 2's network code. That's it. That's all. In fact, the summary says right in it that they did many of the same things more than a decade ago in Marathon, and you acknowledged you read that part.

    The slashdot "This isn't new" weenies get more annoying with every article. Why in the name of all things fluffy are you telling us it isn't new? Why do we need a dozen posts on every story explaining every part of the story that isn't new?

    "Halo 2 may be nifty, but video games are nothing new."
    "This new telescope may be cool, but of course the blueprints were drawn up ten years ago when they started constructing it."

    What in hell is wrong with you? How often do you think every single thing mentioned in a story will be completely novel? Let's put it in programming terms. What does the new operator do in C++ and many other object-oriented languages? It creates a new instance of an already defined type. That's what's happening here.

    Question: Are the tricks "clever" as the summary claims? If they are not clever, feel free to explain why. Otherwise shut the fuck up.