Question for World of Warcraft players...



  • ...or anyone who has some knowledge of the system.

    I am curious as to how they handle dungeon exploring & questing with the many, many players they have. For example, say there is one dungeon that everyone wants to go through. I am assuming that whatever party or clan you have is not walking around, constantly bumping into other players. There would probably be more players than monsters. So I'm guessing they somehow hand a small portion of players (the adventuring party) an "instance" of the dungeon, that is kind of insulated for their own enjoyment. What this says for the consistency of the rest of the world, I'm not sure.

     Does this sound reasonable? If this is not how it's done, how do they do it? Sorry if this question sounds naive, but I don't play WoW, and I'm not sure how I would put the search terms together to find the answer.

     

    -- R Flowers 



  • @R.Flowers said:

    So I'm guessing they somehow hand a small portion of players (the adventuring party) an "instance" of the dungeon
     

    That's exactly how they do it. Every dungeon is an instance dedicated to you and your party. It'd be impossible to get any quests done otherwise. That's why you go through the swirly portals to enter the dungeon, and get a loading screen. Your session is physically being transferred from the "world"  servers to the "instance" servers.

    It's also why hiding in a dungeon sometimes can let you survive a server crash. Each realm isn't just one single box. it's a cluster of machines. Login server, world server, instance server, database server, etc...If only the world server goes down, only those people out in the world go poof. Everything else keeps chugging along. If login/database go down, then everyone's down.

    The world servers are also split into continents and planets. So there's a Kalimdor box somewhere, an Eastern Kingdoms box somewhere, and an Outland box somewhere for the Burning Crusade stuff. Once the Lich King expansion comes out, there'll be another set of servers to handle that "sub-world" as well. It was quite common at one point that a particular continent was down, but the other side of the world was chugging along happily.

     



  • I am even more curious on how they do it at EVE-Online, where there is only 1 persistent world.

    Sometimes it happens that a certain star cluster is full of LAG, and the rest of the world is unaffected. Then everybody is waiting at a gate and saying: "Don't go in! It is full of lag!!"



  • @Ice^^Heat said:

    I am even more curious on how they do it at EVE-Online, where there is only 1 persistent world.

    It's a bunch of independent persistant worlds connected by magic gates. Pretty obvious that they'll be running on separate servers. 



  • From what I understand.  They have servers dedicated to instance dungeons.  When your party/raid enters one your basically handed over to the appropriate server and a new instance of the dungeon is then created for you and our party.



  • In some MMOs there is also the concept of "channels" that divide the sub-worlds further. There one channel is associated to one server, even though all servers process the same part of the sub world. (Basically like a fixed number of persistant "instances" of the same world part)

    While we're at the topic of MMOs or multiplayer gaming in general, I always wondered how can those games archive the illusion of synchronous gaming at all with the huge latency on the internet?
    I imagine that it takes a pretty long time for each player until its packets have arrived at the server, until the server has updated the database and until the resulting packets have arrived all relevant players again. But each player only has its own input as relieable information until they get fresh data from the server and the responses the clients generate operate on this information too, wouldn't each player basically see the game differently?

    Concrete example: Suppose both player A and player B want to pick up an item laying on the ground. Based on the local copy of the game data, they both see the unowned item and the other player standinga bit apart.
    Player A then advances and commands its client to pick up the item. The client sees the item still unowned in the local copy and proceeds so, sending packets to the server, notifying it of the action.
    At the same time, player B does the same. But since A's packets didn't reach the server yet, B thinks the item is still unowned even though A just got it. So in the end, each player owns the item in its local copy and the server has to deal with two contradicting "pick up" requests. Who owns the item in the end then?



  • @PSWorx said:

    While we're at the topic of MMOs or multiplayer gaming in general, I always wondered how can those games archive the illusion of synchronous gaming at all with the huge latency on the internet?

    In a word: badly. The illusion breaks down on a regular basis (usually you'll observe an artifact at least once every few minutes, often more frequently).

    @PSWorx said:

    Who owns the item in the end then?

    Whichever one was processed by the server first. The other will find it mysteriously vanishes.

    If you play such games with any kind of appreciable latency, they behave very oddly and are more than a little frustrating.



  • @PSWorx said:

    Concrete example: Suppose both player A and player B want to pick up an item laying on the ground. Based on the local copy of the game data, they both see the unowned item and the other player standinga bit apart.
     

    Can't speak for any other MMO but World of Warcraft (because that's the only one I've played), but in WoW, basically everything is processed server-side. The client is there solely to accept your keyboard/mouse input, forward them to the server, and receive its responses and data updates, and draw the pretty pictures. Initiating an attack will do nothing until the server acknowledges it. You might see your character slinging fireballs at the mob, but the mob won't take any damage, because all damage is calculated server-side.

    The client is free to extrapolate your location based on keyboard input, and continually syncs with the server as to where the server says you are. Usually the lag is only a couple hundred milliseconds, so you can't tell the difference. But if there's a network burp, you may find yourself running around in an empty world - the client is keeping you in motion, but the server's not sending any updates as to what you're encountering in terms of monsters and players. After a certain point, the client'll just disconnect itself with a server timeout error. But if you sync up in time, you can find yourself right back where you were at the moment the network burp hit.

    As for picking stuff up the ground, in WoW you can only loot the critters you killed. Any "drops" don't hit the ground for all to see. They're tied to the mob's corpse and stay there until the corpse is timed-out/deleted, or you get around to doing the looting. If you're in a party, then looting duties goes round-robin amonst the party members. Any gold is automatically split up amongst the party, and any item loot is subject to the party's loot rules (free-for-fall, round-robin, master looter, etc...).

    In other games, unless they're doing some kind of continual ping setup to account for network lag, they'll just got for the easiest solution: whoever's packets hit the server first is the winner.

    Of course, in some games, these network burps could be and were heavily exploited. Network glitches could be induced programatically by cheat software (or even by just unplugging your network cable), and used to exploit all kinds of stuff (item duplication, slipping past tough monsters to better hunting grounds, etc...).

    Blizzard's learned a LOT about detecting and combating online cheating from running battle.net and serving up Diablo I & II and Starcraft games online. It's one reason WoW has such a comparatively lower cheating rate. Of course, WoW's much much bigger, so it seems worse, but the hacks are generally detected quickly and dealt with. There's always cheaters of some sort, but generally the effects aren't quite as game-breaking as in Diablo (where EVERYONE had top-of-the-line gear courtesy the people who ran Pindleskin bots 24x7).



  • (I work on a private Ragnarok Online server as a hobby, don't ask...)

    Never EVER trust your clients. I've seen some wierd bugs in the code already. For example, some input checking on item picks where missing. All objects in the game had IDs, and the server did not check if the thing you tried to pickup was an item, so you could pickup everything (as long as it got trough the other pickup checks) which could result in crashes or 'strange' items. Ofcourse you needed to hack a bit for this, but that is never a problem for some people.

    Other funky stuff is "registering a char with a 0 length name". (Length check was only client side) and staying in 'loading new area' for hours. (Effectively hiding you from the game)

     

    Ragnarok online is full of bad concepts. WoW is much greater, learn from the good and the bad concepts in WoW. 



  • The "never trust the client" concept seems seldomly be honored in online games. Which is strange since it seems to be one of the absolute basic rules of distributed software on the net to me.
    I can understand that there always has to be a balance between security and speed, but that doesn't seem to be enough for me to explain certain outbursts of stupidity.
    What I personally find an extremely annoying trend among smaller MMOs is to put about everything on the client and then purchase some completely useless "game guard" software in the hopes they could somehow restrict the behavior of the client with that. Needless to say that those games are the ones with the highest cheat rates.



  • @PSWorx said:

    What I personally find an extremely annoying trend among smaller MMOs is to put about everything on the client and then purchase some completely useless "game guard" software in the hopes they could somehow restrict the behavior of the client with that.
     

    It's probably a combination of marketing ("We use and recommend Punkbuster(R)(C)(tm)(SM)") and fundamental cheapness ("We process everything client-side, so we can run lighter-weight servers, enhancing shareholder value by reducing fixed asset costs").



  • @MarcB said:

    ("We use and recommend Punkbuster(R)(C)(tm)(SM)")

    It takes about an afternoon's worth of effort to defeat that one, FWIW. It reduces the number of morons who download a cheat from edonkey, but has no real effect on the people who actually create them.



  • @asuffield said:

    @MarcB said:

    ("We use and recommend Punkbuster(R)(C)(tm)(SM)")

    It takes about an afternoon's worth of effort to defeat that one, FWIW. It reduces the number of morons who download a cheat from edonkey, but has no real effect on the people who actually create them.

    If they at least did that. From my experience, the new, updated cheats are available on afromentioned edonkey pretty soon again, so even the most lowlife script kiddy will usually be back after a few weeks tops. It basically boils down to the usually "enumerating badness" cat-and-mice game with a very lazy cat.

    The only thing those guards really do well is to install faulty kernel mode drivers and make the host system unstable and vulnerable.



  • In my day, we had TEXT MUDs, with only ONE TRUE WORLD, by God!  Well, by gods, because we had a lot of those and they were annoying.  Anyways, you always ran the risk that some newbie would swoop in after you killed Smaug and nab the loot.  That's what player killin's for!  Kids these days. 


Log in to reply