Kitely adds teleports, new viewers

Kitely, the cloud-based, on-demand OpenSim grid, announced today that in-world teleports and choice of viewers are now supported.

Previously, the only way to move from one Kitely region to another was to shut down your viewer, and load the new region from the website. And the only viewer you could use was the one set as your default viewer — using a different viewer involved complex configurations.

In-world teleports

To teleport from one Kitely region to another, you need to know the region name, enter it into the Map search field (Ctrl-M), and hit teleport. Or pull up the new region from the Kitely website and click on “Enter world” — no need to close out the viewer first, as was the case previously.

If the other region is currently active, you will teleport right in. If that region is in storage, it will be activated, and you will teleport once the activation is complete.

In testing this out, I had no problems teleporting between two regions that were already up and running, or teleporting to a new region by loading up its web page on Kitely.

Pop-up message asks you to wait for destination to be loaded.

However, when the other region was down, the teleport didn’t work for me in either the Dolphin Viewer or the official Second Live Viewer 3 or Imprudence. I asked Ilan Tochner, Kitely CEO about this, and he explained that this only happens when a region is accessed for the very first time. Once anyone has visited the region, it’s on the map, and all future teleports will work.

“It’s something that we can fix, and probably will,” Tochner said.

So I tried teleporting to a region I had visited earlier, and I got a message that the world was loading and I would teleport once it was up — and almost before I had finished reading that message, I was teleported.

Switching viewers

The other feature — being able to switch viewers — I had no trouble with at all, other than being surprised the first time when the Dolphin viewer loaded up. I didn’t even know I had it installed.

But switching was easy — I just click on the “Settings” tab on the Kitely website, and picked a new viewer from the list of those I had installed on my machine. (I did have to upgrade my Kitely plugin first but that was very quick and painless.)

Kitely CEO Ilan Tochner

You can now even use the grid manager and log into Kitely with viewers that aren’t supported, or on platforms — like Linux — where there’s no plugin yet.

In other viewer news, Kitely’s default viewer is now Firestorm, instead of Imprudence. Firestorm supports media-on-a-prim and meshes, both of which are available in Kitely.

Tochner added that many people don’t realize that Kitely will install a viewer for people if they don’t have one already.

“You just need to share your Kitely world page — you don’t have to send people to another place first to download a viewer,” he said. “It turns the Enter World button into an Install Virtual World Viewer button that provides an operating system appropriate installer for the Firestorm viewer.”

Hypergrid still a ways off

Now that in-world teleports are taken care of, is hypergrid next?

Unfortunately, no.

“We’ve taken a big step towards hypergrid teleports, but we’re not there just yet,” Tochner said.

First, the Kitely team has some OpenSim bugs to fix, including one that sometimes causes servers to crash when new scripts are created. They will be donating that fix back to the OpenSim community, as they have all their OpenSim-related fixes.

The only code Kitely keeps proprietary, Tochner said, is the software managing OpenSim once it’s in the Amazon cloud, which is central to Kitely’s business model.

In fact, most vendors keep their grid management software proprietary. Dreamland Metaverse has a nice web-based front end for their customers, and Talent Raspel distributes the PCI grid management system originally created by PioneerX Estates.

Grid management systems automate many of the tasks that small grid owners normally do manually, like restarting regions or saving backups.

After the bugs are fixed, Kitely is upgrading to the latest version of OpenSim, 0.7.3, which includes some nice features, such as more support for non-player characters, or NPCs — otherwise known as bots.

Another benefit of the latest version of OpenSim is that allows for fine-grained controls about which kinds of scripting commands are allowed and which aren’t. Previously, OpenSim grid owners could only specify a generic “threat level” setting when configuring regions.

But Tochner said that Kitely users should have access to some commands which are considered high risk — such as the ability to instantly teleport someone somewhere else. Kitely already has built-in protections against teleporting people against their will to adult regions, or regions where they have to pay for their access. And the instant teleports allow for walk-through portals and other cool functionality.

Similarly, creating NPCs is a higher-risk function that will be supported. Meanwhile, there are other high-risk functions — such as accessing the OpenSim region management console — that would pose significant dangers — and will not be allowed.

“There are already several people using Kitely who want NPCs,” Tochner said, “and several people who said they will use Kitely if they can have them.”

Until the upgrade, Kitely only supports low threat-level scripting commands, such as writing text on a prim.

“We added that months ago becuase there was clearly no reason not to,” Tochner said.

After the upgrade to OpenSim 0.7.3, Kitely is rolling out groups, which are important for building rights and land access controls.

Then, after that, bigger worlds — either in the form of a group of regions located next to each other, or by enabling megaregions.

Either way, there will be some OpenSim bugs that will have to be fixed first, Tochner said.

“We don’t want to just switch on the parameters,” he said. “We want to make sure that things work like they should work.”

Then, after all that is done, Kitely will either move on to hypergrid teleports — or to in-world payments.

“A lot of people are asking for the in-world currency,” Tochner said. “But a lot of people are also asking for hypergrid. But I know we’ll earn a lot more money if we have in-world currency, because it will allow big communities to move over.”

Move over from Second Life, that is.

Kitely is currently the only commercial grid that’s priced on a usage model, and the only one that both protects in-world content and allows people to save entire regions.

Kitely does this by filtering its region exports, also known as OAR files, so that only objects with copy and transfer permissions are copied or exported. Hypergrid teleports will work the same way.

This means that creators, if they wish, can ensure that their content stays within the Kitely grid by simply setting objects to “no copy” or “no transfer.”

Other grids either allow all content to leave and rely on their users to respect intellectual property rights of creators, or lock everything down — no region exports, no hypergrid teleports.

Profitability

Since I had Tochner on the line, I asked him if Kitely was making a profit yet.

Another high-profile, low-cost vendor — Nova — shut down recently with no warning. According to reports, with regions starting at just $5.95 the business wasn’t making enough money to stay afloat.

Could this happen to Kitely?

Tochner declined to provide any detailed financial numbers, but did say that the company was covering its data center costs.

“It’s very easy for us to break even on data center costs, which we did the first month,” he said. “Other expenses, like accounting, will take some time, and we’re not covering our salaries yet.”

Many OpenSim hosting providers, as they grow, incur higher and higher management costs. As a result, the typical low-cost business model — making money by making lots of sales — doesn’t work.

However, Kitely is highly automated.

“The entire operation is built to be extremely cost-efficient,” Tochner said. “Both in human resources and computer resources.  It’s not just about restarting a server automatically. There are so many things you have to handle and automate. For example, somebody’s sim got corrupted. If we didn’t have automatic multiple system save states, we wouldn’t have been able to help them. If you do your own management, you’re spending a lot of time on this.”

maria@hypergridbusiness.com'

Maria Korolov

Maria Korolov is editor and publisher of Hypergrid Business. She has been a journalist for more than twenty years and has worked for the Chicago Tribune, Reuters, and Computerworld and has reported from over a dozen countries, including Russia and China.

  • http://excelsior-station.wikidot.com Sarge Misfit

    This is actually a big deal.  Up until now, to travel from one region/world to another you had to logout from where you were and then login to your destination. In my own case, I’ve got 4 worlds on Kitely that are intended to be settings for RP. That is, people can now go back and forth between regions following a quest or other adventure.

    Thanks out to Ilan and his cohorts, this got done faster than I expected.

    • http://www.facebook.com/profile.php?id=1605956609 Ilan Tochner

      Thanks Sarge,

      We look forward to seeing your RP group flourish on Kitely :-)

      • http://twitter.com/VirtualClover Virtual Clover

        But Tochner said that Kitely users should have access to some commands which are considered high risk — such as the ability to instantly teleport someone somewhere else. Kitely already has built-in protections against teleporting people against their will to adult regions, or regions where they have to pay for their access. And the instant teleports allow for walk-through portals and other cool functionality.——-

        Some day…some day hopefully soon it will happen…I have faith…

        Some day, I can put my attack sharks in the water and on bite, tp them to hell muahahahha!

        Get on it! ;-p

        • http://www.facebook.com/profile.php?id=1605956609 Ilan Tochner

          Hi Virtual Clover,

          You won’t have to wait much longer…

          We’re currently working on migrating our system to use OpenSim 0.7.3.1 which will enable you to use the teleport function you need for creating your TPing sharks :-)

  • Justin Clark-Casey

    Nice to hear about Kitely’s progress!  Haven’t heard about a crash on script rez recently but looking forward to any fixes which are always much appreciated!

    • http://www.facebook.com/profile.php?id=1605956609 Ilan Tochner

      Hi Justin,

      The crash can happen when creating a new script. To reproduce it go to an empty region, create and select a box prim, then press the New Script button multiple times. If you press the button frequently enough the sim will sometimes crash (emphasis being on sometimes).

      Here’s the stack trace:

      System.Reflection.TargetInvocationException: Exception has been thrown
      by the target of an invocation. —> System.Exception: The inventory
      object ” could not be found

      at OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llGiveInventory
      (System.String destination, System.String inventory) [0x00000] in :0

      at
      OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass.llGiveInventory
      (System.String destination, System.String inventory) [0x00000] in :0

      at SecondLife.Script.default_event_touch_start (LSLInteger n) [0x00000] in :0

      at (wrapper managed-to-native)
      System.Reflection.MonoMethod:InternalInvoke
      (System.Reflection.MonoMethod,object,object[],System.Exception&)

      at System.Reflection.MonoMethod.Invoke (System.Object obj,
      BindingFlags invokeAttr, System.Reflection.Binder binder,
      System.Object[] parameters, System.Globalization.CultureInfo culture)
      [0x00000] in :0

      — End of inner exception stack trace —

      at System.Reflection.MonoMethod.Invoke (System.Object obj,
      BindingFlags invokeAttr, System.Reflection.Binder binder,
      System.Object[] parameters, System.Globalization.CultureInfo culture)
      [0x00000] in :0

      at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0

      at OpenSim.Region.ScriptEngine.Shared.ScriptBase.Executor.ExecuteEvent
      (System.String state, System.String FunctionName, System.Object[] args)
      [0x00000] in :0

      03:16:02 DEBUG XEngine – [XEngine]: Loaded script Storage container
      – space.New Script, script UUID 2fe3f95b-c7b1-4935-a658-160684333226,
      prim UUID 44909e70-e3fa-46dc-91af-2129dab0aa66 @ .Serenity Island

      Stacktrace:

      at (wrapper managed-to-native) System.MonoType.GetMethodsByName
      (System.MonoType,string,System.Reflection.BindingFlags,bool,System.Type)

      at System.MonoType.GetMethodImpl
      (string,System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[])

      at System.Type.GetMethod (string)

      at OpenSim.Region.ScriptEngine.Shared.ScriptBase.Executor.ExecuteEvent (string,string,object[])

      at OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass.ExecuteEvent (string,string,object[])

      at OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventProcessor ()

      at OpenSim.Region.ScriptEngine.XEngine.XEngine.ProcessEventHandler (object)

      at Amib.Threading.Internal.WorkItem.ExecuteWorkItem ()

      at Amib.Threading.Internal.WorkItem.Execute ()

      at Amib.Threading.SmartThreadPool.ExecuteWorkItem (Amib.Threading.Internal.WorkItem)

      at Amib.Threading.SmartThreadPool.ProcessQueuedItems ()

      at System.Threading.Thread.StartUnsafe ()

      at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr)

      Native stacktrace:

      mono-sgen() [0x48e206]

      mono-sgen() [0x4e6abf]

      mono-sgen() [0x414c89]

      /lib64/libpthread.so.0(+0xf490) [0x7f4046b6d490]

      mono-sgen() [0x5202d6]

      [0x403cc803]