When you enter into a game's universe, you are temporarily transported out of your current reality.
The gaming industry has successfully commercialized escapism and with the advent of cloud and Edge computing, players can escape into the same world no matter their actual location.
It is no surprise then that, according to Statista, the video gaming industry is expected to reach a revenue of $372 billion in 2023 - around $30 billion more than projected for the data center industry.
But the two sectors are interlinked, with the former heavily reliant on the latter.
Hitting the network
Initially, gaming developments needed only the user's computer or device to be powerful enough to run the current state of the art. In 1989, the 8-bit Game Boy could support a simple game like Tetris; but a more recent arrival, the more complicated Sims 4 (launched in 2014) needed a 64-bit operating system, and a 4-core AMD Ryzen 3 1200 3.1 GHz processor as a bare minimum.
But alongside their increasing local demands, games have gone online, enabling players in different locations to compete or collaborate with one another, in increasingly complex games. This means gaming now has increasing networking, bandwidth, and digital infrastructure requirements, the nuances of which vary on a case-by-case basis.
Riot Games is one of the major game developers in the field. The company is particularly well known for its 2009 multiplayer online battle game League of Legends (LoL), and the 2020 first-person shooter, Valorant.
The company also runs - almost - entirely on Amazon Web Services (AWS).
“Games are composed of a few different workloads, and the compute infrastructure for those tends to meet different requirements as well,” David Press, senior principal engineer at Riot Games, told DCD.
Online games are many-layered. From the website where the game can be downloaded or where players can access additional information, to the platform where Riot collects data about the players and uses that to make data-informed decisions, to the platform service which supports all the around-the-game features.
All of these, for the most part, do not require any different infrastructure than a digitized company in a different sector. The workloads may be different, but as Press explained, they aren’t ‘special.’
Where video games cross over into the unique, is in the game servers themselves which host the simulation.
“If it's a first-person shooter game like Valorant, where you're in a map running around and using your weapons to try to defeat the other team, it’s a very high-frequency simulation,” explained Press.
That high frequency presents a different type of workload. The simulation tends to be very CPU-heavy, and Riot is running thousands or tens of thousands of these matches, all at once and across the globe.
“It's generally a very large homogenous fleet of compute,” Press said. “Then, from a network perspective, it's also a bit different. These machines are sending a lot of very small User Datagram Protocol (UDP) packets.”
The simulation is creating a 3D world for the game player. The server has to generate, in real time, things like the character’s movements and the different plays - in League of Legends, this could be casting a spell that moves through space and hits another player.
That simulation has to run incredibly fast.
“We're running the simulation very quickly, and we need to be able to distinguish between a spell or bullet hitting another player, or missing them, and then we need to broadcast all those changes to all the players that are in that world,” Press said.
“All these little UDP packets carry the information that this person moved here or this person cast this spell, and that is happening maybe 30 times a second or 120 times a second depending on the game.”
UDP packets work in gaming because they run on top of the Internet Protocol to transmit datagrams over the network. Unlike the TCP protocol used in other applications, UDP packets are small and can avoid the overhead of connections, error checks, and retransmission of missing data, meaning that they can move very quickly.
But the speed at which this can transfer - the latency - is also dependent on the digital infrastructure available, and for the cloud to support the gaming industry, it has to come to the Edge.
League of Legends was launched in 2009, and at the time it ran on on-premise infrastructure. But as the number of people playing grew first from the hundreds to the thousands, all the way up to the hundreds of millions, hosting this solely on-premise became impossible.
Not only did the sheer quantity of game players create issues, but the global spread of the game also introduced new challenges. Latency is directly proportional to the distance between the player and the game server, so distributed IT became a requirement to enable a reasonable quality of gameplay.
Moving to the cloud
Riot Games began moving its workloads onto AWS in a slow process - and one that is still ongoing.
“We started that migration workload by workload,” said Press. “Websites were probably the first thing we moved to AWS and then following that, our data workloads moved to AWS pretty early on. And that is being followed by the game platform and the game server. We're still in the process of migrating those.”
The company did this by building an abstraction layer which is, internally, called R-Cluster.
“[R-Cluster] abstracts compute - including networking, load balancers, databases, all the things that game platform game servers need. That abstraction can run on both AWS and our on-prem infrastructure, so our strategy was to first create that layer and migrate League onto that abstraction. It was still mostly running on-prem initially. But then once most of League was migrated to that abstraction, then we could more easily start moving the workloads to AWS and nothing had to change with LoL itself once it was targeting that abstraction.”
That process is being done region by region, and instead of Riot relying on having enterprise data centers in every region, the gameplay is instead on AWS - be it an AWS region, Local Zone, or Outposts which are deployed in Riot’s on-premise data centers.
The decision of which AWS service to use depends on the accessibility in the region, and which service brings reduces latency for the customer. According to Press, Riot aims for latency under 80 milliseconds for League of Legends, and under 35 milliseconds for Valorant.
But according to Press, there is a balance to be found in this. If you were to put a game server in every city, the service risks becoming too segmented.
“If we put a game server location in every big city in the United States, that would actually be too much because it would carve up the player base and you'd have far fewer people to match up against,” said Press. “It’s a balance between better latency, and making the match-making time too long, or matching players with those at different skill levels.”
Dan Carpenter, director of the North American games segment at AWS, agreed: “You want the server itself to be close to all the players but also to work in a network capacity, so people from all over the world, whether it's someone in Korea playing against someone in Dallas, can still have a similar experience within the game itself.
“That's represented from a hardware perspective, where of course you have the game server that is both presented to the end user but also needs to scale very quickly in the back end, especially for big events that occur in games.”
For games like LoL, which fall under ‘esports,’ players can take part in massive multiplayer tournaments, and those games are occurring simultaneously, and the infrastructure needs to be close to every end user.
“You need that hardware close to the end user, but also with high-performance networking, storage, and a variety of other facets within the infrastructure ecosystem that are required to attach to that.”
AWS currently offers 31 cloud regions globally, and 32 Local Zones (smaller cloud regions). When neither of these options provides low enough latency, Riot can then turn to AWS Outposts.
“In certain cases, an Outpost, which is a piece of AWS hardware that we would install in a physical data center, could be used to become closer to customers and enable more computing opportunities at the Edge.”
Outposts put Edge computing, game servers, and storage closer to the customer, which then backhauls to AWS’s global backbone via the big fiber that connects the regions.
It’s not perfect
There will, of course, always be some locations where one simply can’t get quite as low latency. As an example, David Press offered Hawaii. But for the most part, with Edge computing working alongside the cloud, the infrastructure needed for online games like those offered by Riot is solid enough to provide a strong gaming experience.
This of course changes as we explore next-generation gaming technologies, like those using virtual reality, and those entirely streamed via the cloud. But that is for another article.