We have all the pieces – Unity3d, Opensim, Evolver, Smartfox

I have now had this conversation several times with people about the potential future that a mix of open source and open minded development may bring to the virtual world industry. Much of what is happening seems to be driven by some of the direction Second Life has taken or is taking, though not so much to follow it into corporate lockdown but to breakout and provide the flexibility and creativity that is needed for the next generation of virtual worlds.
In the early days of 2006 many of us said it would be great to be able to run a Second Life server, our own one under out control. That has taken a while to start to emerge, but it has emerged as an expensive product aimed at corporate IT departments. Luckily the opensource community had rallied and created the excellent Opensim. This ticks all the boxes of being able to be run locally, be run in the cloud, be provided as a service. So we have an extensible virtual world server ready to be built upon.
The other component missing was a more controllable and rich interface. Yes there is the Second Life Snowglobe open source client but the need to certify and lockdown variants to align with the product needs for Second Life means that lots of the flexibility is lost. Likewise the initial open source Linden based client was under a GPL licence which caused all sorts of development to not happen at the time it really could have done with it.
This is where Unity3d steps in I believe. It was Rob Smart who first started to show me this way back. Unity3d is a great front end, very flexible in how you build games and content for it.
This was a movie form back in September 2008, using a message from Second Life to several unity clients to create a cube. This is loose integration, telling one place something has happened and letting the other place get on with it.

Unity3d has a plugin architecture too. It runs in a browser or deploys to application platforms like mac and windows. The visuals can be made very good very quickly too. Unity3d needs a server of some sort to operate as a multiuser platform (though it does do some peer 2 peer) hence applications like Smartfox are ideal for producing Unity multiplayer and MMO style games.
However Opensim has all the other layers of things needed to maintain a virtual world. It has assets databases, chat, positional awareness, server side scripting (as does Second Life that is was originally based on of course).
So we have an extensible and easy to get hold of Unity3D client engine, and extensible and easy to get hold of Server/Persistence VW engine in Opensim. There may well be challenges in making the two understand one another but with the flexibility both sides of the equation that makes them very solvable. This is a high level view, Rob has some more detail here on the challenges. Add in some interoperation definition with Vastpark to help bind the two and make some mappings.
Throw into the mix an open minded avatar wizard such as Evolver. There we can build avatars that we know definitely can be dropped into Unity3d.
So…..I create an Evolver avatar, dropped as a resource bundle into a web deployed Unity3d client that tells the opensim server where I am in the coordinate system, and which bundle I am using. Other people with a Unity3d client see the rich detailed avatar and the shiny Unity3d environment. However we do not have to stick to that one client. Other people using a Second Life style client see the Second Life style rendering of the world?
This is already happening in some respects, the Iphone application Touch Life lets you logon to the public Second Life. In a sort of bugblatter beast of traal moment everyone can see you, but you cant see them. You navigate your avatar around the map, have full chat, inventory and economy access, but a very different view of the world to everyone else. (Of course Unity3d runs well on an Iphone too, so imagine that as an extension to Touch Life?)
Once there is an acceptance that there can be more that one view of the data, one where people without the full equipment can still see what is going on and participate things get a lot easier to consider. Whilst a gaming assumption tends to be we all need the same view at the same speed in order to be able to have balanced gameplay (lag gets you killed) in collaborative spaces, education, meetings and art galleries this is less of an issue.
As the parts of the jigsaw come together over the next year the ability to have the same experience will re-emerge.

12 thoughts on “We have all the pieces – Unity3d, Opensim, Evolver, Smartfox

  1. At A WORLD FOR US we have created our web service to create web3D+VOIP meetings and conferences in a few clicks using Unity3D Assemblive. Our opinion on the subject is now pretty strong, after one year of work making such 3D places available online. Unity is definitely a great technology. It needs a lot of tweaking to work properly but in the end it allows correct 3D on very average hardware. Smartfox is totally a wrong choice. We created our first version using it, it was a total disaster. We then recreated a complete networking stack using Red5 and it’s definitely the right choice. It’s lightweight for the servers, scales very well, do seamless firewall traversal and allows us to do VOIP and Visioconference easily inside Assemblive. OpenSim is just the wrong choice I think: on the web you want to have lightweight servers and heavy clients. Scripting should be done with javascript on clients to allow easy use and tweaking by web developpers. Physics too should never run on the server. OpenSim is very heavyweight, it’s copied over Second Life which is not web based, the paradigm doesn’t fit there. On the web everything is must be loosely coupled and extensible web services. You can try Assemblive in a few click, it’s in beta stage now, but it works pretty well and you can embed it into any web site to create your own mashups.

  2. Thankyou Henri. It is interesting to hear comments about Smartfox. I threw that in as an example of a well known server persistence for those who can’t build from the ground up. Your Red5 implementation sounds much better in solving all the other problems though that is great to know.
    There is always a balance to be had between server side control versus richer clients. In some respects, in a truly distributed system we would not really care where things were done. I realise that is not totally practical but bear with me. A task needs to be done, calculated, that happens somewhere, at the moment we do many of those things on local hardware due to bandwidth and practical delays in the way we transmit data around. Though with remote services we are starting to see some of that alter. If my machine cant do something then let the grid do it for me. The “opensim” component in all this, whilst it is a server at the moment, is really about the layer that understands the assets, the ownership, the economy and provides a way to deploy user generated content, plus its open source enough to be able to other flavours of things and yet allow those less technical to just run it and create content.
    Ideally the entire games industry would have swung into action and created environments lie Eve, WoW, Modern Warfare 2. Though all of those are tightly bound high end client applications.
    I think I am looking to show the melting pot of options available to people and companies. Partly to counteract the assumption there is only one way of doing things with one platform or one client 🙂
    I will give you build a go though it sounds fantastic.

  3. Assembi’live looks interesting…. but.. commercial.. oh well.

  4. Pingback: Welcome to my home: first attempts at using Unity3D for architectural visualization | The ARCH Network

  5. Pingback: Welcome to my home: first attempts at using Unity3D for architectural visualization « The ARCH

  6. Pingback: Issue #329 Monday, May 3, 2010 « The D'ni Voice

  7. Pingback: Rezzable, Unity3d, Opensim FTW « Life at the Feeding Edge

  8. Nissan Owner Manualshas a virtually endless list of manufacturers, models and vintages that is so comprehensive that you will find yourself trying to catch it out by looking for your old cars on there as well as downloading the guide for your current one. With this information to hand, all you need to concern yourself with is downloading the correct manual and keeping the information close to hand for the hopefully rare occasions when a fault occurs.

  9. It is nice that you wrote about this. I found you on bing and I had been searching for info about this. Nice blog, thank you for the info.

  10. Pingback: All the pieces are falling in place – Unity3d « Life at the Feeding Edge

  11. Hello there, I found your blog by way of Google while searching for a similar topic, your website got here up, it seems to be good. I have bookmarked it in my google bookmarks.

Leave a Reply

Your email address will not be published. Required fields are marked *

G1u4 ssG

Please type the text above:

This site uses Akismet to reduce spam. Learn how your comment data is processed.