[DÚVIDA] Sistema de load e consumo de memoria

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[DÚVIDA] Sistema de load e consumo de memoria

Mensagem por Adriano Heartless em Seg 16 Jan 2012, 18:06

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

http://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 =/


Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por Lucas 5293 em Seg 16 Jan 2012, 18:16

Ótima pergunta Happy.
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

Lucas 5293

Ranking : Nota C
Número de Mensagens : 695
Idade : 18
Data de inscrição : 10/12/2010
Notas recebidas : C-D-B-B-B-C-C-C
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://dopxgames.blogspot.com

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por PedroX em Seg 16 Jan 2012, 18:55

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.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por Adriano Heartless em Seg 16 Jan 2012, 23:03

@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 Happy

@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 =/

Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por PedroX em Ter 17 Jan 2012, 10:39

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.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por vinians em Ter 17 Jan 2012, 10:54

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!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por GameMakerTutoriais em Ter 17 Jan 2012, 13:11

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

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por Mr.Brum em Ter 17 Jan 2012, 13:49

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.

Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por PedroX em Ter 17 Jan 2012, 14:06


PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DÚVIDA] Sistema de load e consumo de memoria

Mensagem por Conteúdo patrocinado Hoje à(s) 14:00


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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