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

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

  5. 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"
  6. Old news by Nutty_Irishman · · Score: 3, Funny

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

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