top of page

Todo bloco é sólido — exceto quando não é

Foto do escritor: Marcel Dütscher
Marcel Dütscher
22 de jun.
1 min de leitura

O mesher do nosso cliente tem uma regra de ferro: todo bloco que não é ar é renderizado e tem colisão. Ponto. Essa simplificação deixa a geração de malhas rápida e o código simples — até que chega um recurso que quer quebrar justamente essa regra.


O Portão de Energia. Para nossas cercas de energia, queríamos um portão: uma membrana cintilante que jogadores e NPCs amigáveis atravessam sem problema, mas animais selvagens não. Ou seja, um bloco que é visível, mas não funciona como parede para alguns. Exatamente o que nossa arquitetura não prevê.


A solução vem em duas metades. No cliente, o mesher ganhou sua primeira exceção deliberada: o bloco do portão é renderizado, mas fica de fora da malha de colisão — os jogadores simplesmente passam. No servidor roda a lógica de verdade: os sistemas de movimento das criaturas verificam a cada passo se há uma barreira de energia no caminho. Animais selvagens e inimigos dão meia-volta, companheiros e jogadores passam. Essa verificação precisou entrar nos três sistemas de movimento — animais selvagens, companheiros, inimigos planetários — senão um tipo de criatura não “conheceria” o portão.


A nota de rodapé honesta: criaturas voadoras deslizam direto por cima da cerca. Isso não é um bug, é uma limitação documentada — uma cerca simplesmente não detém nada que voa. Preferimos anotar lacunas deliberadas como essa a escondê-las.


O que fica: regras de arquitetura como “tudo que não é ar é sólido” são valiosas justamente porque são simples. Mas é preciso saber onde mora a única exceção — e por que ela mora ali.

Posts recentes

Ver tudo

Comentários


Não é mais possível comentar esta publicação. Contate o proprietário do site para mais informações.
bottom of page