Skip to content

Guia da série sobre mundo aberto no navegador

Por Oleg Sidorkin, CTO e cofundador da Cinevva

Esta página é o ponto central de navegação da série completa.

Se você chegou por uma parte aleatória, comece aqui.

Atualização de março de 2026: adicionamos uma verificação externa da implementação com base nos diários de desenvolvimento de Vuntra City na Parte 12 e ampliamos o guia técnico complementar sobre mundos abertos no navegador com as mesmas descobertas.

Atualização de abril de 2026: as Partes 13-14 abordam a escultura de terreno (Spikes 25-27) e a camada visual e de jogabilidade: texturização com múltiplos materiais, vegetação instanciada e um controlador de personagem com colisão HM+SDF (Spikes 28-30).

Atualização de maio de 2026: a série chegou a 29 partes. As Partes 15-29 cobrem o longo trecho intermediário da implementação, terreno e água multijogador, uma refatoração da estrutura do código, animações e distribuição com IA, impostores e paralaxe, o buffer de visibilidade que não compensou, nuvens e culling de meshlets, avatares em lote e voz por proximidade, persistência do mundo e vento na GPU, personagens universais, três abordagens para água, uma ilha procedural, grama e oclusão, além de um controlador de personagem modular capaz de controlar qualquer corpo (Spikes 31-60).

Atualização de junho de 2026: a Parte 30 adiciona uma câmera ciente de colisões, um braço de câmera com mola, um contrato modular de colisão e uma sonda de distância com sinal que impede a câmera de atravessar saliências e tetos de cavernas, não apenas colinas.

O que "spike" significa nesta série

Um spike é um experimento curto e focado.

Cada spike testa uma questão arriscada. Mantemos o escopo restrito, medimos o que importa e decidimos o próximo passo. Pense nele como um instrumento de aprendizado, não como um recurso finalizado.

Neste projeto, os spikes são, em sua maioria, páginas independentes em /spikes/* que você pode executar ao vivo.

Leia a série em ordem

  1. Parte 1: Começamos tentando quebrar tudo
  2. Parte 2: Física em worker e o medo do atraso de entrada
  3. Parte 3: Os spikes pouco chamativos que nos salvaram
  4. Parte 4: Streaming antes de um terreno sofisticado
  5. Parte 5: Definindo o orçamento dos recursos visuais
  6. Parte 6: Os clipmaps mudaram o rumo da história
  7. Parte 7: Marching cubes e as primeiras cavernas de verdade
  8. Parte 8: Integração sem perder nossa linha de base
  9. Parte 9: O Transvoxel começou com uma estrutura básica
  10. Parte 10: O caos das emendas e a batalha contra o chefão dos cantos
  11. Parte 11: Modos definidos por políticas, não codificados diretamente
  12. Parte 12: Anéis, névoa no céu e o que faríamos novamente
  13. Parte 13: Escultura de terreno e o fim da função matemática
  14. Parte 14: O mundo ganha vida
  15. Parte 15: Substitua a linha de base e depois sincronize-a
  16. Parte 16: Estrutura para um mundo que não para de crescer
  17. Parte 17: Animações que não precisaram de retargeting e uma busca de assets ao vivo
  18. Parte 18: Um pincel de distribuição que parece usar posicionamento por IA
  19. Parte 19: O impostor que precisa sobreviver a uma floresta
  20. Parte 20: Simulando profundidade em um plano
  21. Parte 21: Um renderizador mais rápido que não era mais rápido
  22. Parte 22: Nuvens que podem ser iluminadas e um culling que precisa ser alimentado
  23. Parte 23: Cinquenta avatares e uma voz na sala
  24. Parte 24: Salvando um mundo e um vento que você pode ver
  25. Parte 25: Um esqueleto para todos os trajes
  26. Parte 26: Três maneiras de criar água
  27. Parte 27: Uma ilha gerada por ruído e um solo que realmente parece solo
  28. Parte 28: Grama até o horizonte e um terreno que se oculta
  29. Parte 29: Um controlador para qualquer corpo
  30. Parte 30: Uma câmera que respeita as paredes

Mapa de spikes ao vivo

Comece por estes se quiser percorrer diretamente a linha do tempo técnica.

Spike 1 terreno e instanciamento · código-fonte
Spike 2 física em worker · código-fonte
O Spike 3, um teste de carga de transmissão com Durable Objects, foi executado como script de serviço, não como página independente
O Spike 4 testou restrições de qualidade em dispositivos móveis pelo parâmetro de consulta do Spike 1
O Spike 5 testou a confiabilidade do comportamento de LLMs e foi executado como script, não como página independente
Spike 6 carregamento e troca de chunks · código-fonte
Spike 7 vegetação gerada com mapas de densidade · código-fonte
Spike 8 custo do material do terreno · código-fonte
Spike 9 orçamento para sombras em cascata · código-fonte
Spike 10 clipmaps e geomorphing · código-fonte
Spike 11 streaming de chunks de mapa de altura · código-fonte
Spike 12 marching cubes com WebGPU · código-fonte
Spike 13 linha de base da integração com WebGPU · código-fonte
Spike 14 robustecimento incremental · código-fonte
Spike 15 estrutura básica das emendas · código-fonte
Spike 16 primeira face Transvoxel · código-fonte
Spike 17 LOD duplo de MC · código-fonte
Spike 18 emenda de mapa de altura · código-fonte
Spike 19 canto com resoluções mistas · código-fonte
Spike 20 emenda de canto na GPU · código-fonte
Spike 21 emenda de canto MC na GPU · código-fonte
Spike 22 fallback de MC para HM · código-fonte
Spike 23 modos de chunk baseados em políticas · código-fonte
Spike 24 anéis de clipmap e névoa no céu · código-fonte
Spike 25 pincel de mapa de altura sobre dados amostrados · código-fonte
Spike 26 pincel SDF por computação na GPU · código-fonte
Spike 27 integração de HM + MC + pincel · código-fonte
Spike 28 texturização com múltiplos materiais · código-fonte
Spike 29 vegetação e grama por shader · código-fonte
Spike 30 física do terreno e controlador de personagem · código-fonte
Spike 31 sincronização multijogador do terreno · código-fonte
Spike 32 água e natação · código-fonte
Spike 33 refatoração da estrutura do código · código-fonte
Spike 34 criação dentro do mundo · código-fonte
Spike 35 animações de combate e retargeting · código-fonte
Spike 36 busca de assets do Poly Haven ao vivo · código-fonte
Spike 37 distribuição de objetos assistida por IA · código-fonte
Spike 38 impostores octaédricos · código-fonte
Spike 39 mapeamento de oclusão por paralaxe · código-fonte
Spike 40 renderizador com buffer de visibilidade · código-fonte
Spike 41 impostores em uma floresta · código-fonte
Spike 42 correção da cintilação dos impostores · código-fonte
Spike 43 atmosfera e nuvens volumétricas · código-fonte
Spike 44 culling Hi-Z de meshlets · código-fonte
Spike 45 skinning de avatares em lote e sincronização de rede · código-fonte
Spike 46 conversa por voz baseada em proximidade · código-fonte
Spike 47 persistência do mundo com servidor autoritativo · código-fonte
O Spike 48 integrou o rig dos avatares e foi reutilizado como código compartilhado pelos spikes posteriores (sem página independente)
Spike 49 vento na GPU aplicado a objetos e folhagem · código-fonte
Spike 50 personagens universais e itens vestíveis · código-fonte
Spike 51 água com reflexos em espaço de tela · código-fonte
Spike 52 água com espelho planar · código-fonte
Spike 53 biblioteca de água pronta para produção · código-fonteSpike 54 geração procedural de ilhas · código-fonte
Spike 55 sombreamento de terreno e redução da repetição de texturas · código-fonte
Spike 56 grama com quads cruzados na GPU · código-fonte
Spike 57 occlusion culling do terreno · código-fonte
Spike 58 controlador de personagem modular · código-fonte
Spike 59 controlador com um avatar real · código-fonte
Spike 60 animações Polygon da Synty · código-fonte