Sven Hammar, CEO, Apica System, explains how gaming companies can ensure a successful launch by having the necessary infrastructure to handle client demands.
The launch of a new game is a do-or-die moment. Everyone wants a huge success like Candy Crush Saga, Pokémon Go or Activision’s Call of Duty. And no one wants a fiasco so avoiding technical failures is absolutely instrumental.
Gamers are often eager to get their hands on the product as soon as possible – so a business that can’t provide the product because their online infrastructure is too weak to handle the demand will spoil their community’s goodwill. The loss of goodwill can decimate sales momentum and turn what should have been a hiccup into a game ender.
Looking at a real-life example of a company launching an on-demand gaming service for digital TVs and CEs; Hosting the platform is complicated because traffic spikes hit the server instantaneously when clients turn on the channel. The severity and sudden nature of the spikes makes it difficult to plan out server scaling in a way that’s able to keep up with demand.
Regular load testing throughout the development process helps ensure the game performs smoothly without errors at launch. Load testing simulates virtual users within a program to test how many concurrent users the hardware can handle before performance falters. Load tests produce data that shows how many transactions and how much data the servers are pushing against the number of concurrent users accessing the platform over time.
In the case mentioned above, the initial test showed that the infrastructure began to lag behind demand at around 650 users. The throughput peaked at 14 Mbps before nosediving at peak load, while the web transaction rate peaked at about 80 URL/s before dropping out. It’s worth noting that concurrency issues such as these may not even show up in normal QA testing.
The transaction rate and network throughput need to keep up with demand in order to provide a smooth experience. A development team needs to be able to take load test data and identify bottlenecks within the platform code to improve performance. It is a good idea to simulate a set-top box environment and run tests from multiple geographical locations to simulate real world use over the course of a few weeks.
The various load tests across different hardware configurations will show e.g. whether is makes better financial sense for developers to use more ‘large’ servers than fewer ‘extra-large’ ones. These tests would not have been exceedingly difficult without real-world load testing scenarios.
Load tests establish optimal machine sizing and elasticity rules for adjusting cloud resource availability to match traffic patterns: the servers need to handle peak loads and adjust to traffic spikes. Initial test may show substantial variances in throughput and web transaction rate as more users accessed the platform; the service will then encountere hiccups while additional hardware was turning on under the old scaling method.
It’s common for infrastructure to scale by adding more server resources as the user-count rises. However, test results often find that the system’s traffic spikes are so sudden and massive that the system couldn’t add resources fast enough. In a case like this, it is better to utilise a scheduling plan based on traffic trends to meet demands.
Load testing provides tangible data that helps troubleshoot performance problems and optimise infrastructure for smoother performance and smarter expenses. It is not uncommon improve performance by a massive 3% – 400% after applying test data to the platform, with new scaling logics and fixed bottleneck issues.
The gaming system infrastructure must be able to smoothly scale up concurrent users without service disruptions. Load tests are instrumental to ensure that a game launch goes off without a hitch.
Edited for web by Cecilia Rehn.