Devlog

Devlog #10 · Primeira conexão viva

Esse foi o marco que muda tudo: o cliente UE5 real se conectou ao servidor e entrou no mundo.

Não um cliente de teste sintético. Não loopback. Um cliente Unreal Engine rodando de verdade, autenticando no auth server, completando o handshake UDP e recebendo entidades do mundo em frames binários reais.

Protocolo v4

O protocolo chegou à versão 4 com mensagens binárias definidas: MSG_SPAWN_BASELINE (entidade entrou na visão pela primeira vez), MSG_DELTA (posição ou estado mudou), MSG_DESPAWN (entidade saiu do campo de visão). O servidor empacota entidades visíveis nesses frames. Um cliente v3 não consegue decodificar v4 — a versão é verificada no handshake.

O loop vivo

O cliente enviou movimentos WASD via MSG_INPUT_MOVEMENT. O servidor aplicou movimento autoritativo e ecoou a posição canônica de volta. Do lado do cliente: entidades aparecendo na tela, posição respondendo ao input.

Login → conexão → spawn → movimento → eco de posição canônica.

Esse é o loop mínimo de um MMO funcionando de ponta a ponta. A partir daqui, tudo que entra é gameplay construído em cima de uma base provada.

Bench / validação
— Soak Phase 9: 1h / 100k entidades / protocolo v4 / movimento e eco de posição
— replication_framing_errors_total = 0
— position_echo_sent_total = 153.702 ecos enviados no soak
— Verificação humana: cliente UE5 real conectando, entidades visíveis, WASD respondendo

Próximo: controladores adaptativos — o servidor que aprende a se proteger sob carga.