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
[DÚVIDA] Sistema de load e consumo de memoria
+2
Lucas 5293
Adriano Heartless
6 participantes
Página 1 de 1
[DÚVIDA] Sistema de load e consumo de memoria
Olaa pessoal makermainaicos eeheheh
Bom hoje to aqui pra tratar de uma assunto muito sério que está me fazendo não dormir direito por semanas. O consumo de memoria no Game make.
Não é de hoje que muitas pessoas enfrenta esse problema aqui com o Game maker. Sendo de fato que o game maker hospeda seus sprites e sonds na memoria o que sobre aquece o sistema e torna o seu jogo super pesado. Vou explicar por etapa e preciso de uma ajuda pq isso não está mais ao meu alcance =/
1° Desenvolvimento do diretorio
Comecei a um tempo já desenvolver um projeto e hoje ele está com bastante conteudo. Para resolver o consumo constante de memoria que havia percebido no game maker a solução é crirar um diretorio. Perfeito o game está com exatos 500 megas de conteudo.
Porem ao pegar spites externamente o game maker simplesmente pega o sprite e coloca na memoria, Ou seja fazer um diretorio de arquivos somente faz com que o load do inicio não carregue todos os arquivos ao inves de fizemos o jogo sem diretorio e acontecer isso.
2° Sistema de load
Como eu não estava conseguindo repor as sprites deletadas da memoria.
" sprite_add" "sprite_delete" eu resolvi subistituir os arquivos por arquivos vazios...exemplo
sprite_jogador = 50 megas de memoria
sprite_vazio= 0 megas de memoria
no load eu fazia
sprite_replace_sprite(spr_jogador,"Data/Act1/sprjogador.gmspr");
depois quando não prcisar do sprite eu subistiuia pelo o sprite vazio assim
sprite_replace_sprite(spr_jogador,"Data/spr_vazio.gmspr");
No final deu certo a memoria se estabilizou um pouco mas ainda n é o suciciente.
3° Melhorando o sistema de load com a GMlibrary
Pesquisando que nem um louco consegui achar a GMlibrary
https://gmbr.forumeiros.com/t15117-gexgmlibrary-v2
com ela existe o comando sys_clear_memory()
que limpa a memoria fisica mas mesmo assim não adianta pois esse comando somente limpa a memoria real e não a memoria que o jogo ralmente consome
Eu tenho uma imagem aqui pra demostrar isso
Na imagem da pra ver q o jogo está com o consumo de memoria fisica bem baixo (Privado) porem o sistema está reservando quase 1,5 gb de memoria ( confirmar) o_O
tem momentos que o sistema reserva 1 giga e 700 de memoria =///////////
Pra fazer um teste eu rodei o Tomb Raider Underworld e o sistema reserva apenas 800 megas de memoria...significa que o sistema está indicando q o meu jogo e mais pesado q o Tomb Raider Underworld kkkkkkkkkkkkkk
3° DLL CleanMem
Bom recentimente eu achei algo muito interessante.
Essa DLL tem a função de limpar a memoria de uso usado pelo game maker. É muito util para deixar seu jogo mais leve
http://gmc.yoyogames.com/index.php?showtopic=438215
Bom porem nada disso adiantou...a minha dúvida é tem uma maneira de abaixar o consumo de memoria que o sistema reserva para seu jogo. Pois com os comandos existens somente libera a memoria fisica o que ajuda muito mais n é suficiente.
Algue poderia dizer uma maneira de fazer um sistema de load que não destrua a memoria =/
Bom hoje to aqui pra tratar de uma assunto muito sério que está me fazendo não dormir direito por semanas. O consumo de memoria no Game make.
Não é de hoje que muitas pessoas enfrenta esse problema aqui com o Game maker. Sendo de fato que o game maker hospeda seus sprites e sonds na memoria o que sobre aquece o sistema e torna o seu jogo super pesado. Vou explicar por etapa e preciso de uma ajuda pq isso não está mais ao meu alcance =/
1° Desenvolvimento do diretorio
Comecei a um tempo já desenvolver um projeto e hoje ele está com bastante conteudo. Para resolver o consumo constante de memoria que havia percebido no game maker a solução é crirar um diretorio. Perfeito o game está com exatos 500 megas de conteudo.
Porem ao pegar spites externamente o game maker simplesmente pega o sprite e coloca na memoria, Ou seja fazer um diretorio de arquivos somente faz com que o load do inicio não carregue todos os arquivos ao inves de fizemos o jogo sem diretorio e acontecer isso.
2° Sistema de load
Como eu não estava conseguindo repor as sprites deletadas da memoria.
" sprite_add" "sprite_delete" eu resolvi subistituir os arquivos por arquivos vazios...exemplo
sprite_jogador = 50 megas de memoria
sprite_vazio= 0 megas de memoria
no load eu fazia
sprite_replace_sprite(spr_jogador,"Data/Act1/sprjogador.gmspr");
depois quando não prcisar do sprite eu subistiuia pelo o sprite vazio assim
sprite_replace_sprite(spr_jogador,"Data/spr_vazio.gmspr");
No final deu certo a memoria se estabilizou um pouco mas ainda n é o suciciente.
3° Melhorando o sistema de load com a GMlibrary
Pesquisando que nem um louco consegui achar a GMlibrary
https://gmbr.forumeiros.com/t15117-gexgmlibrary-v2
com ela existe o comando sys_clear_memory()
que limpa a memoria fisica mas mesmo assim não adianta pois esse comando somente limpa a memoria real e não a memoria que o jogo ralmente consome
Eu tenho uma imagem aqui pra demostrar isso
Na imagem da pra ver q o jogo está com o consumo de memoria fisica bem baixo (Privado) porem o sistema está reservando quase 1,5 gb de memoria ( confirmar) o_O
tem momentos que o sistema reserva 1 giga e 700 de memoria =///////////
Pra fazer um teste eu rodei o Tomb Raider Underworld e o sistema reserva apenas 800 megas de memoria...significa que o sistema está indicando q o meu jogo e mais pesado q o Tomb Raider Underworld kkkkkkkkkkkkkk
3° DLL CleanMem
Bom recentimente eu achei algo muito interessante.
Essa DLL tem a função de limpar a memoria de uso usado pelo game maker. É muito util para deixar seu jogo mais leve
http://gmc.yoyogames.com/index.php?showtopic=438215
Bom porem nada disso adiantou...a minha dúvida é tem uma maneira de abaixar o consumo de memoria que o sistema reserva para seu jogo. Pois com os comandos existens somente libera a memoria fisica o que ajuda muito mais n é suficiente.
Algue poderia dizer uma maneira de fazer um sistema de load que não destrua a memoria =/
Re: [DÚVIDA] Sistema de load e consumo de memoria
Ótima pergunta .
Bom a solução mais prática em que vemos nos jogos de hoje, é fazer vários loads.
Por exemplo:
Um para carregar os menus
Outro para carregar a primeira fase e deleta os loads do menu.
Depois da segunda fase e deleta os loads da primeira.
FLWS
Bom a solução mais prática em que vemos nos jogos de hoje, é fazer vários loads.
Por exemplo:
Um para carregar os menus
Outro para carregar a primeira fase e deleta os loads do menu.
Depois da segunda fase e deleta os loads da primeira.
FLWS
Re: [DÚVIDA] Sistema de load e consumo de memoria
Seu jogo é muito pesado.
Você usou aquela DLL corretamente? O melhor é colocar para limpar a memória a cada um segundo. Num alarm faz isso.
O load externo é mais rápido, ou seja, use ele com as funções replace.
Faça um sistema de load melhor, ou seja, limpe a memória sempre que inserir recursos, ou seja, delete os recursos inuteis nas próximas fases da memória.
A cleanmem é boa sim, um jogo que gastava 30 MB de memória aqui passou a gastar 6~8 MB.
Você usou aquela DLL corretamente? O melhor é colocar para limpar a memória a cada um segundo. Num alarm faz isso.
O load externo é mais rápido, ou seja, use ele com as funções replace.
Faça um sistema de load melhor, ou seja, limpe a memória sempre que inserir recursos, ou seja, delete os recursos inuteis nas próximas fases da memória.
A cleanmem é boa sim, um jogo que gastava 30 MB de memória aqui passou a gastar 6~8 MB.
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: [DÚVIDA] Sistema de load e consumo de memoria
@lucas
vlw pelas as dias ehehe eu fiz um load para cada fase e no meo das fases eu vou subistituindo os arquivos por outros
@Pedro 'O'
Bom é realmente meu jogo é muito pesado =/
eu tbm to tendo dúvidas em usar a dll de limpar a memoria se poder me explicar ou da alguma dica =/
sobre a funcção replace eu estou usando pq não sei como deletar o sprite da memoria e criar novamente pois sempre q eu deletava não podeia mais voltar só se eu abrir o jogo de novo =/
a memoria a cada 1 segundo'o'..ntentei fazer vou tentar agora pra ve se da certo ...eu usava da seguinte maneira
um objeto permanente q a cada room_start usava o comando
sys_clear_memory()
e no load todos os arquivos do jogo externo eram substituido por arquivo vazio ( arquivos q n ocupam nada na memoria) e carregava somente os arquivos necessario
Eu tenho minhas suspesta de que
1 - De alguma forna os arquivosn estão sendo deletados da memoria mesmo vendo a memoria abaixando
2 - Eu devo não está usando a DLL corretamente =/
vlw pelas as dias ehehe eu fiz um load para cada fase e no meo das fases eu vou subistituindo os arquivos por outros
@Pedro 'O'
Bom é realmente meu jogo é muito pesado =/
eu tbm to tendo dúvidas em usar a dll de limpar a memoria se poder me explicar ou da alguma dica =/
sobre a funcção replace eu estou usando pq não sei como deletar o sprite da memoria e criar novamente pois sempre q eu deletava não podeia mais voltar só se eu abrir o jogo de novo =/
a memoria a cada 1 segundo'o'..ntentei fazer vou tentar agora pra ve se da certo ...eu usava da seguinte maneira
um objeto permanente q a cada room_start usava o comando
sys_clear_memory()
e no load todos os arquivos do jogo externo eram substituido por arquivo vazio ( arquivos q n ocupam nada na memoria) e carregava somente os arquivos necessario
Eu tenho minhas suspesta de que
1 - De alguma forna os arquivosn estão sendo deletados da memoria mesmo vendo a memoria abaixando
2 - Eu devo não está usando a DLL corretamente =/
Re: [DÚVIDA] Sistema de load e consumo de memoria
Você está usando a cleanmem? essa que eu disse para usar a cada um segundo.
A gmlibrary me parece que limpa os traços de arquivos perdidos na memória depois que o jogo é fechado.
A gmlibrary me parece que limpa os traços de arquivos perdidos na memória depois que o jogo é fechado.
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: [DÚVIDA] Sistema de load e consumo de memoria
Não sei qual é o tipo do seu jogo/applicativo, mas se ele for muito grande tem um jeito de você resolver criando varios executavies. Sendo assim, o primeiro executavel por exemplo pode ser o MENU que vai chamar os outros executavels. Você pode inclusive criar um arquivo para gravar o estado dos jogos, uma forma de persistência de variáveis, isso pode resolver de vez o seu probelam de memória.
Flws!
Flws!
Re: [DÚVIDA] Sistema de load e consumo de memoria
Perfeito o game está com exatos 500 megas de conteudo.
Um jogo de 500 mega tem que ser muito grande. Qualquer jogo do Play1 que tenha uma faixa parecida com essa tem pelo menos umas 20 horas de jogo. Um jogo de exatos 500 mega que eu me lembrei pra PC agora é o Morrowind, e é um incrivelmente grande tanto em cenário quanto em objetos.
Será que você não tá usando recursos meio "exagerados"? Tipo, mp3 enormes, um monte de background grande, sprites exagerados...? Não tenho certeza, mas pelo tamanho do jogo, leva a crer que o problema tá na seleção dos recursos do teu jogo, e não no desempenho do GM.
Obs.: Esse jeito que você usou, do sprite_replace ao invés de sprite_add, com certeza é o melhor mesmo. É mais fácil e mais rápido do que deletar e adicionar recursos toda hora.
Valeu!
GameMakerTutoriais- Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios :
x 0 x 4 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [DÚVIDA] Sistema de load e consumo de memoria
Não se esqueça de desativar as instâncias que estão fora da tela no momento!Desative todas as instâncias possíveis!
São uma ajuda e tanto na otimização do processamento do jogo.
São uma ajuda e tanto na otimização do processamento do jogo.
Re: [DÚVIDA] Sistema de load e consumo de memoria
Veja as dicas acima e esse tutorial:
https://gmbr.forumeiros.com/t19480-melhorando-o-desempenho-dos-jogos
https://gmbr.forumeiros.com/t19480-melhorando-o-desempenho-dos-jogos
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:
Tópicos semelhantes
» [Duvida] sistema de load online
» [Dúvida] Sistema de Particulas está sempre a aumentar a memória
» [resolvido]Consumo de memória das sprites
» [RESOLVIDO] Sistema de load game
» Duvida com Save e Load
» [Dúvida] Sistema de Particulas está sempre a aumentar a memória
» [resolvido]Consumo de memória das sprites
» [RESOLVIDO] Sistema de load game
» Duvida com Save e Load
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos