Slashdot Mirror


Neuro-Reckoning May Reduce MMOG Time Lag

Hugh Pickens writes "Time lag can cause some very strange behavior in massively multiplayer online games when players' actions onscreen become slow and jerky. New techniques are on the way to reduce the problem of lag time in MMOGs when a player's computer can't keep up with changes in a shared online world. Games like Quake use a technique called dead reckoning and while traditional dead-reckoning systems that assume that a game character will maintain the velocity and direction that it has at the moment an update is sent to all other participating computers; dead reckoning works best for movement and shooting and less well for erratic actions such as interacting with objects or with other players. Read the abstract of new technique called 'neuro-reckoning' that may improve the predictive process by installing a neural network in each player's computer to predict fast, jerky actions."

20 of 88 comments (clear)

  1. Sounds feasible by KDR_11k · · Score: 4, Funny

    Since MMOs involve lots of repetitive actions that can easily be automated it shouldn't be too hard to predict what the player will do. OTOH this is kind of an admission that MMOs are so dumb that players are pretty predictable. I guess that's why I'm not playing an MMO currently...

    (cue the Eve spam)

    --
    Justice is the sheep getting arrested while an impartial judge declares the vote void.
    1. Re:Sounds feasible by machinecraig · · Score: 2, Funny

      I can see it now, lag hits - and in the interim you watch astonished as your character kills another rabbit and harvests it's spleen for sale back at town. The next gen of this technology will have your character spamming group channels for heals.

    2. Re:Sounds feasible by brunascle · · Score: 2, Funny

      i can see it now:

      "the neural net has figured out that i'm a gold farmer, so all i have to do is unplug my net connection and it continues smacking down elves even while i'm at work!"

  2. They need a neural network for what exactly? by threaded · · Score: 3, Funny

    ...to predict fast, jerky actions. Sorry, but that has to be the QOTD, made me ROFL.
  3. Neural nets by dk90406 · · Score: 2, Interesting
    Looks interesting, but using Neural nets would require massive amounts of computing power, compared to the more simple dead reckoning. Or at least that was the case when I worked with neural nets 12 years ago - better/faster algorithms might have been made since then.

    But then again, the CPU's are so fast today, that it might not be an issue at all.

    1. Re:Neural nets by etymxris · · Score: 2, Insightful

      According to the abstract anyway, "Our proposed neuro-reckoning framework exhibits low computational resource overhead for real-time use..."

      Twelve years ago I had a Pentium 60Mhz that could barely play MP3s without skipping. CPU architecture improvement and especially multi-core processing would probably leave plenty of room for short scale neural network movement prediction.

  4. So the logical next step is... by icyslush · · Score: 2, Insightful

    ... if the Neural net can predict my next move, just let it make it for me. Send my bot out to farm Karazhan for me while I watch the hockey game. Oh wait...

  5. They already use it! by 140Mandak262Jamuna · · Score: 3, Funny

    To control the automatic weapons firing at aircraft in south africa!

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:They already use it! by Rogerborg · · Score: 2, Funny

      Hahahahaha, nine people died! Rate me +1 Funny!

      --
      If you were blocking sigs, you wouldn't have to read this.
  6. Uh. by Wilson_6500 · · Score: 2, Informative

    OK, so shooting games, where you traditionally need to move as erratically and unpredictably as possible to stay alive and kill effectively, are well predicted by dead reckoning; MMOs, where you generally move directly from one beast to the next waiting for your skills to kick in, are not?

    If I had to guess, the real problem is probably that commercial, hugely-trafficked MMO servers don't want to send as much data to each client as some guy's dedicated server in his basement that's only visited by thirty-two clients at a time. This probably results in the player and server updating each other less frequently.

    Still, since in the MMO there are usually pretty predictable things the player will be going to next (the item on the ground, the nearby mob, the NPC in his path), maybe this will work well after all.

  7. Quake's Lag by garcia · · Score: 2, Interesting

    Would it be akin to Quake's lag or to the later versions of Quake? I never cared for how lag was "felt" following Quake I. QW through Q3 (I haven't played any others) all would make you feel like you weren't lagged at all but then suddenly you would show up dead as you caught up to real time. At least with Quake I you could "feel" the lag and make the proper adjustments.

    1. Re:Quake's Lag by ejito · · Score: 4, Interesting

      That actually has more to do with latency than number of updates. Latency determines how long until you feel an action from that was updated to the server. If everyone has 200ms ping, then someone shoots you, and that shot is updated to the server 100ms later, then you feel the hit 100ms after that, for a total of 200ms. Within that 200ms, you'd have ample time to hide behind a box or the corner of a wall, but the server would still say you were hit (because 200ms ago you weren't behind that box or wall on your enemies computer). This retroactive update is how modern systems work, and it reduces apparent shooting lag.

      Sidenote: This began the misconception that lag time benefited the lagger, or that laggy players lag the whole server, neither of which is true. The quicker your ping time, the faster your shots or actions will register on the server. If a high ping bastard and low ping bastard shoot each other at the same exact moment, the LPB will have his shot register first, and the HPB will die.

      Originally, shots and hits were always done actively at the time it reached the server. So if you had 400ms ping, you'd see your gun shoot 400ms after you fired it. This made lag almost unbearable for most high ping players, because if they shot at you, they'd almost always miss, because by the time their shot registered, you would've moved out of the spot you were standing a split second ago.

      As for the article, it's dealing solely with player movement on MMORPGS, which is determined by the rate of updates (how many packets get sent out per second). Player action updates are always triggered at the time of action (such as casting a spell), however, movement is an ongoing process. Basically your client updates the server around a dozen times a second with position and velocity information, because of your movement. However, it always assumes you'll stick to that velocity (moving forward? dead reckoning predicts you move forward some more) in between updates. If you deviate from your predicted movement along a velocity, you need to send an update to the server. This new method will predict what movement you'll take, rather than always assuming a straight line from your current movement.

      My student ACM account doesn't have subscription to access the article, so I'm not entirely sure, but this is my take on what it does:
      For instance, if you're moving forward, and there's something in front of you, the neural net will attempt to determine that you'll probably move in a different direction, and send that as your predicted velocity. If it turns out you don't move that direction, you'll simply have to send another update. If you do move that direction (which statistically you should), then there will be no need for an update, thereby saving bandwidth. These predictions and updates happen at a rate which makes it seem like your player is moving smoothly, when in reality, there's a bunch of micro deviations and stuttering.

  8. I kinda doubt it by Moraelin · · Score: 2, Interesting

    I kinda doubt that it works that well.

    For starters, let's look at the plain old interpolation. I see it kicking in all the time in MMOs (e.g., WoW), and players seem to run ahead for half a mile until the game gives up and disconnects them. Or spend the next 5 minutes running in place against a fence.

    Let's take just that one simple action: running. How do you know where I'm going to interpolate it right past a second or two. If I arrived at, say, Westfall (to give a low level example that anyone who's ever played WoW will have seen), coming from the north. Will I:

    1. keep running towards the Deadmines?

    2. turn left into Duskwood? (It is right west of Sven and the cemetery, after all.)

    3. turn right and go into the town? And then what? Do I go there to take the gryphon to somewhere else? Or to the inn, so I can set my hearthstone and/or log off in an inn? Go up the tower to talk to the ancestor cow for that event? Or what?

    4. Stop and use the vendors on the east side of the road? (It is a convenient spot to repair my equipment, stock up on arrows and/or do some cooking, after all.)

    Really, it's not even a large town. In fact, it can't even be called a village, since it has no actual houses. It's just an inn, a tower, a lumber mill, and a gryphon master. Even outpost sounds too much for that thing. But the possibilities already branch considerably.

    Now think PvP combat. It tends to be fast and furious, compared to PvE, and there'll be much jumping around and quick reflexes needed.

    How does your client predict when my Warlock or Priest will fire off their fear spell? What if my Priest just shields and bandages himself instead at that moment? If your client guessed wrong, you'll have wasted some slow-recharging skill (e.g., Will Of The Forsaken) for nothing, and get kicked right in the nuts when it wears off. In fact, you'll be worse off if your client guesses "you're feared now" at the wrong spot, than if it didn't interpolate anything whatsoever.

    Or did my druid use a bleed-effect DOT finishing move, _or_ maybe aimed for the lower damage instant-damage one? The answer there determines, for example, if your dwarf should use its stone form or not. If you guessed wrong or too early, I'm going to use the other one. Or maybe I'll shift back to humanoid and kite you to death.

    And that's just scratching the tip of the iceberg.

    Now don't get me wrong, I'm not saying that they're uber-complex ultra-intellectual games. At the bottom of it, there _is_ some repetition involved. At a very over-simplified level, you attack, you defend, you jump around if you're in PvP, and occasionally hit your shield or healing (potion), or whatever you have. But that's only the undetailed big picture. The order and exact details will vary a _lot_. Now maybe not enough to make the game interesting to you, if you weren't interested in the game in the first place. But it might just be too many possibilities to predict right.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:I kinda doubt it by rickwood · · Score: 3, Funny

      If I arrived at, say, Westfall (to give a low level example that anyone who's ever played WoW will have seen)
      For the Horde, you insensitive clod!
  9. I tried letting it predict Slashdot... by Soulshift · · Score: 2, Funny

    The results: "First post!" "Step 1: Teach neural network to farm gold. Step 2: ??? Step 3: Profit!" "In Soviet Russia, you predict the actions of neural networks!" "I for one welcome our neural network overlords" "But does it run Linux?" "Imagine a Beowulf cluster of these!"

    --
    node-def: a tactical hacking sim. Now in open beta.
  10. Re:Could be helpful in other ways by etymxris · · Score: 2, Interesting

    Well it's a short step between what you propose and things like aim-bots. The advantage I see for this type of research is not improving my play, but improving bot play. I haven't played recent games, but in UT2004 the bots can hit you with a hit-scan weapon from across the map (assuming their difficulty is high enough), but they are tactically stupid. But even besides this, there are very short term predictions of human movement that the bots don't pick up on. An opponent that has been hit a few times will try to maneuver his way to a health pack during a strafe battle, and so often I will blindly fire where the health pack is if the opponent is bunny hopping all over. There are also feints you can perform, such as firing a shock ball that can be subsequently exploded for a massive blast. An opponent seeing such a shock ball will often dodge one way or the other, and by forcing their movement, you can use your second shot not to explode the shock ball, but to hit where they will dodge to. Bots utterly fail at these types of strategies. By using neural networks to make their short term strategies more "human", practicing against bots will be a better play experience and better preparation for online play.

  11. Not that kind of intelligence by SerpentMage · · Score: 4, Informative

    The article is not talking about that kind of intelligence. They are talking about split second intelligence. They are talking about being about 500 msec of packets being the main scene...

    --

    "You can't make a race horse of a pig"
    "No," said Samuel, "but you can make very fast pig"
  12. Old news by Nutty_Irishman · · Score: 3, Funny

    Weren't we just reading about the beta test yesterday? Robotic Cannon Loses Control, Kills 9

  13. Re: prediction by Anonymous Coward · · Score: 3, Informative

    if in those 500 ms it guessed that my Priest hit his psychic scream (i.e., fear) spell and he didn't, you're at a disadvantage

    It won't. (Aside: But if it ever does, then it would mean the server decided you should have done it, and it did it for you without your consent.)

    These predictive models are for data compression, where the cost of encoding a given bit is based on the log of the probability of that bit occurring. For example, if it's 50:50, then it costs you 1 bit either way. However, if you can guess with 87.5% certainty that event X will happen, you can get away with transmitting only ~0.2 bits, but if you're wrong it costs you 3 bits. In this example, you only have to transmit 0.875 * ~0.193 + 0.125 * 3 = ~0.544 bits per bit on average (that's >45% reduction in cost).

    If the server knows your enemy's client guessed right (or close enough to it), then it may not need to send the enemy an update for your character at all. But if your behavior over this 1/2 second is radically different from your past play, then it may need to assign your character more bandwidth on the next packet (at the cost of imprecision on something else). Consider the "model is right" payload of "1", vs the "model is wrong" payload of "0; elf31337 moved to 21679.8943, 7843.8934 and executed maneuver 216, for great justice."

  14. Yes and no by Moraelin · · Score: 2, Interesting

    Yes and no.

    First of all, if you talk about something that actively takes control of my character for me, to do all that stuff, you're talking a bot. Which is against the TOS on any MMO, and can get you banned on the spot. I very much doubt that anyone will implement one right in the client, as some next great feature.

    Second, those exist already. See, WoW Glider.

    (Note that I'm not actually advertising using it, and if anyone gets banned using it, I'll cheer for the Blizzard employee that banned them. Just using it as an example that they exist.)

    Third, well, if you want your character to go level himself up without your help, you probably couldn't care less how. So there is no particular reason to want it to find quests, group with people (or other bots) in a meaningful way, and solve clever puzzles (though there are only a couple of quests on WoW which involve any kind of puzzle solving anyway). If it goes and stabs rabbits for 8 hours, who cares.

    Quests and stories are for humans who actually want to be told a story. They don't do jack squat for either the bot, or the kind of human who only cares about XP and levels enough to use a bot. That kind of human will just want his bot to go grind whatever NPCs offer the quickest rewards. A bot that travels between Gadgetzan and Darnassus repeatedly to follow a FedEx quest line for a for a few thousand XP a pop is all around bad bang-per-buck, or rather xp-per-hour. Grinding whatever NPCs are around your own level is much better xp-per-hour. It only makes sense to do those if you're the kind that gets bored of just stabbing rabbits for hours, and bots don't get bored easily anyway.

    So automatizing my character to go pick and hand in quests while I'm AFK sounds... well, I'm sorry if it sounds offensive, but like a poorly thought out idea. If I'm the kind of guy who actually gives a damn about quests and stories, why would I want a bot to go do that for me? It would be a bit like using a robot to watch the next Star Wars for me. Either I still care enough about it to watch it personally, or I might as well not bother at all. At any rate, that's not the kind of bot that people use.

    Fifth, for the kinds of bots actually in use, building a clever neural network just to make an even better bot seems a bit... overkill. On SWG people were making that kind of bots even with the game's own script language, which wasn't even that great a script language in the first place. I'm saying that just to illustrate how little is really needed to have a working bot. You just need a loop and a few ifs, really.

    Sixth, I was under the impression that they're talking about interpolating/predicting what other characters do, rather than being a bot for one's own character. Hence, the answer was about that.

    --
    A polar bear is a cartesian bear after a coordinate transform.