LogoLogo
English
English
  • Diarkis Help Center
  • Overview of Diarkis
  • Getting Started
    • Diarkis Server Template
    • Diarkis Client SDK
    • Tutorials
      • 1. Launch Diarkis Server in Local Environment
      • 2. Perform Connectivity Check with Test Client
      • 3. Implement Custom Command
      • Connect to Server from Diarkis Client
    • Samples
  • Diarkis Modules
    • Room Module
      • Set Up Room Module on Server
      • Room Sample
        • room_broadcast
      • Utilizing Room Module from Client
      • Additional Features of Room
    • MatchMaker Module
      • Set Up MatchMaker Module on Server
    • Field Module
      • Set Up Field Module on Server
    • P2P Module
      • Set Up P2P Module on Server
      • P2P Sample
    • DM (Direct Message) Module
      • Set Up DM Module on Server
    • Notifier Module
      • Set Up Notifier Module on Server
    • Session Module
      • Set Up Session Module on Server
    • Group Module
      • Set Up Group Module on Server
  • Diarkis Server
    • Launch Diarkis Server in Cloud Environment
      • AWS
    • Launch Diarkis Server on Windows Environment
    • MARS Server
    • UDP Server
    • TCP Server
    • HTTP Server
    • Metrics API
    • Inter-server Communication - Mesh
  • Diarkis Client
    • Runtime Library
      • Diarkis RUDP
    • Diarkis Module
      • Initialization and Termination of Diarkis Module
      • Customization of Diarkis Module
      • Logging System of Diarkis Module
      • Migration
      • Threads of Diarkis
    • Samples
      • C++
        • room_broadcast
        • directmessage_simple
        • group_sample
        • matching_and_turn
        • matchmaker_ticket
        • p2p_rudp_sample
        • session_simple
      • Unreal Engine Plugin
        • FieldWalker
      • Unity Plugin
        • FieldWalker
          • HowToReplicatePosition.md
  • Diarkis Tools
    • Diarkis CLI
      • Procedures to Switch to Diarkis CLI v3
  • References
    • API Reference
    • Release Notes
      • v1.0
      • v1.0.1
      • v1.0.2
      • v1.0.3
      • v1.0.4
      • v1.0.5
      • v1.0.6
  • Support
    • License and Billing
Powered by GitBook
On this page
  • Overview
  • What is Diarkis Room?
  • Features of Diarkis Room
  • Diagram of Packet Exchange in Diarkis Room (Broadcasts and Messages)
  • Diarkis Room Objects (State Synchronization)

Was this helpful?

  1. Diarkis Modules

Room Module

Diarkis Room is a server-mediated communication module that establishes a shared logical space for multiple clients to exchange packets and synchronize state data in real time. It supports low-latency

PreviousDiarkis ModulesNextSet Up Room Module on Server

Last updated 28 days ago

Was this helpful?

Overview

The Diarkis Room module provides a server-relay-based digital environment designed for packet exchange between multiple remote clients, supporting high-performance, low-latency communication for real-time, fast-paced applications such as multiplayer games.

Each Diarkis server instance can manage multiple concurrently active rooms, with each room individually configurable to define participation limits and behavioral parameters. Rooms serve as isolated communication spaces, enabling efficient routing and encapsulation of messages between participants.

In addition to its core relay functionality, Diarkis Room also acts as a (Traversal Using Relays around NAT) server, providing fallback routing support for Diarkis P2P connections in environments where direct peer-to-peer communication is restricted by NAT or firewall constraints.

For configuration options, implementation guidance, and supported message operations, consult the .

What is Diarkis Room?

Diarkis Room is a core module within the Diarkis middleware suite that establishes a server-managed communication environment (or "room") where multiple remote clients can exchange packets in real time. Designed for latency-sensitive, stateful applications such as online multiplayer games and distributed simulations, Room provides a structured server-relay system that manages client presence, message delivery, and object synchronization within a defined scope.

Usage Context:

Diarkis Room is ideal for scenarios requiring reliable server-mediated state synchronization, such as:

  • Real-time multiplayer game sessions

  • Tactical simulation exercises

  • Interactive training environments

  • Synchronized control interfaces

For detailed integration instructions and operational parameters, refer to the Diarkis Server SDK and API Documentation.

Features of Diarkis Room

Key Capabilities:

  • Multi-User Room Architecture: A single Diarkis server can host multiple concurrent rooms, each functioning as an isolated logical namespace. Each room can be configured to limit maximum participant count, message size, and object interaction rules.

  • Packet Routing via Server Relay: All communications within a room are relayed through the Diarkis server, enabling consistent message delivery, ordering, and state integrity across clients, regardless of their physical location or network condition.

  • Entity and Object Management: Room supports the creation, updating, and deletion of shared objects (e.g., avatars, units, game state entities). These objects can be synced across all room participants via efficient delta broadcasting or full state refreshes.

  • Unicast, Multicast, and Broadcast Messaging: Clients within a room can send messages directly (unicast), to selected peers (multicast), or to all other participants (broadcast), with routing handled by the server for consistency and bandwidth optimization.

  • TURN Functionality for Diarkis P2P Fallback: Diarkis Room also serves as a TURN relay endpoint for Diarkis P2P connections, providing a fallback path for NAT traversal in cases where peer-to-peer sessions cannot be established directly due to network restrictions.

Diagram of Packet Exchange in Diarkis Room (Broadcasts and Messages)

The diagram below illustrates the packet exchange mechanisms within the Diarkis Room module.

Diarkis Room supports two primary communication methods between connected clients:

  1. Broadcast: A broadcast transmits a message from one client to all other participants within the room. This is typically used for state updates, global events, or synchronization signals that must be received by every client in the session.

  2. Targeted Message (Multicast/Unicast): A message can be directed to one or more specific clients within the room. This enables selective communication—such as private actions, team coordination, or scoped interactions—while minimizing unnecessary network load.

Both methods leverage the server-relay architecture of Diarkis Room to ensure reliable, ordered delivery and consistent communication across distributed clients.

Diarkis Room Objects (State Synchronization)

Diarkis Room includes built-in support for object-based state synchronization among connected members. Room objects are dynamically created, updated, and deleted by clients within the room, with all changes automatically propagated to other members in real time via the Diarkis server-relay architecture.

Each object instance maintains a unique identifier and associated property set, allowing clients to modify object state (e.g., position, status, metadata) through defined operations. Diarkis ensures low-latency, consistent replication of these updates across all participants, enabling synchronized gameplay or interaction logic without manual polling or custom messaging protocols.

This model is ideal for applications requiring shared real-time entities, such as avatars in a multiplayer game, interactive devices in a simulation, or synchronized UI elements in collaborative environments.

TURN
Diarkis Server API Documentation