# Developer Integration & SDK Support

Alliance Games provides an intuitive SDK that integrates seamlessly with the Unity 3D game engine. The SDK is fully compatible with **Netcode for GameObjects**.

### **SDK Abstraction and Multi-Language Support**

To ensure **platform independence**, developers can implement session logic in any programming language. The platform currently supports:

* **C# for Unity**
* **C++ for Unreal Engine**
* **JavaScript for Web Applications**

The SDK includes:

* **WebSocket transport layer** (default)
* Support for **UDP/TCP** in future releases
* A common module for **marshalling, forwarding, and connection handling**

The SDK is structured as follows:

* **Server Module**: Handles server-side communication and node interactions.
* **Client Module**: Manages client-side session logic and matchmaking.
* **Common Module**: Core logic for data exchange, independent of language.

Future versions will implement **native C-based functionality** to minimize overhead and improve performance across languages.

### **Propagation and Deployment Mechanism**

The system uses **Docker** for runtime isolation and execution. The process includes:

1. **Code Submission**: Developers upload session logic in a zipped format.
2. **Containerization**: The system verifies and packages the code into a Docker image.
3. **Health Check**: The image is tested in an isolated mode before deployment.
4. **Versioning & Storage**: The verified image is pushed to the registry.
5. **Network Distribution**: Nodes fetch and deploy images on demand.

Future plans include moving the Docker registry to a **decentralized storage system**, allowing further decentralization of game logic execution.
