Servers

Note: The content on this page pertains to Game Server Hosting (Multiplay) available on the Unity Cloud Dashboard. If you’re using Game Server Hosting (Clanforge), refer to the Game Server Hosting (Clanforge) documentation.

A server is an instance of a build executable process running on a machine within a fleet region. More than one server instance can run per machine, and the number of servers that can run per machine is called the server density. Each server runs in a server slot, which is a slice of machine resources (including the CPU and RAM) that’s loosely reserved for an individual server instance based on the server-density.

Each server has the following information displayed on the Unity Cloud Dashboard:

  • Server ID: The unique ID of the server.
  • Machine ID: The unique ID of the machine the server is running on.
  • IP:Port: The IP address and port of the server; the IP address is the IP address of the machine the server is running on and the port is the port at which the specific server is accessible.
  • Location: The region in which the server is located.
  • Fleet: The fleet the server is running on.
  • Active build configuration: The build configuration that the server is currently running. The build configuration tells the server which build to run.
  • Status: The status of the server indicates the current stage of the server lifecycle.
  • Allocated: The allocation status indicates the current stage of the allocation lifecycle.

Explore the following sections to learn more about game servers and how they relate to the rest of the Game Server Hosting ecosystem.

Server lifecycles

Game servers have two distinct lifecycles: the server lifecycle and the allocation lifecycle.

  • The server lifecycle is the lifecycle of the build executable as a process running on a machine with protected resources. It has three stages: create, start, and stop.
  • The allocation lifecycle is the lifecycle of a server's allocation status. It has three stages: available, allocate, and deallocate.

Server density and slots

Server density refers to the number of server slots that can fit per machine in a fleet. It’s calculated using the machine resources (CPU and RAM) and the fleet usage settings.

Server slots are logical segments of machine resources (CPU and RAM) loosely reserved for instances of a build executable process. Game Server Hosting uses the server density to calculate the number of server slots during the machine provisioning process. The exact resources allocated per server slot depend on the usage settings you define in the fleet. By default, Game Server Hosting allows build executable processes to exceed the allocated resources of its server slot by a small margin of tolerance. If the process exceeds this margin of tolerance consistently, Game Server Hosting considers the server as misbehaving.

Server readiness

Game server readiness refers to whether a build executable process is ready to fulfill an allocation request. The ability to manage server readiness is a feature that enables game servers to let Game Server Hosting know, and by extension, the matchmaker or service that controls player connections, when they're prepared to accept players and when they're no longer ready to accept players through the Game Server SDK.

Server events, failures, and signals

Game servers meet many events throughout their lifecycles, including unusual and unexpected events, such as misbehavior and crashes and normal events that occur as part of the server and allocation lifecycles. Game Server Hosting handles unexpected events, such as failures and exceeding resource allowances, with server signals.

Server logs, files and analytics

Server files include application-level logging information from your build executable. You can specify where servers save these files through a launch parameter, configuration variable, or both. Game Server Hosting surfaces files through the Unity Cloud Dashboard.

Server analytics include information gathered from the implemented server query protocol (if one exists).