The prototype produced during the first stage of the project proved successful technology wise and it gained a fair amount of positive publicity. The licensing and technology of the Second Life viewer had been somewhat problematic from the start and the situation was getting worse with increasingly ambitious technological goals for the project. It was also obvious that the licensing (GPL, or rather the interpretation of GPL in the open source virtual worlds community) would make it very difficult to form a strong community of developers around the project.
Early 2009 saw the emergence of the Naali project. Naali (Finnish for arctic fox) is an entirely new viewer built from scratch (of course utilizing existing suitably licensed material where possible) with the intention of eventually replacing the Second Life –derivative first generation realXtend viewer. During 2010 this goal was achieved, currently Naali has almost all relevant functionality of the earlier viewer and surpasses it in a number of critical categories.
To make server development easier, the realXtend server side enhancements were modified into a module called “ModreX” and a suitable module interface was created to OpenSim. The ModreX module provided more flexibility on the server side and the OpenSim project itself made progress towards its goal of being a flexible platform for virtual worlds hosting. Even so, it still remains a relatively heavy service in terms of hardware resources, requiring several ports open in firewalls, database installations etc. Despite an increased level of flexibility, adding support for the core Naali features (namely the entity-component based content authoring) still wasn’t simple by any means.
The Tundra Server
The development of the Naali viewer progressed at a good pace and in the summer of 2010 initial research indicated that it would be fairly straightforward to add a server module to the viewer. The Naali server module was named “Tundra” and the development work was started in early autumn of 2010. With this approach it was possible to create a perfect counterpart for Naali, since much of the Naali code would be used as is. Also much of the programming work done in the future would be usable on both the viewer and the server side. The approach is quite common in for example many contemporary games and offers some intriguing advantages.
One of the immediate benefits is the “single user mode” or the ability to view content directly with the Naali viewer, without a connection to a server. At the same time it becomes possible to share content as well, which in practice means the availability of “ad hoc servers”, much like in games that allow users to host multiplayer events. In comparison, OpenSim (or Taiga) is ideologically more like a massively multiplayer online game that runs on a persistent dedicated server. The former can be made lighter and simpler to deploy, which makes it suitable for a number of applications. A notable difference is the new protocol implemented in Tundra; after researching several possibilities the developers decided that the fastest way to move forwards with the project was to use a BSD-licensed protocol known as “Kristalli”.
The Second Life architecture and thus to an extent OpenSim, have a fairly specific scene model based on separate primitive objects, avatars, terrain etc. realXtend has a flexible entity-component based architecture, whose purest implementation exists in the Naali / Tundra combination, which is directed more towards being a generic 3D application platform instead of a specific kind of a virtual world. For creating large multiuser virtual environments OpenSim offers many advantages, like for example safe sandboxed LSL scripting for user-to-user content.
Perhaps most important of all, Tundra is a demonstrator for the new Naali-style architecture and content creation features. Building the features on top of OpenSim based Taiga would have been more work, but not impossible and as Tundra matures, it will act as a reference implementation anyone interested in its content creation abilities can learn from. It’s also important to note that despite all the differences, Tundra and Taiga still have similarities and many of the features are already supported on both platforms. Thus adding full support for the new features and full compatibility for both platforms is well within the realm of possibility, OpenSim internals permitting.