top of page

How We Ensure Smooth Launch Days and Resiliency for Live Service Games

  • Writer: Phil Collins
    Phil Collins
  • Nov 3, 2023
  • 5 min read

Let’s be honest. Launching a video game can be as terrifying as it is exciting, especially for those of us that are responsible for the technical architecture and operations of the game. As a game developer, nothing is more satisfying than putting your game out into the world and realizing that players love what you have labored so hard to create. However, the excitement can quickly wane when server issues disrupt gameplay, especially on the much-anticipated launch day. Drawing from my experience as the CTO at RallyHere, where I’ve had the privilege of working on numerous game launches, including SMITE, Paladins, Realm Royale, Rogue Company, Starsiege: Deadzone, and many more, I am excited to share key strategies for multiplayer game developers and publishers to maintain stability and deliver an exceptional player experience. My goal is to make sure that those who work behind-the-scenes of video games can stop fearing success and the numerous technical challenges it can create, and learn to embrace the joy of bringing your creation to market!


1. Prioritize Resilience, Not Just Scalability


To ensure a technically uneventful launch day, it is crucial to build your game with resilience in mind, not just scalability. Collaboration between the client/game and server/backend platform teams is essential to achieve this goal. Ask yourself, how does your game handle issues? Avoiding “doom loops” is paramount, and you should configure your game for dynamic live operations, including:


  • Login Queuing and Login Limiting: Implement systems that manage the influx of players during peak times.

  • Dynamic Feature Disabling: Allow the ability to disable backend features and associated game-side features as needed.

  • Client-side Back Off: Ensure that the client UI can handle delays and prevent undue pressure on the system. For example, if the “queue for match” button requires a server-side response before becoming unclickable, design it to handle delays without causing additional load.

  • Hostile Testing: In addition to performance and scalability testing, conduct hostile testing to evaluate how the client UI reacts in challenging situations.

  • Gameplay Server Updating: Coordinate gameplay server updates with on-premises machines and cloudburst partners.


2. Keep the Main Thing the Main Thing


Avoid letting non-critical components jeopardize the stability of your entire game. Practice graceful degradation and ensure that failures in independent systems do not cascade into critical issues.


  • Graceful Degradation: Graceful degradation is the cornerstone of this approach. It involves maintaining the core functionality of your game even in the presence of challenges or failures in non-essential components. By doing so, you shield players from experiencing game-breaking issues and minimize disruptions that might occur in ancillary systems.

  • Dynamic Feature Disabling: Implementing the ability to dynamically disable non-critical features or reduce update rates during high-stress situations is a pivotal strategy. This flexibility allows you to adapt to changing circumstances, ensuring that the core gaming experience remains intact. When a surge in player activity places excessive stress on your system, you can throttle down or temporarily disable certain non-essential features to prioritize the smooth operation of the game’s essential functions.

  • Adaptive Game Clients: Your game clients should be coded to anticipate that non-essential elements may experience delays or be temporarily unavailable. This anticipatory approach ensures that the game client doesn’t encounter critical failures, such as players being unable to log in, solely due to problems in secondary systems. By designing your clients to gracefully handle delays and work around non-essential components that may be slow or temporarily missing, you create a more robust player experience.

  • “Fail to Login” Scenarios: One of the potential pitfalls in live service games is players encountering “fail to login” scenarios when non-essential systems encounter issues. By coding your game clients to respond effectively to these situations, you can ensure that players aren’t locked out of the game due to problems with secondary systems. This approach not only prevents player frustration but also maintains player trust and engagement, even when non-essential components experience hiccups.


3. Implement a Restartable Central Architecture


Design your game’s architecture with the ability to restart and recover seamlessly. Utilize cached states, scalable components, and an upgradeable infrastructure to enhance the resilience of your game.


  • Cached States: The strategic use of cached states is a key component of a restartable central architecture. By storing essential game data and states in caches, you can significantly reduce the time it takes to restore the game after a disruption. Cached states act as a snapshot of the game’s status, enabling a smoother and quicker recovery process.

  • Scalable Components: Scalability is intertwined with restartability. Your architecture should incorporate components that can scale up or down as needed to meet player demand. This scalability ensures that even during unexpected surges in traffic, your game can continue running without hiccups. The ability to adapt to varying workloads is a core element of ensuring resilience.

  • Upgradeable Infrastructure: An upgradeable infrastructure is a forward-looking approach to enhancing your game’s stability. It enables you to implement updates and improvements without causing significant disruptions to the player experience. Whether it’s adding new features, fixing bugs, or optimizing performance, having an infrastructure that can be upgraded seamlessly ensures your game stays current and competitive.


4. Swift Deployment of Services and Gameplay Servers


Ensure that services and gameplay servers can be deployed rapidly. Embrace Service In Containers (SIC) and microservices to facilitate quick and efficient updates and maintenance.

  • Efficient Deployment: To ensure rapid deployment, it’s essential to have efficient strategies in place. This includes automation tools and practices that allow you to push updates and changes with minimal manual intervention. Automated testing, deployment pipelines, and version control systems can streamline the process, reducing the risk of errors and minimizing downtime.

  • Exercise the Machine: Get lots of reps exercising the ‘machine’ before launch. If you have an update process that’s hypothetical before launch, you’ll find all the problems with it too late.

  • Microservices Architecture: Adopting a microservices architecture further accelerates the deployment of services. Breaking down your game into smaller, independently deployable components allows for more agile development and updates. Each microservice can be updated and deployed separately, reducing the risk of affecting the entire game in case of issues or changes.


5. Backup and Redundancy for Critical Systems


Implement backup and redundancy measures for critical systems, such as clusters and reward distribution mechanisms. Having fail-safes in place will safeguard your game against potential disruptions.


  • Clustered Systems: Critical components of your game, such as databases and server infrastructure, should be organized in clustered systems. Clusters enable data replication and load distribution, which safeguards against the failure of a single node. In the event of a hardware failure or other issues, the redundancy within the cluster ensures minimal downtime and data loss.

  • Redundant Reward Distribution: In a live service game, reward distribution mechanisms are integral to player engagement. Implementing redundancy for these systems ensures that even if one distribution mechanism encounters problems, players can still receive their rewards through alternative means. This minimizes player frustration and maintains their trust in the game.

  • Data Backups: Regularly backing up critical data, including player profiles, in-game progress, and purchase history, is paramount. Cloud-based storage solutions, in particular, can offer automated and resilient data backup capabilities. These backups serve as a safety net, allowing you to recover lost data and maintain the continuity of player experiences.

  • Fail-Safe Testing: Testing backup and redundancy systems is as crucial as implementing them. Regularly simulate failures to ensure that your redundancy mechanisms work as expected. This proactive approach can uncover vulnerabilities and fine-tune your fail-safe systems, making them more reliable in the long run.


Throughout the development and maintenance of your live service game, maintain an obsessive focus on monitoring, maintain flexibility, and always prioritize the player experience. Launching a video game is a remarkable achievement, and by adhering to these five strategies, you can significantly enhance the resilience of your live service game and reduce the risk of server issues on launch day.


Want to learn more about RallyHere? Visit our website: rallyhere.gg

bottom of page