feat: Add multiplayer networking architecture and documentation updates

- Updated Master Blueprint Index to include Multiplayer Networking support.
- Added detailed Multiplayer Networking sections across all developer documentation (01-11).
- Introduced authority maps, key patterns, and RPC guidelines for each system.
- Established a comprehensive multiplayer networking architecture document outlining core principles, replication strategies, and anti-cheat considerations.
- Enhanced UI documentation to clarify local-only behavior and binding to replicated dispatchers.
- Implemented client prediction strategies and RPC naming conventions for consistency across the framework.
This commit is contained in:
Lefteris Notas
2026-05-19 17:15:57 +03:00
parent b2b6e1e7c7
commit 8bc731e5ae
35 changed files with 1259 additions and 11 deletions

View File

@@ -377,4 +377,28 @@ MainMenu → Loading → InGame ⇄ Paused
---
## Multiplayer Networking
### Category Authority Map
| System | Role | Authority |
|--------|------|-----------|
| `GI_GameFramework` | GamePhase, session flags | Server sets; clients read via replicated dispatcher |
| `GM_CoreGameMode` | Player spawning, chapter transitions, death routing | Server-only (extends replicated GameMode) |
| `GS_CoreGameState` | Shared session state bus | **Fully replicated** — 5 vars with OnRep handlers |
| `GI_GameTagRegistry` | Tag documentation | Read-only config — identical on all clients |
| `FL_GameUtilities` | Static utilities | No state — callable from any side |
| `I_InterfaceLibrary` | Communication contracts | Interface calls work on any side; mutators must check authority |
| `DA_ItemData` | Item definitions | Read-only Data Asset — identical on all clients |
### Key Patterns
- **GS_CoreGameState as Replication Hub:** All shared session state (chapter, phase, objectives, encounter status) writes through GS_CoreGameState which auto-replicates to all clients via OnRep → dispatcher.
- **GamePhase transitions are server-authoritative:** `SetGamePhase()` checks `HasAuthority()`. Clients receive phase changes via `OnRep_GamePhase``OnGamePhaseChanged` dispatcher.
- **Interface calls route through server:** `I_Interactable.Execute_OnInteract` must be called server-side. Clients call `Server_Interact` RPC → server validates → calls interface.
- **Data Assets are client-ready:** All `DA_*` assets load identically on all instances from disk. No replication needed.
### Full Spec
See [`docs/architecture/multiplayer-networking.md`](../architecture/multiplayer-networking.md) Section 3.1.
---
*Developer Reference v1.0 — 01 Core Foundation Systems. Companion to docs/blueprints/01-core/ specs.*