Friday, February 13, 2009

Low Profile Until Summer

It's been a while since I posted. The reason is that several important processes were unfolding during that time, that I wanted to see play out before writing anything here.

First, I've been in talks with another open source virtual worlds platform, realXtend. In the spirit of open source unity, I suggested that we work together, but in the end they declined. The main reasons are that (1) they are invested and committed to using OpenSim, and (2) prefer to write a client from scratch, whereas the Intensity Engine (1) purposefully avoids using OpenSim, while at the same time (2) reuses existing open source code (Cube 2, etc.) instead of starting from scratch. So, while we have similar overall goals - open source platform, interoperable worlds, etc. - our technical decisions about how to get there are quite different.

Second, I've been considering how to achieve my goals with the Intensity Engine. Those goals are quite simple: To continue developing the platform, and to make that platform freely usable by everyone. So far I've been working full-time at my own expense, which is fine - it's a nice change of pace after finishing my doctorate last year. But although I can afford to do so for a while, that can't last forever. So, for the long term something needs to change. I see two main options here:
  • Non-Profit: Getting some minor source of funding, basically just enough to pay my personal expenses, which are quite humble. Such funding might be in the form of a sponsorship, donations, etc. If such an option materializes, it would be great, and I'd be happy to release the Intensity Engine under a BSD-like license. In many ways this is my preferred route.
  • For-Profit: Alternatively, I can try to make the Intensity Engine self-sustaining while keeping it open source. The most straightforward way to do that is the proven dual-licensing model, like that used by MySQL, Qt, Ogre 3D, Java, etc. - the code is free under an open source license, with the additional option to pay for a commercial license that doesn't have the requirements of the open source one. In this route the Intensity Engine's license would probably be the AGPL, GPL or LGPL.
I'm keeping an eye open for ways to make the non-profit option work (I'd love to hear about ideas for that), but I more clearly see how to succeed as a for-profit. Consequently, I'm in the process of forming a venture with some friends, called Syntensity. Syntensity is off to a very good start, in particular we have been picked as a Mini-Seedcamp finalist.

So, those are the recent developments. Following them, the Intensity Engine's roadmap and status are as follows:
  • The Intensity Engine will remain open source and cross-platform. These are principles that will not be compromised. Likewise unchanged are the goals of the Intensity Engine: Making the development of efficient, responsive virtual worlds as easy as possible.
  • Development of the Intensity Engine is continuing, at an even faster pace. The reason you have not seen commits to /trunk is that I am working on 2-3 crucial features in separate branches. Those branches are currently not public, because I prefer to come out with these features all at once with a single large announcement, rather than one by one. This 'stealth mode' is expected to continue only for a few months.
  • The specifics of these crucial features will remain undisclosed for now. To my knowledge they are not present in any other product in the field, and I believe that with them the Intensity Engine will really come into its own.
  • 0.9 beta release in a few months, that is, probably early summer 2009, which will include the features mentioned above as well as polish. After the release of the 0.9 beta we will focus only on further polish and bugfixing, until:
  • Stable 1.0 release a few months after that, that is, probably mid-to-late summer 2009.
So, the past few weeks have been exciting and eventful, despite a lack of blog postings to reflect that. This relative blog silence will continue for a few more months, after which you will be seeing a lot of interesting stuff in this space.

Note to current developers: Be aware that API changes will occur with the 0.9 release. Consequently, applications developed using the 0.2 release or 0.3 /trunk will need to be modified in order to run on 0.9/1.0. Those changes are unavoidable in order to take the Intensity Engine to the next level. Note, though, that the 'spirit' of Intensity Engine development is not meant to significantly change, so experience developing with the 0.2/0.3 versions will be very useful with the 0.9/1.0 releases.