This post is part of a series of posts on Open Match. If you want to follow from the beginning start with the Overview and then read the Deep Dive

(This post was edited on Apr. 5, 2020 to resolve broken gists)

Open Match enables you to customize and design a matchmaker, but there is functionality that it does not offer. For example, Open Match is not responsible for player data nor other game components such as inventory, friends lists, or leaderboards. This creates the need for a service to interact with Open Match that can access these components. …

If you’re still following along, we’ve explored Open Match services and how they help build your game’s matchmaker. Skill based matchmaking is very common for online multiplayer games, so let’s explore how to write a skill based match function. We’ll go over a few setup steps and considerations to ensure you’re providing the Match Function all the data to connect players. Full disclosure: This blog post will provide dummy data (I’ll explain where it’s used and why) to represent your player information throughout the matchmaking process. Your game may have player data stored externally from Open Match.

Profiles and Ticket Pools

In my previous…

If you’re still following along from my previous blog post, this is all about Open Match. Open Match is a flexible, scalable, and extensible matchmaking framework that grows with your game. To accomplish this, we utilize Kubernetes, Redis, and gRPC. Here is a breakdown of how Open Match uses these technologies to assist in your matchmaking.

Flexible, Scalable, and Extensible — If you’re familiar with Kubernetes, these are buzzwords for this open-source software. Kubernetes allows you to containerize and manage the services for your matchmaker. …

Open Match is an open-source, scalable, flexible, and extensible matchmaking framework that grows with the needs of your game. It provides the tools to control how your players are connected for a fair and enjoyable experience while removing concerns about scaling to handle an unexpected surge of players. Open Match provides you with the tools to build a matchmaker and allows some customization of services such as your database to cache players.

Open Match has core services that accept custom requests or are configurable via extensions that allow you to make matchmaking work for you. These services handle match requests…

Using PubSub and Translation API’s

After creating the chat app described in my previous post, I decided to continue adding features to it. In that post, I dive into using Cloud PubSub and creating a simple app by navigating the Cloud Console. I’ve been playing more multiplayer games and once again was inspired to add some new cool things to the chat app. We saw that Google Cloud makes it easy to add one-to-one chat to a multiplayer game… but you won’t want to stop there. You’re used to the finer things in life and you’re not going to be satisfied unless we go further…

I’ve been working with some Google APIs in Unity, and while it has been fun, it was not an easy task getting them to work. I’ve decided to pass along my steps to working with Google APIs and Unity in part to answer questions/requests I frequently received at game conferences. In writing this post, I assume you have already created created a project in Unity and are just looking to integrate Google APIs. If not, there are many tutorials and courses online on getting started with Unity and creating your first project.

Importing NuGet Packages

To get started with Google APIs in Unity…

Check out my view!!!

So I’ve hit my first Googleversary working as a Developer Advocate and thought it would be a great idea to write a post about how it has been working at Google so far. I’ll touch on my journey, my team, responsibilities and work-life balance.


I’ve been getting back into playing multiplayer games lately and I’ve started looking for interesting things to build while playing. One game I have enjoyed in particular has 16 players all spamming chat playing detective to find a group of evildoers among us. I was inspired to build a chat for games and began researching methods for sending and receiving messages. Requirements included:

  • One-to-One (Direct) and One-to-Many messaging functionality
  • Transmission method that did not require a full server to be developed

I began to explore some solutions in the space and I stumbled upon Pub/Sub. …

Part 2: The Unity Editor

If you read through Part 1 of this series, and now you’re continuing with Part 2, then it is apparent you have a fairly strong interest in Unity from a beginner’s perspective. After spending some extended time with Unity and online courses, I noticed that one resource missing for beginners is a tour of the editor itself. I’ve looked far and wide but I haven’t found one that doesn’t overwhelm new creators. So, with the aim of addressing this need, here is my walkthrough of the Unity editor.

Unity does a great job of organizing various windows that are essential…

Part 1: “Why use Unity?”

If you’re reading this then you may have stumbled across this post in an effort to begin a journey in game development. I’m here to help you gain some understanding of the elements of game design. I mean let’s be serious… You wouldn’t show up to play a sport without the proper equipment or without knowing the rules! But chances are you don’t yet know the rules of the land so expect to suck at game development, at least at first. You shouldn’t feel too bad because you’re new to this (as am I). …

Jon Foust

Developer Advocate @ Google. Gamer. Maker. Trying to make things easier for others by doing the hard stuff myself. Opinions are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store