Game Server performance as hardware progresses

Sling_BladeSling_Blade Join Date: 2002-11-01 Member: 3412Members, Reinforced - Shadow
If any of the devs have time to respond, I had a general question about server performance I've been wondering about. I'm a programmer, but not a game programmer, so I'm a bit clueless in this area. Server hardware and internet bandwidth has increased exponentially over the years, but I certainly can't say I've noticed, from a gamer's perspective, any exponential improvement in the number of players a server can handle. Why is this? Or are servers simply doing a lot more behind the scenes that I'm not aware of? Has programming the server side gotten any easier and required less optimization from NS1?

Comments

  • ClonesaClonesa Join Date: 2012-02-05 Member: 143691Members
    edited February 2012
    Bandwitdth has not improved very much at all actually. At least not in North America.

    And while server power has increased dramatically so too has the power demanded by games. 32 players today is not equivalent to 32 players 10 years ago. The server never requires less optimization. Thats kind of a scary way to think of things.
  • MOOtantMOOtant Join Date: 2010-06-25 Member: 72158Members
    <!--quoteo(post=1903253:date=Feb 15 2012, 04:14 AM:name=Sling_Blade)--><div class='quotetop'>QUOTE (Sling_Blade @ Feb 15 2012, 04:14 AM) <a href="index.php?act=findpost&pid=1903253"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->If any of the devs have time to respond, I had a general question about server performance I've been wondering about. I'm a programmer, but not a game programmer, so I'm a bit clueless in this area. Server hardware and internet bandwidth has increased exponentially over the years, but I certainly can't say I've noticed, from a gamer's perspective, any exponential improvement in the number of players a server can handle. Why is this? Or are servers simply doing a lot more behind the scenes that I'm not aware of? Has programming the server side gotten any easier and required less optimization from NS1?<!--QuoteEnd--></div><!--QuoteEEnd-->
    QuakeWorld was measured up to 96 players. Cost of handling N players is O(N^2). N players having N things interacting with others. Best thing you can do is to limit things that affect many players or need expensive checks about who they affect.

    And you also have to code in fast languages and not choose 30x slower one and then try to fix it. You can look at NS2 game code and it doesn't do anything special in comparison with other games that were written in C++, it just uses Lua and is a lot slower.

    Bandwidth got better, you can get 1gbit servers quite cheaply from OVH but latency didn't get better. You can't improve tick rate/network update rate that much because computing what to send is a lot more expensive than actually sending it. You can have 1gbit link but your game code will die at 64 players x 33 ticks/s.
  • matsomatso Master of Patches Join Date: 2002-11-05 Member: 7000Members, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Blue, Squad Five Silver, Squad Five Gold, Reinforced - Shadow, NS2 Community Developer
    As others have pointed out, the O(n^2) cost of adding more players is always going to be a problem. Massive multiplayer games like WoW solves it by not having all the players in one place, so they don't really count.

    In addition, it turns out that in some games, you don't really want to have 127 other players on your team - its not much left of the team-spirit then. If there is just 6 or 8 players on your team, what you do actually matters (granted, to beginning players, not mattering to team success is probably a good thing...).

    NS2 uses quite a bit of extra bandwidth and CPU in order to increase development speed and moddability. A correct tradeoff in my opinion - if the game had been written in C++ ... it would not have been written, period. It would have taken too long to get anywhere before running out of money.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1903393:date=Feb 15 2012, 12:51 PM:name=matso)--><div class='quotetop'>QUOTE (matso @ Feb 15 2012, 12:51 PM) <a href="index.php?act=findpost&pid=1903393"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->NS2 uses quite a bit of extra bandwidth and CPU in order to increase development speed and moddability. A correct tradeoff in my opinion - if the game had been written in C++ ... it would not have been written, period. It would have taken too long to get anywhere before running out of money.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I would contest that. C++ usually demands more development-time\competence due to the lesser amount of abstraction involved, but we're talking about something as trivial game-logic here. I would in fact dare to say it may have taken less time in C++ due the better development-tools, the large amounts of existing code (covering this specific topic) in the world (whereas in Lua this is a rather unique project), and let's not forget the amount of time the engine-coders have already spent trying to get Lua to run proper, and how much work still lies ahead (requiring 4-5GHz servers is NOT normal).

    If a case had to be made for Lua, make it for client-side modding, which isn't reasonable to do with C++ (malicious behaviour demands a sandbox).
  • ClonesaClonesa Join Date: 2012-02-05 Member: 143691Members
    edited February 2012
    <!--quoteo(post=1903403:date=Feb 15 2012, 08:31 AM:name=player)--><div class='quotetop'>QUOTE (player @ Feb 15 2012, 08:31 AM) <a href="index.php?act=findpost&pid=1903403"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I would contest that. C++ usually demands more development-time\competence due to the lesser amount of abstraction involved, but we're talking about something as trivial game-logic here. I would in fact dare to say it may have taken less time in C++ due the better development-tools, the large amounts of existing code (covering this specific topic) in the world (whereas in Lua this is a rather unique project), and let's not forget the amount of time the engine-coders have already spent trying to get Lua to run proper, and how much work still lies ahead (requiring 4-5GHz servers is NOT normal).

    If a case had to be made for Lua, make it for client-side modding, which isn't reasonable to do with C++ (malicious behaviour demands a sandbox).<!--QuoteEnd--></div><!--QuoteEEnd-->
    Definitely this. Should have made for smoother development and better mod support in the end (even if it takes a bit more ability). As for malicious behavior. As long as you don't download shady mods from shady places you'll be fine. Quake 3 had a great system running mod libraries in protected virtuals.

    *edit*
    Oh and BF3 had cracked servers running 255 players.
Sign In or Register to comment.