Well-Architected in Gaming: The Right Infrastructure to Scale Up
In recent years, we’ve seen incredible changes in gaming as the industry has re-invented itself by driving mobile and cloud functionality, launching new hardware and consoles and streaming to a wider audience. Developers must be quick to adapt to these changes while maintaining laser-like focus on making their games fun – a significant challenge if they also have to wrangle with the infrastructure needed to launch, operate and scale their games.
In the old days (read: less than a decade ago), players would buy a game and complete it in days, weeks or months. Once they were done, the only option was to repeat it or buy the sequel. That’s no longer the only way.
The industry is shifting to a games-as-a-service model. Blockbusters like Fortnite are leading the charge, hosting special events such as the world’s largest concert, which featured Travis Scott performing for 27 million concurrent players on the platform. The surge in players using Fortnite and other cutting-edge games was only possible thanks to cooperation among developers and the companies that partner with them.
The advent of the software-as-a-service model has expanded the use of cloud and led to a dramatic shift in gamers’ habits as more players get used to playing anytime and anywhere. It's clear to see this shift is about connected experiences. There are multiple services designed around the long-term engagement that can become a part of players’ lives. Connected experiences are expected now and that’s what is driving the success of games like Fortnite.
These new multiplayer games are trickier than crafting the old-school single-player games. Online multiplayer games require a myriad of different services to reward and engage users, including account management, security, social networking, matchmaking, game analytics and version management. All those services require the right server approach -- the other critical component to consider in the new world of gaming.
The New Way to Game
Most new games today have a very similar flow:
1. Step one: A gamer starts by logging into their profile and selecting their skill level, location and/or other attributes that may be used to customize the player experience.
2. Step two: Players look to find friends to play with by using the matchmaking service.
3. Step three: The players grouped into a match get assigned to a game server.
4. Step four: As the game drives interaction, the developer seeks to capture data in real time and use analytics to improve the game.
5. Step five: The game server captures and processes all of the inputs from each player in a consistent and timely manner, in order to provide a seamless experience.
Services Power a Seamless User Experience
Services are generally built in-house or utilize third-party capabilities. User account management, for example, allows users to register and manage accounts, including authentication and authorization, as well as link third-party accounts, like Facebook or Twitter. You want your game to enhance social interactions between users by supporting “like” management, instant messaging, notifications, game parties and user online status. Leaderboards are a key part of the social experience because showing your players how they rank against others encourages competition and engagement. Account management must be secure, of course, in order to drive revenue.
Matchmaking is based on microservices, which need to communicate with each other. Developers must create custom service rules, which can be specific to their game while the other infrastructure and scaling is done independently. In other words, the front-end API that talks to the players scales independently of the back-end API that talks to the game servers. Everything can be adjusted to accommodate the load, which can vary significantly from one moment to the next.
When designing any new services feature or API, we have to keep in mind that it might be hit more than 10 million times per minute. The scale and the vectors can be combined in any order depending on the nature of the application, and the design system should meet the following goals:
- Availability, which is essential to allow a high number of players to connect to the game simultaneously.
- Resilience, using tools such as feature switches, throttling, rate limits and performance tests.
- Future readiness, via proper monitoring that allows you to predict or detect issues, so you can mitigate and/or fix them in future designs.
Analytics and game telemetry measure key metrics and display them in a dashboard, enabling game developers to understand player behavior and make business decisions based on data. You need to have your game services ready by combining the capabilities of game telemetry and analytics with a rapid integration from your server-side game configuration. Bringing in near real-time analytics can be a gamechanger in orchestrating different types of events, like concerts or promos.
Rightsizing Your Server Approach
Game servers are authoritative sources of events, so that game developers can visualize an accurate representation of what players will be shown. We need to understand what each game server does and be clear about what each game client function is and how they all interact with each other. Player experience grows from their expectations. Developers hype their new releases, but after launch they must deal with a whole bunch of unknowns. If capacity planning is incorrect, you can run out of servers. If regional splits are wrong, you have too many unused servers in the region and waste resources. Are your servers resilient enough? Do they perform in every way you need them to? And how much effort is required from your internal teams to maintain them? You must understand game server specifics to properly manage your fleet.
The Future of Gaming Is Here
Cloud gaming connects players across the globe, and we are seeing automatic translation and accessible hardware and software strive for inclusion. With cross-platform engines, cross-network services and game streaming, the industry is on a path to bring games to any screen, any time. It's an exciting time to work in gaming, as the barriers that prevent people from playing together come down, opening up unparalleled opportunities for developers with the right approach.