Idem Matchmaking Documentation

website·Indexed 32 days ago

https://docs.idem.gg

Documentation for Idem, a matchmaking service for multiplayer games. It features player-based and server-based architectures, a stateless self-hosted option, and integrations with Unity, Unreal Engine, Steam, Firebase, Hathora, and Edgegap. The platform provides REST and WebSocket APIs for managing matchmaking queues, player stats, leaderboards, and seasonal rating systems.

Tokens
22.7K
Snippets
65
Records
155
Agent score
55%

What's inside Idem

  1. Overview of Season resets in the rating system

    The rating system supports seasons. Starting a new season for a game results in the ranking points of all players being reset to 0. Optionally, rating points can be adjusted toward the new player default by a specific factor. To ensure consistency, only one season can be active across all game modes for a specific game_slug per stage (e.g., beta, int, prod).
  2. Overview of Player-based Matchmaking Architecture

    In the Player-based architecture, the game client on the player's machine connects directly to Idem to submit itself to matchmaking. When a match is found, Idem automatically triggers a game server instance via a supported hosting provider. This architecture exclusively supports WebSocket connections for communication between the client and Idem.
  3. Overview of Idem Cloud matchmaking services

    Idem Cloud provides matchmaking-as-a-service for multiplayer games, focusing on skill management and match optimization. Key features include:

    • Bayesian MMR: High-precision skill ratings for fair matchmaking.
    • Ranking and Leaderboards: Systems designed to encourage active play and prevent rank camping.
    • Probabilistic Matchmaking Algorithm: Optimized match discovery for any game setup regardless of time of day.
    • Additional Support: Integration with server hosting providers and support for player parties.
  4. Overview of Idem Self-hosted matchmaking

    Idem Self-hosted is a lightweight, stateless, container-based matchmaking solution designed to run within a developer's own infrastructure without external dependencies. It supports multi-use deployment (one container for multiple games or modes) and offers two algorithm tiers: a 'Basic' community edition for getting started and an 'Advanced' probabilistic matchmaking tier for optimal match creation regardless of player volume.
  5. Integrate Hathora Cloud with Idem Matchmaker

    Hathora Cloud can be used as the game server provider for Idem's player-based architecture. In this setup, the game client connects directly to Idem's matchmaker; once a match is found, Idem automatically launches a game server room on Hathora and returns the connection details to the players, removing the need for a custom backend orchestration layer.
  6. Integrate IDEM Matchmaking into Pragma

    Pragma can be configured to use IDEM's matchmaking via the IdemIntegrator plugin. This plugin manages the interaction between Pragma and IDEM and is written in Kotlin. The integration involves adding the IDEM client library to the Pragma ext module and implementing logic within the Matchmaking and GameInstance plugins.
  7. Integrate Idem with the Redwood Framework

    Redwood is a multiplayer development framework built on Unreal Engine 5. Idem is natively integrated into Redwood to provide infrastructure for multiplayer games. For detailed implementation and usage of Idem within the Redwood ecosystem, refer to the official Redwood ticketing provider documentation.
  8. Understand Steam Lobby integration and Waiting Rooms

    Idem integrates with Steam Lobbies to enable friends to join matchmaking together in player-based architectures. This is achieved through waiting_rooms, which allow players submitted independently to wait for each other before being submitted to matchmaking as a single party. A waiting room is uniquely identified by a Steam lobbyId and a custom sessionId. Idem verifies the lobby's existence on Steam and checks the member list to ensure only authorized players are added to the waiting room.
  9. Use IP-based server location with Edgegap

    When using Edgegap as a server provider with player-based architecture, Edgegap automatically selects the optimal server location based on player IPs. However, you must still provide a servers list (either as a Location List or Ping-map) with each request. The matchmaker uses this list to ensure players have a sufficiently low latency between them before Edgegap finalizes the specific server location for the match.
  10. Manage player queue status via WebSocket connections

    In the player-based architecture, players are automatically removed from the matchmaking queue as soon as their WebSocket connection breaks. Because of this, the removePlayer action is not used.

    Caveat: There may be a short delay (1-2 seconds) before the system processes a disconnection. If a client attempts to rejoin immediately, they may receive a partyExists... message. Developers should implement a basic retry mechanism to handle this race condition.

  11. Integrate Gameye game server orchestration with Idem

    Gameye allows you to host multiplayer games across multiple providers and locations. When using Idem's player-based architecture, Idem can launch game servers on Gameye on your behalf and provide connection details directly to the game client, removing the need for a custom backend. To integrate, first set up your game-server image following Gameye's documentation and verify it launches via their API before configuring it in Idem.