Corrida low poly · jogue e depois construa

Jogos de corrida low poly — jogue um no seu navegador (ou crie o seu)

Crie seu próprio jogo de corrida low poly

O que faz um ótimo jogo de corrida low poly, além de um mundo low poly no navegador que você pode percorrer agora — e as ferramentas para construir sua própria pista.

✦Jogo
Construa uma pista low poly de uma rodovia costeira

Um jogo de corrida low poly é um jogo de corrida cuja geometria é deliberadamente grosseira: triângulos com sombreamento flat, sem normal maps, sem detalhes de textura de alta frequência. Essa restrição não é uma limitação que você tolera — é o que faz o jogo funcionar em alta velocidade. Quando um carro percorre uma reta de 400 metros em poucos segundos, seu olho não está resolvendo os raios da roda. Ele está lendo a silhueta, o sombreamento das facetas e a velocidade com que o cenário passa. A geometria low poly dá ao renderizador folga para manter essas pistas suaves.

Esta página aborda o que realmente separa um bom jogo de corrida low poly de um ruim e, em seguida, coloca diante de você um mundo low poly que você pode percorrer no navegador agora mesmo. Depois disso, mostra como construir sua própria pista no 3D game builder: assentar a estrada em uma grade, posicionar props que funcionam como referências de velocidade e fechar o circuito. Sem etapa de download, sem instalação de engine.

Por que low poly funciona para corrida

O argumento central é perceptivo. A 200 km/h, uma faceta com sombreamento flat se movendo pela tela é lida como movimento. Uma superfície texturizada com detalhes finos é lida como ruído, porque a textura é reduzida mais rápido do que a cadeia de mips consegue resolver. O low poly contorna isso por completo: menos facetas e maiores significam que o problema de aliasing diminui ao mesmo tempo que o orçamento de quadro aumenta. Você para de lutar contra o cintilamento e começa a vender velocidade.

O segundo argumento é aritmético. Um segmento de pista modelado com 2.000 triângulos em vez de 40.000 não apenas renderiza mais rápido. Ele permite posicionar mais segmentos, mais cenário e mais oponentes antes de atingir o teto de quadros. Em um jogo de corrida, o tempo de quadro não é um recurso de conforto. É latência de entrada. Cada milissegundo de tempo de GPU é um milissegundo entre o jogador ver uma curva e o carro responder à correção.

É por isso que jogos de corrida low poly tendem a rodar bem em hardware modesto e em uma aba do navegador. O custo de renderização é dominado por draw calls e fill rate, e não pela taxa bruta de triângulos, então uma cena low poly com frustum culling agressivo se mantém dentro de um orçamento de 16,6 ms a 60 fps em gráficos integrados. O estilo não é um recurso para hardware fraco. É uma decisão que mantém o hardware fora do caminho.

Sombreamento flat e a leitura de movimento

O sombreamento flat dá a cada triângulo uma única normal, de modo que cada faceta tem um valor de luminância. Conforme a câmera se move, esses valores mudam em passos discretos. O olho capta esses passos como um sinal de velocidade, do mesmo modo que um estroboscópio de baixa taxa de quadros faz uma roda parecer girar. Em uma superfície com sombreamento suave, esse sinal se espalha por um gradiente e a leitura de movimento enfraquece.

Para onde o orçamento de triângulos realmente vai

Em um jogo de corrida low poly, o carro raramente é o objeto caro. A pista é. Um circuito de 5 km dividido em segmentos de 100 metros com culling tem um conjunto visível limitado, mas uma única malha de 5 km não tem. Distribua o orçamento da pista em segmentos e deixe o culling fazer o trabalho. O carro pode gastar de 6.000 a 12.000 triângulos; um único segmento não pode.

O que faz um ótimo jogo de corrida low poly

A primeira restrição é a legibilidade da pista em alta velocidade. Uma curva precisa ser legível antes de o jogador chegar a ela. Isso significa separação visual entre pista e fora de pista, tratamento de borda consistente nos dois lados da faixa e uma referência clara de ápice. Se a superfície da pista e o acostamento compartilham o mesmo valor e a mesma matiz, o jogador não vai ler a curva até já estar nela. O contraste de valor entre a pista e o entorno importa mais do que o detalhe de textura no asfalto.

A segunda restrição é um horizonte que vende velocidade. Um horizonte plano e vazio não comunica nada sobre o quão rápido você está indo. Você precisa de objetos em intervalos conhecidos — barreiras, placas, postes, facetas de cordilheira — para que o jogador tenha uma referência de taxa. Espalhe-os com espaçamento aproximadamente uniforme ao longo da reta e depois deixe o espaçamento se comprimir na curva. O olho lê a compressão como desaceleração e a expansão como aceleração, mesmo quando o valor da velocidade não mudou.

A terceira restrição é uma câmera que nunca perde a estrada. Uma câmera de perseguição precisa de uma distância de antecipação que escala com a velocidade, uma altura que mantenha a faixa da pista visível sob o carro e um yaw que acompanhe a direção do carro em vez de saltar para ela. Se o yaw da câmera salta, o mundo chicoteia e o jogador perde a orientação espacial. Um yaw amortecido com uma constante de tempo curta — o suficiente para parecer responsivo, mas não instantâneo — mantém a estrada ancorada no quadro.

  • Separação de valor entre pista e fora de pistaA faixa da pista e o terreno ao redor devem diferir em luminância suficiente para que a borda seja lida de imediato. Em caso de dúvida, escureça o terreno em vez de clarear a pista.
  • Referências de velocidade por intervaloProps espaçados em intervalos uniformes dão ao jogador uma referência de taxa. A compressão aparente deles na curva é a leitura de velocidade.
  • Antecipação da câmera proporcional à velocidadeA distância de antecipação deve crescer com a velocidade; se não crescer, o jogador ultrapassa o quadro em alta velocidade.
  • Yaw da câmera amortecidoO yaw de acompanhamento mantém a estrada ancorada. O yaw que salta é a forma mais rápida de tornar uma boa pista ilegível.

Percorra um bem aqui

O mundo jogável incorporado nesta página é a coisa mais próxima de uma pista que podemos colocar em um navegador hoje. Ele é low poly, com sombreamento flat, e foi feito para ser percorrido, não apenas observado. Use os controles de movimento para percorrer o espaço; a geometria é grosseira de propósito, para que a taxa de quadros fique alta o bastante para ler o movimento, e não apenas ver uma cena.

O que observar enquanto você se move: as facetas no plano do chão captam luz em ângulos diferentes conforme você passa, e essas mudanças de ângulo são a pista de movimento. O horizonte é povoado, e não vazio, então você tem algo para usar como referência. Experimente uma reta longa e depois uma curva e note como sua sensação de velocidade muda mesmo que a velocidade de movimento não mude. É o horizonte fazendo seu trabalho.

Este mundo é um espaço de demonstração, não um circuito finalizado. Não tem cronômetro de volta nem oponente. Seu objetivo é mostrar como a leitura low poly se comporta em uma sessão ao vivo no navegador, no seu hardware real, que é o único benchmark que importa para um jogo de navegador.

Construa sua própria pista

Construir uma pista no 3D game builder significa posicionar geometria em uma grade, não esculpir uma malha. Você trabalha em unidades de mundo, e a grade oferece escala consistente: uma célula da grade equivale a uma distância conhecida, então uma reta de 20 células tem comprimento fixo, não importa quem a construa. Comece pela faixa da pista, depois posicione os props, defina o spawn e feche o circuito.

O modo de falha a observar é uma pista legível no editor, mas não em alta velocidade. Construa uma reta, mova a câmera para a altura dos olhos do piloto e percorra-a antes de construir o resto. Se a curva no fim da reta não for legível desde o início da reta, corrija o contraste de valor ou o posicionamento dos props antes de adicionar mais pista. É mais barato corrigir um segmento do que vinte.

1

01

Assente a estrada na grade: posicione os segmentos de pista célula por célula, mantendo a largura da faixa constante em unidades de mundo. Varie o raio da curva, não a largura.

2

02

Defina o contraste de valor entre pista e fora de pista: atribua à pista um material e ao terreno ao redor um valor claramente diferente, para que a borda seja lida em alta velocidade.

3

03

Posicione props de referência de velocidade em intervalos uniformes ao longo de cada reta: barreiras, postes ou marcadores com espaçamento consistente, para que o jogador tenha uma referência de taxa.

4

04

Comprima o espaçamento dos props nas curvas: um espaçamento mais apertado na curva sinaliza desaceleração e dá ao ápice uma âncora visual.

5

05

Defina o ponto de spawn e a direção: coloque o spawn na linha central da pista, voltado para o sentido do percurso, e confirme que a câmera tem uma antecipação clara no spawn.

6

06

Feche o circuito: conecte o segmento final de volta ao primeiro para que a pista seja contínua, depois faça uma volta completa em alta velocidade e corrija tudo o que deixar de ser legível.

Carros e assets low poly

Carros e props podem vir de qualquer uma das direções: importe um conjunto de assets low poly existente ou gere um que combine com o estilo da sua pista. A restrição que importa é a consistência da densidade de facetas. Um carro modelado com 12.000 triângulos colocado em uma pista feita de segmentos de 200 triângulos vai parecer errado, porque os dois objetos resolvem detalhes em escalas diferentes. Iguale as densidades ou iguale o sombreamento, e de preferência ambos.

O Agent Sprite Forge gera conjuntos de sprites e assets, o que é útil quando você precisa de um conjunto coerente de carros e props com a mesma linguagem visual, em vez de uma pilha de modelos baixados individualmente. Se você gerar um conjunto, gere os carros e os props de beira de pista juntos em uma única passagem, para que a paleta e a densidade de facetas permaneçam alinhadas. Passagens de geração incompatíveis são a causa mais comum de uma pista que parece montada, e não projetada.

The Cyclops' Island é um exemplo prático de um mundo low poly nos assets do estúdio: ele mostra como um ambiente low poly coerente se mantém unido quando todos os objetos compartilham uma decisão de sombreamento. Use-o como referência de paleta e densidade de facetas antes de construir seu próprio conjunto.

  • Correspondência de densidade de facetasMantenha a contagem de triângulos do carro na mesma ordem de grandeza por área de superfície visível que os segmentos da pista. Densidades muito divergentes são lidas como estilisticamente quebradas.
  • Paleta única por conjuntoGere carros e props a partir de uma única paleta. Adicionar uma segunda paleta depois é a fonte habitual de pistas que parecem descombinadas.
  • Sombreamento flat em tudoAplique sombreamento flat a todos os objetos do conjunto. Um objeto com sombreamento suave em uma cena de sombreamento flat fica imediatamente visível e compromete a leitura de movimento.
  • Reutilize antes de modelarUm único modelo de barreira rotacionado e recolorido cobre a maior parte de uma pista. Menos malhas únicas significam menos draw calls e melhor tempo de quadro.
Four Seasons Courtyard — a escala low poly em que uma pista de corrida vive.
Gaga Little World — low poly em escala de brinquedo.

Entre no mundo a que ele pertence

Um sprite é um personagem sem lugar para ficar. O último passo é o que ninguém mais oferece: pegue a folha que você acabou de construir e coloque-a em um mundo pelo qual alguém possa caminhar — uma pequena ilha, um planeta, uma esquina chuvosa. Todos os mundos deste site foram feitos a partir de uma única descrição escrita e publicados como uma página que você pode jogar.

FAQ

Dá para realmente correr em um navegador? +

Sim. O mundo jogável desta página roda na aba do navegador e você pode percorrê-lo sem instalar nada. A taxa de quadros depende do seu hardware e da contagem de draw calls da cena, mas uma cena low poly com segmentos visíveis limitados se mantém dentro de um orçamento de 60 fps em gráficos integrados típicos.

Preciso escrever código para fazer um jogo de corrida low poly? +

Não. No 3D game builder, você assenta segmentos de estrada em uma grade, posiciona props, define o ponto de spawn e fecha o circuito usando as ferramentas de posicionamento do builder. O código só se torna relevante se você quiser um comportamento personalizado além do que o builder expõe.

De onde vêm os carros e props low poly? +

Você importa um conjunto low poly existente ou gera um com o Agent Sprite Forge. O que importa é a consistência: gere os carros e os props de beira de pista em uma única passagem, para que compartilhem uma paleta e uma densidade de facetas.

Como faço uma pista que se lê bem em alta velocidade? +

Comece com o contraste de valor entre pista e fora de pista, para que a borda seja legível, posicione props em intervalos uniformes ao longo de cada reta como referências de velocidade e comprima o espaçamento deles nas curvas. Depois defina o spawn na linha central com uma antecipação clara e faça uma volta completa em alta velocidade antes de adicionar mais pista.

O que limita o desempenho em um jogo de corrida low poly no navegador? +

Draw calls e fill rate, não a contagem bruta de triângulos. Um segmento de 2.000 triângulos renderizado como uma malha separada custa mais do que a mesma geometria mesclada. Mantenha o conjunto de segmentos visíveis limitado com culling e reutilize malhas em vez de multiplicar as únicas.

Dá para exportar uma pista para uma engine completa depois? +

Sim. A cena pode ser exportada para transferi-la a uma engine completa quando o runtime do navegador deixar de ser suficiente. Esse é o caminho habitual se, mais tarde, você precisar de física personalizada ou de um número maior de oponentes do que o runtime do navegador suporta.

De volta ao 3D Game Builder

Todos os 31 mundos, jogos e cenas 3D finalizados ficam em uma só página — todos jogáveis.

Plataforma: Neta StudioPágina: Jogos de corrida low polyLeia a seguir: /use-cases/en/low-poly-3d-assets · /explore/tool/ai-voxel-game-maker · /use-cases/en/isometric-pixel-art
×

Jogos de corrida low poly — jogue um no seu navegador (ou crie o seu) | Neta Studio