Core Managers
Overview
The Core Managers are the backbone of the HoloMIT networking architecture. They are responsible for managing the state of the application, handling real-time communication, and orchestrating the flow of data between the Unity client and the backend servers.
To ensure separation of concerns and maintainability, all core managers follow a strict two-layer architecture:
- Controller Layer (High-Level): Acts as the public API for the Unity scene. Controllers are typically implemented as Singletons that persist across scenes (
DontDestroyOnLoad). They handle business logic, expose C# events (Actions), and manage Unity-specific data structures. - Wrapper Layer (Low-Level): Handles the actual network transport layer. Wrappers manage
SocketIOconnections, execute REST API calls via HTTP, parse JSON payloads, and define the low-level communication grammar with the servers.
This separation allows developers working on the Unity client to interact with the high-level Controllers without needing to understand or manage the underlying networking protocols handled by the Wrappers.
The Three Pillars
HoloMIT relies on three primary managers, each handling a distinct domain of the networking stack. For detailed technical documentation, please refer to their respective sections:
1. Session Manager
The gateway to the volumetric rooms. It handles the lifecycle of the connection, managing user logins, room creation, joining/leaving sessions, and establishing the Master/Client relationship.
2. Event Manager
The synchronous heartbeat of the room. It manages all real-time scene interactions, physics synchronization, and custom gameplay messages. It uses a strongly-typed message forwarding system to broadcast interactions efficiently across all connected clients.
3. Media Manager
The heavy lifter for volumetric data. It orchestrates the transmission and reception of Volumetric Video, Point Clouds, and Audio via Selective Forwarding Units (SFUs), as well as managing the playback of pre-recorded VOD (Video on Demand) content.