Todas as Ilhas do Unreal Editor para Fortnite (UEFN) oferecem suporte para uma variedade de hardwares, desde PCs de última geração, até dispositivos móveis. Mas, para criar Ilhas adequadas para dispositivos móveis, é preciso construir considerando a otimização e eficiência da memória desde o início.
Esta página te orienta pelas questões principais ao projetar para dispositivos móveis.
Práticas recomendadas de design para dispositivos móveis
Defina o design com os jogadores em mente:
Entenda seu público e o que eles esperam de uma experiência de jogo para dispositivos móveis.
Crie uma interface de usuário personalizada que seja simples, clara e fácil de navegar na tela de um dispositivo móvel.
Projete para telas variáveis e teste frequentemente em muitos tipos de tela e resoluções.
Faça uso dos controles para dispositivos móveis existentes do Fortnite e projete seu jogo apropriadamente.
Crie engajamento por meio da jogabilidade:
Crie um loop de jogo curto, mas envolvente, tornando o jogo fácil de começar e terminar.
Crie introduções rápidas e envolventes que exibem mecânicas de jogo que animam os jogadores.
Ofereça uma sensação de progressão, persistência e recompensas para incentivar a repetição do jogo.
Escolha modos de jogo e gêneros que atraem jogadores para dispositivos móveis.
Otimize seu projeto:
Gerenciar texturas com eficiência.
Priorize a eficiência da memória.
Configurações de escalabilidade
O UEFN foi projetado para lidar com a escalabilidade de plataformas. Devido a limitações de hardware, algumas funcionalidades estão desabilitadas ou reduzidas em níveis de qualidade mais baixa. Use a ferramenta Escalabilidade Visual no editor para visualizar sua Ilha em diferentes grupos de escalabilidade. É altamente recomendável testar em vários níveis.
A tabela abaixo mostra as principais funcionalidades que são dimensionadas ou desabilitadas em diferentes níveis de qualidade:
Construir sua Ilha e ativos com escalabilidade garante o melhor desempenho e elementos visuais possíveis, independentemente do dispositivo. Principais áreas a considerar:
LODs de malha: use LODs de malha para malhas estáticas ou esqueléticas personalizadas para reduzir a contagem de polígonos e aumentar os quadros por segundo (FPS).
Mundo e HLODs: transmita o mapa usando HLODs e World Partition para reduzir o que é renderizado, atenuando a sobrecarga da GPU e aumentando o FPS.
Grupos de texturas e mapeamento de Mip: habilite o dimensionamento de material em tempo de execução por meio do mapeamento de MIP. Certifique-se de que as texturas estão no grupo correto e são criadas em potências de dois para ter um dimensionamento suave e qualidade visual. Texturas que não estiverem em conformidade com potência de dois não serão transmitidas.
Qualidade do material: materiais complexos podem ser muito caros em plataformas de baixo custo. Criamos agrupadores de função de material para ajudar a personalizar ainda mais diferentes aspectos de um material para diferentes níveis de plataforma.
Navegue até Fortnite > Materiais > Funções, onde você encontrará
MF_QualitySwitch_MaterialAttributes,MF_QualitySwitch_ScalareMF_QualitySwitch_Vector. O uso desses agrupadores de alternância de qualidade para simplificar as funções de material em uma configuração de qualidade inferior melhorará o desempenho. Consulte a página Funções de material para obter mais informações.
Dicas para otimizar arte e ativos para dispositivos móveis
Esteja ciente das limitações dos dispositivos móveis desde o início.
Evite o overdraw. Nivele camadas, limite transparências e remova objetos desordenados sobrepostos.
Simplifique texturas. Use uma ferramenta de minimização.
Teste minuciosamente a sua Ilha em dispositivos móveis. Procure conflitos de interface e sobreposição de elementos por meio de controles de jogabilidade. Você pode usar o Amazon Luna ou o Xbox Cloud Gaming para testar experiências para dispositivos móveis.
Execute a ferramenta Cálculo de Memória para obter uma lista detalhada dos ativos mais caros no seu nível.
Mais dicas de otimização
Apesar de o UEFN oferecer uma excelente escalabilidade de engine, você ainda precisa simplificar e otimizar o conteúdo. A sobrecarga do hardware resulta em FPSs baixos, tempos de carregamento ruins e uma experiência abaixo do ideal. Use essas diretrizes para melhorar o desempenho:
Otimização de malhas: mantenha a contagem de polígonos a mais baixa possível. Consulte Como criar ativos prontos para o Fortnite para saber sobre orçamentos de contagem de polígonos.
Número de materiais: use o menor número de materiais possível. O ideal é usar apenas uma seção de material por malha.
Resolução de textura: os dispositivos móveis têm memória de textura limitada. Use texturas de 512x512 pixels e evite tamanhos maiores, se possível.
Redução de draw calls: evite renderizar muitos objetos e texturas únicos simultaneamente. Use instâncias e malhas estáticas instanciadas hierárquicas (HISM) e agrupe objetos menores em adereços maiores sempre que possível.
World Partition e camadas de dados: reduza os ativos na tela e os tempos de carregamento. Saiba mais sobre World Partition na página de documentação de Gerenciamento de memória.
Otimização da iluminação: use o menor raio de luz possível, evite luzes sobrepostas e defina a mobilidade das luzes como estacionária.
Desative a conversão de sombras nas luzes que não exigem sombras nítidas, especialmente em áreas externas onde a luz do céu fornece iluminação ambiente suficiente.
Use o gerenciador de escalabilidade de iluminação: crie diferentes cenários de iluminação para cada nível das configurações de escalabilidade da engine. Você pode configurar um esquema de iluminação simplificado e com desempenho melhor para os níveis baixo e médio (dispositivos móveis e consoles mais antigos).
Mipmaps e por que precisamos deles
Pense nos Mipmaps como LODs para texturas. A resolução da textura pode mudar com base na orientação e distância da câmera.
Embora seja tentador usar texturas sem mipmaps para renderização mais nítida, essas texturas permanecem na memória do dispositivo e ignoram o processo de transmissão do UEFN.
O gráfico abaixo mostra o uso de memória de textura por tamanho. Considere, por exemplo, que uma textura de 1024x512 usa metade da memória de uma textura de 1024x1024.
Embora individualmente pequenas, muitas texturas são carregadas na tela ao mesmo tempo e não são imediatamente removidas da memória quando a câmera se volta para outro lado. Esse acúmulo pode causar travamentos nos dispositivos por exceder os limites de memória.
Resolução de problemas para dispositivos móveis
Confira alguns problemas e soluções comuns para otimizar sua Ilha para dispositivos móveis.
Taxa de quadros baixa por segundo (FPS) em dispositivos móveis
O problema: muitas draw calls e sobrecarga da placa de vídeo.
Solução: reduza o conteúdo visível de uma vez. Use o World Partition para dividir o nível e reduzir o que é renderizado.
Solução: use HLOD e LODs de malha para reduzir a complexidade do ativo e a contagem de polígonos, permitindo que a GPU renderize objetos mais rapidamente.
Solução: simplifique materiais complexos com configurações de qualidade mais baixas ou reduza o número de materiais únicos, que exigem mais cálculos de GPU por quadro. Reutilize materiais sempre que possível.
Solução: agrupe objetos menores em um ativo maior quando possível. Isso permite que a placa de vídeo os renderize como um único item ou draw call.
O problema: carregamento de muitos ativos de uma só vez.
Solução: use World Partition para dividir o nível e reduzir a quantidade de conteúdo carregado.
Solução: use o HISM e instâncias para reduzir o número de ativos únicos.
Solução: reutilize materiais quando possível para reduzir os cálculos de GPU por quadro.
O uso de memória da Ilha é muito alto
O problema: conteúdo não otimizado.
Solução: use texturas de 512x512 quando possível, atribua o grupo de texturas correto e certifique-se de que a transmissão está habilitada.
Solução: Para malhas personalizadas, use a menor contagem de polígonos para obter LODs eficientes e tamanho de preparação reduzido.
O problema: excesso de malhas exclusivas.
Solução: use HISM e instâncias quando possível. Reutilizar o mesmo ativo de maneiras diferentes reduz o número de ativos únicos armazenados na memória.
Solução: agrupe objetos menores em um ativo maior quando possível.
Dispositivos móveis compatíveis
As tabelas a seguir listam dispositivos e especificações que você deve considerar ao testar experiências móveis.
Android
| E.G.O. | Requisitos mínimos |
|---|---|
Sistema operacional | Android OS 10.0 ou superior |
Arquitetura | Android de 64 bits em um processador ARM64 |
RAM | 4 GB de RAM |
GPU | Adreno 530 ou superior, Mali-G71 MP20, Mali-G72 MP12 ou superior |
Apple
| Device | Modelo |
|---|---|
iPhone | 11, 11 Pro, 11 Pro Max, 12, 12 mini, 12 Pro, 12 Pro Max, 13, 13 mini, 13 Pro, 13 Pro Max, 14, 14 Plus, 14 Pro, 14 Pro Max, 15, 15 Plus, 15 Pro, 15 Pro Max, 16, 16 Plus, 16 Pro, 16 Pro Max |
iPhone SE | 3ª geração de 2022 |
iPad Pro | 12,9 polegadas de 2ª geração ou posterior, 11 polegadas de 1ª geração ou posterior, 10,5 polegadas |
iPad Air | 4ª geração de 2020, 5ª geração de 2022 |
iPad | 10ª geração de 2022 |
iPad mini | 6ª geração de 2021 |
Recursos Adicionais
Aumente seu conhecimento verificando os seguintes recursos:
Seção Memória e otimização na documentação do Fortnite
Vídeo Otimização de projetos no UEFN no YouTube
Vídeo Gerenciamento de memória no UEFN no YouTube