6968ac4656f1b75ce411d25df6a7f0b328ce5ed0
ZMMOWorldSubsystem: - Bind dos delegates + replay do cache de proxies remotos movidos de Initialize pra OnWorldBeginPlay. Initialize roda muito cedo no pipeline de LoadMap (antes do GameMode ser instanciado e do WorldPartition terminar de carregar cells) — atores dinamicos spawnados ali eram perdidos durante o setup posterior do mundo. - Replay agora acontece quando o World REALMENTE comeca (GameMode ativo, cells inicializadas) — proxies remotos persistem. WireHelpers.h (novo): - Helpers de leitura/escrita binarios LE/UTF-8 (ReadU8/U16/U32/U64/ Float/StringUtf8/Uuid16 + Write*) como inline em namespace ZMMOWire. Substitui anonymous namespaces duplicados que existiam em 3 telas do FrontEnd. UBT Adaptive Build agrupava os .cpp em unity files diferentes; quando reorganizava as unities, dois arquivos caiam na mesma TU e os anonymous namespaces colidiam (ODR violation — "funcao ja tem corpo"). - inline em header tem semantica de "uma definicao por programa", resolvendo a colisao independente de como o UBT organize unities. UIServerSelectScreen_Base, UIUserLobbyScreen_Base, UICharacterCreatePage_Base: - Removidas as definicoes duplicadas, agora usam ZMMOWire::* via using-declarations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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/—AZMMOPlayerControllercom Enhanced Input + virtual joystick opcional.Source/ZMMO/Game/Modes/—AZMMOGameModeeUZMMOGameInstance(auto-connect ao servidor Zeus emInit).Source/ZMMO/Game/Network/—UZMMOWorldSubsystem(registryEntityId -> AActor*, dispatch dos delegates doUZeusNetworkSubsystem).
Dependencias
- Unreal Engine 5.7
- Plugin
ZeusNetwork(do projecto servidor, emServer/Plugins/Unreal/) - Plugin
ZeusMapTools(editor-only, opcional)
Smoke test
- Servidor Zeus a correr em
127.0.0.1:27777. - Abrir
ZMMO.uproject, aguardar build do moduloZMMO. - PIE: confirmar
[Zeus] Connected to server 127.0.0.1:27777no Output Log e o spawn do pawn local comEntityIdautoritativo.
Configuracao
bAutoConnectOnStart(defaulttrue) emUZMMOGameInstance. Desligar quando existir UI de login.Config/DefaultEngine.iniapontaGlobalDefaultGameMode=/Script/ZMMO.ZMMOGameMode.
Description
Languages
C++
93.1%
C
5.2%
C#
1%
Python
0.5%
PowerShell
0.2%