Matchmaking

The matchmaking provides a powerfull service to group players together in teams.

Coherence.Play.Matchmaking

The matchmaking module has only one method.

// Invoked on success/failure
public delegate void OnMatch(Result result, MatchResponse match);

// The data for every player returned by the matchmaking request
public struct PlayerPayload
{
    public string user_id;
    public string team;
    public int score;
    public string payload;
}

// The response of the matchmaking request
public class MatchResponse
{
    public string match_id;
    public PlayerPayload[] players;
    public string error;
}

public static class Matchmaker
{
    // Sends matchmaking request.
    // region:  matchmaking region, e.g. eu, us, ...
    // team:    team name
    // payload: custom string that will be send to all other players
    public static void Match(string region, string team, string payload, OnMatch callback)
    
    // Sends a matchmaking request
    // region:  matchmaking region, e.g. eu, us, ...
    // team:    team name
    // payload: custom string that will be send to all other players
    // tags:    custom tags to segment the player pool, e.g. "level1", "qa", etc
    // friends: group the player with his friends. If any of the friends doesn't show up the request will fail
    public static void Match(string region, string team, string payload, string[] tags, string[] friends, OnMatch callback)
}

Example

Matchmaker.Match("eu", "blue", "car:volvo,rifle:glock", (res, match) => {
    if (res == Result.Timeout) {
        // timed out, inform the player
        return
    }
    
    // match.players contain all the matched players and their data
    // including the this player
}

Last updated