What is the maximum size of a level in bitsquid, if there is any? Maybe it is limited to the ammount of objects you put in it? Would you be able to make a 64x64 km map without the computer crashing?

Can you stream levels in bitsquid?

Would it for example be possible to make an MMO? (I know that takes time and resources beyond a single person, just want to know) Or would you need to rewrite the base code a lot for that?

(If this info is somewhere in a paper from the makers, then I am sorry for taking your time. Could you point me to the right one please?)

Best regards nux

asked 25 Apr '13, 06:16

nux
313
accept rate: 0%


World Size

The world size is limited by floating point precision only, so you can create worlds of 64x64 km or even a lot bigger than that without getting any crashes.

Floating point numbers have 24 bit of precision meaning that the error will be about

(error in mm) = 0.06 *(world size in km)

A world size of 64 km gives errors of about 4 mm. This means that at a distance of 64 km from origo, objects will "wobble" with an amplitude of 4 mm.

This may not seem like much, but it is quite visible if you have the camera close-up, looking at a persons fingers or eyes (we don't expect eyes to jump around 0.5 cm). On the other hand, if you are making a strategy game and the camera is high up in the air, it probably wouldn't be visible. So it all depends on what kind of game you are making.

There are essentially two ways of dealing with this precision issue:

  • Work in higher precision than 32-bit floating point.
  • At regular intervals, "reset" the world by moving all objects so that the player is closer to the origo.

Neither method is supported in Bitsquid by default, but the "resetting" could be done in gameplay code.

Number of Objects

By default, a maximum of 65 000 units is supported. You can change that number in the source code, but it is unlikely that the game will be performant with more than 65 000 units in the world.

If you want > 65 000 units you probably want to implement a streaming solution, so that you only have the area closest to the player actually loaded and spawned. That should keep the number of units well below 65 000.

Bitsquid allows asynchronous streaming of all kinds of data using the package interface.

MMO

You could make an MMO in Bitsquid. You would need to write the server-side component of the MMO (that synchs the world state between all clients) yourself, because Bitsquid doesn't include any such component, but the the client side of the MMO could easily run Bitsquid.

link

answered 25 Apr '13, 09:50

Niklas Frykholm ♦♦
7.0k412
accept rate: 81%

edited 29 Apr '13, 03:32

The world size will be limited by the floating point precision. All resource loading in bitsquid is asynchronous, so you can have a couple of levels (say 1x1km each) loaded around the player/camera and unload/load new levels as the player approaches/leaves them.

link

answered 25 Apr '13, 07:24

Jim Sagevid ♦
6976
accept rate: 80%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×42
×10
×5
×4
×1

Asked: 25 Apr '13, 06:16

Seen: 462 times

Last updated: 29 Apr '13, 03:32

powered by OSQA
{"cc_re__cc_re__cc_by_sa_3_0": ["s\" >\n         <a href=\"/about/\" >about</a> <span class=\"link-separator\"> |</span> <a href=\"/faq/\" >faq</a> <span class=\"link-separator\"> |</span> <a href=\"/privacy/\" >privacy</a> <span class=\"link-separator\"> |</span> <a href=\"/contact/?next=%2Fquestions%2F1831%2Fquestion-world-size-and-streaming-level\" >contact</a> \n    </div>\n  <p>\n     <a href=\"http://osqa.net\" target=\"_blank\" title=\"OSQA Development Build (SVN-1259)\">\n        powered by OSQA\n     </a>\n  </p>\n</div>\n <div id=\"licenseLogo\">\n  <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/3.0/\">\n            <img src=\"/m/default/media/images/by-sa-88x31.png\" title=\"Creative Commons: Attribution - Share Alike\" alt=\"cc-by-sa\" width=\"88\" height=\"31\" />\n  </a>\n </div>\n\n\n            </div>\n        \n        \r\n\n        \n        </div>\n\n        <!-- Put all elements with fixed position here, IE6 fixed position fix: http://ryanfait.com/position-fixed-ie6/ -->\n        <div class=\"notify\" style=\"display:none\">\n            \n                \n                    \n                          <p class=\"d"]}