Otimização em jogos é um dos tópicos mais negligenciados por desenvolvedores, muitos se preocupam com isso tarde demais!
E isso se agrava especialmente em jogos mobile, onde a disparidade na performance do jogo se torna mais evidente!
E neste artigo você encontraará a melhores otimizações que podem ser feitas em seus jogos moniles na Unity!
Otimização: Por onde começar?
A Unity é uma das Game Engines mais usada para a criação de jogos mobile devido a sua versatilidade e recursos.
Mas, desenvolver jogos mobile, a depender do escopo do jogo, pode ser uma tarefa bem desafiadora.
E na unity podemos escolher entre 3 tipos de renderização padrão, o Built-in, URP e HDRP.
Mas, o HDRP não pode ser usado em jogos mobile, restando o Built-in, que é o sistema padrão .
E por fim temos o URP que normalmente é o mais recomendado e usado.
Pois, contem um balanceamento entre ser leve, mas possibilitar o trabalho com gráficos complexos e realistas.
Otimização: Boas práticas e Otimizações
Engana-se quem acredita que existe um único segredo para criar jogos mobiles otimizados.
Pois, o desempenho de qualquer jogo está atrelado as boas práticas e técnicas de otimizações realizados em seu projeto.
E o código fonte do seu jogo será o coração do funcionamento de todo seu game.
E precisa estar perfeitamente otimizada, caso contrário todo o resto funcionará mal.
Portanto, aprenda quando usar as funções Start, Awakes, Updates, FixedUpdade.
E as demais funções, onde fazer captura de inputs, sistema de física, referencias de componentes.
Mas também, como organizar seu projeto, dividir classes com funções próprias.
E organizar pastas e hierarquia, nomear todos o elementos do projeto de forma coerente, etc.
Mas, a medida que o desenvolvimento do seu jogo avança, é comum a adição de inúmeros novos sistemas.
E a refatoração precisa ser feita para ajustar códigos, que já não estejam tão alinhados com o funcionamento atual do jogo.
Pois, podem gerar inúmeras dependências, complicando ainda mais a situação.
E deixando seu jogo mais suscetível a bugs e falhas de funcionamento grave.
Otimização: LOD e Oclusões
Existem técnicas impressionantes que reduzem consideravelmente, a carga de processamento sobre a CPU e a GPU, como o LOD.
Otimização: Level of Detail (LOD)
LOD é uma técnica aplicada na renderização dos gráficos dos modelos 3D.
E que se ajusta conforme a distância entre objeto e jogador.
Pois, conforme o jogador se distancia do objeto renderizado, ela vai trocando a qualidade da textura reduzindo o processamento.
Otimização: Occlusion Culling
O Oclussion Culling é um conjunto com diversas técnicas, que juntas visam trazer uma otimização sem igual ao projeto.
E “Descarte por campo de visão”, fazemos a engine se limitar, a renderizar apenas o que está no campo de visão da câmera do jogador.
E desativar da cena do jogo, o restante fora de nossa visão, resultando em um expressivo ganho de performance.
Oclusão em Objetos Estáticos
Objetos que fiquem atrás de paredes deveriam ser desativados, mas apenas por “Descarte por campo de visão”, eles não são!
E aqui precisamos fazer a “Oclusão em Objetos Estáticos”, que desativa tudo que está atrás de objetos estáticos.
Ou seja, que “Tapam” nossa visão, como paredes, caixas a nossa frente, montanhas, etc.
BackFace Culling 10
Essa técnica oculta as faces do modelo, que não estejam sendo renderizadas, a partir do angulo de visão da câmera.
E dessa forma, conforme a visão dessa câmera caminha junto ao jogador, as faces do modelo vai se ativando e desativando.
Ou seja, essa técnica de oclusão, combinada com as anteriores, tem o poder de trazer uma otimização extrema para a renderização do jogo.
Object Pooling
Todos os jogos possuem uma quantidade considerável de GameObjects em cena.
E alguns sistemas necessitam fazer a criação e destruição massiva de objetos.
Jogos Bullet Hell, por exemplo, estão constantemente criando e destruindo tiros na cena, durante todo tempo de gameplay.
E em sistema assim, aplique o Object Pooling para ativar e desativar objetos no lugar de Criar e Destruir.
Faça teste em diversos dispositivos
É indispensável que faça inúmeros testes em aparelhos diferentes, para averiguar como está a performance do seu jogo.
Pois, cada aparelho possui especificações diferentes entre si, variando a quantidade de memória ram, processador e renderizador gráfico.
E então, busque quem conseguiria se dispor a realizar o teste do seu jogo e te passar o feedback.
Por fim, para alcançar bons resultados é preciso seguir as boas práticas mencionadas até aqui.
E estar ciente das limitações de cada dispositivo.
Por exemplo, definir logo no planejamento do jogo, se será lançado para Android ou para sistemas IOS, ou ambos.
Pois, cada um dos sistemas envolvem suas particularidades tanto no funcionamento do próprio sistema, quanto nas especificações de hardwares.
Seja o primeiro a comentar.