[sldev] Sim Size Limits?

Douglas Soo doug at lindenlab.com
Thu Oct 30 07:10:18 PDT 2008


Actually, there are a few good reasons why 256 is probably a reasonable  
number, mostly relating to floating-point and fixed point precision:

- 32 bit floating point gets you around 7 decimal points of precisions -  
this means that once you hit a distance of about 256 meters, you're  
looking at somewhere around millimeter to centimeter precision.  So once  
you go too much beyond 256 meters, you're going to start having precision  
issues when tightly positioning objects in the world reference frame.   
Note that if we had been thinking further ahead at the time, we would have  
positioned 0,0,0 at center of the region, and doubled our precision at the  
edges.
- Until we hit the highest precision level, we will often send object  
positions in 16-bit fixed point representations (I believe).  Increasing  
the size of a region would increase the distance at which we would start  
having to send full-precision 32-bit data down to the client.  This could  
have some impact on bandwidth utilization, and possibly rezzing speed of  
distant objects.
- The larger the area of the region, the more objects we need to support  
in order to be able to maintain a reasonable density of content across an  
entire simulator node.  I think with the 512MB initial constraint on  
memory usage at the time that we started, this was probably a reasonable  
number.
- The smaller the region, the more regions an individual viewer needs to  
connect to at a certain draw distance. Since the renderer in its current  
implementation can realistically use only a 512 meter draw distance at  
best, this generally limits a viewer to talking to around half a dozen  
regions right now.  Reducing that size would cause you to have to connect  
to a much larger number of regions.  Also, as you reduce size of a region,  
the boundary zones where you have to start sharing simulation (which  
someday we will eventually do properly) increase, which means that you  
generate more edge traffic on the simulation side.

This is not to say that there was necessarily a HUGE amount of conscious  
thought put into this (if there was, we would have put the origin at the  
center as mentioned above) - but 256 meters is not actually an  
unreasonable value.

In any case, this is an incredibly difficult constant to change in the  
system - it would require lots of protocol changes, as well as a fairly  
major overhaul of the server side, so it's a somewhat moot discussion  
right now. :)

- Doug

On Thu, 30 Oct 2008 05:16:26 -0700, Argent Stonecutter  
<secret.argent at gmail.com> wrote:

>> I think it was just an arbitrary power of 2: 128 was too small and 512  
>> was too big.
>
> 512 isn't too big.
>
> 1024 would have been about right.
>
> Imagine a more open, less cramped Second Life.
>
> _______________________________________________
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/SLDev
> Please read the policies before posting to keep unmoderated posting  
> privileges



-- 
Douglas Soo
Engineering Director
Linden Lab


More information about the SLDev mailing list