Skip to content

Commit

Permalink
Merge branch 'release/1.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
intelligide committed Jun 5, 2020
2 parents f510818 + 55f5cda commit bfde72a
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 27 deletions.
8 changes: 4 additions & 4 deletions src/OpenMatch/OpenMatch.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netstandard2.1</TargetFramework>
<PackageId>OpenMatch.Api</PackageId>
<Title>OpenMatch Api</Title>
<Version>0.10.0</Version>
<Version>1.0.0</Version>
<PackageDescription>C# API for OpenMatch</PackageDescription>
<Authors>FrozenStorm Interactive</Authors>
<PackageLicenseFile>License</PackageLicenseFile>
Expand All @@ -26,9 +26,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Grpc.Net.Client" Version="2.27.0" />
<PackageReference Include="Google.Protobuf" Version="3.11.4" />
<PackageReference Include="Grpc.Tools" Version="2.27.0" />
<PackageReference Include="Grpc.Net.Client" Version="2.29.0" />
<PackageReference Include="Google.Protobuf" Version="3.12.3" />
<PackageReference Include="Grpc.Tools" Version="2.29.0" />
</ItemGroup>

</Project>
30 changes: 24 additions & 6 deletions src/OpenMatch/proto/api/backend.proto
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ message ReleaseTicketsRequest{

message ReleaseTicketsResponse {}

message ReleaseAllTicketsRequest{}

message ReleaseAllTicketsResponse {}

// AssignmentGroup contains an Assignment and the Tickets to which it should be applied.
message AssignmentGroup{
// TicketIds is a list of strings representing Open Match generated Ids which apply to an Assignment.
Expand Down Expand Up @@ -120,9 +124,11 @@ message AssignTicketsResponse {

// The BackendService implements APIs to generate matches and handle ticket assignments.
service BackendService {
// FetchMatches triggers a MatchFunction with the specified MatchProfile and returns a set of match proposals that
// match the description of that MatchProfile.
// FetchMatches immediately returns an error if it encounters any execution failures.
// FetchMatches triggers a MatchFunction with the specified MatchProfile and
// returns a set of matches generated by the Match Making Function, and
// accepted by the evaluator.
// Tickets in matches returned by FetchMatches are moved from active to
// pending, and will not be returned by query.
rpc FetchMatches(FetchMatchesRequest) returns (stream FetchMatchesResponse) {
option (google.api.http) = {
post: "/v1/backendservice/matches:fetch"
Expand All @@ -138,9 +144,8 @@ service BackendService {
};
}

// ReleaseTickets removes the submitted tickets from the list that prevents tickets
// that are awaiting assignment from appearing in MMF queries, effectively putting them back into
// the matchmaking pool
// ReleaseTickets moves tickets from the pending state, to the active state.
// This enables them to be returned by query, and find different matches.
//
// BETA FEATURE WARNING: This call and the associated Request and Response
// messages are not finalized and still subject to possible change or removal.
Expand All @@ -150,4 +155,17 @@ service BackendService {
body: "*"
};
}

// ReleaseAllTickets moves all tickets from the pending state, to the active
// state. This enables them to be returned by query, and find different
// matches.
//
// BETA FEATURE WARNING: This call and the associated Request and Response
// messages are not finalized and still subject to possible change or removal.
rpc ReleaseAllTickets(ReleaseAllTicketsRequest) returns (ReleaseAllTicketsResponse) {
option (google.api.http) = {
post: "/v1/backendservice/tickets:releaseall"
body: "*"
};
}
}
4 changes: 1 addition & 3 deletions src/OpenMatch/proto/api/frontend.proto
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,7 @@ service FrontendService {
}

// DeleteTicket immediately stops Open Match from using the Ticket for matchmaking and removes the Ticket from state storage.
// The client must delete the Ticket when finished matchmaking with it.
// - If SearchFields exist in a Ticket, DeleteTicket will deindex the fields lazily.
// Users may still be able to assign/get a ticket after calling DeleteTicket on it.
// The client should delete the Ticket when finished matchmaking with it.
rpc DeleteTicket(DeleteTicketRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/frontendservice/tickets/{ticket_id}"
Expand Down
22 changes: 12 additions & 10 deletions src/OpenMatch/proto/api/messages.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,18 @@ import "google/rpc/status.proto";
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";

// A Ticket is a basic matchmaking entity in Open Match. A Ticket represents either an
// individual 'Player' or a 'Group' of players. Open Match will not interpret
// what the Ticket represents but just treat it as a matchmaking unit with a set
// of SearchFields. Open Match stores the Ticket in state storage and enables an
// Assignment to be associated with this Ticket.
// A Ticket is a basic matchmaking entity in Open Match. A Ticket may represent
// an individual 'Player', a 'Group' of players, or any other concepts unique to
// your use case. Open Match will not interpret what the Ticket represents but
// just treat it as a matchmaking unit with a set of SearchFields. Open Match
// stores the Ticket in state storage and enables an Assignment to be set on the
// Ticket.
message Ticket {
// Id represents an auto-generated Id issued by Open Match.
string id = 1;

// An Assignment represents a game server assignment associated with a Ticket.
// An Assignment represents a game server assignment associated with a Ticket,
// or whatever finalized matched state means for your use case.
// Open Match does not require or inspect any fields on Assignment.
Assignment assignment = 3;

Expand All @@ -43,8 +45,8 @@ message Ticket {
// Optional, depending on the requirements of the connected systems.
map<string, google.protobuf.Any> extensions = 5;

// Create time represents the time at which this Ticket was created. It is
// populated by Open Match at the time of Ticket creation.
// Create time is the time the Ticket was created. It is populated by Open
// Match at the time of Ticket creation.
google.protobuf.Timestamp create_time = 6;

// Deprecated fields.
Expand All @@ -64,8 +66,8 @@ message SearchFields {
repeated string tags = 3;
}

// An Assignment represents a game server assignment associated with a Ticket. Open
// match does not require or inspect any fields on assignment.
// An Assignment represents a game server assignment associated with a Ticket.
// Open Match does not require or inspect any fields on assignment.
message Assignment {
// Connection information for this Assignment.
string connection = 1;
Expand Down
8 changes: 4 additions & 4 deletions src/OpenMatch/proto/api/query.proto
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ message QueryTicketIdsResponse {
service QueryService {
// QueryTickets gets a list of Tickets that match all Filters of the input Pool.
// - If the Pool contains no Filters, QueryTickets will return all Tickets in the state storage.
// QueryTickets pages the Tickets by `storage.pool.size` and stream back responses.
// - storage.pool.size is default to 1000 if not set, and has a mininum of 10 and maximum of 10000.
// QueryTickets pages the Tickets by `queryPageSize` and stream back responses.
// - queryPageSize is default to 1000 if not set, and has a mininum of 10 and maximum of 10000.
rpc QueryTickets(QueryTicketsRequest) returns (stream QueryTicketsResponse) {
option (google.api.http) = {
post: "/v1/queryservice/tickets:query"
Expand All @@ -90,8 +90,8 @@ service QueryService {

// QueryTicketIds gets the list of TicketIDs that meet all the filtering criteria requested by the pool.
// - If the Pool contains no Filters, QueryTicketIds will return all TicketIDs in the state storage.
// QueryTicketIds pages the TicketIDs by `storage.pool.size` and stream back responses.
// - storage.pool.size is default to 1000 if not set, and has a mininum of 10 and maximum of 10000.
// QueryTicketIds pages the TicketIDs by `queryPageSize` and stream back responses.
// - queryPageSize is default to 1000 if not set, and has a mininum of 10 and maximum of 10000.
rpc QueryTicketIds(QueryTicketIdsRequest) returns (stream QueryTicketIdsResponse) {
option (google.api.http) = {
post: "/v1/queryservice/ticketids:query"
Expand Down

0 comments on commit bfde72a

Please sign in to comment.