Definire tipi

Algoritmi, discussioni sulle possibili implementazioni, matematica, fisica e tutti gli argomenti correlati alla programmazione
Rispondi
Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Definire tipi

Messaggio da Barnack »

È possibile in gm definiretipi personalizzati che occupino n bit scelti dal programmatore?

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Cash
Membro super
Messaggi: 933
Iscritto il: 09/11/2013, 20:40
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Definire tipi

Messaggio da Cash »

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

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Definire tipi

Messaggio da Solid Snake »

Tutti i dati in GM occupano lo stesso spazio di un double. Non puoi farci niente.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Definire tipi

Messaggio da Jak »

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

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Definire tipi

Messaggio da Barnack »

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 :fapensare:
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...
Jak ha scritto:(che resta comunque quasi sempre un concetto trascurabile in gm per svariate ragioni)
Sarei curioso di sapere quali sono queste ragioni

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Definire tipi

Messaggio da Jak »

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.
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

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite