Open Match is an open source game matchmaking framework that simplifies building a scalable and extensible Matchmaker. It is designed to give the game developer full control over how to make matches while removing the burden of dealing with the challenges of running a production service at scale.
This repository is the public preview of the proposed second version of the "Core" Open Match golang application. The repository also contains protobuffer definition files (in /proto
), and external-facing golang modules generated from those files (in /pkg
). The subdirectories themselves contain further documentation, but at a high level:
main.go
(also calledom-core
in places where it may not be obvious that it is part of Open Match) is the core Open Match 2 application. It serves all the Open Match 2 API endpoints from a single horizontally-scalable container image.proto
contains Protocol Buffer definitions used to produce libraries in your language of choice. Open Match 2 is written in golang but you can write your matchmaker in any language supported by gRPC.pkg
contains two external golang modules:pkg/pb
contains the compiled golang modules produced byprotoc
.pkg/api
contains thegrpc-gateway
reverse-proxy server which translates RESTful HTTP API calls into gRPC.
Documentation will be added to the project over time.
- We aim to keep this application scope as small as possible.
- Please don't send a PR without creating a discussion/issue about it first.
- If proposed change does not have a clear benefit to the majority of users, it will probably not be accepted.
The Development guide contains instructions on getting the source code, making changes, testing and submitting a pull request to Open Match.
Participation in this project comes under the Contributor Covenant Code of Conduct
Apache 2.0