Devlog #2 · Medir antes de escalar
Depois de ter um servidor que simulava o mundo, veio uma pergunta fundamental: como saber o que está acontecendo dentro dele?
MMO não quebra no primeiro minuto. Quebra depois de horas: memória crescendo devagar, fila acumulando, cache errando, tick ficando mais pesado por algum sistema que ninguém estava medindo. Sem ferramentas de observabilidade, você está construindo às cegas.
Tunables e feature flags
Todos os parâmetros relevantes — cadência de save, tamanho de pool, janelas de tick, limites de AOI — ficaram acessíveis como tunables ajustáveis em runtime, sem rebuild. Feature flags permitem ligar e desligar sistemas inteiros com segurança. Cada sistema novo entra atrás de flag: se algo quebrar em produção, tem botão de desligar.
Métricas, profiling e soak
Mais de 69 métricas foram expostas: latência de sistemas internos, profundidade de filas, crescimento de memória, contadores de erro. Histórico circular de 256 amostras por caminho de latência. Exportação em JSON e Prometheus para dashboards externos.
Soak tests longos (60 min+) passaram a ser gate obrigatório para qualquer sistema novo. Problema de "tempo passando" não aparece em benchmark de segundos.
Replay e sessão gravada
O servidor ganhou capacidade de gravar e reproduzir sessões deterministicamente. Um bug que acontece depois de 30 minutos pode ser reproduzido em segundos.
Bench / validação
— Tunables: get e set abaixo de 1 ns mediano
— Feature flags: checagem abaixo de 1 ns mediano
— Soak smoke: 60 s / 1.000 entidades / 0 erros / RSS estável ~18 MB
— 69+ métricas ativas / latência em 4 caminhos internos / histórico de 256 amostras
Próximo: sistema espacial — a grade que permite ao servidor saber quem está perto de quem.