Devlog #1 · O motor que sustenta tudo
Antes de classes, chefes, magia ou mercado — existe a simulação.
Um servidor de MMORPG é uma máquina determinística: recebe input de centenas de jogadores, avança o estado do mundo em cadência fixa e envia o resultado de volta — sem soltar frames, sem acumular erro, sem travar sob carga. O primeiro marco foi construir essa máquina.
Entity Component System
O núcleo do servidor é um ECS próprio: toda entidade do mundo é um ID único com componentes associados (posição, vida, status, IA). Entidades com o mesmo perfil de componentes são empacotadas em memória contígua. Percorrer 10.000 posições é uma varredura que cabe no cache, não 10.000 acessos espalhados pela RAM.
Em um mundo com criaturas, jogadores e projéteis vivos ao mesmo tempo, a diferença entre "cabe no cache" e "espalhado na RAM" é a diferença entre servidor que aguenta e servidor que engasga.
O tick: um scheduler com batida
O servidor não roda quando dá. Ele roda em ticks — ciclos de cadência fixa onde sistemas executam em ordem previsível: receber input, rodar movimento, resolver mudanças, preparar replicação, commitar estado. O scheduler organiza isso em estágios com separação forçada entre fases de escrita e leitura.
Isolamento de panic, watchdog de travamento, medição por estágio e sinais de sobrecarga entraram desde o início. Um servidor que não consegue se diagnosticar em produção é um passivo.
Paralelismo com garantia de determinismo
Sistemas migraram para execução paralela por chunks com uma regra inegociável: resultado determinístico. O mesmo cenário em thread única e em 4 workers precisa produzir o mesmo digest de estado. Sem isso, paralelismo é só um bug difícil de reproduzir.
Bench / validação
— Stress: 100k entidades / 1000 ticks em release — zero corrupção de estado
— Overhead do scheduler: ~0.01 ms por tick (cenário sintético)
— Determinismo: digest de 10 ticks idêntico entre single-thread e 4 workers
— Pipeline com separação forçada write → read entre estágios
Próximo: o sistema espacial — a camada que diz ao servidor quem está perto de quem.