Freedom from downtime and latency with our dedicated bare metal servers.
Handle heavy real-time workloads with unparalleled speed and performance.
Bare metal performance with the flexibility of the cloud.
Effective server-side and tech-agnostic cheat detection.
Scaling game instances with automated global orchestration.
Low-latency game server management for a flawless experience.
Custom tools to detect, intercept, and deflect impending attacks.
Transfer data on a global scale fast, private, and secure.
Reach eyeball networks through meaningful peering relationships.
Go global with our custom and secure privately-owned data center.
In a nutshell: This article looks at the critical role of servers in the digital realm, emphasizing the importance of scaling out for multiplayer games, and the factors to consider when making this decision. We look closely at the concept of scale-out — through the use of a fleet of small machines tailored to specific use cases, cautioning against relying solely on traditional metrics such as clock speeds when selecting the CPU for the servers of your video games.
One cannot overstate the importance of a server in the digital world we live in today. It is a means of interaction online, a way to connect the Internet to any laptop, phone or home automation device. In simple terms, it is a computer or system that provides resources, data and/or programs to other computers over a network.
This essentially means that a server can be qualified as an ‘online scale-out’ machine that needs to answer a specific problem. Whether this entails playing a video game with your friends online or streaming a YouTube video — a server somewhere is being utilized to deliver the content you need.
Naturally, this means that resources can vary greatly depending on what the use case is. For game developers and publishers, the ‘resource question’ is very important, considering it will both determine your overhead and your profitability (the better your game runs, the more likely players are to continue wanting to play it). It is important then to first frame your usage and understand what you will need accordingly.
For multiplayer games, you generally want to scale out instead of scaling up. This is because you potentially have hundreds of thousands of players online and using your service (and by extension, the infrastructure) at the same time. You cannot scale up a machine to accommodate all users, which is why you would need to have a fleet of machines to make sure all users can connect to and play the game without issues.
Another important factor to consider is that the application (or game in this case) must also be stateless. This means that the server will not retain, or store data or other client information related to the session — the session data is stored on the client and only passed on to the server as needed.
The application must also be able to scale up and down easily to accommodate the changing concurrent userbase numbers. The containerization technology can of course help with this. With containerization, workloads can be distributed by scaling out to other servers, which is why a powerful CPU is not necessary. In that case, the CPU (power) doesn’t matter that much.
A scaling-out workload can usually just be extended over additional machines or more resources if needed. A better-performing CPU — in terms of clock speeds and compute power — will naturally mean that you will need to deploy fewer resources when looking to accommodate an additional number of users.
As a game developer, you might think that this means that getting a high-performance CPU with higher clock speeds may be your go-to solution, but it is important to remember that if you go down this route, you will be paying more for unused capacity when you do not need to scale out. Basically, the server will then be twice the cost but would be running at half capacity.
The ideal way to keep costs low and also have resources available for your entire player base would be to scale with a fleet of small machines, instead of renting top-dollar CPUs that might only be deployed at 50% utilization or less. The increment of scale in multiplayer games is lower—you might only need a little more compute power to run additional match instances for example, and adding large CPU builds to scale out would essentially just be wasted money and resources.
Instead of spawning ten big machines, you can utilize a fleet of a hundred servers, but then you use 80 or 90, or even fewer, as needed. Thus, you can optimize the number of machines to be close to the number of users that are online and playing the game at any given time.
What determines the difference between a high-performance or low-performance CPU in a server fleet? An untrained observer might point to clock speeds to indicate the power (or lack thereof) of a CPU chip. They would not be entirely wrong, but just using the clock speeds to determine performance will not always give you the results you expect. Not all clock speeds are created equal, which is why it would not be sensible to select a server based on clock speeds alone.
The difference between CPU chips is often incremental. Having a preconceived idea of the ‘right’ clock speeds or even generation of CPU might not give you the results you expect if you do not have detailed metrics or benchmark figures as to why you want a particular CPU in your server. Utilizing commonly accepted ‘rules’ such as looking for a 3GHz server without doing your homework might not be the best solution for your use case.
A newer model of CPU with more instructions per clock (IPC) but the same clock speeds as an older CPU will still perform better, regardless of whether their listed speeds are the same. Improved IPC through newer generations with lower clock speeds can give you the same performance as an older machine with the same clock speeds. Better IPC essentially means that your CPU can handle workload faster.
Tip: Get the most out of bare metal servers
A key benefit of using bare metal is that you can customize the BIOS setting to get even more performance out of the box by tuning, for example, power performance mode and disabling C-state on the CPU.
But then, if clock speeds are not the benchmark one wants to consider when selecting the right server for my multiplayer game, should IPC take greater precedence? Would a newer device just be better because it can do more things at the same time? Not quite.
The use case is the foremost consideration when selecting a server or fleet type, and whether to go with an old or new CPU can be determined by the number of players you expect to be in each game session. This is easier to figure out depending on the game type you have built. A large battle royale shooter that has 100 players per match instance would need a faster CPU because it would be handling more tasks simultaneously.
In simple terms, there will be more players carrying out actions in each session, such as shooting, running, looting, etc. and each server running a match instance would need to be able to handle all actions of players simultaneously to ensure the users experience the same thing at the same time.
You have to rely on single-core computation in order to update all the players at the same time. So, if you need to update all 100 players every ten milliseconds in your battle royale shooter, you need to compute everything under 10 milliseconds, making high IPC CPUs a necessity.
Online games that are not as competitive, or those that do not require constant updates of information, such as a racing game or a single-player story with cooperative elements can conversely use older CPUs with a lower IPC number.
Servers are naturally a critical component of the digital realm. But when setting up an infrastructure strategy for a multiplayer game, it is important to consider factors beyond just CPU clock speeds and other traditional metrics. Often the type of game you have built, its multiplayer configuration and a lot of other factors can go into making the final call on setting up your bare metal fleet that is both cost–optimized and performs well enough for your players to continue playing your game.
Increasing compute resources becomes necessary whenever a product or service sees growth in the market. The best way to do this can vary depending on several factors. This article looks at factors to consider when choosing the CPU type best suited to your use case.
Subscribe to our Newsletter and stay up to date with the latest from i3D.net