Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Plataformas de criação de jogos
+8
Kabeção
Joton
Lukbebalduke
vinians
PedroX
cascavelo
Neutral
irlansn
12 participantes
Página 2 de 2
Página 2 de 2 • 1, 2
Re: Plataformas de criação de jogos
É fácil perceber que o melhor método é o gerenciamento eficiente dos recursos. Por exemplo, os sprites são carregados na memória. Ao mudar de fase, o jogo vai parar de desenhá-lo, já que a instância foi destruída. Mas o sprite continua na placa de vídeo. Se você não apagar o sprite da placa, ele não sairá de lá. Após concluir 15, 20, 30 ou mais fases o sprite continua lá. A soma dos recursos desnecessários na placa gera um maior consumo e um retardamento do computador, pois ele precisa fazer outras coisas, como tarefas em segundo plano. Como ele não tem espaço na memória, ele começa a ficar lento. A DLL de certa forma limpa esses rastros, mas como disse o Vinians você não pode usá-la em jogos de outras plataformas.
Até mais!
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Plataformas de criação de jogos
É infelizmente funciona só no windows...
Mas eu já faço isso, a cada troca de room ele descarrega e carrega os resources que serão usados... E mesmo assim a dll deixou o jogo ainda mais leve.... O que pode ser feito é que como (esse jogo especificamente) é mais para PC, usa-se a dll no windows para diminuir ainda mais e nas outras plataformas contar só com a boa utilização dos recursos....
Mas eu já faço isso, a cada troca de room ele descarrega e carrega os resources que serão usados... E mesmo assim a dll deixou o jogo ainda mais leve.... O que pode ser feito é que como (esse jogo especificamente) é mais para PC, usa-se a dll no windows para diminuir ainda mais e nas outras plataformas contar só com a boa utilização dos recursos....
irlansn- Games Ranking :
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Plataformas de criação de jogos
Essa DLL só limpa a memoria que não é mais usada. Só vai resolver 50% do problema pois primeiro você tem que saber como lidar com a memória que será usada.
E porque é bom dividir os objetos... bom, vamos pegar essa parte da imagem:
Obs.: Como é só um exemplo dimini o tamanho delas mas os cálculos a seguir foram feitos com os tamanhos originais.
Só essa parte tem 1449x1710, ou seja, 2477790 pixeis carregados (largura * altura).
As partes transparentes são pixeis da mesma forma e esta sobrando bastante. Ai já temos disperdício.
No sistema de cor ARGB (alpha, red, blue e green) cada pixel equivale a 4 bytes.
2477790 * 4 = 9911160 bytes, ou seja, 9.9 mb de memória usadas.
Agora vamos dividir eliminando espaços e separando
1449x760 = 1101240 * 4 = 4404960 bytes, 4,4 mb.
610x432 = 263520 * 4 = 1054080 bytes, 1,05.
368x396 = 145728 * 4 = 582912 bytes, 0.5 mb.
Somando 4,4 + 1.05 + 0.5 = 5,95 mb.
Economizamos 3,95mb só ali. Quase 40% de desconto pra sua placa de video.
Daria pra fazer isso em diversas partes da imagem e imagine o resultado levando em quanta todas as fases.
Agora porque tiles e imagens repetidas são essenciais em jogos:
Esse é um dos meus tiles de um projeto que parei a algum tempo.
E um background.
A primeira tem 153x250 = 38250 * 4 = 153000 bytes, 0.1 mb.
A segunda tem 64x64 = 4096 *4 = 16384 bytes, 0.02mb
Com essas imagens posso fazer diversas montagens:
Tudo isso com esses 0.12 mb.
Assim como duas instancias do mesmo objeto gastam menos memória que duas instancias de dois objetos diferentes, os tiles são pedaços desenhados em diversos pontos diferentes mas tudo da mesma imagem.
Com um pouco mais de tiles e detalhes não é difícil fazer algo diferente com as mesmas coisas:
É esse o método que o jogo Meat Boy usa em fases como essa ou essa.
Já o Braid usa tiles e backgrounds irregulares que embora poucos se repitam são cortados estrategicamente para evitar o mesmo problema que o seu, tipo esse e esse.
No caso dele devido ao realismo pouca coisa pode se repetir mas isso não quer dizer que não pode ser otimizado.
É por isso que imagens do tipo do céu devem ser evitadas porque não a nada que eu posso apagar, otimizar e/ou aproveitar em outras partes.
É importante que o artista também tenha conhecimento dessas técnicas para o trabalho dele ser totalmente aproveitado sem pesar no jogo.
Porque o gasto de memória e processamento equivale a quantidade de pixeis da imagem, ou seja, quanto maior mais memória e mais pesado (no sentido de lentidão) o jogo fica.Cara, só tem uma coisa que para mim não faz sentido, qual a diferença de dividir a imagem em "Blocos" (1024X1024) ou ate menor, e dividir em objetos, e no jogo não vai repetir nenhum objeto, e sendo assim porque evitar imagens como o céu se serão divididas?
E porque é bom dividir os objetos... bom, vamos pegar essa parte da imagem:
Obs.: Como é só um exemplo dimini o tamanho delas mas os cálculos a seguir foram feitos com os tamanhos originais.
Só essa parte tem 1449x1710, ou seja, 2477790 pixeis carregados (largura * altura).
As partes transparentes são pixeis da mesma forma e esta sobrando bastante. Ai já temos disperdício.
No sistema de cor ARGB (alpha, red, blue e green) cada pixel equivale a 4 bytes.
2477790 * 4 = 9911160 bytes, ou seja, 9.9 mb de memória usadas.
Agora vamos dividir eliminando espaços e separando
1449x760 = 1101240 * 4 = 4404960 bytes, 4,4 mb.
610x432 = 263520 * 4 = 1054080 bytes, 1,05.
368x396 = 145728 * 4 = 582912 bytes, 0.5 mb.
Somando 4,4 + 1.05 + 0.5 = 5,95 mb.
Economizamos 3,95mb só ali. Quase 40% de desconto pra sua placa de video.
Daria pra fazer isso em diversas partes da imagem e imagine o resultado levando em quanta todas as fases.
Agora porque tiles e imagens repetidas são essenciais em jogos:
Esse é um dos meus tiles de um projeto que parei a algum tempo.
E um background.
A primeira tem 153x250 = 38250 * 4 = 153000 bytes, 0.1 mb.
A segunda tem 64x64 = 4096 *4 = 16384 bytes, 0.02mb
Com essas imagens posso fazer diversas montagens:
Tudo isso com esses 0.12 mb.
Assim como duas instancias do mesmo objeto gastam menos memória que duas instancias de dois objetos diferentes, os tiles são pedaços desenhados em diversos pontos diferentes mas tudo da mesma imagem.
Com um pouco mais de tiles e detalhes não é difícil fazer algo diferente com as mesmas coisas:
É esse o método que o jogo Meat Boy usa em fases como essa ou essa.
Já o Braid usa tiles e backgrounds irregulares que embora poucos se repitam são cortados estrategicamente para evitar o mesmo problema que o seu, tipo esse e esse.
No caso dele devido ao realismo pouca coisa pode se repetir mas isso não quer dizer que não pode ser otimizado.
É por isso que imagens do tipo do céu devem ser evitadas porque não a nada que eu posso apagar, otimizar e/ou aproveitar em outras partes.
É importante que o artista também tenha conhecimento dessas técnicas para o trabalho dele ser totalmente aproveitado sem pesar no jogo.
Re: Plataformas de criação de jogos
Excelentes exemplos.
Outra coisa que é legal destacar é que toda regra tem sua exceção. Não é diferente no caso. Embora durante o jogo a memória consumida será menor, na hora de carregar irá demorar mais tempo, já que são mais imagens diferentes pra carregar. Ou seja, a velocidade é menor no carregamento, mas a memória é menos desperdiçada.
Tutorial:
https://gmbr.forumeiros.com/t19480-melhorando-o-desempenho-dos-jogos?highlight=desempenho
Até mais!
Outra coisa que é legal destacar é que toda regra tem sua exceção. Não é diferente no caso. Embora durante o jogo a memória consumida será menor, na hora de carregar irá demorar mais tempo, já que são mais imagens diferentes pra carregar. Ou seja, a velocidade é menor no carregamento, mas a memória é menos desperdiçada.
Tutorial:
https://gmbr.forumeiros.com/t19480-melhorando-o-desempenho-dos-jogos?highlight=desempenho
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Plataformas de criação de jogos
Ótima observação.Pedrø escreveu:Outra coisa que é legal destacar é que toda regra tem sua exceção. Não é diferente no caso. Embora durante o jogo a memória consumida será menor, na hora de carregar irá demorar mais tempo, já que são mais imagens diferentes pra carregar. Ou seja, a velocidade é menor no carregamento, mas a memória é menos desperdiçada.
Se vai mesmo usar imagens desse tamanho é bom fazer rotinas de carregamento no inicio de cada fase, não se esqueça de dizer aos jogadores que está carregando (as famosas telas de loading) se não vão achar que alguma coisa travou. No final de cada fase limpar a memória que não será usada na próxima e para isso aquele DLL é bem útil.
Temos como exemplo disso os games comerciais de grandes produtoras.
Hoje em dia jogos como o Skyrim carregam o cenário de forma silenciosa enquando o jogador se move.
Esse método é útil no 3D de cenários gigantescos mas para jogos comuns de fase e 2D não vale a pena.
Re: Plataformas de criação de jogos
Valeuuuuuu Kabeção me esclareceu muitas duvidas! Creio que com essas técnicas vou diminuir muito o peso de meu jogo apesar que o objetivo é ser bem diverso nos gráficos (afinal são todos desenhados de uma vez só) então meu jogo vai ser como o Braid, farei de tudo para evitar desperdício, e creio que uma imagem ou outra, que não possa ser diminuída, não fará muita diferença se diminuir ao máximo o restante, então no caso do céu vou apenas dividi-la mesmo... E vou conversar com Gustavo, o designer do jogo, sobre isso.
E MUITO obrigado mesmo, acho que pensando bem é melhor não mudar de plataforma assim tão cedo, pois em outro programa não vou ter toda uma "equipe" pronta para tirar minhas duvidas como tenho aqui no fórum claro que mesmo com outros programas essas técnicas se aplicam mas de forma geral não teria o apoio que esse fórum possibilita aos desenvolvedores!
Pedrø Amei seu tutorial, vou dar uma olhada com mais calma e adequar o meu jogo a suas dicas, e acho que se colocar uma imagem (de "carregando") mesmo que sem animação já deixa o jogador mais tranquilo, pois o jogo já é com o sistema de usar imagens só no momento certo e ele demora só uns 5 segundos para carregar, neste sistema creio que não vá ultrapassar os 15... Mas de qualquer forma é bom manter um equilíbrio, obrigado pela dica.
EDITE:
E o Kabeção favou tudo que eu ia dizer
EDITE2:
Só queria avisar de que mais do que certo, antes o jogo gastava 650 mb de RAM, agora gasta 250 mb, novamente muito obrigado pessoal
E MUITO obrigado mesmo, acho que pensando bem é melhor não mudar de plataforma assim tão cedo, pois em outro programa não vou ter toda uma "equipe" pronta para tirar minhas duvidas como tenho aqui no fórum claro que mesmo com outros programas essas técnicas se aplicam mas de forma geral não teria o apoio que esse fórum possibilita aos desenvolvedores!
Pedrø Amei seu tutorial, vou dar uma olhada com mais calma e adequar o meu jogo a suas dicas, e acho que se colocar uma imagem (de "carregando") mesmo que sem animação já deixa o jogador mais tranquilo, pois o jogo já é com o sistema de usar imagens só no momento certo e ele demora só uns 5 segundos para carregar, neste sistema creio que não vá ultrapassar os 15... Mas de qualquer forma é bom manter um equilíbrio, obrigado pela dica.
EDITE:
E o Kabeção favou tudo que eu ia dizer
EDITE2:
Só queria avisar de que mais do que certo, antes o jogo gastava 650 mb de RAM, agora gasta 250 mb, novamente muito obrigado pessoal
irlansn- Games Ranking :
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 2 de 2 • 1, 2
Tópicos semelhantes
» Criação de jogos
» Aulas de criação de jogos para celular
» Programas de criação de jogos
» C++ para criação de jogos
» Ajuda na criação de jogos
» Aulas de criação de jogos para celular
» Programas de criação de jogos
» C++ para criação de jogos
» Ajuda na criação de jogos
Página 2 de 2
Permissões neste sub-fórum
Não podes responder a tópicos