[Tutorial] Otimizando seus jogos de Game Maker - Página 2
Re: [Tutorial] Otimizando seus jogos de Game Maker
em Sex 01 Mar 2013, 10:13
Gente, foi mal pelo discurso lá na pagina 1, é que eu achei que isso tava gerando uma discussão entre usuários...
em Sab 11 Maio 2013, 11:59
1 - Desativar/Destruir Instâncias Não-Utilizadas
Na verdade, essa é uma solução que gera um conceito (e talvez não seja o meio mais rápido, mas o mais confortável) na hora de programar. Quando eu comecei no Game Maker, meu raciocínio era completamente voltado para objetos e, em muitos casos onde eu poderia ter usado um único objeto, usei vários.
Desativar instâncias acaba virando um "remédio" em algumas situações, principalmente nessas onde a programação é que deveria ser analisada e não o número de instâncias ativas. Mas cada caso é um caso...
8 - Desative a sincronização
Nunca vi diferença de velocidade, nem mesmo usando uma view ou port grande (e olha que meus PC's sempre foram lentos). Imagino que uma janela maior do jogo (onde o problema fica mais visível) exigiria sincronização, já que a "atualização" é feita de cima para baixo (lembro de ter lido isso em algum lugar...), mas nunca notei lentidão.
10 - Desenhe os primitivos para a surface primeiro
5 - Desenhe Menos
Duas ótimas dicas. Até acho que é melhor desativar o automatic drawing, usar somente uma surface e fazer só o necessário no step (se a velocidade da room estiver entre 30 steps). Nem sempre é preciso redesenhar tudo quando se usa uma surface (vantagem em poder controlar a freqüência com que o desenho é feito), então, já é outro ganho muito bom.
Nada disso é necessário, mas já que estamos comentando sobre "formas de ganho"...
9 - Use resoluções de Tela Menores
Não só a observação sobre room, mas isso também está certo. Quando você usa uma resolução de vídeo mais baixa, o sistema dispõe de mais memória de vídeo sobressalente, além de ter uma frequência de desenho mais fácil (não tem a ver com a freqüência do monitor), vide que ele processa uma área de vídeo menor. Isso não acelera o jogo, mas alivia o hardware e deixa o sistema um pouco mais rápido.
Mas isso não deve ser usado sem o consentimento do usuário. Mesmo os jogos profissionais perguntam ao jogador qual resolução ele quer usar e SE ele quer usar. Ao contrário do que há aos montes na internet, uma resolução de vídeo errada pode estragar um monitor, sim. Só não sei quanto aos monitores lcd e led, mas aqueles antigos (de tubo) podem estragar se trabalharem fora da frequência certa durante muito tempo.
Há casos em que a placa gráfica pode operar numa resolução, mas o monitor, não. Hoje em dia, isso não acontece mais, mas, antigamente, monitores não eram tão "inteligentes" pra ignorarem resoluções ou frequências diferentes das suportadas de fabricação. E sim, os de tubo queimavam.
6 - Reduza A Qualidade De Seus Sons/Músicas
Eu também acho que isso está errado. Reduzir a qualidade pode tornar o resource menor em KB, acelerar o carregamento e gerar uma reprodução mais leve, mas também não acho que isso vá acelerar o jogo.
Minha dica pro tópico seria...
O computador do jogador não deve ser adaptado para seu jogo. Não é legal você alterar resolução, pedir que ele instale pacotes adicionais ou aumentar a taxa de prioridade de processos (e sim, infelizmente isso acontece até com programas profissionais). A responsabilidade do bom desempenho é 90% sua.
Tudo sempre caminhou para a rapidez e facilidade. Mas ambos os lados devem ser vistos (tanto o seu, quanto de quem vai usar seu software). Sinceramente, eu fico com um pé atrás quando baixo um programa de 1 MB onde, pra funcionar, tenho que baixar um pacote de outros 90 MB!
É o seu software que tem que se adaptar à máquina. A partir do ponto onde você passa a planejar seu jogo rodando em várias máquinas diferentes (principalmente nas mais modestas), você vai ter que adequá-lo repensando a sua forma de programar.