4d737829f5a2cdbbdfcb1e95e3d2ec525a04dcf1
Player remoto parado nao gera DELTA_BATCH (ComputeDelta suprime no server) -> o proxy fica "mudo": NewestMs congela, renderLagMs cresce 1:1 com o wall-clock -> extrapola sempre -> "anda no lugar" (moonwalk) e salta quando o player volta. Provado em log (secsSinceSnap subindo enquanto o remoto esta moving=0). NAO e' clock errado nem self-proxy (red-herrings descartados); o seed do relogio esta' OK. - Tick: quando faminto (extrap alem de MaxExtrapolationSeconds+0.15s), zera a vel visual -> proxy vai pra Idle em vez de moonwalk. - ApplyEntitySnapshot: anti-stale -- snapshot > 1000ms a frente do topo do buffer descarta o buffer + re-bootstrapa o ServerClockOffsetMs -> snap limpo (sem span gigante na interpolacao). Loga "buffer STALE gap=Xms -> reset+reseed". - Logs DIAG PERMANENTES (Warning, mantidos de proposito -- ver memoria project_proxy_delta_starvation_jitter): SEED clock + renderLagMs/newestMs/ secsSinceSnap/speed no Tick. Sonda anti-regressao. Cobre tambem o interserver: shadow proxies parados sofrem a mesma fome. Validado em jogo (user: "sem jitter nenhum"). Par server: PubV2-DIAG (mesmo Change-Set). Co-Authored-By: Claude Opus 4.8 (1M context) <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%