# Diarkis Client

**Diarkis Client** is a lightweight, high-performance networking SDK designed for real-time, distributed applications such as **online multiplayer games**, **simulations**, and **edge-connected systems**. It serves as the client-side interface to the **Diarkis server cluster**, providing robust tools for seamless, low-latency communication, synchronization, and interaction across decentralized networks.

#### **Key Features and Capabilities**

**Protocol Support**

* **Supports UDP, TCP, and Diarkis RUDP (Reliable UDP)** for flexible communication across various network conditions.
* RUDP includes built-in **retransmission, packet ordering**, and **MTU fragmentation handling**, optimized for real-time reliability.

#### **Modular Communication Integration**

Diarkis Client integrates seamlessly with all core Diarkis modules, enabling developers to build sophisticated networked applications with modular, event-driven components:

* **MatchMaker:** Enables **real-time, decentralized matchmaking** with cluster-wide in-memory queue management. Supports dynamic team formation, backfill, and concurrent match operations without centralized bottlenecks.
* **Room:** Provides **server-relayed group communication** and **object synchronization**, allowing multiple users to interact within a shared digital space.
* **Session:** Facilitates lightweight **one-to-many messaging**, user presence tracking, and temporary shared property storage among session members.
* **Field:** Enables **cluster-wide spatial interaction**, allowing users to detect and exchange data with nearby entities across different servers based on positional data.
* **DM (Direct Message):** Supports **private, one-to-one communication** using a server-relay model with low configuration overhead.
* **P2P:** Establishes **direct peer-to-peer communication** with NAT traversal support and automatic **fallback to server-relay** when needed.
* **Notifier:** Delivers **unidirectional server-to-client broadcasts**, ideal for real-time alerts, global notifications, and session-wide event propagation.

**Cross-Platform Compatibility**

* Available in **C++** and **C#**, with dedicated plugins for **Unreal Engine** and a full SDK for **Unity Engine**, allowing seamless integration into existing game and simulation projects.
* Compatible with **Windows, macOS, Linux**, **iOS, Android,** and **game consoles such as PlayStation, Xbox, and Nintendo Switch**.

**Persistent Cluster Connectivity**

* Maintains an active connection with the Diarkis server cluster for **session persistence**, **state recovery**, and **resilient client-server communication**, even during server failovers or migration.

**Event-Driven Architecture**

* Built with an **event-driven communication model**, Diarkis Client allows developers to subscribe to and react to **network events**, such as user joins/leaves, object updates, message receptions, and connection status changes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.diarkis.io/en/diarkis-client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
