Results 1 to 10 of 586

Hybrid View

  1. #1
    Player
    Althea's Avatar
    Join Date
    Aug 2011
    Posts
    81
    Character
    Andisia Sommerset
    World
    Exodus
    Main Class
    Thaumaturge Lv 50
    So I talked to a buddy of mine who is a game developer. Apparently, with MMOs the polling rate between client and server can't necessarily go much faster than 0.3 seconds.

    Modern games with good network code actually use timestamps and even employ some predictional methods to figure out if it was actually possible for you to get out of an AOE. I'll explain:

    Current FFXIV Netcode
    An AOE pops up under your feet. So you run out of it. Your client sends your position to the server a couple times while you're in it, but ultimately you can't get in another positional check in time before the AOE actually hits. This is what's causing people to take damage even though they got out of it. I'll show this with an image.


    Here you can see each positional update (in blue). In this case, the size of the circle is the length of time you have to get out of it (0.7 seconds). Well, if you manage to get in two positional updates, you're going to get hit by it because the 3rd positional check is going to be AFTER the AOE hits.

    So how do you get around this?
    You attach a time stamp to each positional check, so the server can negate latency, and it has much more information for it to make some predictions. You also will need to send some extra events to the server.

    So, for example, if I send a time stamp to the server along with my position twice like in the picture above, then send a special update to the server saying "on my screen I JUST got out of it, and here's the time stamp" the server can check each timestamp and say "okay .. they moved at a speed that is indeed possible (they're not botting or hacking), it was a constant speed, then it looks like everything checks out. You have successfully avoided it! And you take no damage.

    TL;DR
    The client needs to send time stamps with it's position updates so that the client can make predictions on whether or not you actually could have avoided an AOE.
    (23)

  2. #2
    Player
    TheRac25's Avatar
    Join Date
    Apr 2011
    Posts
    415
    Character
    Krell Ynjynor
    World
    Excalibur
    Main Class
    Fisher Lv 50
    Quote Originally Posted by Althea View Post
    Modern games with good network code actually use timestamps and even employ some predictional methods to figure out if it was actually possible for you to get out of an AOE.
    the problem with your "friends" analysis is you get predicted into an aoe that you werent really in, so it turns into the same problem
    client sending timestamps to the server is a recipe for race conditions, there are allready enough
    there are some decent thoughts though, server can timestamp telegraphs so the client can display them accurately and client can slam the server with pos update upon exiting/entering area of effect

    this is all fine if the servers didnt have race conditions and processing lag (~500ms), why do you think there is no /ping command?
    (2)
    Last edited by TheRac25; 10-27-2013 at 12:45 PM.