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