3
\$\begingroup\$

I'm currently using Ogre3D, and I'm wondering is it's possible to have a very large level (hundreds of kilometers) using the right scenemanager. Storing or having the level is not a problem, since I can repeat objects in a procedural fashion, my objective is level size, not quality.

Taken from http://floatingorigin.com/mirror/continuous-world.htm :

Imagine two characters walking in formation two meters apart heading east away from the origin. At some point, the distance from each other is overwhelmed by the distance from the origin, and the characters will appear to be “at the same location”.

I'm wondering if solutions for those problem like the one described in the Dungeon Siege article are the only viable ones, and if it requires a deep engine modification or not. I'm not sure the paged scenemanagers or PCZ scenemanager reset the zero like I think.

\$\endgroup\$
  • \$\begingroup\$ I would be hesitant to make any assumptions about floating-point behavior. There are a myriad of different standards, some having optional behavior and the whole point of floating-point is to sacrifice precision for range. They're talking very specifically in this article about single-precision FP on an x87 FPU, GPUs do not follow the same rules and in-fact from generation to generation and API to API, the standards used will vary. Modern engines should not expect everything to be evaluated on a single processor architecture/FP representation. \$\endgroup\$ – Andon M. Coleman Sep 2 '13 at 2:11
  • \$\begingroup\$ Related: gamedev.stackexchange.com/questions/53647/… \$\endgroup\$ – MichaelHouse Sep 2 '13 at 2:21
  • \$\begingroup\$ Did you try changing/translating the world origin? It usually works if your objects are not more than 10-15 km away from the origin (i.e. no serious numerical jittering). \$\endgroup\$ – teodron Sep 2 '13 at 7:00
5
\$\begingroup\$

Yeah you can have a massive world. But you're going to need to partition it spatially for a variety of reasons.

  • Floating point accuracy tails off
  • It becomes computationally impractical to update deterministic objects across a massive world without some form of spatial separation
  • Networking becomes increasingly more difficult the more distance between players. especially as deterministic items need to be simulated in order to maintain determinism.
  • You dont want to be culling 99% of the geometery you have in memory every time you render ;)
| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Geometry is loaded dynamically, in chunks. For networking, events happen if they are in range. \$\endgroup\$ – jokoon Sep 2 '13 at 8:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.