Argonalyst

Blocky Planet: Desafios de Voxels em um Mundo Esférico

Argonalyst
2 September 2025

Blocky Planet é uma demonstração tecnológica criada com o motor de jogo Unity, que busca mapear os voxels cúbicos do Minecraft em um planeta esférico. Este planeta é gerado de forma procedural e totalmente destrutível, permitindo que os jogadores coloquem ou removam mais de 20 tipos diferentes de blocos.

O projeto, embora utilize técnicas comuns encontradas em clones de Minecraft, apresenta desafios únicos devido à sua estrutura esférica. O foco deste post é discutir esses desafios inovadores.

**Como posso jogar?**
A versão mais recente está disponível gratuitamente na minha página do Itch.io. Embora esteja otimizada para Windows, existe uma versão jogável na web (com algumas limitações).

**Por que você criou isso?**
A inspiração veio de uma antiga demonstração tecnológica de Jordan Peck. Como um amante de jogos de geometria procedural e voxels, recriá-la parecia um desafio interessante. Também havia recursos ausentes que eu gostaria de implementar, como texturas de blocos e destruição em larga escala.

**Você transformará isso em um jogo completo?**
Provavelmente não, ou pelo menos não com o nível de polimento necessário para comercializar. Trabalhar em tempo integral limita bastante o tempo disponível para projetos paralelos, e a quantidade de trabalho necessária para passar de uma demonstração técnica a um produto final pode ser monumental. No entanto, posso lançar atualizações de vez em quando.

**Quanto tempo levou para fazer?**
Demorei pouco mais de um mês para codificar, dedicando cerca de 15 horas por semana. Minha experiência anterior com voxels facilitou, mas o principal desafio foi torná-lo esférico. Ironia das ironias, levou mais de duas vezes mais tempo para escrever e ilustrar este post do blog.

**Como você fez isso?**
Utilizei o Unity 6 com C#. Aproveitei bastante o sistema de Jobs do Unity e o compilador Burst, mas não optei por usar o DOTS. Pelo meu entendimento, parece exigir um esforço significativo para um ganho de desempenho moderado, além de carecer de alguns recursos básicos.

**Posso ver o código-fonte?**
Atualmente, não, mas posso torná-lo público mais tarde. O estado atual do código não é dos mais limpos, o que me impede de compartilhá-lo com orgulho.

**Qual pacote de texturas você usou?**
Todas as texturas foram meticulosamente criadas por mim, usando um editor de pixel art ou programaticamente via scripts. Curiosamente, muitas texturas do Minecraft podem ser aproximadas colorindo ruído aleatório.

Agora, vamos ao aspecto esférico. Construir uma esfera a partir de blocos é fácil com código, mas isso gera um planeta que não alinha a superfície com a direção da gravidade. Isso traz complicações ao tentar construir "para cima" ou andar pela superfície.

**A solução** envolve organizar os blocos de modo que suas faces verticais sempre se alinhem com a direção da gravidade. O problema é dividido em duas partes: mapear uma grade quadrada 2D em uma esfera 3D e preservar a largura dos blocos ao se mover para fora.

Historicamente, mapas 2D não podem ser transformados em esferas sem distorção. Para contornar isso, muitos desenvolvedores utilizam algo chamado quad sphere, que divide a esfera em seis setores equivalentes, um para cada face de um cubo.

A construção de uma quad sphere é simples: comece com um cubo, subdivida cada face em uma grade de quadrados e empurre cada vértice para fora até que esteja a uma unidade do centro.

Contudo, a distorção é um problema. Para minimizar isso, podemos pré-distorcer nossa grade quadrada, resultando em quadrados que preservam melhor área, ângulos e tamanhos laterais. A comparação entre as distorções mostra que a solução aprimorada permite blocos que se parecem muito mais com quadrados durante o jogo.

Uma vez que a superfície está adequada, o próximo passo é lidar com a distorção da profundidade. Em um mundo plano, a profundidade é simples, mas em um mundo esférico, blocos finos se formam perto do centro e blocos largos na superfície. Para minimizar a distorção, mais blocos são adicionados a cada camada conforme se move para fora.

Para um jogo com uma estrutura esférica, a divisão do mundo em setores e camadas é fundamental. Cada setor é subdividido verticalmente em camadas, que aumentam em tamanho à medida que se afastam do centro do planeta. Essa estrutura permite uma melhor gestão do desempenho e simulação física.

Outras considerações incluem a gravidade do jogador e a geração de terrenos, que utilizam ruídos suaves para determinar a altura do terreno. Além disso, estruturas de blocos são salvas como matrizes 3D e colocadas no mundo de forma que se ajustem a essas complexidades.

Para o futuro, existem planos para implementar múltiplos planetas, gravidade baseada em blocos e geração de cavernas, entre outras funcionalidades. O projeto é um trabalho em andamento, mas a paixão por criar mundos interativos e dinâmicos permanece.

Últimos vídeos

Confira os últimos vídeos publicados no canal

Argonalyst

BOLHA da IA ou NOVA era de crescimento EXPONENCIAL? O mercado está dividido

Argonalyst

Nova IA da OpenAI traduz em TEMPO REAL e pode mudar o mundo dos negócios

Argonalyst

Spec Driven Development (SDD): a habilidade que vai separar quem SOBREVIVE à IA

Argonalyst

DeepSeek V4: o Open Source que está AMEAÇANDO GPT 5.5 e Opus 4.7

Argonalyst

Prometeram Renda Universal… mas só veio desemprego?

Argonalyst

Mythos Preview: o começo da AGI ou só mais hype?

Argonalyst

Ele automatizou TUDO com IA… e pode virar bilionário sozinho

Argonalyst

Programadores foram só o começo… agora a IA quer o topo

Argonalyst

Multi-agentes, memória e IA eterna: o vazamento que mudou tudo

Argonalyst

VIBE CODING vai acabar… e o que vem agora é muito mais SINISTRO

Argonalyst

IA na Guerra: estamos criando algo mais PERIGOSO que a Bomba Atômica?

Argonalyst

O dinheiro vai desaparecer? A era da IA pode mudar tudo

Argonalyst

O Apocalipse do SaaS: Como a IA pode DESTRUIR o modelo bilionário do software

Argonalyst

Bitcoin é software… e o software está morrendo (isso explica a queda?)

Argonalyst

Google libera IA que CRIA MUNDOS 3D jogáveis (Projeto Genie)