Game server

From HandWiki
Revision as of 05:40, 27 June 2023 by NBrushPhys (talk | contribs) (update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Game server

A game server (also sometimes referred to as a host) is a server which is the authoritative source of events in a multiplayer video game. The server transmits enough data about its internal state to allow its connected clients to maintain their own accurate version of the game world for display to players. They also receive and process each player's input.

Types

Dedicated server

Dedicated servers simulate game worlds without supporting direct input or output, except that required for their administration. Players must connect to the server with separate client programs in order to see and interact with the game.[1][2]

The foremost advantage of dedicated servers is their suitability for hosting in professional data centers, with all of the reliability and performance benefits that entails. Remote hosting also eliminates the low-latency advantage that would otherwise be held by any player who hosts and connects to a server from the same machine or local network.[1]

Dedicated servers cost money to run, however. Cost is sometimes met by a game's developers (particularly on consoles) and sometimes by clan groups, but in either case, the public is reliant on third parties providing servers to connect to. For this reason, most games which use dedicated servers also provide listen server support.[1] Players of these games will oftentimes host servers for the public and their clans, either by hosting a server instance from their own hardware, or by renting from a game server hosting provider.

Listen server

Listen servers run in the same process as a game client. They otherwise function like dedicated servers, but typically have the disadvantage of having to communicate with remote players over the residential internet connection of the hosting player. Performance is also reduced by the simple fact that the machine running the server is also generating an output image. Furthermore, listen servers grant anyone playing on them directly a large latency advantage over other players and cease to exist when that player leaves the game.[1][3]

However, listen servers have the advantage of being essentially free and not requiring any special infrastructure or forward planning to set up, which makes them common at LAN parties where latency and bandwidth issues are not a concern. They are also common in console games.

Host migration

In a listen server arrangement, "host migration" is a useful feature. Without host migration, if the player that is currently hosting disconnects for any reason (quitting, crashing, lost network connection, etc.), the current server stops functioning and gameplay ends. A host migration feature allows one of the other players to become designated as the new host, so that the game can continue.

Peer-to-Peer

In the client/server model outlined elsewhere in this article, clients receive processed data from the server and display it without much thought. In the alternative "peer-to-peer" model there is no server: each "peer" instead receives the raw input streams of each other player and determines the results itself.[4]

Peer-to-peer is generally considered obsolete for action games, but it is still common in the real-time strategy genre due to its suitability for games with large numbers of tokens and small numbers of players. Instead of constantly transmitting the positions of 1000 troops, the game can make a one-off transmission of the fact that 1000 troops are selected and that the player in command of them just issued a move order.[4]

However, peer-to-peer has many disadvantages:[4]

  • It is very difficult to keep all peers synchronized. Minute differences between peers can escalate over time to game-breaking paradoxes.
  • It is very difficult to support new peers joining part-way through a game.
  • Each peer must communicate with all other peers, limiting the number of connected players.
  • Each peer must wait for every other peer's message before simulating the next "network frame", resulting in all players experiencing the same latency as the player with the worst connection.

Listen-peer

Multiple listen servers collectively peer amongst themselves for listen-peer setting. This type of setting avoids the disadvantages of peer-to-peer communications among all clients and is a better alternative to dedicated servers for increased number of clients.[citation needed]

Tickrate

The rate at which a game server runs simulation steps is commonly referred to as its "tickrate". A "tick" is a number associated with each simulation step which is broadcast to clients to help them synchronise with the server.{9}

There are three reasons to limit the frequency of server simulation steps to a predefined tickrate: to conserve server and client bandwidth, to conserve server CPU time, and to allow clients to be certain of how much time has elapsed between each tick. The last point is important for internet games, as network updates from the server can arrive at different intervals or even an incorrect order.[5]

Customization

Servers, particularly those of PC games, can generally be customized in ways that still allow unaltered clients to connect to them. These customizations can include tweaks to built-in game settings, content that is downloaded by clients when they join the game,[6] and new code which changes the way that the server behaves.[7]

While server customization is popular with server administrators and players, it can be at odds with the desire of developers and other players for the game to be experienced as intended.[8][9] It can also aggravate players by enabling abusive administrators to lie about what their server offers.[10]

See also

References

  1. 1.0 1.1 1.2 1.3 Weilbacher, Michael (March 2012). "Dedicated Servers in Gears of War 3: Scaling to Millions of Players". GDC 2012. GDC Vault. http://www.gdcvault.com/play/1015337/Dedicated-Servers-In-Gears-of. 
  2. Bernier, Yahn (2001). "Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization". Valve. http://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization. 
  3. "Mammoth Dedicated Server Guide | Installation (Computer Programs) | Server (Computing)" (in en). https://www.scribd.com/document/259917634/Mammoth-Dedicated-Server-Guide. 
  4. 4.0 4.1 4.2 Fiedler, Glenn (24 January 2010). "What every programmer needs to know about game networking". http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/. 
  5. "Source Multiplayer Networking". Valve Developer Community. https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking. 
  6. "HTTP Fast Download". Steam Support. Valve. https://support.steampowered.com/kb_article.php?ref=9717-HMAP-7066. 
  7. "Server Plugins". Valve Developer Community. Valve. https://developer.valvesoftware.com/wiki/Server_plugins. 
  8. Bowling, Robert (21 October 2009). "Modern Warfare 2 For PC". http://www.fourzerotwo.com/?p=745. 
  9. Denton, Jon (July 4, 2012). "Battlefield 3: How Fan-Run Servers Are Ruining DICE's Game". Eurogamer. http://www.eurogamer.net/articles/2012-07-04-battlefield-3-how-fan-run-servers-are-ruining-dices-game. 
  10. Walker, Robin (12 March 2009). "And that's what ye git fer toochin that!". Team Fortress 2 Blog. Valve. http://www.teamfortress.com/post.php?id=2338.