Results 1 to 3 of 3

Thread: MMORPG movement lag

  1. #1

    MMORPG movement lag

    Hi all, first of all I'm not sure if this is the best section to create a topic like this in, but I think it is also network-related.

    So my problem description:
    I and a few of my friends are writing an MMORPG server (actually an emulator) and we've ran into a problem and that is - as the topic suggests - laggy movement. Even with 3ms latency. The type of movement observed from the client made us believe that the client itself has no built-in dead-reckoning algorithm and in the original design (probably) the server carries this burden. After receiving a movement packet, it's resent to all other players in the visible range, who see the player. From the client's view the moving objects starts running, runs for an about 1 second and then stops (with the running animation) until another packet is sent from the moving player to be dispatched. This creates a very jerky movement. I wanted to ask if you can tell what can I do/implement on the server-side to remove these lags, if you had any experiences with a problem such as this or have any ideas how to solve this. The main problem with implementing it is that I have only 3 things - starting coordinates, ending coordinates and current velocity, nothing else.
    All suggestions are welcome.

  2. #2

    MMORPG movement lag

    Don't know the game style, but I suspect point & click.

    I'm not sure what the effect of this suggestion will be, but since you know your own code best, you'll know what it does..

    You told me you know 3 things.
    Starting position.
    Ending position.
    Velocity.

    Let's rule out the ending position and replace it with a direction.
    Then you have
    Starting position.
    velocity.
    Direction.

    You can let the client calculate the movement until it recieves a new packet. This makes the movement smooth, but if the lag remains, the character can suddenly jump to a new set of coordinates when it changes direction.

    Packets a client can send to the server are simply the new commands:
    Stop (velocity=0), moving.

    Recieving packets should be done in a seperate thread, not in the main thread, this tends to remove lots of lag.

    I hope I understood the problem and supplied you with a good solution.
    Huhuhu

  3. #3

    MMORPG movement lag

    hi smotsholle,
    well you did not entirely understand the problem....we're making an emulator, we don't have the client's sources so the only thing we can change is the server-side(aka our code )...we've tried to implement bezier curves and though the curves are calculated ok in the test app we've made, in the game it looks weird...also using bezier curves is quite a punch for the network traffic since sending 5-6 movement packets per second per moving object is quite a lot....the method you've described would work (will try testing it out), but as you said big lags will cause players teleporting around....

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •