Saturday, January 28, 2023
No menu items!
HomeCloud ComputingPower Matchmaking with Redis Enterprise via Google Cloud Marketplace

Power Matchmaking with Redis Enterprise via Google Cloud Marketplace

Have you ever played a multiplayer game where the players could have been better? This scenario is common and is likely not an ideal experience for anyone. 

Game developers try to ensure that when you play, your opponents are at least as good as you are. Accurately matching players is a requirement for multiplayer games because creating compatible matches means more retention and revenue. Most of all, it increases players’ loyalty to the game and boosts turnover.

While it’s essential, developing effective matchmaking functionality is a challenging task. Evaluating skill level and many other attributes instantly is a requirement. Matchmaking in gaming needs to be blazing fast, as no player will wait long to get into a game session.

Challenges

The advancement of both hardware and software enables large-scale games where hundreds of players are getting matched to start a game or an experience. Concurrent players in popular games are on a steady rise. Nowadays, popular games’ concurrent players range anywhere from 3 million to 10 million1 depending on the game, day, and time of the year.  

While the player pools are expanding, the latency expectations are shrinking. These two forces drive the need for horizontally scalable and blazing-fast matchmaking backends. Because of this, Google teamed up with Unity and created a framework called Open Match. Open Match runs on Kubernetes, and Redis is the data layer. The goal was to create an auto-scalable matchmaking framework to prevent reinventing the wheel and allow developers to focus on the logic to connect players for games. Previously, we looked into Memorystore with Open Match so now we will look into Redis Enterprise in Google Cloud Marketplace.

Redis Enterprise in Google Cloud Marketplace

As the advancement of both hardware and software pushes more concurrent players and large numbers of players per game, scalability has become the top priority for Open Match. Since Open Match runs on Kubernetes, the compute layer can auto-scale with technologies like GKE’s Cluster autoscaler and is usually not a big concern for DevOps engineers. However, achieving scalability and high availability at the data layer is a mundane task for Open Match DevOps teams.  

As the first step towards the scalability and high availability challenges, we stood up the Open Match framework with Redis Enterprise Cloud in place of OSS Redis. Redis Enterprise scales linearly and scales with a click of a button without requiring downtime, which massively reduces the scalability burden. On top, high availability is just a slider on the admin console.

Scalability Settings (left) and High Availability Settings (right)

Redis Enterprise Cloud is a fully managed service with 24/7×365 support and 99.999% SLA and offers simplified billing through a single Google Cloud Account.

VPC peering

You can deploy Redis Enterprise Cloud through the Google Cloud Marketplace or through the Terraform provider in a matter of minutes. Once the database is created, by providing the Google Cloud Project and Network name, you can peer the VPC the GKE cluster belongs to with Redis’s managed VPC. After the peering is completed, the GKE cluster could connect to the Redis Enterprise database through the database’s private endpoint.

Open Match with Redis Enterprise Cloud

Assuming your newly created Redis Enterprise Cloud database has been provisioned, it is ready for use. You can run the following helm command to install Open Match on your GKE cluster pointing to the Redis Enterprise Cloud instance:

code_block[StructValue([(u’code’, u’helm install open-match open-match/open-match \rn–set open-match-customize.enabled=true \rn–set open-match-customize.evaluator.enabled=true \rn–set open-match-override.enabled=true \rn–set open-match-core.redis.enabled=false \rn–set open-match-core.redis.hostname=”Default:<password>@<Redis-Enterprise-Database-Private-Endpoint>” \rn–set open-match-core.redis.port=<Redis-Enterprise-Database-Port-Number> \rn-nopen-match’), (u’language’, u”), (u’caption’, <wagtail.wagtailcore.rich_text.RichText object at 0x3e628591a850>)])]

For example,

code_block[StructValue([(u’code’, u’helm install open-match open-match/open-match \rn–set open-match-customize.enabled=true \rn–set open-match-customize.evaluator.enabled=true \rn–set open-match-override.enabled=true \rn–set open-match-core.redis.enabled=false \rn–set open-match-core.redis.hostname=”Default:[email protected].com” \rn–set open-match-core.redis.port=16264 \rn-nopen-match’), (u’language’, u”), (u’caption’, <wagtail.wagtailcore.rich_text.RichText object at 0x3e62877b85d0>)])]

You can follow this tutorial to deploy and run the Open Match demo to generate matches and see Redis Enterprise in action.

Summary

Redis Enterprise on Google Cloud provides linear scalability, high availability and five-nines (99.999% SLA) of availability through Active-Active Geo Distribution feature spanning over 20 Google Cloud regions to support global game launches. User spikes are real and significant opportunities for the success of the game. Game companies need to be ready for these moments and do everything possible to retain the players on the platform. Adopt Open Match with Redis Enterprise for accurate, compatible, and ultra-fast matchmaking functionality at scale. 

Next Steps

Build better games with real-time data

Fully managed Redis Enterprise Cloud on Google Cloud

Redis Enterprise Open Match Tutorial

GitHub Repository for Open Match

Open Match website

Footnotes:

1. Fortnite Player Count – How Many People Are Playing Now?

A special ‘thank you’ to Gilbert Lau, Cloud Partner Solution Architect, Redis for his contribution to this article.

Related Article

Scalable Matchmaker Performance with Cloud Memorystore for Redis Read Replicas

This blog post shows the performance of Open Match and Cloud Memorystore for Redis Read Replicas to create a scalable matchmaker to handl…

Read Article

aside_block[StructValue([(u’title’, u’Redis Enterprise on Google Cloud | Redis Cloud Partner’), (u’body’, <wagtail.wagtailcore.rich_text.RichText object at 0x3e6284db98d0>), (u’btn_text’, u’Learn More’), (u’href’, u’https://redis.com/cloud-partners/google/’), (u’image’, <GAEImage: The Turbo Charged Partnership of Redis Enterprise and Google Cloud>)])]

Cloud BlogRead More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments