Monthly Archives: November 2013

Updated to OpenSim 0.7.6, Fixed Many Bugs, and Added User-Requested Features

We made a major upgrade to Kitely today by switching to OpenSim 0.7.6. We also fixed many long-standing OpenSim bugs that still exist in the latest OpenSim release, and added several user-requested features to Kitely Market.

OpenSim 0.7.6

We upgraded the grid to use OpenSim 0.7.6. This is a custom version of OpenSim that integrates our optimized cloud-based Inventory and Assets systems. This version of OpenSim includes many improvements, including:

  • Multiple attachments
  • Support for Materials (experimental)
  • Improved performance, especially with large numbers of avatars; during teleports; and when editing terrain
  • Support for many more LSL functions, including llSetKeyframedMotion() and  llSetSoundQueueing()
  • And much more

With this update we also changed the implementation of the following services: Groups, Profiles and Offline IM. You shouldn’t feel much of a difference, but if you do notice any problems then please let us know. This change fixes a few small problems, such as better performance with large groups, and the ability to attach items to group notices.

Materials

As mentioned above, materials are now supported. However, this support is experimental. We intend to improve OpenSim’s materials support, and when that happens any objects that use materials will lose them. So please feel free to experiment, but be aware of this caveat. Also, products in Kitely Market can’t use materials yet.

Importing Content

We’ve made it easier to import content into Kitely from other grids (or Second Life).

First, Second Inventory now works with Clothing items (it didn’t work before).

Second, we’ve improved OpenSim’s OAR file loading mechanism. When you load an OAR that came from another grid, any unknown avatars are changed to your avatar. This is important because that’s what makes you the owner of the objects in the OAR. If this didn’t happen then the foreign avatars would own the objects, and you wouldn’t be able to modify them.

However, prior to today’s update, this behavior only worked on the first two levels of objects, and sometimes that’s not enough. For example, suppose your OAR includes store displays; the displays include boxes; and the boxes include the actual items. This means the items in the OAR are 3 levels deep:

1) Store display
………. 2) Box
……………….. 3) Item

Today’s update modifies items at any level, so it will make you the owner of these items.

We’ll contribute this feature to OpenSim so that people on all grids will have a more robust way to take their content with them when they move between grids.

Better World Map

We made a couple of improvements to the world map. First, the image quality of the maps is vastly improved because we now use the Warp3D module to generate them. Second, our Advanced Megaregions now offer another benefit over using regular OpenSim megaregions: in regular megaregions, only objects in the root region of the megaregion are rendered; in Kitely’s Advanced Megaregions they’re rendered in all the regions.

For example, here’s what the map of Universal Campus looks like, before and after today’s update:

World Map Comparison

Please note that due to the way virtual world viewers work, the first time you view the world map after this update it might still show the old map (or no map at all). This should be fixed if you give the world a few minutes to settle down, and possibly restart the viewer once.

Fixed Bugs in OpenSim

We fixed over 20 bugs that exist in OpenSim 0.7.6, and we’ll contribute the majority of these fixes to the OpenSim project so that everyone will be able to benefit from all the work we’ve put into solving these problems.

The biggest group of fixes has to do with object permissions. These bugs happened with objects that contain items with different permissions than the object. For example, if an object with MCT permissions contains a no-copy item then the object itself should also become no-copy. This rule wasn’t always enforced, and we’ve made it work consistently.

Another group of fixes was for coalesced objects: e.g., when creating a coalesced object, its permissions should be the lowest permissions that occur in any of its sub-objects.

Another important fix has to do with the problem of missing objects that reappear. This problem has been reported from time to time: a user deletes an object, or takes it into inventory; the object disappears, but later reappears in the same position. We found the cause of this bug and fixed it.

Removed Kitely Plugin

We used to offer Kitely Plugin, a browser plugin that would automatically launch a virtual world viewer and log you into Kitely when you pressed the Enter World button in a World Page. Unfortunately, by January 2014 both the Firefox browser and the Chrome browser will stop allowing such plugins to be used. Therefore we were forced to switch from providing an automated login option to using manual login, and Kitely Plugin no longer works (on any browser). If you still have Kitely Plugin installed then please uninstall it.

Please note that the login flow from world pages hasn’t changed. You can still press the Enter World button to enter a world, and you’ll either be logged-in (if you’re currently offline), or be teleported into the world if you’re already logged into the Kitely grid. The only difference is that now you have to start the viewer manually and press the login button inside it; it won’t be started for you automatically.

Show All Variations in Kitely Market

Based on user requests, we added a feature to Kitely Market that lets you choose whether you want to view just one variation from each product in the search results, or view all of the matching product variations. This featured is called “Group Variations“, and it’s controlled with a button in the search toolbar:

Group Variations Button

When grouping is enabled (the default), each product appears only once in the search results. This makes it easier to find products because it prevents a single product with many variations from filling up the search results.

In order to make it easier to know when a product has additional variations, we now show the “variations” icon on products that have multiple variations:

Grouped Product Variations

If you prefer to view all of the variations in the search results then click on the Group Variations button to disable it. In this mode the variations icon doesn’t appear on the pictures. Instead, the variation names appears where applicable. Here’s what the results look like:

Ungrouped Product Variations

Improved Permissions Detection in Kitely Market

We made a couple of improvements to the algorithm we use to decide the permissions for individual items in Kitely Market.

The first improvement has to do with coalesced objects. A coalesced object is made up of sub-objects, and these sub-objects don’t have a corresponding inventory item (unlike every other item and object in the market). Prior to today’s update we used the inventory items to determine permissions, but since the sub-objects don’t have inventory items we didn’t know their permissions so we showed “CT” in all cases. (This didn’t actually make those items have “CT” permissions: they still had whichever permissions their creator intended, but we didn’t provide feedback about the true permissions to buyers.) Now we parse the objects themselves to find the permissions, which allows us to show the correct permissions for sub-objects of coalesced objects.

A related feature is that for items that represent objects, we now use the lower permissions out of both the inventory item and the object. This change affects only a small number of products, where the permissions of the object and the inventory item weren’t the same. Previously we showed in Kitely Market the permissions that we found in the inventory item, and ignored the permissions in the object. Now we show the lower permissions out of both the item and the object. This ensures that buyers won’t be surprised by the permissions that they get when they rez the objects.

Other Improvements

We made several other improvements based on requests from our users.

In product pages, we changed how permissions are displayed: instead of showing only the active permissions, we now show all the possible permissions, with checkmarks next to those permissions that are active.

Product Permissions

It is now possible to search for products using the merchant’s name. (Previously it was only possible to search by the store name.)

A product’s “Creation Date” is now considered to be the date when the product listing was first made Active; not the date when the merchant began creating the product listing. This is useful for merchants that take a while to create a product listing, because it ensures that when you finally activate that product listing it will appear first when people sort the marketplace by “Newest”.

Whenever you purchase a product in Kitely Market, we ask you to review it. We’ve made this feature more friendly: first, the request only appears after a day (so you’ll have time to actually use the product first). Second, if you click “Dismiss” on the request then we will never ask you to review that product again. (But you can still review it if you want, of course.)

We’ve made it easier to correlate your real-money purchases with your PayPal account, by showing the PayPal Invoice ID in the History table. You can search for this Invoice ID in your PayPal account and find the corresponding transaction. (The Invoice ID is not available for transactions made prior to today.)

Paypal Invoice ID

We updated the viewer our website provides to Firestorm 4.5.1, and added support for Linux. We provide a viewer download link in several dialogs; this link automatically downloads the correct version of Firestorm for OpenSim according to your operating system: Windows, Mac OS X or Linux. Even though Firestorm 4.5.1 is a beta version, it has important improvements over the previous version (4.4.2) so we decided to make it the default version.