Case técnico · software · infraestrutura · arquitetura

MundoZ

Um servidor Minecraft que cresceu até começar a exigir decisões de plataforma.

O MundoZ começou como um servidor survival e, com o tempo, passou a reunir sistemas próprios de gameplay, segurança, economia, proteção, modos de jogo especializados e infraestrutura de múltiplos servidores.

Minecraft continua sendo a plataforma onde tudo isso é executado, mas o interesse técnico do projeto está nos problemas que surgiram conforme seus componentes cresceram e passaram a depender uns dos outros.

Hoje o MundoZ é um dos principais ambientes onde estudo desenvolvimento server-side, arquitetura de software, redes, persistência, integração, manutenção e evolução de sistemas.

Java Fabric Velocity Linux WireGuard Arquitetura

Evolução

A arquitetura não nasceu pronta. Ela apareceu conforme os problemas apareceram.

O projeto começou simples. Cada nova necessidade acrescentou responsabilidades até que separar sistemas e definir fronteiras passou a ser mais importante do que simplesmente adicionar novas funcionalidades.

01

Survival

Um servidor persistente criou o ambiente real onde necessidades de operação, gameplay e segurança começaram a surgir.

02

Sistemas próprios

Mods passaram a assumir responsabilidades de economia, proteção, comportamento de mobs, segurança e outras regras do ambiente.

03

Servidores especializados

Speedrun / Manhunt passou a exigir ciclo próprio e isolamento, levando à separação em outro servidor.

04

Plataforma

Quando estado e identidade precisaram atravessar servidores, surgiu a necessidade de contratos e serviços compartilhados.

Arquitetura atual

Servidores independentes, conectados por infraestrutura comum.

Survival e Speedrun possuem responsabilidades próprias. O Velocity atua na camada de entrada e transferência. A necessidade de dados compartilhados revelou uma nova questão: quais informações realmente pertencem à plataforma e quais devem permanecer dentro de cada domínio?

Entrada / transferência

Velocity

Proxy e infraestrutura de roteamento entre servidores.

Servidor persistente

Survival

Land Protection
MineEconomy
AntiXray
AntiFly
outros módulos

Servidor especializado

Speedrun / Manhunt

sessões
matchmaking
runner / hunter
ciclo independente
transferência / retorno

Planejamento arquitetural

MundoZ Core

Ainda não implementado. A responsabilidade dessa camada está sendo definida a partir das necessidades reais de estado e identidade compartilhados.

Speedrun / Manhunt

O projeto que transformou um servidor em uma arquitetura multi-servidor.

O Speedrun começou como um modo de jogo, mas suas necessidades de isolamento, ciclo próprio de mundo e gerenciamento de participantes tornaram natural executá-lo em um servidor separado.

A partir daí, o problema deixou de ser apenas gameplay: jogadores precisavam ser registrados, agrupados, transferidos para o servidor correto e depois retornar ao ambiente de origem.

O projeto está ativo e continua em evolução. Parte do trabalho restante depende das decisões sobre estado compartilhado e MundoZ Core.

Sessões

Participantes deixam de ser apenas jogadores conectados e passam a fazer parte de uma sessão com estado próprio.

Matchmaking

Registro e agrupamento antecedem a criação e inicialização da partida.

Transferência

Velocity e gateway próprio permitem encaminhar participantes entre ambientes sem criar dependência direta entre os servidores de jogo.

AntiXray v2

Um projeto menor usado para amadurecer uma forma melhor de evoluir software.

A primeira versão do AntiXray já resolvia o problema de ocultar recursos no envio dos chunks. A v2 não nasceu simplesmente para adicionar funcionalidades, mas para reorganizar responsabilidades e tornar futuras atualizações mais seguras.

Antes de alterar o comportamento, a implementação atual foi documentada. Regras de domínio passaram a ser separadas das dependências específicas do Minecraft, decisões começaram a ser registradas e testes independentes da execução do jogo passaram a fazer parte do objetivo arquitetural.

Comportamento atual

Documentar antes de substituir.

Domínio

Regras separadas da infraestrutura quando isso traz clareza.

Decisões

ADRs e planos de migração registram o motivo das mudanças.

Integração

Mudanças pequenas, revisáveis e validadas antes de entrar na linha principal.

Land Protection

Quando uma regra local começa a ter significado entre servidores.

O Land Protection começou como um sistema de claims e proteção no Survival. Conforme suas responsabilidades cresceram, algumas informações passaram a levantar questões que ultrapassam o limite de um único servidor.

Isso criou uma pergunta arquitetural importante: quais regras continuam pertencendo ao domínio Land Protection e quais informações precisam ser compartilhadas pela plataforma?

Uma v2 orientada a domínio está em avaliação. Também está sendo avaliado se essa modelagem deve acontecer antes da implementação do MundoZ Core. Essa ordem ainda não foi decidida.

MundoZ Core · planejado

A necessidade está clara. A responsabilidade ainda precisa ser definida.

A ideia do Core surgiu quando o Speedrun passou a operar em servidor separado e informações do jogador precisaram sobreviver à transição entre ambientes.

Depois ficou claro que outros domínios também podem precisar de estado global. Isso tornou o Core mais importante do que parecia inicialmente.

Por isso, ele ainda não está sendo tratado como um simples banco central de dados. Antes da implementação, é necessário definir quais informações são globais, quais pertencem aos domínios e quais contratos realmente precisam existir.

Estado dos componentes

O MundoZ reúne sistemas em diferentes estágios de maturidade.

Ativo

Survival

Ambiente persistente principal.

Em evolução

Speedrun / Manhunt

Projeto ativo, com funcionalidades implementadas e dependências arquiteturais ainda em evolução.

Em evolução

AntiXray v2

Refatoração arquitetural orientada a domínio e manutenção futura.

Implementado

AntiFly

Detecção server-side para comportamentos de movimento incompatíveis com gameplay normal.

Funcional

Land Protection

Sistema atual de claims; possível v2 em avaliação.

Implementado

MineEconomy

Economia integrada ao ambiente Survival.

Implementado

Velocity Gateway

Componente de integração usado para transferência entre servidores.

Planejamento

MundoZ Core

Responsabilidades e contratos ainda sendo definidos.

O que mudou no processo

O crescimento do sistema mudou também a forma como eu desenvolvo.

Projetos mais recentes passaram a ser tratados com mais atenção à documentação, domínio, decisões arquiteturais e migração incremental.

Documentar

Entender e registrar o comportamento antes da mudança.

Modelar

Identificar regras, responsabilidades e fronteiras de domínio.

Migrar

Evoluir aos poucos preservando comportamento observável.

Validar

Revisar e testar antes de integrar mudanças.

Projeto em evolução

O MundoZ continua mudando conforme novos problemas aparecem.

O valor técnico do projeto está justamente nessa evolução: funcionalidades novas frequentemente revelam problemas de arquitetura que exigem compreender melhor responsabilidades, integração e manutenção.