Modified OpenSim to Improve World Startup Time

We made another improvement to OpenSim to make worlds start faster. When a world starts, OpenSim begins loading its assets. Some assets, e.g. textures or scripts, may be used in many prims. When that happens, OpenSim requests the asset multiple times from the assets service. In normal use this isn’t a problem because the asset is in the local cache so these requests are instantaneous. However, when the world starts the asset isn’t in the cache yet, so OpenSim downloads it multiple times. This is wasteful and slows down the world startup.

To fix this, we modified OpenSim so that additional requests for an asset are delayed until the first request has finished. This means the additional requests will be fulfilled from the local cache, which is very fast.

Faster Startup for Worlds with Many Assets

We updated our system today with various performance improvements, compatibility upgrades and requested features. The following updates may enhance your user experience:

Faster Startup for Worlds with Many Assets

We improved OpenSim to allow worlds with many assets to start faster. One of the things OpenSim does when a world starts is to update the world’s map image. Usually this is very fast (less than a second). However, it can take much longer for worlds that include many assets. We’ve seen delays of 20-100 seconds for complex worlds such as Xhyra’s Place, Chakryn Forest and Universal Campus.

We fixed this by moving the updating of the map image out of the main flow and into a separate thread. This means it no longer affects the time it takes the world to start. Thus, the startup time is reduced by up to 100 seconds!

LinkedIn Button

We added a button that allows you to share the Kitely homepage, or an individual world, with your LinkedIn contacts. This means that you can now easily spread the word about your Kitely worlds to four major social media sites: Facebook, Twitter, LinkedIn and Google+.

Improved Internet Explorer 9 Support

We now support Internet Explorer 9 natively. We did support IE9 previously, but this was done by setting it to use IE8 compatibility mode. Now we run in native IE9 mode.

Improved Support for Non-English Names

We updated Kitely today to address several recently discovered issues. While most of them were backend-related, we also fixed two user-visible problems:

Improved Support for Non-English Names

We automatically create avatars based on users’ names in Facebook. This is not always straightforward because Facebook allows names that contain non-English characters, but OpenSim does not. To bridge this gap, we convert such names into the closest possible English approximation.

This process was not as robust as it could have been, but now we’ve improved it significantly. Users who haven’t been able to login to virtual worlds previously, because their names contain non-English characters (including characters with accents), should find that they can now login successfully.

Improved “Enter World” Reliability

There was a problem that was encountered by a few users, where clicking “Enter World” didn’t succeed in logging in to the world at first. Clicking “Enter World” a second time did work. This problem occurred mainly with large and complicated worlds, and it has now been fixed. It should now be possible to log into all worlds on the first try.

Backend and OpenSim Improvements

We’ve updated Kitely today. Most of the updates are on the backend, e.g. to improve stability and create some of the infrastructure that we’ll need in order to implement billing. We’ve also added some user requested features and made some improvements to OpenSim:

Faster script loading

We’ve added script caching. When a region starts, OpenSim normally compiles all of the scripts used in the region. If the region has many scripts then this can take a long time. To make this process faster, we now save the compiled scripts and reuse them whenever the region is started. This can produce significant improvements! For example, one script-heavy world (containing about 900 scripts, 500 of which are unique) takes 10:42 minutes to compile the scripts initially. But from then on, each time the world starts it takes only 2:46 minutes to load the scripts. It should be noted that the world becomes usable even before the scripts are all ready. These timings only indicate when all of the scripts become ready, but people can enter and start using the world even before the first one is compiled.

Exported OAR files include creator information

When we export a world, we now include additional creator information. Previously, only the Creator UUID was saved. Now we also save the creator’s name. So if you export your world, and someone else imports it, you will still be listed as the creator of the objects in the world and the asset permissions you set will be retained.

Direct URL for downloading Kitely Plugin

We’ve added a permanent URL that can be used to download the latest version of Kitely Plugin: Most users don’t need to use this URL, because the World Page automatically downloads the plugin. However, in some cases it’s useful to have a direct URL, so we made it available.