Advice for Ping

Discussion in 'Monday Night Combat PC Discussion' started by L-Spiro, July 18, 2011.

  1. L-Spiro

    L-Spiro New Member

    Messages:
    424
    Likes Received:
    0
    A lot of people don't fully understand how ping works, so I will start by explaining that.

    The server bounces a packet off the client and times how long it takes to get the reply. Most people do know this.

    But most people are unaware that your CPU speed is a factor towards your ping. It is not just about net speed.
    Games have two types of cycles. Rendering is done on every cycle, as fast as the CPU can handle.
    Logical updates, however, are handled at fixed intervals. Usually around 45 times per second, but it varies.

    If the framerate goes below the logic cycle's speed, the next logical cycle will be delayed. A low framerate definitely does mean a larger gap between logical updates, which is when packet processing will be performed.


    The reason this is related to your ping is because the game has to actually process every packet, which it does on logical updates.
    If the server sends a packet to the client but the client is getting a 20-ish framerate, in the worst-case scenario, the packet will be sitting in the client's packet queue for 50 milliseconds. This means your ping has increased by 50!
    The server is only timing how long until the packet reply is received, and it doesn't care if the delay is caused by the network or by the client's CPU.


    Lowering your graphics settings can get you a better ping.
    Your goal should be to maintain 60 or more frames-per-second. After that you can consider the network responsible for any meaningful ping delay you get.


    L. Spiro
  2. racquemis

    racquemis New Member

    Messages:
    289
    Likes Received:
    0
    You forget about a thing called tickrate
    tickrate is required to sync client and server data. you can imagine what happens without it. if the servers tickrate is lower then the client expects. the client will see it as packet loss.
    MNC's tickrate is 125 ticks per seconds or cycles per second. now you can have a processor that does like 2000 million cycles per second but the network traffic will still be send using those 125 ticks per seconds. Therefore ping is indepedent of processor speed. (if this was not done there would be no way to sync to computers with different processor speeds)

    Tickrate determines the minimum ping possible on a server. If you consider a ping to be a tick-tock. this will get you a minimum ping of (1000/125)*2=16 ms


    Now if you have a onboard NIC, you may notice a decrease in ping on lower settings but this is because a onboard NIC does not have a dedicated processor. it uses the CPU to process the traffic. If you cpu is under high load this can increase ping and limit the bandwidth. but this has nothing to do with the game itself.
  3. L-Spiro

    L-Spiro New Member

    Messages:
    424
    Likes Received:
    0
    What you call a tick rate is what I called a logical update.
    My job is to make game engines and I can assure you I havent forgotten about anything.

    Most games use 45 ticks per second but if you say it is 125 in Monday Night Combat then fine (by the way I do call them ticks when I am actually making game engines; my game-engine update function is Tick()).

    Either way, although it is cited as a fixed number, in fact it is not.
    Lets say I am getting 45 frames-per-second. After finishing rendering the game goes into its next cycle.
    The game engine says, Okay, it has been 22,222 microseconds since our last logical update. Logical updates are at every 8,000 microseconds. That means we need to do 2 full logical updates before rendering.

    Each logical update gets passed a constant time delta of 8,000 microseconds, so that physics etc. can be stable, but in fact the actual updates are not handled at every 8,000 interval. It isnt even possible.

    When the game slows down below the logical update rate, it will simply perform multiple logical updates in a single cycle in order to make up for lost time. If your packet gets into the clients queue just as it is cycling through multiple logical updates, that is the best-case scenario. If it hits the queue just as logical updating has finished, the packet will not be processed until rendering has finished, which in my example is 22.222 milliseconds later, increasing your ping by 22.222 milliseconds.


    Furthermore, you can notice your ping jumping quite a lot, since some packets are handled immediately and some are delayed by over 20 milliseconds. Not only will a higher framerate help you aim better, it will lower your ping and make your connection more stable.


    L. Spiro
  4. NeoCyberman

    NeoCyberman Active Member

    Messages:
    1,017
    Likes Received:
    1
    *Currently rummaging through old computer parts to build better rig than my laptop*
  5. sunnydove

    sunnydove Member

    Messages:
    380
    Likes Received:
    0
    I've got some spare stuff sitting around. If you are interested in a lightly used XFX HD 5770, I'd let go of it cheap ;).
  6. NeoCyberman

    NeoCyberman Active Member

    Messages:
    1,017
    Likes Received:
    1
    We will talk when my check comes in next week and my "Basic setup" rig is built.

    Plan is to build the best rig I can with the parts from the local university and work my way up from there. It will take me a while but I wan't something to go away with that has better performance than this laptop by a significant margin.
  7. BillNyeTheScienceGuy

    BillNyeTheScienceGuy New Member

    Messages:
    86
    Likes Received:
    0
    How about moving closer to the server you're trying to play on. Has anyone tried that yet?
  8. chrisab429

    chrisab429 Member

    Messages:
    10
    Likes Received:
    0
    yeah, I mean 20-50 ms ping differences are problematic and all, but today I had a guy complaining that something was wrong with the server since his ping was over 160ms when normally it's around 60......on a different server.....distance is much more of a factor than CPU speed, and if you're playing this game at 20fps you're either crazy broke, or not even a casual gamer and chances are you're probably not reading through the MNC forums anyway.

    Also internet provider speed (specifically upload speed when hosting), type, and quality have much stronger effects than even shitty CPU speed would. Try playing this game on dish network's internet service, or even the mobile internet thingies that work off the 3g/4g cell towers....you can have the best computer in the world playing on a server that is within walking distance and the game will be unplayable because of ping and jitter alone.

    Oh and If you've got a wireless network setup at your house be sure nobody is uploading to youtube or torrenting while you're playing, that will MURDER your ping.

    I try to stay in servers where my ping is lower than 70ms, though I'm lucky in that the Uber official iad servers generally give me pings in the 30-45ms range which is ideal for more steadily pulling off those nasty evasive sniper techniques. I've noticed most Unreal Engine 3 games have trouble handling latency. I think in the case of the sniper it's because the actual hitscan detection and the bullet animation are not necessarily synced up very well in general, but especially in high ping situations, resulting in shots that hit but look like they missed or in more rare and frustrating occasions bullets that ping off the target's head (sometimes exploding) without any damage.

    I agree with Spiro's statements about lowering settings to get to a steady 60 fps. While I doubt you'd hugely notice the ping fluctuations caused by the framerate fluctuations, the slowed reaction time, crappy aiming, and inability to accurately track movement would result in me (or any good sniper) putting a bullet through your head so fast and consistently you'd insist I was aimbotting. Its really worth downing some setting even if you sometimes almost kinda sorta get a bit of a framerate hit. I have an amd 6870 on a 3.4ghz quad core processor and I down the shadow details a bit because of smoothness issues in scope. Driver updates are important too, this last amd update gained me enough to be able to run fraps at full resolution plus average eye candy, without much framerate loss. Before I had to drop down to 1440x900 on the lowest detail settings.

Share This Page