Devlog

Devlog #12 · Bot client e testes de carga

Antes de abrir acesso real, o servidor precisa ser pressionado por clientes artificiais. Não para parecer bem em benchmark — para descobrir o que quebra.

Foi criado um binário dedicado para isso: o bot client. Subir N bots UDP, conectar no servidor real, enviar input real e medir o que acontece. Não mock. O caminho completo.

O bug que o bot encontrou

Durante os primeiros testes, os bots conectavam mas parte dos inputs não entrava no caminho real do servidor. O handshake retornava sem devolver o ID oficial da conexão para o cliente. Os bots enviavam input com IDs que o servidor não reconhecia — tudo parecia funcionar, mas nada estava sendo provado.

A correção foi no handshake: o servidor passa a devolver o connection ID oficial no ACCEPT. O bot usa exatamente o ID atribuído. Sem essa correção, qualquer benchmark de carga era um número bonito que não provava nada.

O soak com carga real

Com o bug corrigido, 100 bots rodaram por 60 segundos enviando input real. Resultado: 119.926 inputs recebidos, zero drops. 253.326 frames processados. RTT p50 e p99 ambos em 42 ms.

Bench / validação
— 100 bots / 60 s / modo headless
— 119.926 inputs recebidos / 0 drops
— 253.326 frames processados
— RTT p50: 42 ms / RTT p99: 42 ms
— 100/100 bots ativos ao fim do soak
— 499 testes passando

Próximo: a fundação de combate — o sistema que faz hit, dano, projétil e efeito existirem.