86df9478d4c07f46acf9c165fec053d3bbe8a0a1
Implementa o padrao Source/Quake/Unreal: o proxy nao aplica mais a posicao recebida diretamente — empurra para um buffer ordenado de snapshots e o Tick interpola entre os dois snapshots que cercam (server_now - InterpolationDelayMs). - Novo USTRUCT FZMMOProxySnapshot guardado em TArray ordenado por ServerTimeMs (insercao defensiva + dedupe; UDP pode trocar ordem). - ApplyEntitySnapshot vira "push to buffer"; estabelece o offset de relogio na primeira amostra (local_now - server_time). Mudanca de bGrounded continua aplicada imediatamente (MovementMode) para o pulo nao herdar o delay de interpolacao. - Tick acha o par (A,B), faz Lerp em pos/vel/yaw; extrapolacao curta clampada por MaxExtrapolationSeconds quando faltam snapshots futuros. - Aceleracao derivada agora vem da curva interpolada (mais estavel que a derivada snapshot-a-snapshot anterior). Fallback sintetico de accel para o AnimBP do Quinn preservado. - Removido o line-trace de Z (causava oscilacao apos a interpolacao; a Z autoritativa do dono ja vem no snapshot, ADR 0041). - Separacao explicita AuthoritativePosCm vs InterpolatedPosCm, com LastSnapshotPosition mantido como alias para compat de Blueprint. - Defaults: InterpolationDelayMs=100, SnapshotBufferCapacity=8, MaxExtrapolationSeconds=0.1 (UPROPERTY EditAnywhere para tunar em PIE). - Log Verbose 1x/s com renderLagMs, interpAlpha, flag de extrapolacao. Co-Authored-By: Claude Opus 4.7 (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%