Improved Item Exchange with Other Grids

We updated the system today with a change that makes it easier to take items from other grids into Kitely, and then take them with you when you leave Kitely to visit other grids.

This update also includes several bug fixes, including a bug that sometimes prevented Hypergrid users from teleporting into Kitely.

Improved Item Exchange with Other Grids

Kitely is a Content-Filtered open grid. Unlike unfiltered open grids, Kitely enables content creators to decide whether the items they create may be taken to other grids, or will be treated as unexportable content. There are two ways that content creators can specify this preference. The first method is used only for items in Kitely Market: such items have an explicit “Export” flag, which determines whether they can be taken out of Kitely. This method hasn’t changed, and will not be discussed in this blog post. For any objects not acquired from Kitely Market, we use the following rule: if the object has Copy + Transfer (CT) permissions then it may be exported out of Kitely. Otherwise, it may not leave Kitely.

If an item isn’t allowed to be exported then users may not:

  • Wear it while teleporting to other grids
  • Store it in their “My Suitcase” folder while teleporting to other grids
  • Have it included in exported OAR files

But what happens if a Kitely user, while visiting another grid, picks up an item that doesn’t have CT permissions? Since that item clearly came from another grid, there’s no reason to prevent it from leaving Kitely. For this reason, we added the “Foreign Grid” flag: if an object came to Kitely from another grid then we turn this flag on, and that allows the object to be exported from Kitely even if it doesn’t have CT permissions.

And now we get to the problem that today’s update fixes. Until today, we had an exception to the “Foreign Grid” rule: if the item already existed in Kitely before the user picked it up in the foreign grid, then we wouldn’t turn on the “Foreign Grid” flag. This meant that the user still couldn’t export the item out of Kitely (e.g., by wearing it), despite the fact that we had already seen the item in a different grid.

The idea behind this logic was that even if the item already exists in one foreign grid, perhaps we shouldn’t allow it to proliferate any further. But this turned out to be a mistake. In the vast majority of cases, it prevented users from taking legitimate free content out of Kitely. It came down to randomness: if a certain common item without CT permissions (e.g., a Linda Kellie item) was first imported directly into Kitely by any Kitely user (e.g., using Load OAR), then we would never allow it to leave. But if the same item first came into Kitely from another grid, then it would be allowed to leave. This made no sense. It also didn’t add much to security, since we still couldn’t prevent items from being taken out using Copybots.

After consulting with our users we decided to change this logic, by removing the exception described above. Now, if we see an item in a foreign grid, then we always enable the “Foreign Grid” flag on the item, even if it already exists in Kitely. This change will make it much easier to pick up items in other grids and be sure that they will be allowed to enter and leave Kitely freely.

Please note that this change won’t affect existing items in your inventory, so if you had any items that suffered from this problem (you couldn’t leave Kitely with them) then you should pick up a new copy of the item from the foreign grid. We’re sorry for this inconvenience, but this will only need to be done once.

A note to Kitely Market merchants: this change doesn’t affect the exportability of products that were bought from Kitely Market. The explicit “Export” flag on such items takes precedence over everything else, so No-Export items won’t be allowed to leave Kitely even if they have CT permissions, and even if they have the “Foreign Grid” flag.

OSSL Permissions

When we recently updated to OpenSim 0.8.2 Dev we changed the permissions of a few OSSL functions, allowing fewer people to use them (e.g., only World Managers vs. Everyone). These changes were originally made in the core version of OpenSim, because the developers have come to consider some functions to be more dangerous than previously thought. We chose to accept these changes in order to maintain security and compatibility with other grids that are using the latest version of OpenSim. We’ve updated the list of Supported OSSL Functions to reflect the new functions and permissions.

Bug Fixes

This release also includes a number of bug fixes:

There was a bug that prevented Transfer Stations from working for users that came in from other grids. This meant that if users on other grids tried to visit a Kitely world, and that world was offline, then the teleport failed. Now the teleport will succeed, and the user will be sent to the Transfer Station while the world is being started. (This is how Kitely had worked up until we upgraded to OpenSim 0.8.2 earlier this month; that’s when this bug started.)

Kitely allows restricting access to Kitely worlds to users who belong to a certain OpenSim Group. Until today, such restrictions only worked for Kitely users. While you could add Hypergrid users to your Groups, they still weren’t allowed to enter restricted worlds. This bug has been fixed, so now Hypergrid users who belong to Groups will be allowed to visit worlds that are restricted to members of those Groups.

It is now possible to visit Kitely from other grids by entering kitely.com:8002 in the World Map. The correct address for Kitely is actually grid.kitely.com:8002, so until today if anyone tried to visit by entering just “kitely.com:8002” then they received an error. But now we allow this address to work. However, we still recommend entering the full address (grid.kitely.com:8002), because foreign grids may cache these addresses and we prefer that they cache the correct address.

Updated to OpenSim 0.8.2 Dev

We updated the system today, bringing in updates from OpenSim 0.8.1 and 0.8.2 (Dev).

You can see the full list of changes in OpenSim 0.8.1 here: http://opensimulator.org/wiki/0.8.1_Release

Since OpenSim 0.8.2 hasn’t been officially released yet, there’s no comparable page that shows which changes it contains. However, we’ve noted some of the important changes in this release below (changes in both OpenSim 0.8.1 and 0.8.2).

All of the Scripts Need to Be Recompiled

Scripts in OpenSim are written in the LSL programming language, but before they can be used they need to be compiled into a DLL. Compiling scripts is a slow operation, so we compile each script only once and from then on we reuse the compiled DLL.

The new version of OpenSim has changed the format of compiled scripts. (This was done to make scripts more reliable if they need to be terminated; this is called setting “ScriptStopStrategy” to “co-op”.) Therefore, all of the scripts in Kitely now need to be recompiled. The first time any world is started after this update it will spend some time recompiling its scripts. During this time the world will perform slower than usual, and scripts will be slow to start. This will take a few minutes, and it will only happen once.

Scripting Changes

This release contains a couple of new OSSL functions:

There are also some new and improved LSL functions:

Other Notable Changes

In order to make it easier to change terrain, terrain updates are now sent first for the area the user is near. This makes terrain editing faster. However, it means that far away terrain changes may not be displayed as quickly.

The algorithm used to calculate performance metrics such as frame time, fps, etc. has changed. If you’re used to the old performance metrics then the new metrics will look very different. The performance of OpenSim hasn’t actually changed (well, except for improving a bit): only the numbers shown have changed, to be more accurate. If you would like more technical information about this change then see this post: http://opensimulator.org/pipermail/opensim-dev/2015-April/025621.html.

World managers can now Kick a user using the Estate Management dialog.

You can now “Grab” objects: use Ctrl+Drag to move them, and Ctrl+Shift+Drag to rotate them.

And finally, there have been numerous changes to many aspects of OpenSim that are too small to mention here, but together can have a big impact. Please let us know if you encounter any problems.

60% Off Large Worlds, and a Dedicated Memory Guarantee

New World Prices, and Dedicated Memory

Kitely has always provided great performance for low prices, and today we’re happy to announce that we’ve reduced the price of large worlds by 60%! Standard Worlds have been reduced in price from $49.95 to $19.95 per month, and Advanced Worlds have been reduced in price from $99.95 to $39.95 per month.

In addition, all Kitely worlds now get a large amount of dedicated memory: between 1024 MB and 4096 MB, depending on the world type. Previously worlds were not guaranteed any particular amount of memory. Having a lot of dedicated memory is important to ensure that worlds with many prims, scripts or avatars run fast and lag-free.

Here’s the new price list, and how much dedicated memory each type of world gets:

Starter World Standard World Advanced World
Maximum world size 1 Region 4 Regions 16 Regions
Maximum prims 15,000 60,000 120,000
Avatar capacity 10 40 80
Dedicated memory (RAM) 1024 MB 2048 MB 4096 MB
World speed Fast Faster Fastest
Price $14.95 / month $19.95 / month $39.95 / month

How Does This Affect You?

If you have an existing Starter World then you don’t need to do anything, since the price of the world hasn’t changed, and you’ll get the new dedicated memory automatically. However, you might want to consider upgrading to a Standard World, since for only $5/month more than what you’re paying now you’ll get significantly more server resources, be able to build a world that is 4 times as large, and allow 4 times as many avatars into your world.

If you have an old-price Standard World ($49.95/month) or Advanced World ($99.95/month) then we encourage you to switch to the new world types now, and thus save a lot of money. This is necessary because these discounts aren’t applied automatically to existing worlds.

High Performance Worlds

The introduction of dedicated memory is just the latest step in our mission to provide the fastest, highest-quality OpenSim hosting service. Kitely worlds are fast for a number of reasons:

First, we run OpenSim on powerful servers with Intel Xeon E5-2670 CPUs and SSD hard drives. Each world gets a generous amount of dedicated memory: between 1024 MB and 4096 MB, depending on the world type. Each world also gets fast and unlimited bandwidth.

We place no more than 4 worlds on each server. This ensures that each world gets plenty of RAM and CPU power. Even better: as a world gets more visitors we automatically scale up the amount of CPU, network, and I/O resources it gets in order to maintain good performance, at no additional price! This means that a world with many visitors can get an entire server all to itself. Only Kitely, with our on-demand, cloud-based architecture, can offer such a service. Advanced Worlds are especially privileged: they get more server resources than other world types at all times (even when they have only a single avatar in them).

Another important way that we offer high performance is our proprietary and highly optimized version of OpenSim. Kitely users benefit from more than 400 OpenSim optimization and stability patches that we’ve created that don’t exist in regular OpenSim (totaling more than 30,000 lines of code). In addition, we use our own cloud-based Asset and Inventory services, which are much faster than the services that come with regular OpenSim. These enhancements ensure that Kitely worlds start up much faster than they can on regular OpenSim; that they take significantly less time to rezz; and that they’re more stable while many people are using them. Our enhancements also enable Kitely users to have large inventories that perform well both while in Kitely, and during their Hypergrid visits to other grids.

No More Premium Accounts

As we announced last month, as of today we no longer offer Premium Accounts: all new users get a Regular Account. However, users who already have a Premium Account or Gold Plan can keep it for as long as they continue paying for it.

Kitely Provides the Best Value for Your Money

Are you interested in getting your own virtual world? Get a Kitely world now. There are no setup fees, and no delays. When you buy a Kitely world it’s ready to use immediately. If you’re a new user then you can even create a Trial World for free and use it for 6 hours, all without giving us your billing information.

Secure Browsing and Better Hypergrid Support in Kitely Market

Secure Browsing using SSL

All communications with the Kitely website are now encrypted using SSL. This means that you can visit our website from anywhere, even over public Wi-Fi networks, and have your private information remain secure from eavesdroppers.

SSL

Simpler Delivery Options

We changed the Kitely Market shopping cart to make it easier to understand which avatar will receive the items that you purchase. Previously there were three delivery options: “Me”, “Gift” and “Other Grid”. This confused some of our marketplace shoppers, who thought that “Me” referred to their avatar on another grid, when in fact it referred to their Kitely avatar (we automatically create an avatar on our grid for anyone who signs up for a Kitely account).

Therefore, we’ve changed the shopping cart so that now it includes only two delivery options:

  • My Kitely Avatar – the items will be delivered to the Kitely avatar that belongs to the Kitely account that you are logged in with.
  • Other Avatar – the items will be delivered to a different avatar. That avatar may be a Kitely avatar (one of your alts, or another Kitely user’s avatar), or an avatar that belongs to a different grid altogether.

Market Delivery Options

Easier Delivery to Other Grids

We added a feature that’s intended for grid owners, and makes it easier for their users to buy from Kitely Market. The problem is that in order for Hypergrid users to buy from Kitely Market, their grid needs to be included in the list of grids in the Shopping Cart. Only a few widely-used grids are automatically included in everyone’s grids list, e.g. OSGrid. All other grids need to be added manually using the Grid Manager (you can see the link to the Grid Manager in the screenshot above).

In order to make adding a custom grid easier, it’s now possible to create links to Kitely Market that automatically add a custom grid to the user’s grids list. This is done by adding a parameter called “grid” to the URL. When we see this parameter, we find the specified grid; add it to the user’s grids list; and make it the currently-selected grid. The value of this parameter is the grid’s Grid URI (sometimes called the Home URI).

For example, suppose you want to buy items for your avatar in the OpenSimulator Community Conference grid. Now you can simply click on this link: https://www.kitely.com/market/cart?grid=cc.opensimulator.org:8002. Do this now, and you’ll see that the grid has been added to your grids list in the shopping cart. This works even if you’re not logged-in yet, and even if you haven’t signed-up! (The grid will be added to your grids list once you login and/or signup.)

We created an image that grid owners can use in order to help their users access Kitely Market:

kitely-market-metaverse-marketplace

To use this image, first open it in an image editing program and add your grid’s logo at the bottom. If you don’t have a grid logo then you can add your grid name as text. If you do that, and you want your grid name to appear similar to the rest of the text in this image, then use this font: typeface Meiryo; regular; size 18px or more; color #082e6c. If you don’t have the Meiryo font then use whatever else looks similar, e.g. Helvetica.

Once you’ve finished preparing the image, upload it to your website. Then, add a link in your website to Kitely Market, using the special URL that adds your grid to the user’s list of grids. For example (replace YOURGRID.EXAMPLE.COM:8002 with your real Grid URI):

<a href="https://www.kitely.com/market?grid=YOURGRID.EXAMPLE.COM:8002"><img src="kitely-market-metaverse-marketplace.png" title="Kitely Market" width="200" height="200"></a>

Please note that this will only work if the grid is already known to us and verified for use with Kitely Market.

Increased the Idle Visitors Timeout

We increased the Idle Visitors Timeout from 30 minutes to 1 hour. This timeout determines when we disconnect avatars who have been in-world for a long time without doing anything (i.e. without moving, chatting, etc.).

Please note that in some cases we use a longer timeout of 2 hours:

  • For World Managers, when they’re in one of their own worlds.
  • For users with a Premium Account or Gold Plan, when they’re in any world.

Better Error Checking of OAR Files

People get OAR files from many different sources, and sometimes those OAR files contain problems which prevent them from being imported into OpenSim. In order to help people handle these cases, we improved our validation of uploaded OAR files. We now detect problems in OAR files faster than before, and when we detect a problem we show error messages that are easier to understand.

Resize Kitely Worlds Using a Graphical Tool

One of the reasons that Kitely is a leader in OpenSim hosting is that we provide our users with the ability to easily manage their account on their own, with a feature-rich control panel. Today we’re happy to announce the latest addition to our lineup of advanced tools: you can now change the size of your worlds using a graphical map.

How to Resize a World

In the past, the size of a world was chosen when the world was created, and couldn’t be easily changed afterwards. However, we have now added an easy-to-use dialog that lets you change the size of an existing world.

To resize a world, click on Change world size in the Manage World dialog:

Change World Size

This opens the Change World Size dialog:

Resize World

If you’re making the world bigger then select where in the bigger world the existing regions should appear. The rest of the regions will be filled with empty land.

If you’re making the world smaller then select which of the existing regions to keep.

Resizing a world is free for fixed-price worlds, and costs 150 KC for Premium Worlds.

Removing Support for Facebook Groups

Currently, World Managers can choose to restrict access to their worlds so only people who belong to certain Facebook Groups can visit it. Unfortunately, Facebook has decided to stop allowing external programs to get the list of groups that a user belongs to. Therefore, we are forced to remove this feature from Kitely. This will happen on March 27, 2015.

If you are currently using Facebook Groups for access control then you should switch to a different method of restricting access to your world: e.g., using OpenSim groups. Otherwise, once we’ve updated the system your world may become accessible to more people than you had intended.

Kitely Market on Your Phone

Our mission is to evolve Kitely Market into the central marketplace serving users of all open virtual world platforms on the Metaverse. Part of our strategy involves making Kitely Market accessible to potential buyers on all platforms. Today we’ve taken a big step towards achieving that goal by making Kitely Market accessible on smartphones.

To access Kitely Market on your phone, visit kitely.com in your browser. The current Alpha version can be used for searching the market and viewing products. We’ll add additional functionality, such as purchasing and wish lists, in the near future.

Kitely Market is designed to provide an App-like experience: transitions between screens are instantaneous; data is preloaded in the background to minimize waiting time; and animations make the app fun to use. Due to the use of advanced HTML5, the web app works best on modern browsers such as Chrome and Safari.

The web app is optimized for mobile devices. For example, search results are shown in a single column (vs. 3 columns on the desktop); the search options are accessed via a slide-in window; etc. We also use high-resolution icons, which look great on phone screens (since they often have far more pixels per inch than desktop monitors).

The web app also displays product images in a higher resolution than on the desktop. Again, this takes advantage of the superior screens on phones as compared to desktop monitors. This means that even though the images are smaller than on a desktop monitor, they appear sharper. Since we first opened Kitely Market in 2013, our product guidelines have recommended that product images should be uploaded in a very high resolution (1600 x 1200 pixels), precisely in anticipation of this day. Kitely: we’re all about the long game!

(Before you rush to see insanely high-resolution images of your products, however, we should note that in order to balance image quality vs. download speed we don’t yet display the maximum possible image resolution. We increased the resolution that we use up to a certain point, and we intend to increase it further after we get some feedback.)

Please check out Kitely Market on your phone (go to kitely.com), and let us know what you think.

Here are some screenshots of the new Kitely Market mobile web app:

Mobile Homepage

Mobile Front Page

Mobile Search Options

Mobile View Product

Import VarRegion OAR Files, and Started Ad Campaign

We updated our system today with an OpenSim security fix and with support for automatically converting VarRegion OAR files into Kitely Advanced Megaregion worlds. We also started advertising Kitely Market on third-party websites, and have seen a sharp increase in marketplace activity as a result.

Security Fix

This release includes the security fix in OpenSim 0.8.0.4. See Justin Clark-Casey’s announcement here.

Importing VarRegion OAR Files

It’s now possible to load OAR files that were created on VarRegions outside of Kitely into Kitely worlds. The resulting worlds won’t be VarRegions, instead they will use Kitely’s Advanced Megaregions technology.

Regular OpenSim megaregions have some limitations which VarRegions help resolve. Our Advanced Megaregions have much of the same functionality as VarRegions, but while VarRegions are limited to using the BulletSim physics engine, our Advanced Megaregions support both the newer BulletSim physics engine and the more mature ODE physics engine.

Converting megaregions into VarRegions is a non-trivial process with regular OpenSim, but it is now done automatically when you upload VarRegions OAR files into large Kitely worlds. After you’ve created such a world you’ll be able to export it to a Megaregion OAR file. Alternatively, if you disable Advanced Megaregion mode for that world then you’ll be able to export it to a Multi-region OAR file.

Started Ad Campaign

We’ve started the Kitely Market ad campaign that highlights products that our merchants sell in Kitely Market. You can already see these ads on Hypergrid Business and SLUniverse, and we intend to advertise in additional websites over time.

The ad campaign resulted in an immediate increase in sales volume and in the number of items listed in Kitely Market. Kitely Market has now delivered purchased items to over 70 OpenSim grids! If you sell content to grids outside Second Life then there’s no better way to do it than to list your items in Kitely Market.

Added a Video to the Homepage

We added the Kitely Market video to our homepage. This video is also displayed to people who click on the ads in the ad campaign.

Analytics for Product Prices

Today we added a new feature to Kitely Market: a way to analyze the relationship between product prices and revenue. If you’re a merchant, this will help you optimize your product prices so that you can maximize your earnings.

Prices in Analytics

The Analytics pages now contain a new tab: Prices. This tab shows how products’ prices affect revenue. This information is useful for setting product prices, and for choosing the level of discounts to use in Sales Campaigns.

Analytics Prices

The Y Axis (labeled “Full Product Price”) shows various prices at which your products have been bought. For each price point, the X Axis (labeled “Total Revenue”) shows the total revenue that was derived from products that had that price.

If you’ve sold products using a discount (in a Sales Campaign) then the revenue bars will be subdivided to show how much revenue was made at each discount level.

How to Use This Information

This page can provide insights about how much users are willing to pay for your products. Perhaps you see that low-cost products sell best; or perhaps the other way around. This can help you set prices for your products.

This page is also useful for deciding whether to use Sales Campaigns, and which discount levels work best. For example, if you see that selling a product at a 70% discount generated more revenue than a 40% discount then you’ll know that the higher discount works better.

Note that in order to effectively analyze the effect of different discount levels you should view a single Product (and not the entire Store). In addition, remember that the selected time range affects the revenue shown: e.g., if the time range is 3 months but the product was only on sale for 1 week then you should take that into account when you evaluate the effectiveness of putting the product on sale.