Wer Genauigkeit will, sollte sich im Bereich von -1.0 bis +1.0 bewegen. Die Dichte an darstellbaren Zahlen ist dort so ziemlich am höchsten, wenn ich mich recht entsinne. Ansonsten lassen sich einige Integer verlustfrei in Floats/Doubles packen - ein Trick, den Lua nutzt. In ein Float passen verlustfrei Integer von -65535 bis +65535, wenn ich mich nicht irre.
Quatsch. Es passen zwar die Zahlen +-65535 da rein, aber auch noch mehr. Vielleicht liest Du auch mal, was ich vorher schon geschrieben habe. Ein Float kann 7 dezimale Stellen verlustfrei darstellen. Total egal, ob wo man sich dabei bewegt und 7 Stellen sind auch deutlich mehr als die Zahlen von +64k bis -64k. Das liegt daran, dass +-64k mit nur 17 Bits darstellbar ist und ein Float eine Mantisse mit 23 Bit besitzt PLUS das Vorzeichenbit, also 24 Bit vs. 17 Bit. Das ergibt für Float einen Integer-Bereich von -8388608 bis +8388608, der verlustfrei darstellbar ist.
Viel wichtiger ist es, dass man so nah wie möglich an der 0 bleibt.
Das bedeutet z.B., dass man seine Welt nicht bei (40000, 27000, 5000) zentriert, sondern bei (0, 0, 0).
Wer schonmal mit einer Physik-Engine gearbeitet hat, der weiß vielleicht, dass es schnell zu Ungenauigkeiten und seltsamem Verhalten der Objekte kommen kann, wenn man zu weit von (0, 0, 0) weggeht.
Während ich Dir bei der Zentrierung Recht gebe, ist das merkwürdige Verhalten vieler Physik-Engines bei großen Zahlen aber eher daher geschuldet, dass sie ebenfalls auch mit sehr kleinen Zahlen rechnen. Diese Kombination führt dann zu den Problemen. Bewegt man sich generell aber in einem im Verhältnis guten Rahmen, sind auch große Zahlen keine Magie. Man muss sich dann nur bewusst sein, dass eine Bewegung um +-0.002 Einheiten in einer Welt mit einer Range von +-40.000 eben nicht mehr korrekt darstellbar ist.