# ZMMO — Cliente Unreal Zeus MMO Cliente Unreal Engine 5.7 do projecto Zeus. Implementa o pipeline "cliente solto + servidor valida input/velocidade" definido em ADR 0038 (landscape autoritativo no cliente; servidor reservado para colisao de objectos). ## Arquitectura - `Source/ZMMO/Game/Entity/` — `IZMMOEntityInterface`, `AZMMOEntity`, `AZMMOPlayerCharacter` (local, CMC livre), `AZMMOPlayerProxy` (remoto, snapshot-only). - `Source/ZMMO/Game/Controller/` — `AZMMOPlayerController` com Enhanced Input + virtual joystick opcional. - `Source/ZMMO/Game/Modes/` — `AZMMOGameMode` e `UZMMOGameInstance` (auto-connect ao servidor Zeus em `Init`). - `Source/ZMMO/Game/Network/` — `UZMMOWorldSubsystem` (registry `EntityId -> AActor*`, dispatch dos delegates do `UZeusNetworkSubsystem`). ## Dependencias - Unreal Engine 5.7 - Plugin `ZeusNetwork` (do projecto servidor, em `Server/Plugins/Unreal/`) - Plugin `ZeusMapTools` (editor-only, opcional) ## Smoke test 1. Servidor Zeus a correr em `127.0.0.1:27777`. 2. Abrir `ZMMO.uproject`, aguardar build do modulo `ZMMO`. 3. PIE: confirmar `[Zeus] Connected to server 127.0.0.1:27777` no Output Log e o spawn do pawn local com `EntityId` autoritativo. ## Configuracao - `bAutoConnectOnStart` (default `true`) em `UZMMOGameInstance`. Desligar quando existir UI de login. - `Config/DefaultEngine.ini` aponta `GlobalDefaultGameMode=/Script/ZMMO.ZMMOGameMode`.