Monday 6 June 2011

Aurora Sim: A Brave New Virtual World

When I first read about Aurora sim back towards the end of 2010 when the project was first initiated I was impressed by the long list of improvements over core Opensim that the development team, headed by Revolution Smythe (Rev to his friends), promised. I was not only impressed but more than that, I was quietly intrigued. However, I remained skeptical that such a small team could deliver on their substantial promises considering that core Opensim, on which Aurora is based,  has been in development for four years, and while improved greatly in the last two releases, still lacks so much that is taken for granted in SecondLife. Aurora team basically set out to turn Opensim on it's head and reconstruct it from the ground up.

Coming from a background in role play as I do the visual experience and ability to immerse one's self into a virtual world are very important to me. I want a high degree of realism which is still by far and away lacking in SecondLife. I want the kind of quality graphics and responsiveness one gets from games running on PC and Xbox but without the actual game they are selling of course. In short, I want a virtual world that is broader in scope, has better scripting and features that support the themes gamers and role players try to build for themselves and their fellow players. What I came to realize as I got more into the work the Aurora team were doing was that they are game focused and this got my interest up. Revolutions Smythe explained to me that, in the fall of 2009 before he started Aurora, he built a game off of what was the base of Aurora today. The problem was the viewer software couldn't handle it, he said. Fortunately, the Imprudence viewer developers agreed to collaborate and, by changing the licence slightly from that which Opensim uses, Imprudence/Kokua and Aurora Sim became sister projects in October 2010.

Aurora's developers set out with a broad set of ideas, the aim was to complete all that was missing from Opensim and the desire to bring about change that was not lead by developments in SecondLife alone. They replaced the Robust server, and underlining communication framework altogether. They rebuilt the scripting engine adding support for more functions including osFunctions and aaFunctions, and they are adding support for more scripting languages too including C# and VB. But there is so much more. "We are working on some advanced features," Revolution Smythe told me, "When we finish the generic properties module this will allow new properties to be added to objects very easily, such as the Cone of Silence (see video below), which disallows the viewer from seeing things inside the 'object'. The module will send the information about all new properties it has to the viewer and the viewer will have a new panel in the Build tools window, which will show all of the properties, so that they can be edited easily.  Its annoying to go add each and every property manually into the viewer." he went on, "This would allow an easy way to add things to the viewer, and in which any version of the viewer supporting the module would be able to see it. I fully intend to let the sim designer change settings so that the viewer sees exactly what they wanted to show like with setting parcels and altitudes for windlight (not LightShare(tm)). We have already added new settings like Region/Estate in Imprudence and we will add the ability to turn off the minimap and avatar name tags so that RPGs and things can run smoother (no cheating). You just have to lock the clients to Imprudence only which is easy with the viewer ban module (included)."

The unpredictable lady, Aurora Borealis dances in the night sky while Gaga day dreams about the shape of virtual worlds to come.
Aurora 1.0 was released early in 2011 and I reported my experience with it here at the time and, accepting it was a pre-alpha release, it really didn't do more than prove the concept and show that the team were in business. The next release a month or so later, Aurora 2.0, was a good general tidy up of the code with multiple bug fixes and something completely new, variable sized regions!

Looking towards a single 65k sq mt region from a massive
var-region on an Aurora grid up to 256 times the area.
Opensim has mega-regions which are clusters of sims where one sim is the parent and the rest are attached as child sims thus each region is still consuming server resources separately while with variable sized regions now under development in Aurora sim, or var-regions for short, they simply expand a single region up to 256 times a standard SL region area. That means that just one region is consuming server resources and, where it would take a lot of sims to build a really large space using the mega-region protocol, var-regions can expand to create truly massive spaces that would take hundreds of Opensim regions in a mega-cluster to create the same area. Aurora is already up to four times faster than Opensim. Also, by taking advantage of HTTP Textures, objects like buildings come into view more quickly too so increased performance like this lends considerable support to rendering such vast spaces.

Terraforming my Aurora standalone test sim was fast and smooth, better than I ever experienced in SecondLife or
even Opensim. I shaped equal to 3 standard sims on this 1024X1024 var-region in little over 5 minutes. The 
distant land is left flat to show the sheer scale of it. All that on single server too!

On May 21st Aurora 3.0 was released just seven months into the project which is both a testament to the concept and the sheer determination of the developers to make rapid progress. Windlight features have been enhanced and they surpass Opensims's Lightshare. You can see further than one region away. Groups, Profiles, Abuse reports, Search and so many of the things taken for granted in SecondLife and still absent or dysfunctional in Opensim are now working including more responsive land editing, an integrated backup system, an integrated combat system and true server side bots.

A Role Player's dream come true!

Imagine a city that builds itself with all the effects of traffic and the bustle of city life. Parts might be degrading while new parts are in construction, even city lights and neons flickering on and off, and transport hurtling along while everywhere bots appear and busy themselves as the anonimous populace. The nearest comparison is Sim City but this is something else. It is a living, breathing backdrop to a game world where role players can pursue their storylines in a realistic setting that surpasses anything you could ever expect from SecondLife or Opensim.

Imagine building the dark cityscape of Blade Runner on an Aurora 
sim where punks rub shoulders with Hara Krishas and replicants
are on the lose. Above you see the Gorean city of Ar on 
Role Play Worlds grid which Gaga visited last year. Now do this
build with the city builder module and see it come to life!
A plug-in like the city builder and bot engine will elevate virtual worlds closer to the experience envisaged in prophetic Sci-Fi novels like Neromancer and Snowcrash. One can imagine Blade Runner set in an Aurora sim world or truly astronomical spaces for role play games similar to Eve and other space opera genre. To that end Aurora has support for controlling the viewer, as mentioned above, to over ride settings so the visitor sees the world and interacts with it as the designer intended. The physics engine, ODE, though inferior to Havok, has received special attention and a lot of work giving more support for vehicles. Movement is smoother for avatars too including a smaller, lighter capsule that moves more realistically. Then there is the gravity effects that can be centred and have everything revolve round it. It will be a Star Trek fan's dream come true.

Improving Physics...

Demo of the bots on an Aurora sim 
Improving the physics are a key objective of the Aurora devs. It's not enough to be able to walk, run and fly. Vehicles have to function well too and be responsive to the sort of environmental effects associated with the real world and even the distant reaches of space. In SecondLife they have Havok which Linden Labs can afford the licence for. Opensim is limited to ODE without the kind of improvements done by the Aurora devs. It works and that is the best that can be said for it. The Opensim devs take the view it is for those using Opensim to obtain the licenses and upgrade the physics. They just don't see it as important as other things like Mesh and Hypergrid. In deed, Opensim devs, for all their work and dedication, they just don't appear to see Opensim as anything different than SecondLife even though time and again I have heard it said, Opensim is different. No, it's not. It has the same look and feel, too many of the same quirks, and yet is lacking some very basic stuff that is actually useful, and, after four years in the making, Opensim still doesn't function as well as SecondLife. On the other hand Aurora devs do see Aurora as different but they still want to retain and improve what is good and useful. They want to do better than SecondLife. They want to take it beyond the familiar paradigm so that virtual worlds really capture the imagination and lead to deeper immersion. There is no denying that physics remain a stumbling block but the Aurora team do recognize that good physics are an essential component of the core server code and, not to be beaten by the power of corporate money, they are considering more options.

Aurora devs think very little of ODE even though they have done a lot of work to improve it, work that should have been done by Opensim devs had they looked at Opensim as something more than a social/educational platform. It is one of the founding aims of Aurora devs to improve the physics and, recently, I was in on a discussion in which Navidia PhysX was mentioned. From what I gathered, Revolution Smythe has already done work to integrate PhysX but there was still a lot to do and another dev that has been working with PhysX separately was able to point Rev to new code sources and testing facilities. So the outcome of the conversation gave me reason to believe Aurora will move to a new physics engine before too long or they will continue to improve ODE far beyond it's present capability.

Project Wonderland Capabilities from Nicole Yankelovich on Vimeo.
The Cone of Silence implemented on Aurora sim is basically the same as Wonderland seen in the video and I suggested to Rev the cone might also block the viewer from seeing inside the object too which would give privacy on mature sims and serve to increase realism in the virtual world as well. Rev agreed and said he thought it can be done but we will have to wait a bit longer for that one. Perhaps they will change to name to Cone of Privacy too.

Apart from the problem of physics there is also the question of compatibility with Opensim. On the original features list they did state their aim to remain compatible as far as possible but, at present, anything ported to Aurora can't be ported back and, where initially hypergrid teleports did seem possible, they now aren't. The devs decided to disable HG on the premis that until HG stops being incompatible with itself (there are several versions all mutually incompatible with one another) there is no way it can be made to work properly in Aurora. However, the devs have now introduced their own version of HG called Inter World Connector or IWC.

Inter World Connector...

IWC, they say, will be more secure than Hypergrid since security receives particular attention throughout the system. The details of IWC are still not clear at this time but what I gathered was that IWC generates a secure URL on the fly and there are varying levels of trust between grids that are both user and grid operator settable. These levels of trust range from full trust (level 4), where inventory can be sent to other grids with the avatar, down to nothing gets out (level 0). So, where HG has the Outward bounds setting in 7.1 it would appear Aurora has more options although I have no information yet what they might be. One assumes travelling avatars will keep their appearance in the same way that HG works where the skin, shape and clothes, etc, are called from the avatar's home grid so are not downloaded to the visited grid and can't be copied. In Opensim 7.1 grid owners can turn HG on but prevent items acquire on their grid from leaving it while the avatar can still travel with their same name and appearance. I can only imagine IWC will work in a similar fashion but with extra permissions. However, Rev has said it wont be compatible with HG.

Now, I have noticed that many people that are interested in Aurora are concerned about compatibility since they are, for the most part, familiar and probably comfortable with the way Hypergrid works even if they are less than happy with the function of Opensim itself. In deed, Hypergrid is not only an essential component of Opensim for many but without the means to travel via inter-grid teleports it's hard to see how any virtual worlds platform can ever lay claim to be the Apache of the emerging 3D web. Many users are running their own standalone sims attached to grids like OSgrid. Others run grids of their own too. In fact most grids run on core Opensim with a few exceptions like InWorldz and Openlife which have developed their own forked version so are probably too far removed to ever be able to participate in inter-grid travel anyway. If IWC is going to be incompatible with HG then, for many, that will be a serious drawback to adopting Aurora. However, when asked at a recent meeting on the Aurora test grid, the lead developer, Rev did say he could make a bridging module but he didn't say he would. In any event IWC has yet to be fully implemented so currently it remains an open question. But it is an important issue for many, me included.

Okay, so I want to show off the Trekie-style top again. I made it complete with my very own Aurora Sim logo specially for this photo shoot of Gaga on my standalone. Shame about the hair though but I don't have any full perms to download presently. Anyway, I want to make this a tribute to the brilliant coders at Aurora. 

Aurora is different in so many ways and yet remains open source. The developers are not content to build a bare nuts & bolts platform. They believe Opensim should have been more complete by now. All the devs have a long history in virtual worlds and started like most of us in SecondLife. They wanted better and brought their coding skills to Opensim in order change things and help build a truly open metaverse. Many have joined the Aurora team but still contribute to Opensim so there is still plenty of collaboration between the projects regardless of a parting of the ways. Most important to me is that they do seem to be listening to the community and, thankfully, they don't have to please any profit-hungry corporate overlords. They have similar views to the community and suffered the same treatment meted out by the blinkered mandarins that run Linden Labs. They tried hard to work with Opensim (and some still do) but the narrow focus thwarted their creative efforts to advance the code. They are visionaries and want more from a virtual world and they believe there is more to gain. My only worry is that while striving for perfection they don't lose sight of the hopes and dreams of the growing community that have already embraced the free Metaverse. If they throw the baby out with the bath water then Aurora risks becoming just another games engine. The socioeconomic model built by SecondLife is still part of the big picture while the virtual experience can and must improve. Connectivity is important too if the free metaverse is to thrive, and that requires a degree of compatibility in key areas especially content and avatar mobility across worlds. I have no doubt though that the Aurora team are on the right track and I believe the project will go far. And do it fast!

UPDATE [Aug 8th 2011] Aurora Sim has moved on considerably since the article above was publish. Currently we are using 4.1 which includes many bug fixes, improvemnets, IWC in grid mode and a Hypergrid Bridge module to connect with Open Sim grids. See more recent articles...