Open Match Versions Save

Flexible, extensible, and scalable video game matchmaking.

v1.4.0-rc.1

2 years ago

v1.4.0-rc.1

This is the v1.4.0-rc.1 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Redis helm chart version change to 16.3.1 (#1440)
  • Patched bug that resulted in multiple redis master nodes which fixed (#1374) :
    • Query service returning no tickets (#1420)
    • Existing tickets not found for a WatchAssignmentsRequest (#1428)
  • AssignTickets empty check and test cases added (#1438)
  • Redis default values update (#1430)
  • Fixed outdated apiVersion in frontend scale testing helm template (#1419)

Breaking Changes

  • Updating the Redis helm chart version to 16.3.1 (#1440) requires changes to the api
    • slave --> replica
    • usePassword: --> auth: enabled:
    • redis.fullname --> common.names.fullname
  • Outdated apiVersion in frontend scale testing helm template (#1419)
    • extensions/v1beta1 --> apps/v1

Enhancements

  • Increased minimum resources based on best practices (#1439)
  • docker build optimization by using mount cache for go dependencies (#1435)

Usage Requirements

  • Kubernetes Version >= 1.21
  • Golang Version >= v1.14
  • Helm Version >= 3.8

Installation

API Definitions

v1.3.0

2 years ago

v1.3.0

This is the v1.3.0 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Tickets assigned by Backfill now visible in AcknowledgeBackfillResponse (#1382)

Breaking Changes

  • AcknowledgeBackfill now returns AcknowledgeBackfillResponse instead of Backfill (#1382)

Enhancements

  • Workload Identity re-enabled for GKE clusters (#1403)
  • Default GKE Cluster version updated to 1.20 (#1402)
  • gRPC versions for tutorials updated to 1.36 (#1402)

Usage Requirements

  • Kubernetes Version >= 1.20
  • Golang Version >= v1.14

Installation

API Definitions

v1.3.0-rc.1

2 years ago

v1.3.0-rc.1

This is the v1.3.0-rc.1 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Tickets assigned by Backfill now visible in AcknowledgeBackfillResponse (#1382)

Breaking Changes

  • AcknowledgeBackfill now returns AcknowledgeBackfillResponse instead of Backfill (#1382)

Enhancements

  • Workload Identity re-enabled for GKE clusters (#1403)
  • Default GKE Cluster version updated to 1.20 (#1402)
  • gRPC versions for tutorials updated to 1.36 (#1402)

Usage Requirements

  • Kubernetes Version >= 1.20
  • Golang Version >= v1.14

Installation

API Definitions

v1.2.0

3 years ago

v1.2.0

This is the v1.2.0 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights Beta release for Backfill Feature

  • Backend
    • Index Backfill (#1318)
    • Autoincrement Backfill generation for caching (#1308)
  • Frontend
    • Acknowledge Backfill (#1293)
    • Update/Delete Backfill (#1292)
    • Frontend can create backfill ticket (#1279)
  • Statestore
    • Querying and Caching Backfill (#1310)
    • Update backfill after MMF execution completion (#1299)
    • Backfill indexing (#1290)
    • Acknowledge Backfill (#1288)
    • Statestore Backfill Support (#1273)
  • Query
    • Querying and Caching Backfill (#1310)
  • Synchronizer
    • Clean up expired backfills (#1334, #1297)

Breaking Changes

  • Updated Redis chart location (#1315)
  • Update location for stable and incubator charts (#1314)

Security Fixes None

Enhancements

  • Update to gRPC Gateway v2 (#1358)
  • Clients can cancel WatchAssignment request (#1350)
  • Added Pod Tolerations, NodeSelector and Affinity in Helm for subcharts (#1311)
  • Improved logging and error output/reporting (#1352, #1349, #1347, #1344, #1343, #1340, #1332, #1331, #1320, #1287)

Usage Requirements

  • Kubernetes Version >= v1.15
  • Golang Version >= v1.14

Installation

API Definitions

1.2.0-rc.1

3 years ago

v1.2.0-rc.1

This is the v1.2.0-rc.1 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights Beta release for Backfill Feature

  • Backend
    • Index Backfill (#1318)
    • Autoincrement Backfill generation for caching (#1308)
  • Frontend
    • Acknowledge Backfill (#1293)
    • Update/Delete Backfill (#1292)
    • Frontend can create backfill ticket (#1279)
  • Statestore
    • Querying and Caching Backfill (#1310)
    • Update backfill after MMF execution completion (#1299)
    • Backfill indexing (#1290)
    • Acknowledge Backfill (#1288)
    • Statestore Backfill Support (#1273)
  • Query
    • Querying and Caching Backfill (#1310)
  • Synchronizer
    • Clean up expired backfills (#1334, #1297)

Breaking Changes

  • Updated Redis chart location (#1315)
  • Update location for stable and incubator charts (#1314)

Security Fixes None

Enhancements

  • Update to gRPC Gateway v2 (#1358)
  • Clients can cancel WatchAssignment request (#1350)
  • Added Pod Tolerations, NodeSelector and Affinity in Helm for subcharts (#1311)
  • Improved logging and error output/reporting (#1352, #1349, #1347, #1344, #1343, #1340, #1332, #1331, #1320, #1287)

Usage Requirements

  • Kubernetes Version >= v1.15
  • Golang Version >= v1.14

Installation

API Definitions

v1.1.0

3 years ago

This is the v1.1.0 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Inclusive/Exclusive bounds for DoubleRangeFilters #1268

Breaking Changes

  • Service names now include the helm release name. This changes the default value from, eg, om-frontend to open-match-frontend. This is more consistent with helm best practices, and allows multiple Open Match installations in one namespace. For helm users, your values.yaml from 1.0 is still valid and includes service name overrides to the previous value #1246

Security Fixes

  • None

Enhancements

  • Time to Assignment metrics added to backend #1241
  • Reduced Redis logging #1248
  • Improved testing for Nil pointer exceptions #1249
  • Added PR template #1250
  • Tests now use require (previously assert) with improved output (#1253, #1257)
  • Reduced unnecessary logging in backend and frontend services. Updated query and evaluator logging #1255
  • Improved Statestore tests for Redis #1264

Usage Requirements

  • Kubernetes Version >= v1.15
  • Golang Version >= 1.14

Installation

API Definitions

v1.1.0-rc.1

3 years ago

This is the v1.1.0-rc.1 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Inclusive/Exclusive bounds for DoubleRangeFilters #1268

Breaking Changes

  • Service names now include the helm release name. This changes the default value from, eg, om-frontend to open-match-frontend. This is more consistent with helm best practices, and allows multiple Open Match installations in one namespace. For helm users, your values.yaml from 1.0 is still valid and includes service name overrides to the previous value #1246

Security Fixes

  • None

Enhancements

  • Time to Assignment metrics added to backend #1241
  • Reduced Redis logging #1248
  • Improved testing for Nil pointer exceptions #1249
  • Added PR template #1250
  • Tests now use require (previously assert) with improved output (#1253, #1257)
  • Reduced unnecessary logging in backend and frontend services. Updated query and evaluator logging #1255
  • Improved Statestore tests for Redis #1264

Usage Requirements

  • Kubernetes Version >= v1.15
  • Golang Version >= 1.14

Installation

API Definitions

v1.0.0

4 years ago

This is the v1.0.0 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Assigned tickets will now automatically be deleted after a configured time. Default assignedDeleteTimeout = 10 minutes. #1211
  • Added API call to release all pending tickets. #1215 This enables callers through several API calls to delete all tickets.
  • matchfunction library now supports passing gRPC call options. #1205
  • Metrics for many Open Match concepts now exported by Open Match, and a page with charts added to Grafana. #1192 #1193
  • Refactor and greatly improved test coverage, fixing several bugs and ensuring stability going forward. #1204 #1176 #1196 #1189 #1194

Breaking Changes

  • Renamed several configuration values for consistency and clarity: #1206
    • ignoreListTTL -> pendingReleaseTimeout
    • pageSize/page.size -> queryPageSize
    • registrationIntervalMs -> registrationInterval
    • proposalCollectionIntervalMs -> proposalCollectionInterval
  • Default Evaluator now uses the main open match configmaps, removing the separate config maps. #1191

Breaking changes are only made if they fall within the stability guarantee.

Security Fixes None.

Enhancements

  • Updated development guide. #1182
  • Fixed installing open match by default installing the integration test components. #1213
  • Improved error messages in several cases. #1207
  • Improved and corrected API documentation. #1212
  • Pods will now try to gracefully exit when receiving sigterm #1194

Usage Requirements

  • Kubernetes Version >= v1.10
  • Golang Version >= v1.14

Installation

API Definitions

v1.0.0-rc.1

4 years ago

This is the v1.0.0-rc.1 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Assigned tickets will now automatically be deleted after a configured time. Default assignedDeleteTimeout = 10 minutes. #1211
  • Added API call to release all pending tickets. #1215 This enables callers through several API calls to delete all tickets.
  • matchfunction library now supports passing gRPC call options. #1205
  • Metrics for many Open Match concepts now exported by Open Match, and a page with charts added to Grafana. #1192 #1193
  • Refactor and greatly improved test coverage, fixing several bugs and ensuring stability going forward. #1204 #1176 #1196 #1189 #1194

Breaking Changes

  • Renamed several configuration values for consistency and clarity: #1206
    • ignoreListTTL -> pendingReleaseTimeout
    • pageSize/page.size -> queryPageSize
    • registrationIntervalMs -> registrationInterval
    • proposalCollectionIntervalMs -> proposalCollectionInterval
  • Default Evaluator now uses the main open match configmaps, removing the separate config maps. #1191

Breaking changes are only made if they fall within the stability guarantee.

Security Fixes None.

Enhancements

  • Updated development guide. #1182
  • Fixed installing open match by default installing the integration test components. #1213
  • Improved error messages in several cases. #1207
  • Improved and corrected API documentation. #1212
  • Pods will now try to gracefully exit when receiving sigterm #1194

Usage Requirements

  • Kubernetes Version >= v1.10
  • Golang Version >= v1.14

Installation

API Definitions

v0.10.0

4 years ago

v0.10.0

This is the 0.10.0 release of Open Match.

Check the official website for details on features, installation and usage.

Release Notes

Feature Highlights

  • Reworked the QueryService with an intermediate caching layer such that it could be scaled much better under high profile scenario. #1126 #1135
  • Added QueryTicketIds API to QueryService #1151
  • Added a built-in created_time field for Ticket proto. Added a created_before and created_after field for Pool proto to filter tickets by created_time. #1162
  • Added HA and failover supports via Redis sentinel #1038

Breaking API Changes - Previous releases are not compatible with this release.

  • Updated Open Match go module dependency from 1.13 to 1.14 #1133
  • Modified AssignTickets API to support bulk assignments. AssignTickets now returns repeated AssignmentFailure status if corresponding ticket assignment failed instead of failing the call #1155
  • Removed redis.expiration config and ticket auto-expiring logic from the statestore. Users now need to manually manage ticket deletion. #1146
  • Renamed GetAssignments to WatchAssignments. #1173
  • Changed Create/Get APIs to return resources directly and Delete APIs to return empty. #1173

Breaking Behavior Changes

  • Added some randomization on returned order of tickets to the QueryService #1127
  • Forbid ticket creations with Assignments #1160
  • Changed Backend service to return an error when observing duplicated matchIDs from multiple MMF calls. Changed Evaluator client to return an error if it found any duplicated/unexist matchIDs from the input/output #1167

Future releases towards 1.0.0 may still have breaking changes.

Enhancements

  • Improved Grafana dashboards with more detailed metrics
  • Reduced PING checks when releasing a Redis connection to pool to save health check overheads
  • New team-based shooter game benchmark scenario for Open Match scale test framework
  • Optimized part of the Redis queries for better CPU consumption

Usage Requirements

  • v1.10 <= Kubernetes Version
  • Golang Version = v1.14.x

This software is currently alpha, and subject to change. Not to be used in production systems.

Benchmark Numbers

Numbers are from running Open Match against the benchmarking framework

  • Open Match is able to scale to above 7000 Ticket QPS for the three scenarios that we implemented.
  • Additionally, it supports 3500 Ticket QPS in the modified TeamShooter scenario with 1000 profiles.

Installation

Follow Open Match Installation Guide to set up Open Match in your cluster.

API Definitions

Available both in SwaggerUI and API references.