Yesterday was one of these days – out of the blue happened one important thing, about that already many rumors spreaded around lately. The client part of Second Life was released under the GPLv2 license, which means: it became opensource.
Well, some expected it sooner or later, because there were already interviews around in which the CEO of Lindenlabs, Philip Rosedale, was very open about it. So now the first step happened. We are going to see, if they are also opening up part of the server side or not. But, and this is the important message: the cat is out of the bag right now and no way to get it back – anymore!
So, the important questions to ask are: why did it happen and what can I, the user, expect from it in the future? What does it mean to me personally?
Why it happened
Face it: even if Lindenlabs is a very prospering company and they are making real money, they have only limited manpower. Less manpower actually at the moment then needed to do the necessary changes alone, it seems.
To quote Cory Linden from the last technical Town Hall meeting:
We don’t currently have the development resources to split off a team to start building a new client – although if anyone has a 10 to 20 person development team with experience in high-performance OpenGL who would like to talk, please email me! – so we’re doing the hardest possible thing, which is to rebuild the viewer as we go.
So actually they have a very promising product, which still has rough edges after five years, like for example the bad framerate, they have already big plans for new features but they have simply not the manpower to do it all alone.
Take further into account, that Lindenlabs is not by far the only company/project in this area, but the most developed and established one and SL is at the moment the buzz thing where the big business gets in. Yes, there is competition, like for example Opencroquet. For even more competitors just take a look at Wikipedia, there are many of them.
Take also into account, that actually LL makes no money whatsoever with the client, but with selling islands and renting land on the mainland alone. Writing the server side component and to get it stable, also running the whole server farm, is also a very crucial part for the company. Perhaps more crucial actually than getting the client more stable. Also the lack of an interface to standard applications is disturbing.
So, what’s the logic step in there when you are actually the market leader in your business, but don’t have the manpower necessary at the moment and either see no way to get it fast (there’s actually one fundamental law in software engineering if a project is already much behind the scheduled release date that adding further programmers only makes it worse) and/or don’t want to spend the money?
Right: open up all the source, where it is possible, and hand it over to the community. If you do an intelligent community management, foster and cherish your community you might get very valuable input out of it. You still can lead the development, of course, and make money out of it, there are actually very successful companies running this business model like MySQL AB for example. You might not only get input out of it, but perhaps also big patches and improvements, which can actually relieve your developers.
Also – if done right – it can stabilize your market leader position. So this is in my opinion why it happened. And, of course: it gives good karma, is a sign they „we’re good“ and „hey, we’re cool!“
What to expect from it
So what can the normal user expect from this move? In the short time – not much. He is now able to download the source code, take a look at the inner workings of the client and compile it by himself. Not a thing many people are going to do (well, I did, works normally for me…), but a small fraction of curious people are going to give it a try. Those are the people LL wants to attract actually.
In the long time, if done right, you can expect from it perhaps a more improved and stable client, if LL is able to get the right feedback out of the community, mostly in the form of patches against the source. Still LL has the upper hand in the developing and leads it at the moment, of course. Having the client is one part, having the server side the other. A community developer could write awesome stuff in his client, if there is need for it to change the server side and LL says: no, then it is not happening. Period.
You can also expect in the mid and longer term perhaps other branded versions of the client. There could not only be anymore the official client, there could be for example an IBM branded client for their own community and so on… You could also expect perhaps some kind of „premium client“ – made available by LL only – and the community clients – made by the rest.
Let’s take a look at the press release from LL:
Linden Lab intends to incorporate certain code changes and enhancements into the official version of the Second Life Viewer, which will only be available from the Second Life website. All code developed outside Linden Lab’s in-house engineering team will be thoroughly reviewed to ensure quality standards, stability and security. Support will continue to be given for the official version of the Viewer only, with third party projects unsupported by Linden Lab.
Initial projects may include: bug fixes; improvements to compatibility with less common hardware configurations; support for additional multimedia types; User Interface changes; and potentially new look and feel ‘skins’ for the Viewer itself. Timeframes for these enhancements will vary depending on the scale of the project and project team.
So this is not taken out of the blue. I guess the most important part of the initial projects is: bug fixes. Plain and simple.
More important also – I expect projects like Libsecondlife to get a great boost from it actually, since they now don’t have the need anymore to reverse engineer the networking protocol. They have now all the kind of documentation they are going to need – it’s in the source, Luke!
This move could bring of course also new problems into the grid. One could now simply write his own version of the client and for example get it to copy all textures into a filedump on the local harddrive. But then again, we’re talking about computers here and this could still be done if the source code would not be open with projects like Libsecondlife and even if this would not be here, it could still be done! This is the simple reason why some artists in world actually are using digital watermarks for all their creations.
There are actually more points stated in the Open Source FAQ at the website of Lindenlabs.
It’s important for LL that they choose the GPL as license. This was the best license they could get for the client. Under other licenses, like BSD for example, it would be possible for a competitor to make their own version of the client and take in improvements without the need actually to give it back to the community. But under the GPL it is open, stays open forever and says: if you want to change it, you must give those changes back to the community. Please note, that licensing issues actually are often the regions for religious, hard flamewars amongst developers. For LL the GPL is the right choice.
What might happen in the future
So, since the cat is out of the bag now, what might happen in the future?
First: the move to more established, open standards actually in the clients and on the server side. They are working on it already.
Second: perhaps also opening up the server side. This would be a more hurdlesome step actually then opening up the client, since LL uses licensed third party components on it actually which they cannot open up. The most important part actually would be the Havok physics engine, which is very important for the whole feeling and play in SL. It is not happening in the future any way that this engine get’s into the open source whatsoever.
So opening up the server side component would actually mean either that you have to build your own substitute for it or to leave it out and license it on your own.
But it could happen, that also in the not so far away future the server side would be released as much as possible. Just again take a look at the FAQ:
We don’t (yet) plan to release the code that runs our simulators or other server code („the grid“). We’re keeping an open mind about the possibility of opening more of Second Life; the level of success we have with open sourcing our viewer will direct the speed and extent of further moves in this arena.
So opening up the client is also some kind of test actually for LL. Opening up the server could be done, but again how, depends on the 3rd party dependencies actually.
But – if the server gets opened – you could expect big changes to happen. Depending on how it is opened and in which way, it could have a big impact on the land prices, for example.
Consider the following scenario: the server side code was opened up in a way that anybody could host their own regions/islands and there are bridges to the mainland. This is not so far from happening, if you take a look at this article about the move in CNN Money:
Rosedale and other executives say they fully expect there eventually to be multiple virtual worlds that use Linden’s code, or that at least are interoperable with Second Life, so avatars can pass from one world to another. Says Rosedale: „Say IBM builds its own intranet version with our code that’s somewhat different from Second Life. But it’s probably not that different. A user may say ‚Wow, this virtual thing IBM’s built is pretty cool. Now I want to go the mainland.‘ And we have another customer.“
This would of course affect in very large scale the prices for land. They would decrease in great scale, for sure. Why? Because let’s say that running a region needs only one good powered root server somewhere on the world you can get by a good hosting company (actually I don’t know it one root server is enough, of course. But then again, CPUs are getting more and more powerful all over the time and running a game server for other games needs not much more, anyway). A decent machine comes normally with a modest setup fee and let’s say the monthly fee is in the range from perhaps 40 to 70 US-$. So, running your own region would be of course much more cheaper then renting it actually from LL, where it costs 195 US-$. Well, perhaps it’s even possible to host a small sized island on a decent server, perhaps not. Who knows.
But this for sure would hurt Lindenlab. The only steady source of income they have is actually selling their land and selling their islands. And why they are more expensive then booking a server somewhere at a hosting company? Because they not only need to pay the bills for the infrastructure itself and it’s overhead and maintenance, but also they have to pay their developers and still generate some profit. Plain and simple.
So if ever the server would be opened up, they are for sure either in need of another business model or in the need of doing it in a way not many people are hosting their land on their own.
What also could happen now sooner or later is the forming of a project to reimplement the server itself. Since now the inner workings of the client are no longer a black book and the whole protocol is documented, it is another possibility. But, of course, this would need much manpower and is not an easy task.
Third: sooner or later the availibility of more clients than the official one. Perhaps a branded IBM-client for in-house use and so on.
Conclusion
So what to expect actually from it? In the short and mid time perhaps a better and more stable client with nice improvements, if done right by the Lindens. In the mid and long term perhaps a free reimplementation of the server – which would have a big impact on the platform – or opening up the server itself by the Lindens.
If – and I repeat, if – this would be done, this is a bigger step than opening up the client and would need to be done very carefully, because it could ruin at least the business model of LL and the business model of money inhabitants of SL, too.