networking-fase-d-2026-06-14
[YAW-BODY-ORIENT] commit conjunto cliente + servidor. Sintoma: ao apertar D o proxy virava ~45 graus de uma vez, em vez de virar igual ao player local (suave, so um pouco), e parado seguia o mouse. Raiz: a fonte de verdade do yaw estava errada. O servidor derivava simpleYawDeg de atan2(velocidade) INSTANTANEO ao mover (snap pra direcao do movimento) e da mira (ControlRotation) ao parar -- nenhum dos dois e o yaw do corpo do dono. Correcao ponta-a-ponta: - Cliente: envia GetActorRotation().Yaw (yaw do CORPO; o CMC ja orienta pra direcao do movimento a 500 deg/s e bUseControllerRotationYaw=false faz o MOUSE nao girar o corpo) no lugar de GetControlRotation().Yaw. - Servidor: usa o yaw recebido DIRETO em simpleYawDeg (remove atan2 instantaneo + mira-no-idle). - Proxy: replica Snapshot.YawDeg interpolado shortest-path (remove a derivacao por Atan2 da velocidade). Resultado: o proxy vira identico ao corpo do dono e o mouse nao gira o corpo. Futuro (aim/combate/Motion Matching): adicionar um campo aimYawDeg dedicado em vez de reusar este. Co-Authored-By: Claude Opus 4.8 <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%