Рассмотрим современные CPU архитектуры с 64 битными инструкциями и современные GPU, например, nvidia 1080
Если представлять мир с точностью до миллиметра, то целочисленный тип размером 64 бита позволяет сделать мир размером > 9000000000000 км, double ~10000000000 км и float ~10 км.
int достаточно большой и я сомневаюсь, что кто-то захочет игру с ещё большим открытым миром. Но современные процессоры уже давно имеют сопроцессор для операций с плавающей точкой и я не думаю, что арифметика с плавающей точкой будет сильно медленнее. Если выбирать между float и double, double больше, но видеокарты работают быстрее с float
https://en.wikipedia.org/wiki/GeForce_10_series#Ge...
GeForce GTX 1080 Ti: Single precision - 10609 GFLOPS, Double precision - 332 GFLOPS.
Такие движки как Unity используют float, но есть также и те, которые используют double, например unigine
unigine.com/en/products/engine/unbounded-world У них не возникает проблем с медленной double арифметикой?
Что лучше использовать для представления положения, скорости, ускорения и т.д. игровых объектов: int(64), float или double?
Или, может быть, разбить мир на кубы размером, допустим 10 км? Но тогда возникают проблемы с рендерингом больших сцен.