Multiplayer lobby is a group of room-based capabilities, not a set of unrelated features. The recommended integration order is: join a room first, then use realtime messaging, state sync, RPC, or Mirror transport inside the room.
| Capability | Purpose | Prerequisite |
|---|
| Rooms | Manage join, ready, start, finish, and leave | Launched by IGP desktop client |
| Realtime messaging | Send custom messages inside a room | Already joined a room |
| State and RPC | Sync room state and call remote logic | Already joined a room |
| Mirror transport | Let Unity Mirror projects reuse the IGP room data plane | Unity, Mirror, already joined a room |
| Engine | Status | Notes |
|---|
| Unity | Preview | Most complete multiplayer lobby support, including rooms, messaging, state, RPC, and Mirror transport. |
| GameMaker | Not supported | The first GameMaker release only covers desktop client capabilities and does not include room multiplayer. |
| Godot | In development | The preview runtime already has room, messaging, state, and RPC APIs. |
- Complete Startup and connection.
- Complete the minimal Rooms flow.
- Add Realtime messaging when synchronized events or chat are needed.
- Add State and RPC when shared room state or remote calls are needed.
- Add Mirror transport if the Unity project already uses Mirror.
| Engine | Minimum validation |
|---|
| Unity | Two clients can enter the same room, and after one client becomes ready the other client receives the room state change. |
| GameMaker | No multiplayer lobby validation currently. |
| Godot | Receives a room snapshot and can call ready or send one JSON message. |
- Messaging, state, and RPC are all unavailable: confirm the room was joined successfully first.
- Unity disconnects after a scene switch: check that only one
IGPRuntimeManager is kept.
- Mirror is unavailable: confirm the regular room flow first, then check the Mirror transport reference.
- Godot does not receive events: confirm autoload is registered and the room multiplayer connection is established.