Deep Silver FISHLABS creates entire universes for 3D game players on Google Compute Engine
Deep Silver FISHLABS is a mobile game developer and publisher, known for its action-packed 3D mobile app games that include the popular Galaxy on Fire - Alliances (GOFA). The backend for this massively multiplayer online (MMO) game runs on virtual machines hosted on Google Compute Engine.
When designing GOFA, FISHLABS knew that it needed a reliable backend for processing its virtual worlds and player actions, since online gamers are unforgiving of service outages or even perceptible delays. The company needed servers that offered consistent response times to ensure predictable and excellent user experience. The backend servers also needed to be scalable, so they could be quickly brought online to handle usage spikes, and then taken offline to save cost when not needed.
In addition to carrying a normal workload by thousands of concurrent players, the GOFA servers needed to seamlessly accommodate traffic surges driven by marketing and promotional events.
When GOFA was featured on the Apple App Store in China, user registrations instantly jumped to many times the normal level, and then tapered off. It’s common in the free-to-play mobile games market for users to test out a game and then decide not to keep playing, which is what FISHLABS experienced with thousands of new users.
FISHLABS experienced a similar spike when GOFA launched on Android Play worldwide. In both situations, the GOFA backend needed to handle the usage spikes and offer an excellent user experience for all its game players.
FISHLABS didn’t consider cloud hosting in its initial plans. “When we started, all we needed were machines. We considered colocation hosting, because we thought it was cheaper and more efficient. That was wrong, and with dropping prices and improving service in the cloud it became more apparent every day that a colocation facility was not the answer,” says Hans-Ulrich Sesselmann, Senior DevOps Architect at FISHLABS. This led to a search for Infrastructure-as-a-Service, with hosted virtual machines in the cloud.
After evaluating the three top cloud solutions providers, FISHLABS chose Google Compute Engine for two primary reasons. First, the performance of virtual services on Compute Engine was very consistent: “We ran benchmarks and Google showed a straight line without peaks or valleys, even across virtual machines provisioned at different times,” Sesselmann says. The competition? “The benchmark performance lines looked like the Rocky Mountains.” Plus, he says, “the price was unbeatable” — Google Compute Engine’s per-server cost was about half that of its closest competitor.
The GOFA MMO game runs as a distributed Java application on a cluster of 2-core virtual machines, initially using CentOS 6.5, and switching to Debian 7 for more recent installations. The database servers utilize 8-core servers, and are master/slave replicated for redundancy. Game players are assigned to a server when they initiate a game-playing session using Compute Engine’s http load balancer.
The load-balanced Java application servers connect to a single hosted server running MySQL 5.5. The database stores all information about the virtual worlds and the objects in those worlds, as well as all data regarding individual game players.
The size of the GOFA cluster automatically scales from 3-12 servers depending on workload. “Scaling up happens all the time,” Sesselmann says. “We monitor CPU load, and when the load increases we spin up one or two new machines, and when the load decreases we automatically drop down again.”
Mobile users are enjoying reliable, stable gameplay within the Galaxy on Fire – Alliances 3D MMO, their futuristic stars, planets and spaceships flying within a cluster of virtual machines on Google Compute Engine. The Compute Engine backend has been stable and reliable, and has automatically scaled to handle marketing events that increase the number of game players.
In addition to the GOFA cluster, FISHLABS has populated eight other game server worlds on Google Compute Engine virtual machine clusters. Designing and provisioning new virtual worlds on Compute Engine has become a simple automated process, says Sesselmann: “We have a script that does this. We call it the Big Bang Button, because pushing it creates a new game universe.”
Based on its success with GOFA, FISHLABS is investigating the roll-out of additional services on Google Compute Engine, such as the https load balancer, now in beta. The company is also evaluating the latest alpha version of Cloud SQL, a hosted database-as-a-service based on MySQL 5.6. FISHLABS plans to use Jenkins, a popular open-source software build server, to provide parallelized software builds for FISHLABS’ software developers and to provide more scalability on each server by hosting application servers on lightweight Docker containers inside Google Kubernetes Engine instead of running the Java application servers on virtual machines.