Definire tipi
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Definire tipi
È possibile in gm definiretipi personalizzati che occupino n bit scelti dal programmatore?
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
Re: Definire tipi
Non che io sappia, forse puoi imitare il concetto di struct del C creando degli oggetti che hanno solo un create event con delle variabili dentro ma di sicuro non puoi mettere quanti bit occupano
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Definire tipi
Tutti i dati in GM occupano lo stesso spazio di un double. Non puoi farci niente.
♥♥♥♥♥♥
♥♥♥♥♥♥
♥♥♥♥♥♥
Spoiler
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Definire tipi
Che uso vuoi farcene? Un caso così generico non serve praticamente a nulla e quei pochi casi non hanno senso con la relativa lentezza di game maker.
Finchè stai in un range opportuno puoi tranquillamente usare le bitmask su qualunque variabile (game maker usa SEMPRE double per i numeri) quindi puoi accedere ai bit usando quelle come faresti in qualunque altro linguaggio.
Anche se usa più memoria (che resta comunque quasi sempre un concetto trascurabile in gm per svariate ragioni) ti consiglio piuttosto di usare liste o array per gestire i tuoi dati.
Altrimenti se vuoi semplicemente packare tutto su GMStudio ci sono i buffers
http://docs.yoyogames.com/source/dadios ... index.html
Finchè stai in un range opportuno puoi tranquillamente usare le bitmask su qualunque variabile (game maker usa SEMPRE double per i numeri) quindi puoi accedere ai bit usando quelle come faresti in qualunque altro linguaggio.
Anche se usa più memoria (che resta comunque quasi sempre un concetto trascurabile in gm per svariate ragioni) ti consiglio piuttosto di usare liste o array per gestire i tuoi dati.
Altrimenti se vuoi semplicemente packare tutto su GMStudio ci sono i buffers
http://docs.yoyogames.com/source/dadios ... index.html
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
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Definire tipi
Il punto è che essendo diventato un fan dell'ottimizzazione mi sembra un po' uno spreco creare un double per un semplice booleano, giusto per fare un esempio
O per, ad esempio, statistiche di un personaggio che sarebbero degli interi tra tipo 0 e 99... perché non definre un tipo che occupi meno memoria se possibile? Beh, se non si può fa neiente...
O per, ad esempio, statistiche di un personaggio che sarebbero degli interi tra tipo 0 e 99... perché non definre un tipo che occupi meno memoria se possibile? Beh, se non si può fa neiente...
Sarei curioso di sapere quali sono queste ragioniJak ha scritto:(che resta comunque quasi sempre un concetto trascurabile in gm per svariate ragioni)
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Definire tipi
Specifico prima di tutto che ho detto "in GM" nel post, non sto facendo casi generali ma game maker nello specifico.
La ragione principale sono le prestazioni, il peso di una conversione se ne fai in grande quantità aumenta notevolmente la richiesta di calcolo e quando la ram non è trascurabile molto probabilmente con la conversione lo sarà il processore. Non si fa altro che spostare il problema da una parte all'altra.
Altro motivo è l'essere un gioco nel 99% dei casi, in un gioco difficilmente hai problemi relativi alla memoria per la parte relativa al gioco stesso. Quasi sempre il peso ricade in ciò che normalmente è game maker a gestire autonomamente(grafica) ed un'eventuale risparmio è quindi completamente insensato.
Anche se parliamo di giochi alla terraria o altri che usano grosse quantità di dati l'uso eccessivo della memoria è quasi sempre un problema di fondo che si può risolvere con sistemi più semplici ed efficaci piuttosto di impacchettare i dati.
Se ad esempio hai un mondo enorme alla terraria la soluzione non è packare tutto ma streammare il terreno caricandone da file parti di esso in realtime.
I casi in cui è effettivamente meglio ovviamente ci sono ma sono una piccolissima percentuale di quelli che puoi invece evitare cambiando la gestione della cosa.
La ragione principale sono le prestazioni, il peso di una conversione se ne fai in grande quantità aumenta notevolmente la richiesta di calcolo e quando la ram non è trascurabile molto probabilmente con la conversione lo sarà il processore. Non si fa altro che spostare il problema da una parte all'altra.
Altro motivo è l'essere un gioco nel 99% dei casi, in un gioco difficilmente hai problemi relativi alla memoria per la parte relativa al gioco stesso. Quasi sempre il peso ricade in ciò che normalmente è game maker a gestire autonomamente(grafica) ed un'eventuale risparmio è quindi completamente insensato.
Anche se parliamo di giochi alla terraria o altri che usano grosse quantità di dati l'uso eccessivo della memoria è quasi sempre un problema di fondo che si può risolvere con sistemi più semplici ed efficaci piuttosto di impacchettare i dati.
Se ad esempio hai un mondo enorme alla terraria la soluzione non è packare tutto ma streammare il terreno caricandone da file parti di esso in realtime.
I casi in cui è effettivamente meglio ovviamente ci sono ma sono una piccolissima percentuale di quelli che puoi invece evitare cambiando la gestione della cosa.
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
Chi c’è in linea
Visitano il forum: Nessuno e 8 ospiti