Jogos em foco: Criação de perfil e otimização do desempenho

Este é o terceiro blog de nossa série série Games Focusque destaca as principais iniciativas de desenvolvimento de produtos para o próximo ano e para os anos seguintes. Aqui, abordamos o status, os próximos planos de lançamento e a visão futura para criação de perfil e desempenho na Unity.
Meu nome é Marika. Trabalho no setor de videogames há quase uma década e atualmente sou gerente técnico sênior de produtos para ferramentas de criação de perfil e otimização de desempenho na Unity.
Quando pensamos em desempenho na Unity, há três áreas principais em que acreditamos que podemos ajudar:
- Insight: Permite que você analise o desempenho do seu jogo, identifique gargalos e identifique áreas que se beneficiariam de estratégias de otimização
- Experiência: Garantir que a criação de seus projetos seja perfeita, aumentando o desempenho do Unity Editor e do tempo de execução
- Inovação: Orientá-lo em novas técnicas e paradigmas de programação que têm o desempenho em mente desde o início.
A postagem de hoje se concentra nas duas primeiras áreas, abordando as atualizações recentes em nosso conjunto de ferramentas de criação de perfis e como o feedback dos clientes está moldando nosso roteiro para 2023 e além. Ele termina com uma recapitulação das práticas recomendadas para otimizar projetos.
Vamos nos aprofundar na terceira área, técnicas de programação e fluxos de trabalho voltados para o desempenho, com foco em projetos baseados em DOTS, em uma próxima postagem.
Gostamos de pensar nos recursos de criação de perfil no Unity como ferramentas de detetive que o ajudam a desvendar os mistérios do motivo pelo qual o desempenho do seu aplicativo está lento ou com falhas, ou por que o código está alocando memória em excesso. Eles ajudam você a entender o que está acontecendo nos bastidores do mecanismo de jogo Unity.
Nosso objetivo é aumentar o desempenho das ferramentas e do tempo de execução do Unity por meio da criação de perfis e da otimização, ajudando você a oferecer um desempenho suave para seus jogadores em uma ampla variedade de plataformas e dispositivos.
O Memory Profiler foi projetado para facilitar o controle do uso e da composição da memória. Tenho o prazer de compartilhar que o Memory Profiler 1.0.0 agora é um pacote verificado para a versão beta do Unity 2022.2 e superior (encontre instruções para download aqui). Obrigado a todos que compartilharam seus valiosos comentários sobre como criar um fluxo de trabalho melhor para esse importante recurso.
Muitos de vocês enfrentam o desafio de trabalhar com as restrições de memória de cada uma de suas plataformas de destino. O Memory Profiler ajuda a resolver esse desafio, fornecendo uma visão geral clara do impacto da memória de ativos e objetos em uma única exibição. Ele também mostra informações contextuais detalhadas sobre os objetos e sistemas aos quais a memória está relacionada.
Você pode se aprofundar na captura por meio de exibições detalhadas e comparar instantâneos de memória para identificar possíveis vazamentos e alocações desnecessárias que afetam negativamente o uso da memória.


Aprimoramento do conjunto de ferramentas de criação de perfil existente
Na versão 2022.1, adicionamos o Frame Timing Manager, que permite capturar e acessar dados de tempo de quadro em vários quadros. Se o desempenho estiver atrasado, use esse recurso para avaliar os quadros e analisar por que seu aplicativo não está atingindo as metas de desempenho. Saiba mais sobre isso em nossa documentação.
Se estiver procurando monitorar métricas de GPU de baixo nível no Unity Profiler, você pode usar o novo pacote pacote System Metrics Malique lançamos na versão 2022.1 por meio de uma parceria com a Arm. Esse pacote permite que você acesse métricas de hardware ou sistema de baixo nível em dispositivos móveis. Se estiver curioso para saber mais sobre como garantir que seu conteúdo seja executado sem problemas em dispositivos móveis com CPUs Arm e GPUs Mali, este blog de 2021 poderá orientá-lo.
Otimização do desempenho
As ferramentas de criação de perfil destacadas até agora são um ótimo começo para ajudá-lo a identificar as áreas em que o desempenho pode ser aprimorado. Na minha equipe, no entanto, a "otimização do desempenho" não se aplica apenas ao desempenho do tempo de execução dos jogos nos dispositivos de destino, mas também à forma como a equipe trabalha, ou seja, à sua produtividade. Nosso objetivo é oferecer a você tempos de iteração mais rápidos, menos interrupções e maior eficiência no Editor.
No Unity 2021 LTS, a importação de assets é de três a quatro vezes mais rápida, e a abertura de projetos importados é até 8,7% mais rápida em comparação com o Unity 2020 LTS.
Estou animado para compartilhar alguns dos aprimoramentos que também estão disponíveis nas versões 2022:
- Reimportação aprimorada de materiais para o Pipeline de Renderização Universal e o Pipeline de Renderização de Alta Definição
- Melhorias no fluxo de trabalho do editor, incluindo:
- Tempo de salvamento mais rápido para cenas grandes
- Redução do tempo de parada na seleção de cenas
- Melhor desempenho na visualização de cena quando há muitos grupos de LOD
- Um pacote otimizado de rigging de animação
- Melhor rolagem da hierarquia
- Fluxo de trabalho de salvamento aprimorado para Prefabs grandes
- Tempo de iteração aprimorado ao trabalhar dentro do Editor por meio de otimizações em recarregamentos de domínio
- Melhorias no modo de jogo, incluindo:
- Melhoria no desempenho de lotes estáticos
- Processo otimizado de como o Addressables encontra diretórios de recursos
- Sistemas de partículas de pré-aquecimento
Mais uma vez, seu feedback desempenhou um papel fundamental em muitos desses aprimoramentos. Continue compartilhando seus comentários sobre nosso futuro roteiro aqui ou entre em contato com a equipe nos fóruns. Estamos particularmente interessados em questões relacionadas ao desempenho, que estamos capturando aqui.
Por mais de uma década, mantivemos o foco em garantir que você possa obter o melhor desempenho possível usando nossas ferramentas de criação de perfil, e continuaremos refinando o conjunto de ferramentas. Esse desenvolvimento assumiu muitas formas, incluindo todas as funcionalidades que já mencionamos aqui.
Outra área em que trabalhamos para proporcionar ganhos significativos de desempenho é a Data-Oriented Technology Stack (pilha de tecnologia orientada a dados), ou DOTS. Dois dos principais recursos essenciais para o fornecimento bem-sucedido do DOTS são o compilador Burst e o C# Job System. Eles foram aproveitados em nosso próprio desempenho interno do mecanismo com ótimos resultados e estão disponíveis para todos hoje. Em breve, apresentaremos o terceiro recurso essencial, Entidades, que impulsionará o desempenho do projeto em áreas como redes, física e muito mais. Esse é um aspecto tão importante do nosso compromisso com o desenvolvimento de jogos que, em breve, dedicaremos um artigo independente do Games Focus ao DOTS nesta série.
Por enquanto, vamos dar uma olhada em alguns aprimoramentos planejados para as próximas versões.
Estamos trabalhando para reduzir o tempo gasto na inicialização do Editor, para melhorar o tempo de inicialização e ajudá-lo a manter o fluxo. Atualmente, quando você conecta um dispositivo de destino ao Editor, pode ocorrer instabilidade, como desconexão ou incapacidade de recuperação. Estamos trabalhando para tornar as conexões do Editor com plataformas móveis mais confiáveis e eficientes na versão 2023.1.
Além disso, queremos tornar mais eficiente a identificação de gargalos com o Profiler e saber o que fazer depois de identificá-los. Nosso objetivo é direcioná-lo rapidamente para as áreas de otimização que produzirão os maiores ganhos de desempenho.
Também estamos procurando adicionar insights de memória com base no dispositivo para o qual você está criando, para que possa obter ganhos de desempenho específicos da plataforma. Isso está nos estágios iniciais, e estamos ativamente buscando seu feedback sobre esse novo recurso, que pode ser fornecido em nossa página de roteiro.
A experiência com o conjunto de ferramentas de criação de perfil do Unity é uma das habilidades mais úteis que você pode adicionar à sua caixa de ferramentas de desenvolvimento de jogos. É por isso que estamos trabalhando na criação de conteúdo mais avançado sobre práticas recomendadas para ajudá-lo a obter o máximo de nossas ferramentas.
Vários dos meus colegas de equipe elaboraram recentemente nosso guia mais extenso até o momento sobre criação de perfis no Unity, em parceria com engenheiros especializados da equipe Unity Integrated Success e especialistas.
Sugiro também que você baixe esses e-books avançados adicionais que oferecem práticas recomendadas de otimização específicas para cada plataforma:
Outra referência útil é este fluxograma, que fornece uma abordagem recomendada para identificar gargalos em seu projeto.

Por fim, esta Lista de leitura sobre criação de perfil e otimizaçãocriada por nossas equipes de conteúdo e marketing, inclui as principais publicações do blog que o ajudarão a entender os conceitos e métodos de criação de perfil, do básico ao avançado.

Minha equipe está trabalhando arduamente para trazer as soluções de que você precisa para seus projetos mais ambiciosos, e estamos sempre ansiosos para entender como podemos ajudá-lo melhor.
Fique atento às atualizações em nossa página pública de roteiro. Esse também é o melhor lugar para compartilhar feedback diretamente com a equipe de produtos.
Fique de olho no blog para ver nossa próxima atualização do Games Focus, que se concentrará no que a Unity está fazendo para ajudá-lo a atingir mais plataformas e formatos com seu conteúdo de jogo. E, como sempre, compartilhe seus comentários conosco nos fóruns.
