salve ragazzi,
come da titolo il gioco mi va in Out of memory ,questo avviene nonostante (nella maggior parte del tempo) siano presenti pochi oggetti e pochi sprite non troppo grandi presenti nel gioco.
Questo post potrebbe essere un proseguo di un altro post in cui ero disperato perché non riuscivo a memorizzare degli included files nella giusta maniera.
http://gmitalia.altervista.org/forum/vi ... =5&t=13899
Questo problema l'ho risolto.
Il gioco è un semplicissimo puzzle game, dove una foto selezionata viene scomposta in 16 pezzi ed il giocatore la deve ricomporre spostando i vari tasselli.
Ora ho 100 foto in file jpg. che mediamente pesano dai 90/100 KB ciascuna.
Ad ogni foto è assegnato un oggetto, le foto appaiano in una unica schermata. Una volta selezionata la foto con cui si vuole giocare tutte le altre foto vengono distrutte e si può giocare con la foto scelta.
Una volta risolta la foto riappaiono tutte le foto e si può scegliere un'altra foto con cui giocare, e le altre foto ovviamente vengono nuovamente ricancellate tutte quante.
Si riesce a giocare senza problemi con 3 o 4 foto consecutivamente , ma poi il gioco va in out of memory, mentre sto giocando con una foto.
In teoria non dovrebbe andare in out of memory quando sono presenti tutte le foto? ossia nel momento in cui sono presenti più risorse che appesantiscono il gioco?
out of memory come evitarlo?
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: out of memory come evitarlo?
Quanto sono grandi le foto come risoluzione? Le dimensioni su disco sono ben diverse da quelle in memoria. Probabilmente stai usando immagini troppo grandi che consumano tutta la memoria o vanno oltre quello che può reggere la scheda video come risoluzione mandando in pappa GM.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: out of memory come evitarlo?
La risoluzione delle foto è 640X416
quando sono tutte sullo schermo per selezionare la foto hanno un
image_xscale= 0.162
image_yscale= 0.165
che le rimpicciolisce,poi ovviamente quando si clicca sulla foto per giocarci ritornano alla dimensione normale 640X416
Quindi l'unica soluzione è abbassare la risoluzione delle foto o mettere meno foto
quando sono tutte sullo schermo per selezionare la foto hanno un
image_xscale= 0.162
image_yscale= 0.165
che le rimpicciolisce,poi ovviamente quando si clicca sulla foto per giocarci ritornano alla dimensione normale 640X416
Quindi l'unica soluzione è abbassare la risoluzione delle foto o mettere meno foto
- cp94
- Moderatore
- Messaggi: 2789
- Iscritto il: 04/07/2009, 19:18
- Specialità: ddd
- Località: Brescia
- Contatta:
Re: out of memory come evitarlo?
Se hai 100 immagini dubito che saranno tuttte assieme su schermo, dovresti disattivare le istanze fuori view.
Inoltre image_scale non penso riduca il peso dell' immagine, dovresti creare 100 immagini thumbnail di dimensione minore, oppure avere tutto come risorse esterne ed usare sprite_add, sprite_remove.
Inoltre image_scale non penso riduca il peso dell' immagine, dovresti creare 100 immagini thumbnail di dimensione minore, oppure avere tutto come risorse esterne ed usare sprite_add, sprite_remove.
- boxbuilder
- Membro
- Messaggi: 158
- Iscritto il: 25/06/2015, 10:37
- Specialità: programmatore
- Uso: GM:Studio 1.4 HTML5
- Contatta:
Re: out of memory come evitarlo?
A sensazione mi sa che il problema stia nella scomposizione dell'immagine. Che algoritmo usi?sfigatto ha scritto:Il gioco è un semplicissimo puzzle game, dove una foto selezionata viene scomposta in 16 pezzi
Re: out of memory come evitarlo?
Ci avevo pensato anche io, ma con il debuger l'incremento di memoria diventa spaventoso (passa da 98313,K a 318828,4 K) quando creo la lista delle foto
A sensazione mi sa che il problema stia nella scomposizione dell'immagine. Che algoritmo usi?
Quando clicco sulla foto e viene scomposta non c'è alcun incremento della memoria utilizzata.
Ho realizzato un piccolo file dove ho inserito solo il metodo in cui scompongo le foto perché è piuttosto lungo, ma non riesco ad allegarlo, mi dice che l'estensione non è valida.
intanto provo con il consiglio di cp94
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: out of memory come evitarlo?
La grandezza con cui visualizzi le immagini è indipendente dalla quantità di memoria che utilizzano, che resta fissa. Ogni immagine peserà 640*416*4 byte = circa un mega ciascuna. 100 immagini fanno 100 mega tralasciando eventuali controlli/doppioni che GM potrebbe farsi per cassi suoi.
100/200 mega sono comunque pochi ma a questo punto mi domando, su che dispositivo ti da il problema?
Se sei su PC, oltre a continuare ad essere difficile che sia tutto qua il problema, apri il task manager e prova a guardare quanto e come incrementa la memoria man mano che carichi foto un pò alla volta.
Così almeno scopriamo se è effettivamente GM che consuma molta memoria per gestire le immagini (che è anche plausibile) o se cè qualche bug, interno o esterno, che causa il problema. Magari un'immagine specifica.
Su cellulare la cosa non mi sorprende invece, se non hanno fatto i miracoli con GM (difficile) la memoria video è solitamente condivisa con quella normale e l'immagine viene quindi duplicata.
Vale anche su PC la cosa comunque se hai schede video con poca memoria a disposizione tipo 1 giga o meno dove è facile sommare risorse di windows e GM esterne/interne.
Considera che quelle che carichi nel progetto GM è in grado di ottimizzarne l'uso ed il caricamento mentre per quelle esterne sta a te evitare problemi come questo.
Personalmente mi ci dedicherei un po per caricare e liberare risorse tenendo in memoria soltanto quelle strettamente necessarie.
200 mega di incremento non mi sembrano così spaventosi ed irrealistici anzi.sfigatto ha scritto:ma con il debuger l'incremento di memoria diventa spaventoso (passa da 98313,K a 318828,4 K) quando creo la lista delle foto
100/200 mega sono comunque pochi ma a questo punto mi domando, su che dispositivo ti da il problema?
Se sei su PC, oltre a continuare ad essere difficile che sia tutto qua il problema, apri il task manager e prova a guardare quanto e come incrementa la memoria man mano che carichi foto un pò alla volta.
Così almeno scopriamo se è effettivamente GM che consuma molta memoria per gestire le immagini (che è anche plausibile) o se cè qualche bug, interno o esterno, che causa il problema. Magari un'immagine specifica.
Su cellulare la cosa non mi sorprende invece, se non hanno fatto i miracoli con GM (difficile) la memoria video è solitamente condivisa con quella normale e l'immagine viene quindi duplicata.
Vale anche su PC la cosa comunque se hai schede video con poca memoria a disposizione tipo 1 giga o meno dove è facile sommare risorse di windows e GM esterne/interne.
Considera che quelle che carichi nel progetto GM è in grado di ottimizzarne l'uso ed il caricamento mentre per quelle esterne sta a te evitare problemi come questo.
Personalmente mi ci dedicherei un po per caricare e liberare risorse tenendo in memoria soltanto quelle strettamente necessarie.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you
Re: out of memory come evitarlo?
il problema è su pc dopo 5 o 6 foto va in out of memory, per curiosità ho provato anche su andorid e giocando alla prima foto la app si chiude (non che mi aspettassi un comportamento diverso).100/200 mega sono comunque pochi ma a questo punto mi domando, su che dispositivo ti da il problema?
Se sei su PC, oltre a continuare ad essere difficile che sia tutto qua il problema, apri il task manager e prova a guardare quanto e come incrementa la memoria man mano che carichi foto un pò alla volta.
Così almeno scopriamo se è effettivamente GM che consuma molta memoria per gestire le immagini (che è anche plausibile) o se cè qualche bug, interno o esterno, che causa il problema. Magari un'immagine specifica.
Su cellulare la cosa non mi sorprende invece, se non hanno fatto i miracoli con GM (difficile) la memoria video è solitamente condivisa con quella normale e l'immagine viene quindi duplicata.
Vale anche su PC la cosa comunque se hai schede video con poca memoria a disposizione tipo 1 giga o meno dove è facile sommare risorse di windows e GM esterne/interne.
Considera che quelle che carichi nel progetto GM è in grado di ottimizzarne l'uso ed il caricamento mentre per quelle esterne sta a te evitare problemi come questo.
Personalmente mi ci dedicherei un po per caricare e liberare risorse tenendo in memoria soltanto quelle strettamente necessarie.
Facendo controlli più approfonditi ho notato che alcune foto causavano alcuni problemi. Le ho cancellate e reinserite dopo averle rilavorate con Photoshop ed ora sembrano non creare più problemi.
Mi sono dedicato anche al cercare di ottimizzare le risorse esterne, sono ancora all'inizio ma vedo già qualche risultato, faccio anche ampio uso di sprite_delete , anche se ho letto che non sempre funziona perfettamente.
Spero che questi accorgimenti possano bastare per migliorare la situazione.
Grazie a tutti per i sempre utili consigli che mi date.
Chi c’è in linea
Visitano il forum: Nessuno e 148 ospiti