Todos os artigos
Tutoriais · 7 min read

Fazer seu jogo rodar numa batata: otimizar ambientes para PCs fracos e Steam Deck

Um playbook prático para atingir um orçamento de frame baixo sem estripar sua arte, cobrindo para onde o tempo de frame realmente vai, overdraw e folhagem, draw calls e instancing, LODs e distâncias de cull, e o método da câmera fixa para achar regressões reais.

Slow tropical river between dense green banks, with clouds mirrored on the surface

Em resumo: uma fatia enorme de jogadores está em hardware modesto: laptops, portáteis como o Steam Deck, GPUs mais antigas, e um ambiente que só roda numa máquina de ponta os deixa de fora. A boa notícia: a maior parte da performance de ambiente se perde em uns poucos lugares previsíveis (overdraw, draw calls, folhagem densa, texturas superdimensionadas) e é recuperada com uns poucos hábitos disciplinados. Este é um playbook prático para atingir um orçamento de frame baixo sem estripar sua arte, mais o método da câmera fixa para pegar regressões antes de lançarem.

Uma floresta densa lotada de árvores e vegetação rasteira sobrepostas Este é o tipo de cena mais caro de rodar: camadas de folhas transparentes, milhares de instâncias, overdraw pesado. Também é onde vivem as vitórias maiores e mais fáceis, uma vez que você sabe para onde o tempo de frame está indo.

Fixe um orçamento primeiro, em milissegundos

Escolha um tempo de frame alvo no seu hardware suportado mais fraco: 16,6 ms para 60 fps, 33,3 ms para 30, e trate-o como um limite duro. "Otimizar depois" significa "reconstruir depois"; orçar de antemão é muito mais barato.

Otimização sem um número é só vibe. Decida o frame que você mira no seu hardware piso: o Steam Deck, um laptop médio, seja qual for sua spec mínima, e converta para milissegundos, porque milissegundos somam e porcentagens mentem. Depois segure cada cena a isso enquanto constrói, não no fim. As equipes que lançam suave no fraco não otimizam mais duro; elas simplesmente nunca deixam uma cena estourar o orçamento em primeiro lugar, o que custa uma fração de arrancar a performance de volta depois que a arte está pronta e tudo depende dela.

Saiba para onde o tempo vai

O tempo de frame de ambiente costuma ser comido por overdraw (folhagem transparente), draw calls demais (objetos não batcheados), texturas superdimensionadas (largura de banda de memória), e iluminação/sombras caras. Faça profile para achar SEU gargalo antes de otimizar às cegas.

Adivinhar otimizações desperdiça dias. Abra um profiler, ache se você está CPU-bound (geralmente draw calls) ou GPU-bound (geralmente overdraw, shading ou largura de banda), e ataque o gargalo real. Dito isso, ambientes falham de formas previsíveis, e é quase sempre um de: overdraw de folhagem transparente em camadas; draw calls de milhares de objetos não instanciados; memória/largura de banda de textura de texturas superdimensionadas ou demais; e custo de iluminação/sombra de luzes dinâmicas demais ou shadow maps de alta resolução. O resto deste playbook percorre esses em ordem de impacto usual.

Folhagem e overdraw: o vilão de sempre

Cards de folhagem transparente se sobrepõem e re-shadeiam os mesmos pixels muitas vezes: isso é overdraw, e é o matador número um do fraco. Reduza a sobreposição de cards de folha, use LODs agressivos, e culle duro a folhagem distante.

Vegetação densa é onde morrem a maioria dos orçamentos de frame de hardware fraco, porque cada card de folha semitransparente força a GPU a shadear pixels que depois desenhará por cima de novo; às vezes dez ou mais vezes por pixel num dossel espesso. As correções: use cards de folha mais justos com menos área transparente desperdiçada, caia rápido para LODs mais baratos conforme a folhagem recua, e fixe distâncias de cull duras para que grama e arbustos distantes simplesmente parem de desenhar. Num portátil, a diferença entre "grama até o horizonte" e "grama cullada a uma distância sensata" pode ser toda a diferença entre 25 e 40 fps. Bake a folhagem para instâncias nativas para que a GPU possa batchear, e deixe o instancing do engine fazer o trabalho pesado.

Draw calls e instancing

Cada objeto único submetido separadamente é um draw call, e milhares deles travam a CPU. Instancie meshes repetidos para que centenas de cópias custem um call; funda o clutter estático onde faz sentido.

Se você está CPU-bound, draw calls costumam ser o porquê. Cada coisa distinta que você pede ao engine para renderizar carrega overhead, e uma cena colocada à mão com mil rochas e arbustos individuais afoga a CPU em custo de submissão. Instancing é a cura: meshes repetidos desenhados como instâncias colapsam centenas de cópias num único call, que é exatamente por que ferramentas de scatter que bakeiam para instâncias nativas do engine importam para performance: o scatter que parece mil plantas custa como um punhado. Onde instancing não se aplica, fundir clutter estático pequeno em meshes combinados também corta a contagem de calls. Este é um lugar onde um workflow como o do Numivo (pintar densidade, depois bake para meshes instanciados simples) paga direto em hardware fraco, porque a saída é a coisa barata que a GPU quer.

Um lago calmo e simples sob um céu claro: barato de renderizar Nem toda cena tem de ser maximamente densa. Espaços quietos e abertos custam quase nada e dão tanto ao hardware quanto ao jogador um descanso: cadenciar sua densidade é em si uma otimização.

LODs, distâncias de cull e tamanhos de textura

Dê a cada mesh significativo LODs para que cópias distantes sejam baratas, fixe distâncias de cull para que objetos minúsculos-na-tela parem de desenhar, e limite a resolução de textura ao que a câmera resolve à distância. Esses três recuperam muito por pouco esforço.

Três hábitos sem glamour carregam o grosso do orçamento restante. LODs: meshes distantes devem trocar para versões de menor polígono, porque detalhe completo numa árvore de 20 pixels é desperdiçado. Distâncias de cull: qualquer coisa pequena demais na tela para notar deve parar de renderizar por completo: props pequenos, seixos, grama fina: ajustado por tipo de objeto. Tamanhos de textura: limite a resolução ao que é de fato resolvível à distância do jogador (veja a lógica de densidade de téxeis: coisas distantes precisam de muito menos téxeis), porque texturas superdimensionadas queimam largura de banda de memória que GPUs fracas não podem poupar. Nenhum deles machuca o visual quando ajustado certo; eles só param você de pagar por detalhe que ninguém vê.

Ache regressões com câmeras fixas

Defina algumas "câmeras de orçamento": sua pior vista, o espaço de combate mais denso, o interior mais movimentado, e cheque o tempo de frame delas a cada build. Flythroughs aleatórios escondem regressões; as mesmas vistas brutais toda vez as expõem.

A performance apodrece em silêncio conforme conteúdo é adicionado, e você não vai pegar isso vagando pelo nível casualmente. Em vez disso, fixe seu punhado de vistas piores; o mirante de floresta densa, o mercado lotado, a luta pesada de efeitos, e meça exatamente essas, a cada build, contra o orçamento. Quando um número fica vermelho, você sabe que uma mudança recente causou, e mais ou menos onde. Esta é a diferença entre uma equipe que descobre uma crise de performance no fim e uma que conserta uma regressão de 2 ms no dia que aparece. Em alvos fracos, faça uma dessas câmeras rodar no Steam Deck real ou na máquina de spec mínima, não só uma estimativa de editor.

Números de campo que vale a pena roubar

  • Orçamentos de frame: 16,6 ms (60 fps) / 33,3 ms (30 fps): fixe no seu hardware piso
  • O matador usual do fraco: overdraw de folhagem: cards mais justos, LODs rápidos, cull duro
  • Meshes repetidos → instâncias: centenas de cópias por um draw call
  • Limite o tamanho de textura ao detalhe resolvível pela câmera: o distante precisa de muito menos téxeis
  • Pegue regressões com câmeras de orçamento fixas, medidas a cada build

Mini-FAQ

Tenho de escolher entre bonito e fraco? Menos do que você pensa. A maior parte do custo do fraco é desperdício: overdraw, calls não batcheados, texturas superdimensionadas: não qualidade visível. Corte o desperdício e a arte sobrevive; jogadores em hardware fraco raramente sentem falta do detalhe pelo qual você pagava mas que eles não podiam ver.

Iluminação dinâmica é proibida no Steam Deck? Não proibida, mas orçada. Limite o número de luzes dinâmicas e projetores de sombra, apoie-se em iluminação baked onde a cena é estática, e reserve o custo dinâmico para onde importa. É uma linha de orçamento, não uma proibição.

Que mudança única ajuda mais num portátil? Geralmente domar a folhagem: cards de folha mais justos, LODs agressivos e distâncias de cull duras em grama e arbustos. Overdraw é o gargalo mais comum em portátil, e a vegetação é onde o overdraw vive.

Quão cedo devo testar no hardware alvo? Desde o primeiro vertical slice. Uma estimativa de editor numa máquina de dev potente esconde exatamente os problemas que o portátil terá. Consiga um build no dispositivo de spec mínima real cedo e mantenha-o no loop.

Rodar numa batata não é sobre deixar seu jogo feio: é sobre não pagar por detalhe que jogadores não podem ver. Orce em milissegundos, mate o overdraw, instancie as repetições, culle o invisível, e vigie suas piores câmeras a cada build, e seu ambiente vai parecer ótimo e rodar para a enorme audiência que não está numa máquina de ponta.