How to develop Global Multiplayer Games using Cloud Spanner
Technology Practice Specialist
Paul Hyung Yuel Kim
Most modern video games require years of investment to produce, both in terms of development time and capital. The length of development is influenced by a number of factors, such as scale, development platform, scope, and type of game. Gamers often expect global multiplayer experiences on Day 1, which means that the success of a game can depend on how well it can scale to a community of millions of players in the first few weeks of its life. High availability and stability must be built into the design of a game to handle this demand for scale. Issues that take place during the opening days of the game’s life can be fatal, as players are slow to return after a bad experience, and the hype of anticipation quickly fades. In other words, momentum is everything.
How does Cloud Spanner address architectural complexity?
All types of online games require storing immense amounts of data, such as player achievements and stats, leaderboards, game data, and much more, and must do so at scale. The amount of data can grow both linearly or exponentially as more players join the game; thus the most important requirement for a game’s database is the ability to scale while providing high availability.
Gaming workloads typically require NoSQL and relational databases to attain scalability while maintaining strict consistency on gaming data selectively. On Google Cloud, Firestore and Bigtable options can be considered for NoSQL depending on the unique requirements of the game such as mobile first or cross platform support requirements. When it comes to relational databases, nothing matches Spanner in terms of offering both scalability and global consistency via the interface that we’re all familiar with, SQL.
Spanner is our distributed, globally scalable SQL database service that decouples compute from storage, which makes it possible to scale processing resources separately from storage. This means that horizontal upscaling is possible with no downtime for achieving higher performance on dimensions such as operations per second for both reads and writes. The distributed scaling nature of Spanner’s architecture makes it an ideal solution for unpredictable workloads such as online games.
Unplanned game downtimes are the single most dangerous threat to the longevity of game titles. That’s why game companies seek highly available backend databases to minimize game service interruption in case of unplanned failures. Spanner delivers industry-leading 99.999% availability for multi-regional instances, and provides transparent, synchronous replication across both regional and multi-region configurations. Globally distributed replica shards can provide an additional benefit of shortening latency by serving from a local copy.
Spanner supports relational semantics like ANSI SQL and schema with no need to denormalize, and enables easy updates to your game service databases online. ANSI SQL can shorten the learning curve for developers and Database Administrators (DBAs). In addition, object–relational mapping (ORM) support can also reduce development time.
Spanner has compliance certifications which can make abiding by compliance requirements easier for gaming companies, like PCI, SoC compliance, and FedRAMP. In addition, Spanner has VPC-SC support, Audit Logging which includes not only admin jobs but also user activities (DML, DDL, even Query).
Recommended Spanner Adoption Process
Spanner adoption has a very well-defined process, and following along these major milestones above can make it easy. Because Spanner is a distributed database supporting relational semantics, it’s important to understand the differences compared to traditional relational databases. We recommend your development team and DBA start evaluating Spanner at the earliest stages of the game development lifecycle to minimize trial and error, as well as, future optimizations.
After getting acquainted with Spanner, the ANSI SQL and Schema support of Spanner allows you to easily convert existing relational database schemas and relevant queries with just a few changes. Several gaming customers completed this conversion in as little as 2-3 weeks. Various tools like Harbourbridge, an evaluation and migration open source tool, can make heterogeneous migrations to Spanner reliable and easy.
Spanner, like other databases, needs performance optimization with load testing to meet target performance requirements such as throughput and latency. That’s why Spanner provides introspection tools to deliver insights for optimization. In addition, intuitive and visualized query execution plans enable developers who lack deep database knowledge to optimize long-running queries. Pre-warming the database before the game launch day to make Spanner well distributed and embrace enough throughput.
Niantic Labs built a globally scalable game for millions of users on Google Cloud. They shared their experience scaling with Google Kubernetes Engine (GKE) and Spanner, and described how their data science team works with BigQuery, Dataflow, and Pub/Sub for their data analytics.
Vimeo is the leading player in the growing video SaaS market, serving over 200 million users across more than 190 countries. In this video, they share how Cloud Spanner powers Vimeo’s platform, and why Vimeo decided to use Google Cloud.
To learn more about this globally scalable game backend on Google Cloud, Spanner’s advantages and the differences over traditional relational databases, read our Develop Global Multiplayer Games using Cloud Spanner whitepaper.