SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
como salvar rotaçao uma vez
problemas com rigidbody
Raycast ponto a ponto
Criação do menu Opnióes
MySql Unity(2018.2.14F1)
Aparecer uma caixinha em algum tempo do jogo.
Rodas de tanque
keystore Android
animator duvidas
Formação de equipe (projeto já em andamento)
Unity Network, isServer, IsLocalPlayer..
Como executar uma animação atraves de um botão?
[TUTORIAL] Sistema de Oficina de Carros
[TUTORIAL] Unity 5 - Botão contínuo usando UI (Manter pressionado)
[PEDIDO] Script de Atirar
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
[RESOLVIDO] Erro de Prefab quando realiza o Build de um projeto 3D
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
Renderizar apenas algumas partes do mapa.
[RESOLVIDO] Água à noite?
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[PACOTE 2D GRATUITO] Pacote com 17 sprites de alta qualidade para baixar!
eixos X e Z nao rotaciona junto com o play
Erro na unity
Drop Shadows
Senha jogo schultz
Como fazer um sistema para conectar objetos?
Help!!! Criarção de Shader.
Projeto Estilo DD Tank
Duvidas com ADS
[TUTORIAL] Unity 5 - Sistema básico de jogo estilo ANGRY BIRDS
problema com giro na realidade aumentada
Sistema stealth
FreezeRotation e FreezePosition RigidBody Unity
[RESOLVIDO] Instanciar randômicamente prefab acima do terreno. Unity.
Gravidade para objetos selecionados
Procura-se Modelador para Mapas
Mudar ícone do jogo pelo script
[TUTORIAL] Plants VS Zombies na Unity!
A possibilidade de importar uma Biblioteca (dll) numa classe (MonoBehavior) da Unity?
IAP e ADS: plugins obsoletos
[Em Desenvolvimento] Battles of Worlds
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[RESOLVIDO] Linkar Script do inimigo quando o player entrar no collider dele
Ajuda sobre script para abir e fechar porta malas
site pra modelos 3d de armas
[RESOLVIDO] alguem que saiba fazer um jogo de fps pode ajuda?
Compilação do Game
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Snake Game - JavaScript + SVG
(Dúvida) Como acessar o sensor de movimento do Android?
[TUTORIAL] Gerenciamento de idiomas para o jogo ou app
[RESOLVIDO] Menu de um jogo com vários mapas
[TUTORIAL] Criando jogo de cartas com I.A (C# e Visual Studio) - Parte 01
USSecurity
Sawed off (Modelo 3D)
Direito autoral
Contar objetos clones
Dividir uma mesh em dois.
Procura se level designer ou diretor de arte ( REMUNERADO )
[TUTORIAL] Sistema COMPLETO de câmeras
[RESOLVIDO] Animaçao só funciona uma vez
[RESOLVIDO] Eu não consigo abrir o monodevelop
Novo Asset Sistema de Portas e Chaves
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
[RESOLVIDO] Como fazer a animação executar so uma vez
[JOGO] Mega BombermOn - Pokémon + Bomberman
Meu personagem na Realidade Aumentada fica tremendo
Carregar arquivos da biblioteca
Jogo de Tabuada
ik nao funciona
DUVIDA EM SCRIPT
Cores nos materiais sem criar material
[Projeto] Line Battle
[TUTORIAL] Controle de personagem em primeira pessoa + pulo para android!
SkyBox Com qualidade Horrivel!
[RESOLVIDO] Bug/Erro da unity?
(ARQUIVO) Leia aqui como obter sucesso com seu jogo independente?
erro unity para android
MENU DE SELEÇÃO DE FASES
[PROJETO CONCLUÍDO] Defeat the Illuminatis
sombras para jogos mobile
Corcle (Mobile) - Um jogo simples com um nome estranho.
[TUTORIAL] Jogo da forca em C#
[RESOLVIDO] Dúvida com relação à "Escopo" e "Namespace" entre pastas na Unity
Problema ao rotacionar valores negativos.
Importe objeto do blender
Monodevelop
Equipe RedSkyGames Studio
Blender ao juntar algumas partes ficam mais escuro
new Vector3 (o que ele ta fazendo de errado??)(iniciante)
[TUTORIAL] Sistema de Controlador De Primeira Pessoa Com Som De Passos Aleatorios
[TUTORIAL] AI Enemy ( Jogos de terror )
[RESOLVIDO] Retornar um resultado de pagina PHP com texto formatado
[RESOLVIDO] Como Voltar o Player para o Início usando Trigger? C#
Unity - Deslizar Para Rotacionar o 'Personagem'
Como criar um poligono dinamicamente?
Instantiate
Hoje à(s) 7:58 am
Hoje à(s) 7:51 am
Hoje à(s) 6:02 am
Hoje à(s) 12:35 am
Ontem à(s) 7:56 pm
Ontem à(s) 7:24 pm
Ontem à(s) 5:19 pm
Ontem à(s) 1:40 am
Seg Dez 10, 2018 5:54 pm
Dom Dez 09, 2018 8:02 pm
Dom Dez 09, 2018 6:31 pm
Dom Dez 09, 2018 6:19 pm
Sab Dez 08, 2018 11:28 pm
Sab Dez 08, 2018 9:42 pm
Sab Dez 08, 2018 3:20 pm
Sex Dez 07, 2018 6:04 pm
Sex Dez 07, 2018 12:11 pm
Sex Dez 07, 2018 5:03 am
Qui Dez 06, 2018 11:02 pm
Qui Dez 06, 2018 8:17 pm
Qui Dez 06, 2018 6:30 pm
Qui Dez 06, 2018 6:30 pm
Qui Dez 06, 2018 6:26 pm
Qui Dez 06, 2018 5:59 pm
Qui Dez 06, 2018 1:28 pm
Qua Dez 05, 2018 8:53 pm
Qua Dez 05, 2018 11:31 am
Ter Dez 04, 2018 6:57 pm
Ter Dez 04, 2018 3:24 pm
Ter Dez 04, 2018 1:37 pm
Ter Dez 04, 2018 8:02 am
Ter Dez 04, 2018 7:50 am
Ter Dez 04, 2018 4:10 am
Ter Dez 04, 2018 3:57 am
Ter Dez 04, 2018 3:39 am
Seg Dez 03, 2018 10:45 pm
Seg Dez 03, 2018 8:47 pm
Seg Dez 03, 2018 12:11 pm
Seg Dez 03, 2018 12:08 pm
Seg Dez 03, 2018 9:09 am
Seg Dez 03, 2018 9:00 am
Seg Dez 03, 2018 5:12 am
Dom Dez 02, 2018 11:32 pm
Dom Dez 02, 2018 11:31 pm
Dom Dez 02, 2018 11:29 am
Dom Dez 02, 2018 1:51 am
Dom Dez 02, 2018 12:42 am
Sab Dez 01, 2018 9:24 pm
Sab Dez 01, 2018 9:11 pm
Sab Dez 01, 2018 1:37 pm
Sab Dez 01, 2018 1:22 pm
Sex Nov 30, 2018 4:10 pm
Sex Nov 30, 2018 10:28 am
Qui Nov 29, 2018 2:02 am
Qui Nov 29, 2018 1:11 am
Qui Nov 29, 2018 1:08 am
Qua Nov 28, 2018 3:03 pm
Qua Nov 28, 2018 3:00 pm
Qua Nov 28, 2018 1:29 pm
Qua Nov 28, 2018 4:09 am
Qua Nov 28, 2018 3:03 am
Ter Nov 27, 2018 8:49 pm
Ter Nov 27, 2018 5:50 pm
Ter Nov 27, 2018 1:46 pm
Seg Nov 26, 2018 8:29 pm
Seg Nov 26, 2018 2:56 pm
Seg Nov 26, 2018 2:55 pm
Seg Nov 26, 2018 12:43 pm
Seg Nov 26, 2018 9:33 am
Seg Nov 26, 2018 9:28 am
Dom Nov 25, 2018 11:06 pm
Dom Nov 25, 2018 9:21 am
Dom Nov 25, 2018 5:04 am
Sab Nov 24, 2018 8:41 pm
Sab Nov 24, 2018 4:52 pm
Sab Nov 24, 2018 4:03 pm
Sab Nov 24, 2018 2:33 pm
Sab Nov 24, 2018 8:49 am
Sab Nov 24, 2018 6:54 am
Sex Nov 23, 2018 4:28 pm
Sex Nov 23, 2018 1:58 pm
Sex Nov 23, 2018 1:29 pm
Sex Nov 23, 2018 12:49 pm
Sex Nov 23, 2018 12:42 pm
Qui Nov 22, 2018 7:21 pm
Qui Nov 22, 2018 12:59 pm
Qui Nov 22, 2018 10:53 am
Qui Nov 22, 2018 10:33 am
Qua Nov 21, 2018 7:41 pm
Qua Nov 21, 2018 11:09 am
Qua Nov 21, 2018 7:30 am
Ter Nov 20, 2018 10:58 pm
Ter Nov 20, 2018 4:07 pm
Ter Nov 20, 2018 2:37 pm
Ter Nov 20, 2018 12:58 pm
Seg Nov 19, 2018 11:11 pm
Seg Nov 19, 2018 7:47 pm
Seg Nov 19, 2018 7:42 pm
Seg Nov 19, 2018 2:46 pm
diegopds
Carlos Andre
diegopds
gilgsjr
gilgsjr
SuperGamer
Isabela
natanael.olimpio
gilgsjr
BRGC
Callyde Jr
luis45
Jp.Game
ueslei16
gcs
dstaroski
McbDJ
MarcosSchultz
Isabela
gilgsjr
dstaroski
dstaroski
dstaroski
francisco barroso
yVIEIRA
NKKF
francisco barroso
henriquegames501
gilgsjr
Manawydan
Zack2
yanayana
MarcosSchultz
MarcosSchultz
MarcosSchultz
Emerson Rebouças
lesgoy
Opiz
NKKF
Tegh
Tegh
Zack2
Dom3000
Dom3000
Luizdanhp
ffabim
gutozardy
diegopds
gilgsjr
Joab Artes Gráficas
SuperGamer
glauco
dstaroski
Valdir dos Santos
igorobm
igorobm
TioUV
TioUV
dstaroski
conceptfac
rZwr
Erivan
francisco barroso
tonCosta3939
Simplizãum S
ninjagamergabriel
Hube
Mago
natanael.olimpio
natanael.olimpio
MarcosSchultz
diegopds
KAYKETHEO27
NKKF
MRX
tonCosta3939
Joab Artes Gráficas
Zack2
Joab Artes Gráficas
francisco barroso
Callyde Jr
dstaroski
Joab Artes Gráficas
Joab Artes Gráficas
clroberto2005
Insurgente
diegopds
diegopds
Tegh
Samuelostgamer
TioUV
NKKF
Simplizãum S
ArysonSantos
Jmspp
gonzaga
Magnatah
conceptfac
francisco barroso

[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Ir em baixo

TUTORIAL [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 em Qua Jul 19, 2017 6:03 am

Oi galera! A um tempo atrás eu fiz um tópico com 43 dicas de otimização. Ele pode ser encontrado aqui:
http://www.schultzgames.com/t4985-tutorial-43-otimas-dicas-de-otimizacao-para-jogos-mobile-android
Desde aquele tópico, fui aprendendo novas maneiras de otimizar o jogo. Dessa vez mais focado em gargalos e em malhas animadas. Então vamos lá.

1 - Reduzir OU EVITAR o uso do componente Outline e Shadow
Spoiler:

Tá.. eu sei que esses componentes deixam o visual do texto mais bonito e tal, mais é sério, eles causam gargalos enormes em mobile, se abusados. A minha dica aqui é que evite o máximo o uso deles. O motivo é que esses componentes infelizmente são mal tratados pela Unity, foram feitos de uma maneira bem... "Marromeno". Eles geram muitas draw calls porque fazem o componente ser processador mais algumas vezes pra gerar as sombras ou linhas. Você pode colocar linhas pretas ao redor de imagens, através do photoshop. Tente usa-los somente em TEXTOS que precisam de um certo destaque pra não ficarem feios, como esse exemplo:



Observe os textos das moedas e das estrelas de sherif, esse é um bom uso desses componentes. Tambem evite de usa-los ao mesmo tempo. Sempre use o Outline OU Shadow. Nunca os dois ao mesmo tempo.

2 - Evitar alteração em tempo real no alpha de componentes da UI
Spoiler:

Alterações em tempo real(mathf, animator, etc..) no alpha de imagens, pode gerar gargalos imensos no jogo. É sério. Tente evitar de ficar alterando o alpha de imagens e outros objetos enquanto o jogo roda. Não quer dizer que você não possa usar isso, mais use de uma maneira cautelosa, sempre teste tudo.

3 - Usar somente uma malha para personagens
Spoiler:

Tente usar somente uma malha para seus personagens animados. A questão aqui é que tudo que possui uma animação vinda de programas de modelação, possui um componente chamado "Skinned Mesh Renderer". Esse é o componente responsavel por processar as deformações de sua malha. Quanto menos desses componentes estiverem sendo processados simultaneamente, melhor para a CPU.

4 - Reduzir qualidade das animações dos perssonagens que não são os principais
Spoiler:

Essa tambem é uma boa maneira de melhorar o desempenho se você possui muitos personagens na tela. Vá até o componente "Skinned Mesh Renderer" do personagem, e altere o componente chamado "Quality" para 2 Bones ou 1 Bones. Quanto menos bones, pior é a qualidade. Só tenha em mente que 1 Bone vai deixar as animações do personagem, meio quadradas.

5 - Configurar o Terrain corretamente
Spoiler:

Ah.. o Terrain.. No último tópico eu meio que dei uma detonada nele.. Mais então, estava eu indo refazer o cenario do meu jogo e resolvi dar uma chance pra ele, então descobri que se bem otimizado, ele pode ser uma boa. Então aqui vão algumas dicas pra quem quer usa-lo.

- Evite usar Terrenos muito grandes (acima de 600x600)
- Evite usar mais de 3 texturas para pintar o terreno (Usar 4 ou mais texturas começa a afetar o processamento bem negativamente)
- Evite usar muita grama.. Se você vai colocar a grama do Terrain, coloque só algumas apenas dando cliques, para isso é so reduzir o tamanhodo pincel para 1.

Agora, as configurações para ele:

- Pixel error: deixe em 200
Pixel error reduz a quantidade de vertices do terreno e tambem faz um tipo de LOD em montanhas que estão distantes pra reduzir a quantidade de vertices a serem processadas. o terreno vai ficar um pouquiiiinho mais feio, mais vai ser mais rapido para processar.

- Base map dist.: Deixe em 25
Essa é o tamanho da area que processa corretamente a textura do terreno, no caso, o que estiver a mais de 25 metros da camera, vai ficar meio borrado, pra ficar mais leve.

- Material: Deixe em Built In Legacy Diffuse
Esse é o material mais leve do terrain.

- Detail distance: Deixe em qualquer valor abaixo de 80
A distancia que a grama começa a ser renderizada

- Collect detail patches: Deixe ativado
Esse componente, quando ativado faz com que os dados do terreno sejam armazenados na memoria RAM sempre que não estão sendo vistos, assim quando voltarem a serem vistos, apenas são renderizados, enquanto que se estiver desabilitado, esses dados não são armazenados, então tudo é descontado na CPU, causando gargalos. Tenha em mente que dependendo do terreno, esse componente pode aumentar o consumo de RAM consideravelmente.

- Terrain Width, Lenght e Height: Deixe todos igual ou abaixo de 600
Esse é o tamanho do terreno. Não é proibido fazer algo acima de 600, mais deve ser feito com cautela, eu testei somente terrenos até o tamanho de 600, e não tive problemas com eles.

- Heightmap Resoltion: Deixe igual ou abaixo de 129
Esse é o tamanho da textura que coordena o mapa de alturas do seu terreno. Tente deixar num valor baixo pra não ficar pesado. Cuidado: Se você já modelou seu terreno, e fizer alguma alteração aqui, a modelagem do terreno vai ser resetada.

- Detail resolution: Deixe igual ou abaixo de 256
Nivel da resolução de detalhes do terreno

- Detail resolution per patch: Deixe igual ou abaixo de 8
Quantidade de detalhes em cada patch do terreno.

- Control texture resolution: Deixe igual ou abaixo de 256

- Base texture resolution: Deixe igual ou abaixo de 1024
Nivel de detalhe da textura do terreno em si.

Pra finalizar, tente usar texturas menores ou iguais a 512 de resolução em seus terrenos, e não deixe de usar o Occlusion Culling nos terrenos tambem, isso ajuda a aliviar o processamento de vertices. Foi executando essas dicas que eu consegui usar terrenos em meu jogo, sem afetar negativamente o desempenho. Os terrenos estão bem baratos para o processamento em meu jogo.


6 - Mais um shader leve para o processamento
Spoiler:

Quem viu o ultimo tópico, sabe que eu recomendei o Difusse como shader leve. Mais, ele é o segundo shader mais leve. Ele ainda calcula processamento de varias luzes. Então agora vou recomendar o shader que combina beleza e desempenho e se sobresai sobre os outros. O "Vertex Lit (Only Directional Light)" é o shader mais leve depois do Diffuse, que calcula luz, mais ele só suporta no maximo uma luz direcional. Pra resumir, aqui estão os shaders de mobile. Os primeiros shaders são os mais leves.

- Unlit (Sem luz)
- Vertex Lit (Sem luz)
- Vertex Lit (Only Directional Light)
- Diffuse
- Bumped Diffuse (Suporta normal map)
- Bumped Specular (Only Direcional Light)
- Bumped Specular


7 - Reduzir os calculos de física
Spoiler:

Bom.. SE você possui um jogo de tiro, ou ação ou similares, não tem porque ter uma fisica sendo simulada a 50 vezes por segundo. Você pode reduzir para 30 vezes por segundo. Ainda é um valor bom, e que não é notavel a olho nú, ainda é um valor rapido. Você só deve notar uma diferença BEEEEEEEEEEEM pequena em calculos de suavização, como Mathf.Lerp, Vector.Lerp, Quaternion.Lerp e etc.

Para fazer isso, vá em Edit > Project Settings > Time. Altere o campo "Fixed Timestep" para "0.03", altere o "Maximum Allowed Time" para "0.04".

8 - Cuidado ao usar Coroutines
Spoiler:

No ultimo tópico eu disse que elas podem ajudar muito, e realmente, ajudam bastante, mais você sempre deve testa-las quando as cria. Essas rotinas, geram alocações no garbage collector, então, sempre fique atento em como seus scripts estão se saindo pelo Profile.

Outra dica legal tambem: Você pode executar verificações if pelas coroutines, de tempos em tempos. Ao inves de jogar uma verificação como "Vector3.Distance", direto na void Update, você pode colocar essa verificação em uma Rotina, e programa-la para ser verificada a cada 0.3 segundos por exemplo. É uma forma leve e que não afeta tanto assim no processamento.


Isso é tudo pe-pe-pessoal!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2805
REPUTAÇÃO : 534
Idade : 19
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.xyz/site

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Édipo em Qua Jul 19, 2017 8:31 pm

no caso de um jogo que preciso de um mapa bem brande mais ou menos uns 3000 de tamanho, é melhor usar 1 de 3000 ou vários de no máximo 600 como vc disse?

Édipo
MembroAvançado

Masculino PONTOS : 1741
REPUTAÇÃO : 40
Idade : 30
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por marcos4503 em Qua Jul 19, 2017 8:34 pm

É bom tambem dividir o terrain, se ele for muito grande, assim voce pode desativar terrenos muito distantes pra poupar processamento
avatar
marcos4503
Instrutor

Masculino PONTOS : 2805
REPUTAÇÃO : 534
Idade : 19
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.xyz/site

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)

Mensagem por Édipo em Qui Jul 20, 2017 10:03 am

@marcos4503 escreveu:É bom tambem dividir o terrain, se ele for muito grande, assim voce pode desativar terrenos muito distantes pra poupar processamento
ok
muito obrigado

Édipo
MembroAvançado

Masculino PONTOS : 1741
REPUTAÇÃO : 40
Idade : 30
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum