Layout de níveis e fluxos de trabalho de terreno em Survival Kids

Survival Kids é o primeiro projeto de desenvolvimento de ponta a ponta da Unity, criado em colaboração com a KONAMI. A pequena equipe que o construiu aproveitou décadas de experiência em desenvolvimento de jogos, e esta série de blogs mergulha em como eles abordaram este projeto ambicioso. A primeira edição explorou o trabalho de quadro e renderização da equipe, enquanto esta edição analisa design de níveis e ambientes.
Embora tenhamos falado principalmente sobre como alcançamos a aparência que você vê na tela, queríamos nos aprofundar no que fizemos para melhorar nossos fluxos de trabalho, tornando-os mais rápidos para que pudéssemos entregar o projeto a tempo.
Devido ao tamanho da equipe e ao escopo do projeto, consideramos muito o layout dos níveis e os fluxos de trabalho do terreno. Precisávamos de algo que fosse fácil para um designer de níveis iterar ideias, mas nossa abordagem também precisava exigir o mínimo ou nenhum retrabalho uma vez que os níveis fossem entregues à equipe de arte. Optamos por uma abordagem que tem um fluxo de trabalho muito semelhante a uma caixa branca para os designers de níveis enquanto já estávamos trabalhando com os ativos finais do jogo.
Survival Kids usa um conjunto de blocos de construção reutilizáveis para criar o layout principal dos níveis. É um conjunto de prefabs com lados de rocha de penhasco e um patch de terreno de malha em cima, configurados em diferentes tamanhos e formas.

Os lados do penhasco são oito malhas separadas, lados e cantos, cada uma com um colisor de malha simplificado. Todos compartilham o mesmo material, o que acelera sua renderização.

Esta configuração permite que o designer de níveis use esses blocos de construção para criar a maioria dos níveis usando os ativos finais do jogo, mas com um fluxo de trabalho rápido que é muito próximo da caixa branca, para permitir iterações rápidas sobre ideias.
Essa abordagem de "bloco de construção" do módulo de terreno resultou em muitos módulos sobrepostos devido às formas orgânicas dos níveis. Isso também levou à maioria dos lados do penhasco estarem dentro ou atrás de outros módulos e nunca vistos pela câmera do jogo. Para resolver isso, criamos uma ferramenta de Editor que passou por cada módulo um por um, verificando se alguma parte deles poderia ser vista do ângulo da câmera do jogo e removendo todos os não vistos.

Usamos uma ferramenta do Houdini Engine para criar malhas de terreno contínuas com base nas diferentes seções dos módulos de terreno.

Uma versão modificada do pacote Polybrush da Unity foi usada para pintar os diferentes materiais nas malhas de terreno. A modificação foi que o Polybrush pintaria uma textura de controle, semelhante a como o sistema de terreno da Unity faz, em vez de pintar valores nos vértices da malha.

A Oclusão Ambiental é então incorporada na cor do vértice das malhas de terreno para melhor ancorar visualmente os objetos colocados sobre ele.

Uma ferramenta personalizada foi então usada para distribuir pequenos objetos como grama, flores e pequenas pedras nas malhas de terreno. A distribuição dos objetos é controlada individualmente usando parâmetros como densidade, material subjacente, curvatura do terreno ou proximidade a objetos maiores. Ao longo do projeto, mantivemos uma densidade muito baixa para minimizar o impacto no desempenho da pequena vegetação.

Em seguida, usamos outra ferramenta personalizada para dividir os colliders de malha dos diferentes terrenos. Fizemos isso de duas maneiras:
- Como uma grade, para reduzir a contagem de triângulos e o volume de cada collider de malha e melhorar o desempenho físico do jogo
- Por material, para que o jogo possa gerar diferentes sons e VFX de passos com base no material em que os personagens estão andando (grama, areia, neve, gelo, etc.)

Este post oferece apenas uma visão de como configuramos gráficos e renderização estilizados e eficientes para atingir nossa taxa alvo para Survival Kids. Confira o primeiro post da série, "Dicas de gráficos e renderização de Survival Kids," e fique atento ao blog do Unity para mais posts sobre os bastidores do jogo, incluindo uma análise em duas partes sobre redes multiplayer. Você também pode encontrar mais histórias técnicas de desenvolvedores em nossa Página de Recursos.



