Results 1 to 9 of 9

Thread: Server tweaks -

  1. #1
    Forums Administrator diamondgamers.net

    Join Date
    Sep 2013
    Location
    PA
    Posts
    26

    Server tweaks -

    Diamonds,

    We've made a few changes and tweaks in the server settings. Don't be alarmed! After playtesting, my FPS increased by at least 10! Network performance seems a bit smoother, too.

    When you first log in, you will see a message letting you know the network settings have been changed - no worries, just click "join!" and enjoy your performance boost!

    If you notice any bugs, degraded performance, or have any other gripes/questions/comments, please let me know

  2. #2
    Diamond Member diamondgamers.net

    Join Date
    Jul 2014
    Location
    Kentucky
    Posts
    32
    my FPS increased by at least 10!
    I hope my FPS doubles, too!

  3. #3
    Administrator diamondgamers.net Rusty's Avatar

    Join Date
    Aug 2013
    Posts
    470
    Quote Originally Posted by carnes View Post
    I hope my FPS doubles, too!
    nice one.. <troll face>

  4. #4
    Administrator diamondgamers.net Rusty's Avatar

    Join Date
    Aug 2013
    Posts
    470
    Ok, so after many people complaining, and although the complaints never lined up nor showed any server side issues, what I've done is taken some of the workload off of your systems and transferred more strain to the server. This will help those with less powerful systems.
    I've also increased the tickrate of the server to 50 with 92% CPU power remaining ( did I mention it's expensive. This is why I push VIP. ) and thank you to those that are VIP already. We love you !!!!! <3 <3 <3

    Here's how the networking works in NS2. And I'm not talking ping. It's really complex and not just a simple editing of tickrate. It's mathematics - and I hate math. blah!

    Ok, so to make the game feel more responsive, we want to have data sent in short time frames from the server to the client machines and vice versa.
    This is done using Snapshots. 20 to be precise ( as that's what I have set ) - sent to every client connected at the exact same time at the intervals I also set behind the scenes. ( Did I mention I hated math? )

    When your client receives each set of snapshots, your GPU takes that data and builds what you see on your screen.
    Now not knowing what snapshots come next, it takes your user input ( keyboard, mouse movements ) and creates it's own snapshot - and sends that data back to the server. The server then calculates the world update based on ALL user inputs. It then calculates and sends that data out to everyone in the form of another 20 snapshots. But there's a delay. Those snapshots take time, right? So what happens? They Guess? WHA?

    The reality is that the clients are really bad guessers. So my job as a server admin is to make the changes that make that guessing as less as possible. And of course adding on top of that is ping, and network packages getting lost in the interwebs between Our server and Your computer. ( the data hits on average 15 servers between the gameserver and your home computer. Your ISP is just one. They themselves have their own ISP, and so on and so forth and it gets complicated from there.

    So getting back to NS2. What I do is tweak specific settings to help buffer snapshots in advance. This is hard to explain, but it literally is making you go back in time to replay the corrections made by the server as it receives all the client input. The buffer in between ( interpolation ) corrects itself if there's time before it sends the data - so you're literally playing using information that hasn't been computed yet on your own system. ( crazy eh ? ) But to do this means I need to tell the server to send out the same amount of snapshots in less time, but yet still have the client render the ns2 source based on old data and get it back as quick as we can. ( This is what makes hitbox positioning correct, etc. ).

    What you see as a gamer on the screen - even with a 0 ping is still 100ms behind the server. so by the time client data gets back to the server, it's really old. like zOMG! And if a client is late in sending their data - The server says - wtf did that user do? And that results in the NS2 code flaking out as it's confused which results in teleporting skulks, ammo displays going wonky, etc. And you'll be like - zOMG I'm lagging, and it's like no. you're fine. It's people on Comcast network that are behind. Or whatever. Variables !! AAAAH!!!

    Ok, so now assuming that I've done the math right based on our server's detailed specifics, and assuming that I've got everything tweaked out as best I can - we have a solidly configured server which if you have a good connection, will be able to stay synced.
    Buuut! what about FPS!!!!!

    So with this comes your graphics card. Now your graphics card has some excellent features and NS2 has some options. things like Vertical Sync.
    Most monitors now are LCD/LED. This means that everytime you move your mouse, those small lights change color, dim, brighten etc. And this takes time. This is where response times in monitors come in. But the reality is - unless you have an old CRT monitor. you'll probably get "screen tearing" where it looks jittery when you move your mouse.

    Ok so what the heck does Vsync mean and how can I use it to fix my jittery screen?

    When your video card sends NS2 data to your screen - but your video card is not in sync with what's ON your screen - it causes a mishmash of feeds. Your video card thinks something else is on your screen than actually is. aka a Tear.
    So - to fix this, we need to make two equal frame rates in fixed positions ( or three ) - aka double / triple buffering.

    Vertical Sync orders ( demands ) the video card to rapidly copy the off-screen graphics area into the active display. aka - don't Assume what's there is there. Send it again!!!! Still wonky - Triple it! ( the more date that gets resent, the lower () or higher () your FPS based on the card type and power, brand, chipset, etc.

    Our server typically will give you higher FPS, and a more consistent gameplay ( meaning you won't hear people say - I hit that skulk WTF! - - ok ok people will still make excuses for being killed - ( guilty one here! ) But the important thing to know is that more often than not - it's an engine issue ( it's confused and things go out of whack ) or a client issue ( old systems cannot keep up - thus snapshots are not as good as they can be )
    ( ( this is why people have HPK's - or high ping kickers. ) )

    So in saying that - What if the server is having issues - or choking on data?
    Our Xeon CPU's cost $2,860 each. - each CPU uses 130 watts of power alone.
    We have TWO in our NS2 server - 24 cores total.

    So because of this madhouse power, I've been able to bump our tickrate up to 50 ( any higher than 60 and the engine can't keep up )
    With that, I've decreased the amount of time between snapshots, and increased the bandwidth to each client to allow for more snapshots to be sent. I've also changes the interpolation rate and reduced the amount of time between snapshots taken and compiled - and evidently put a lot of strain on the server to ensure you and me, and everyone can have some good games with as best accuracy as possible.

    Now in saying this, It's possible to overstrain the server. But you can help me monitor this.
    Open your console in game and type net_stats This will show you a whole bunch of data.
    The second line shows Idle. If that number gets below 5% then tell me. It's not a big deal but it lets me know to review logs and tweak a bit more.
    The other thing you need to look at is Choke. Choking is the same thing as packet loss. So if there's too much data coming in or going out at once, it'll show up there. This information in real time on your screen can help me fix any issues shall they creep up.

    So - I spent 6 hours today cleaning up the NS2 servers, and I've got another investment I'm doing on a new NS2 Combat server.
    If you have any questions, please reply to this thread and I'll try to explain it as best I can.
    Also Please Please PLEASE don't change NS2+ settings if you don't know what they are. You can affect gameplay in ways you don't understand. If you have questions - please ask. If I can't answer them, I'll find you the answer.

    And if you don't have VIP, I'd love for you to get it so I can make sure our NS2 Combat server is el primo.

    Love ya!

    ~Rusty

    Anyways - that's about it

  5. #5
    Junior Diamond diamondgamers.net

    Join Date
    Aug 2014
    Posts
    23
    Holy fucking crap Rusty, thank you so much. I had no idea you were running such a powerhouse! Like for real that's insane.

    This is why I do VIP right here; you are a god among admins.

    Did I mention that I really love math though? Great post.

  6. #6
    Junior Diamond

    Join Date
    Sep 2013
    Posts
    5
    Hey I want to donate to help with the new server's setup costs, but I'm already VIP. I can't find a regular "donate" button anywhere. Lil help?

  7. #7
    Administrator diamondgamers.net Rusty's Avatar

    Join Date
    Aug 2013
    Posts
    470
    Hi Pete.

    You can send a donation as friends and family to rusty@diamondgamers.net directly from Paypal.
    Thank you so much Pete. It's much appreciated!

  8. #8
    So with this comes your graphics card. Now your graphics card has some excellent features and NS2 has some options. things like Vertical Sync.

    How to enable your nvidia Vertical Sync:

    http://www.geforce.com/sites/default...ntrolpanel.jpg

  9. #9
    Junior Diamond

    Join Date
    Sep 2015
    Posts
    1
    why on earth would you enable vsync for ns?! Turn it off and leave it off!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright 2018 DiamondGamers.net
vBulletin Mods by vBSocial.com Powered by vBulletin® Version 4.2.5
Copyright © 2018 vBulletin Solutions Inc. All rights reserved.