Open Source

Open Match: Flexible and extensible matchmaking for games

Video Game

Today’s games are increasingly connected, bringing players together in a shared environment where they can test their skill and ingenuity against gamers all over the world.

But matchmaking—the art of matching a set of players together to maximize their enjoyment of the game—isn’t easy from a technical standpoint, and can require many inputs to get right. Each game is unique, making it difficult for an off-the-shelf matchmaking solution to be flexible enough to support them. Consequently, game developers often spend substantial time and resources developing a customized, scalable matchmaking solution for each new release, when they could be spending that time doing what they do best—creating great games.

What if game developers could focus on just the matchmaking logic—the inputs and logic for selecting players—instead of building a whole matchmaker from scratch for each game? Google Cloud and Unity are jointly announcing the availability of an open source matchmaking project called Open Match to do exactly that. Open Match is designed to allow game creators to reuse a common matchmaker framework. It includes three core components: a frontend API for game clients, a backend API for game servers, and an orchestrator that runs game-specific custom matchmaking logic. It’s instrumented with OpenCensus (opencensus.io) for metrics gathering and Prometheus (prometheus.io) is configured by default.  

With Open Match, developers get the following benefits:

Extensibility. Custom match logic examples are available for simple player matchmaking based on latency, wait time, and an arbitrary skill rating.

Flexibility. Because Open Match runs on Kubernetes, you can deploy it on any public cloud, local data center, or even on a local workstation.

Scalability. Open Match is designed using proven web microservices patterns, and with Kubernetes as the underlying platform, adding additional capacity to your APIs when you have more customers is as simple as a single command. Kubernetes autoscaling can be used to automate it as well.

Although Open Match is co-founded by Google Cloud and Unity, it’s game engine agnostic. It can be integrated into any game, regardless of how the game is built or what infrastructure it’s running on. Unity will be basing future matchmaking technology on Open Match, so Unity customers will be able to more easily take advantage of its features, such as through integration with Unity-provided servers. The Open Match GitHub repo is now open for contributions, and you can follow the example provided in the development setup guide to start experimenting today.