Mathieu Duperré, CEO and Founder of Edgegap
It’s common for video game developers to launch a day-one patch for new releases after their games have gone gold. The growing size of video games means it’s inevitable that some bugs will be missed during the QA period and go unnoticed until the game is in players’ hands.
Some of the most common issues experienced by game developers at launch are related to network and infrastructure, such as the connection issues causing chaos in Overwatch 2 and Call of Duty: Modern Warfare 2, as some players experience issues connecting to matches. And while there’s no way of eliminating lag, latency and disconnects from multiplayer games, developers can minimize the chances of them occurring and the disruption they cause by following a few simple steps.
Plan for the worst, expect the best
For many video game developers, the best-case scenario for the launch of their game – that it’s a huge hit and far more people end up playing it than they expected – can also be the worst-case scenario for infrastructure-related issues. An influx of too many players can lead to severe bottlenecking, resulting in lag and connectivity issues. In a worst-case scenario, servers become overloaded and stop responding to requests, usually leaving players unable to connect to online matchmaking.
Another worst-case scenario is planning for big numbers at launch and building the necessary infrastructure to support this, only for your game to launch and have nowhere near the traffic you were expecting. Not only is this a big problem for your bottom line, but things can get worse if you rush your search for an infrastructure provider and forget to read through the T&Cs properly.
Some infrastructure suppliers will onboard new studios on a fixed contract, not letting them scale back if they’ve overprovisioned their servers. Some infrastructure providers offer a lot of free credits, to begin with, only for those credits to expire after the first few months. Game studios then discover they’re responsible for fronting the cost of network traffic, load balancers, clusters, API calls, and many more products they had yet to consider.
With that in mind, try not to sign up for long-term agreements that don’t offer flexibility for scaling up or down. Your server setup has a lot to gain by being flexible, and your server requirements will likely change in the weeks following launch as you get a better idea of your player base; under-utilized servers are a waste of money and resources.
Test, test, and test again
You haven’t tested your online matchmaking properly if you’ve tested your servers under the strain of 1000 players, but you’re expecting 10,000 or 100,000 at launch. Your load tests are an essential part of planning for the worst-case scenario, and you should test your network under the same strain as if you suddenly experienced a burst in players.
Load testing is important because you’ll inevitably encounter infrastructure issues as your network comes under strain. Still, it’s only by facing those issues that you can identify them and plan for them accordingly once your game launches.
Similarly, you want to test your game in as many different locations as possible because there’s no way of telling where your traffic will be coming from. We’ve had cases where studios released a very popular game overnight in Chile but needed data centers. Thankfully, you can mitigate issues such as these by leveraging edge computing providers to reduce the distance between your players and the point of connection.
Consider the specific infrastructure needs of your game’s genre
Casual games with an optional multiplayer component will have a completely different network requirement to MMORPGs, with thousands of players connected to a centralized world. Similarly, a first-person-shooter with 64-player matchmaking will have a different network requirement than a side-scrolling beat ’em up or fighting game, which often requires custom netcodes due to the fast-paced nature of the combat.
People outside the video game industry assume all video games have similar payloads, but different game genres are as technically different in terms of infrastructure requirements as specific applications.
With that in mind, it’s essential for game studios, especially smaller ones, to regularly communicate with infrastructure partners and ensure they’ve got a thorough understanding of how the multiplayer components of your game will work. A decent infrastructure provider will be able to work with you to not only ensure load testing is carried out correctly but also help diagnose any broader issues.
Too many tools and not enough resources to use them
One thing that large network providers are very good at providing is tools, but these are often complex and require specific knowledge and understanding. It’s worth noting that large game studios have dedicated teams of engineers to manage these tools for AAA games with millions of players.
Smaller studios need to be realistic about the number of players they expect for new game releases and their internal resources to manage network and infrastructure-related issues and queries. You should partner with a provider that can handle all of this, so your studio can focus on making the best game possible. The more automation you can plan into your DevOps methodology, the better!
Takeaways for small game studios
While game studios likely encounter many issues as part of their game development journey, working these three pieces of advice into your DevOps pipeline is a sure way of minimizing infrastructure-related headaches.
Don’t reinvent the wheel – We’ve seen many studios trying to build bespoke systems rather than automate and use what’s already out there. If you can develop your netcode, engine and manage your Kubernetes, that’s great! But is it necessary, or is building these things from scratch just going to create trouble further down the line?
Understand your workflows – Plan for everything, use tech-agnostic vendors to remain flexible, get real-time visibility and logs for your matchmaking traffic, and have a 24/7 support plan for when your game is live. The more potential problems you’re aware of, the better.
Load testing your game – Build tiny tools and scripts to generate as much traffic as you can, breaking your system as often as possible.