Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Otimização de jogos para dispositivos móveis com Unity3D

No description
by

Adriano Pereira Rezende

on 21 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Otimização de jogos para dispositivos móveis com Unity3D

OTIMIZAÇÃO DE JOGOS PARA DISPOSITIVOS MÓVEIS COM UNITY3D
Adriano Pereira Rezende
Orientador: Kleber de Oliveira Andrade
Tópicos
A real necessidade de otimização
O desempenho é um dos problemas mais comuns encontrados na criação de jogos de computador (HEINEMAN, 2008).
"Nos dispositivos móveis o problema de desempenho se agrava um pouco mais (...)" (RABAS, 2011, tradução nossa).
Preciso Otimizar.
Planejar.
Determinando o orçamento do jogo
Os limites do conteúdo a ser produzido;
Os limites de recursos de hardware, que esse conteúdo poderá consumir.
"(...) são os padrões que deverão ser seguidos ao criar o conteúdo para o jogo, bem como codificá-lo". (MCDERMOTT, 2012).
Orçamento da velocidade de projeção
Orçamento do tempo de quadro
Orçamento de vértices
Orçamento de texturas
Gráficos
e renderização

Programação
Aplicando as técnicas de otimização
"(...) as principais áreas a se focar na otimização de um jogo para dispositivos móveis, em termos de arte são: as chamadas de desenho, a contagem de vértices por quadros, a quantidade de texturas em memória e os shaders". (MCDERMOTT, 2012)
Reduzindo as chamadas de desenho com batching
Chamadas de desenho
Comando que diz a GPU para processar um determinado conjunto de vértices de triângulos com um determinado estado (shaders, dados posicionais, normais e etc.).
Batching
Operação onde os objetos que compartilham o mesmo material são combinados e renderizados com uma única chamada de desenho.
Batch
Dinâmico
Batch
Estático
É aplicado automaticamente;
Objetos com até 900 vértices dependendo da complexidade do shader.
Sem limite de vértices;
Objetos devem ser estáticos;
Reduzindo a contagem de vértices
Modelagem "Low Poly", respeitando o orçamento de vértices;
Evitar as bordas duras.
Texturas
Dimensões POT e NPOT
Formatos de compressão
Mapas-Mip
Android: ETC/RGBA 16-bit
IOS: PVRTC
Texturas de objetos distantes da câmera são trocadas por versões menores e otimizadas.
Dimensões NPOT consomem mais memória e são mais lentas para serem lidas pela GPU.
Shaders
Vertex-Lit
Pixel-Lit
Calcula a iluminação com base nos vértices da malha, usando todas as luzes ao mesmo tempo.
Calcula a iluminação para cada pixel que é desenhado.
Shaders são programas com instruções de como a GPU deve renderizar certas imagens na tela (UNITY, 2013).
Shaders Vertex-Lit
e Unity Mobile.
Quanto mais a alocação de memória for evitada, menor será o trabalho do coletor de lixo e menores serão as chances da criação ou destruição de um objeto ocasionar uma queda de desempenho (UNITY, 2013).
Evitando alocação de memória
O processo de localização e liberação de memória não utilizada é conhecido como coleta de lixo.
Otimizando o coletor de lixo da Unity
Exige tempo de CPU significativo em segundo plano.
Criando um pool de objetos
Visão do jogador
(câmera)
Pool de projéteis.
Fora do campo de visão.
Conclusão
A partir da pesquisa realizada pode-se identificar os aspectos que mais pesam no desempenho de um jogo para dispositivos móveis, assim como a elaboração de um plano para a otimização, aplicando-se as técnicas necessárias para tal finalidade.
Como trabalhos futuros, evidencio a necessidade de pesquisas sobre quais técnicas podem ser utilizadas na otimização de jogos para outras plataformas com a Unity3D e até mesmo na otimização de jogos para dispositivos móveis utilizando outras engines como a Unreal.
Bibliografia
HEINEMAN, Becky. Sponsored Feature: Common Performance Issues in Game Programming, 2008. Disponível em <http://www.gamasutra.com/view/feature/3687/sponsored_feature_common_.php> Acesso em: 17 Março 2013.
A Unity3D
A real necessidade de otimização
Determinando o orçamento do jogo
Orçamento da velocidade de projeção
Orçamento do tempo de quadro
Orçamento de vértices
Orçamento de texturas
Aplicando as técnicas de otimização
Otimizando os gráficos e a renderização
Reduzindo as chamadas de desenho com batching
Batch dinâmico e batch estático
Reduzindo a contagem de vértices
Texturas
Shaders
Otimizando a programação
Otimizando o coletor de lixo da Unity
Criando um pool de objetos
Evitando alocação de memória
(MCDERMOTT, 2012, p. 31)
(PHOTONSTORM, 2011)
MCDERMOTT, Wes. Criando Arte de Jogos 3D para Iphone com Unity: usando modo e blender na linha de produção. Rio de Janeiro: Elsevier, 2012.
MICROSOFT. StringBuilder Class. 2013. Disponível em:
<http://msdn.microsoft.com/en-gb/library/system.text.stringbuilder.aspx> Acesso em: 25 Maio 2013.
RABAS, Marek. Czech developer MADFINGER Games stretches the limits of mobile development, 2011. Disponível em: <http://unity3d.com/gallery/made-with-unity/profiles/profile#madfinger-shadowgun> Acesso em: 17 Março 2013.
PHOTONSTORM, Flash Game Dev Tip #3 – Bullet Manager Part 1, 2011. Disponível em: <http://www.photonstorm.com/archives/1164/flash-game-dev-tip-3-bullet-manager-part-1> Acesso em: Junho 2013.
Obrigado
UNITY. Create the games you love with Unity. 2013. Disponível em: <http://unity3d.com/unity/> Acesso em: 09 Março 2013.
Conclusão
Grande diversidade de modelos;
Pouca capacidade de processamento, memória, video etc.
Por quê ?
O que preciso fazer primeiro?
Como ?
Analisar o hardware visado e
analisar o tipo de jogo desejado.
Define-se:
1
2
1
2
Full transcript