The Journey Of An Online Gaming Session
This article first appeared on Snapt.
It’s the end of the day, you finally get a chance to sit down in front of the TV, reach for that gaming controller and prepare to unwind over a couple of sessions with fellow gamers from around the globe.
One of the benefits of our online world is that we can easily boot up a game, log in to an online portal and begin a gaming session with people anywhere in the world, in a manner of seconds. As instantaneous as it all seems, there is a whole host of operations going on in the background enabling gamers to enjoy their favorite pastime. The ability to instantly interact with people from across the globe is nothing short of a marvel of engineering.
How Are Online Games Engineered?
To begin with, like any shared network over the internet, online gaming requires a system of devices to be connected in a shared and secure manner. Essentially, when you start to play online, your device becomes part of that bigger network, one that requires many interconnected machines all communicating through hundreds of servers located around the globe. This is dependent upon a network that needs to be able to respond to every single joystick or mouse move and button press in a fraction of a second while keeping track of the many gamers you are playing with at the same time.
Essentially, each server in this vast network facilitates the actions of every participant. As participants shift, play a card, or fire a weapon, “messages” are sent to the server by their machines. After receiving these messages, the server then transmits them to all other client computers almost immediately. Any movements that you make while engaged in the game emerge on other users’ computers. The client computer then reads these messages and translates them into the visuals and sounds that gamers then get to experience.
Inter-Game Communication Explained
There are two main approaches to inter-game communication: centralized and distributed. Commonly, a combination of these approaches is used to suit the structural needs of the game.
In a centralized system, “federal servers” ordinarily host games that permit several users to play simultaneously, as many massively multiplayer online (MMO) games do, such as World of Warcraft. In these scenarios, several central servers are loaded with large amounts of information about the state of the game, which runs nonstop around the clock, allowing the game to continue regardless of who is playing.
In a distributed system, server software allows various gaming machines to take on the role of a host system themselves and to keep track of the various messages from the connected machines. Given how fast many of these games are, such as first-person shooter (FPS) games, and the higher number of responses required for each player, these systems will often include some distributed servers to help manage some of the load, while also providing message authorization, to ensure the connections remain secure.
The result is a flurry of thousands of messages being transmitted back and forth between each machine. If you think about the amount of communication going on during the average online gaming session, it is crazy; even more so, considering the many millions of gamers and devices online at any given time. And yet we have come to take for granted the infrastructure that enables this sort of gaming, without realizing the incredible complexity.
The Importance Of The Right Cloud Infrastructure
Considering the need for instantaneous communication, it is so important for game development companies to have the right cloud infrastructure in place, that can meet the incredible load and demand. This extends from servers located around the globe in many data centers, along with many smaller distributed servers that help relay the messages and reduce the latency experienced by the end-user. All of which need to spin up and scale based on the demand at any given location while also ensuring that these messages remain secure.
This is why these companies need an advanced application delivery controller (ADC) at each node in the system to improve their ability to relay these messages securely, remain operational, and adjust load depending on the need. And with gamers wanting to play with people from across the globe, it requires quite an expansive array of online nodes, which can be difficult to manage.
Snapt’s Solution: The Right Cloud Infrastructure For Games
At Snapt we are trying not only to make the connected world a better place but also to feed our own gaming addictions and improve the gaming experience for all. We have designed our platforms to meet these goals.
Snapt Nova is ideally suited to solve the challenges of delivering online games. Nova deploys lightweight ADC services to every node in these complex networks. It allows you to manage these ADCs from a central location and uses artificial intelligence to respond to the changing usage patterns and security threats so that support teams do not have to.
Is The Future In Cloud Gaming?
"Cloud gaming" refers to a radically different infrastructure for delivering games: instead of running the game and rendering the output locally on a PC or game console, with multiplayer messaging exchanged over centralized or decentralized hosts, the game is run and rendered in a centralized data center, with players' control inputs sent to the data center, and the resulting video outputs streamed to the players on their local devices.
Cloud gaming is currently threatening to disrupt the video game industry because it has the potential to provide access to large game libraries without the inconvenience and cost of owning a gaming PC or console. While it might seem like a foregone conclusion that streaming games will eventually dominate in the same way that streaming video from services such as Netflix, Amazon, and Showmax dominates the entertainment world, streaming games remains a very complex challenge.
The Challenges Of Streaming Games From The Cloud
All that’s required to stream video to your machine is the capability to send a series of data packets that break down audio and video data to whatever device you are streaming on. These packets are then re-assembled into something that you can watch. A faster internet connection will certainly help to get those packets to your device more quickly or allow you to stream larger quantities of packets that will enhance your resolution, but outside of that, the process is relatively simple.
For gaming, however, the problem is considerably more complex. Video games require player input, which means that the player's device is sending data packets for every control input as well as receiving data packets for the audio/video stream. These inputs need to be received and processed quickly by the game server before it can render the next frame of the video output and stream that back to the player. Input will only feel responsive if there is a very short delay between pressing a button and seeing the resulting action on screen. This brings us to the challenge of latency.
Networking protocols are usually good at prioritizing low latency or high data integrity (with few lost packets). Cloud gaming requires both; finding the best way to balance responsive controls with high-quality video streaming remains the biggest challenge in making cloud gaming successful. The most common complaints about cloud gaming are unresponsive control, caused by prioritizing visuals at the expense of latency; or corrupted visuals caused by prioritizing latency at the expense of integrity.
Can Cloud Gaming Overcome These Challenges?
Considering these enormous complexities, it is perhaps not surprising that many gamers still love their superfast consoles and gaming PCs, which already provide low latency and high-quality visuals. The few cloud gaming services that do exist — most notably Google’s Stadia, Microsoft's xCloud, and Nvidia's GeForce Now — have struggled to establish their relevance. Latency remains a big issue, but these services have also struggled to provide an attractive pricing model and a compelling catalog of games. In these circumstances, can cloud gaming disrupt the gaming market the same way streaming has disrupted the entertainment world?
Well, the answer is that it eventually will. It is just a matter of time. To reduce latency to acceptable levels, cloud gaming providers must reduce the distance between players and the servers and nodes hosting the games. This means deploying high-performance game servers in a highly distributed global infrastructure. This process will take years, but the advantages to gamers in cost and convenience mean there is a considerable commercial opportunity in being the first to overcome these challenges and capture this market.
Snapt’s Future In Cloud Gaming
Critical to the viability of cloud gaming infrastructure are acceleration and load balancing, such as Snapt offers in the Nova ADC platform. This is especially true for managing high volumes of data, configurations, and load at scale across thousands of nodes around the globe, which will be required to make the technology a reality.
That being said, while our software is pretty awesome, you perhaps shouldn’t throw away your expensive gaming machines just yet. However, when the cloud companies do eventually get enough gaming servers located around the world, and they need a way of making everything work together seamlessly, expect us to be in the mix: making cloud gaming a reality, so that you can play any game, anywhere, regardless of its performance capabilities. You’re welcome.