Ti sarebbe difficile trovare una GPU mobile che potrebbe usare i doppi anche se lo desideri, quindi quella parte della scelta è praticamente fatta per te.
Ci sono solo alcuni posti in cui potresti trarre vantaggio dal passaggio da float a precisione singola nel tuo gioco:
Questi sarebbero i due esempi più comuni di cose che non dovresti provare a memorizzare in un float a precisione singola, perché perdono una precisione significativa nell'intervallo che devi coprire (nel primo secondo del gioco, puoi rappresentare il tempo trascorso tempo dentro 2−24 secondi o decine di nanosecondi, ma dopo 2,5 ore inizi a perdere la precisione dei millisecondi)
Ma ciò non significa che devi necessariamente usare i doppi. I tipi interi possono gestire bene questi valori. (Un int a 32 bit può darti una precisione di millisecondi per 12 giorni di riproduzione continua. Gli ints a 64 bit durano milioni di anni)
Un valore delta time sarà in genere dell'ordine di 16 millisecondi, quindi memorizzarlo in un singolo float di precisione ti dà precisione a circa2−29s, che è ancora fino al livello di nanosecondi - cioè. probabilmente ben oltre la precisione con cui è possibile cronometrare in modo affidabile il codice, segnalare i thread o aggiornare la grafica in ogni caso. L'aggiunta di maggiore precisione qui con un doppio è improbabile che possa migliorare il tuo gioco in qualsiasi modo misurabile.
In questo modo è possibile memorizzare il tempo trascorso totale ad alta precisione o utilizzando un tipo intero, calcolare il delta e convertirlo in float a precisione singola una volta per fotogramma, quindi utilizzare i float felicemente da lì in poi.
Allo stesso modo per le posizioni. Anche con un mondo enorme, se lo si divide in blocchi di diversi km di diametro o meno, i singoli galleggianti di precisione possono localizzare una posizione relativa al suo blocco padre con una precisione inferiore a un millimetro .
Gli offset relativi tra oggetti (per calcolare le intestazioni e simili) sono generalmente perfetti per essere archiviati in un galleggiante anche a distanze immense. Il tuo errore relativo, rispetto alla lunghezza totale del vettore, rimane in un intervallo controllato.
Quindi, non ci sono molte ragioni per passare ai doppi come impostazione predefinita. Lo prenderei in considerazione solo se hai un'esigenza molto particolare, in cui hai calcolato che la precisione dei float non la taglierà, e manterrai il tuo uso dei doppi solo nella parte del tuo gioco che ne ha bisogno attivamente.