[Opensim-dev] Fancy a smoothie (ish)?

Justin Clark-Casey jjustincc at googlemail.com
Thu Oct 13 23:37:54 UTC 2011


Hi folks.  I've had reason recently to investigate why flying across a region can feel quite jerky.

It seems that one solution is to increase the number of ImprovedTerseObjectUpdate packets that OpenSim sends out when 
the avatar is moved.  I'm assuming that more packets means smaller and more frequent corrections of avatar position 
extrapolation by the viewer.

At the moment, we only send out 11 ish packets per second.  Increasing this to 22 makes avatar flying much smoother 
subjectively.

You can do this via a new set of config parameters added to the bottom of the [Startup] config section of 
OpenSimDefaults.ini on commit 4e7d433.

In OpenSimDefaults.ini you can see the lines (minus comments)

     MinFrameTime = 0.089
     UpdateObjectsEveryNFrames = 1;
     UpdateAgentsEveryNFrames = 1;
     UpdateEntityMovementEveryNFrames = 1;
     UpdateCoarseLocationsEveryNFrames = 50;
     UpdatePhysicsEveryNFrames = 1;
     UpdateTempCleaningEveryNFrames = 1000;
     UpdateEventsEveryNFrames = 1;
     UpdateTerrainEveryNFrames = 50;
     UpdateStorageEveryNFrames = 200;

At the moment we need to halve MinFrameTime and double all the Update* params except UpdateAgentsEveryNFrames.  You can 
do this by overriding the defaults with the following parameters at the bottom of the [Startup] section of OpenSim.ini.

     MinFrameTime = 0.0445
     UpdateObjectsEveryNFrames = 2;
     UpdateAgentsEveryNFrames = 1;
     UpdateEntityMovementEveryNFrames = 2;
     UpdateCoarseLocationsEveryNFrames = 100;
     UpdatePhysicsEveryNFrames = 2;
     UpdateTempCleaningEveryNFrames = 2000;
     UpdateEventsEveryNFrames = 2;
     UpdateTerrainEveryNFrames = 100;
     UpdateStorageEveryNFrames = 400;

My subjective experience is that horizontal avatar flying feels much smoother on my local standalone and on a remote 
system.  However, this is only the case once everything has finished loading and if you aren't being spammed by spurious 
ObjectUpdates from prims, as discussed very recently in this list.  You can prevent spamming by making sure your client 
bandwidth is suitable for your connection quality or by setting enable_adaptive_throttles = true in [ClientStack.LindenUDP].

I've no idea how this will perform on a more heavily loaded sim, particularly as we're currently achieving this change 
by halving the time that physics has to update and avatar location is updating twice for every physics update.  But if 
you try this I'd be interested in any feedback.

Also, please feel free to tweak the settings in other ways but we cannot provide any support.

-- 
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc



More information about the Opensim-dev mailing list