La première fois que j'ai bricolé avec OpenSim, c'était l'an dernier. Au début de cette année, je prédisais avec enthousiasme que 2008 sera l'année OpenSim. Ou en est on en ce mois d'avril ?

De plus en plus d'alternatives libres et compatibles fleurissent, aussi bien côté client que côté serveur. On est bien au delà de ce que j'espérait :-)

C'est pourquoi j'ai essayé de dresser un panorama de ces alternatives : il n'a pas la prétention d'être exhaustif, mais j'espère qu'il est assez complet.

Ces alternatives n'ont pas pour but de vouloir dérober quoi que ce soit à Linden Labs. Bien au contraire : elles permettent d'asseoir la technologie et les protocoles SL et d'attester leur viabilité dans des environnements aussi divers qu'une machine de bureau ou qu'un serveur, connecté ou non à une grille, sous Linux, sous Windows ou Mac OS.

Et ça, l'ami Rosedale l'a très bien compris :-)

Sans plus attendre, donc, le panorama (cliquez pour agrandir)...

Grilles et Viewers

...et la description : on commence par les Serveurs, ensuite viendront les Clients, puis ce que j'appelerais les Pseudo-Clients (sans aucune connotation péjorative), pour finir par les Bibliothèques.

Les Serveurs

  • Second Life
    Second Life est un ensemble de grilles fournies par Linden Labs. Si le code source du Viewer est disponible, le code des serveurs ne s'ouvre en revanche que petit bout par petit bout. Ceci pour plusieurs raisons (je ne retrouve plus les liens) : "il n'est pas encore prêt", et "il utilise des technologies propriétaires". Mes dernières lectures ne me laissent pas présager un avenir optimiste quant à ce point : il se pourrait bien que certaines portions du code restent propriétaire, mais quelle importance si les protocoles d'échange, eux, sont ouverts ?.
  • OpenSim
    OpenSim, diminutif d'OpenSimulator est la toute première initiative de portage libre de l'infrastructure d'une grille Second Life. Son succès est venu de sa particularité à pouvoir fonctionner en mode "solo". C'est à dire faire tourner un simulateur "hors connexion" sur son PC. Ce qui est bien pratique pour s'entrainer à builder.
    OpenSim est un terrain d'expérimentation encore au stade alpha. Son mode de fonctionnement en mode "grille" n'est pas encore finalisé. Les protocoles sont en évolutions constante, et on n'a pas fini de les décortiquer... C'est donc avec un casque qu'il faudra encore l'employer. Si Second Life est le Web3D, alors OpenSim en sera l'Apache.
  • LiteSim
    LiteSim est un véritable fork d'OpenSim. On en entend pas beaucoup parler car le projet se fait attendre. Il devrait sortir en même temps qu'une offre de grille payante. Son auteur, Gareth Nelson est interviewe ici. Si les promesses de LiteSim sont tenues, ça devrait être énorme.
  • OpenUGAI
    Comme expliqué dans un billet précédent, UGAI est un acronyme désignant tous les types de services nécessaires au bon fonctionnement d'une grille. OpenUGAI est donc un fork un peu spécial vu qu'il ne gère que les services d'une grille, Utilisateurs, Grille, Assets, Inventaire, et pas du tout la partie simulateur. Ecrit en PERL, il peut être hébergé sur un serveur Web (par exemple Apache) pour bénéficier de sa stabilité et de ses possibilités de répartition de charge.

Les Clients

  • Le Client Officiel Second Life
    Appelé également "le Viewer", le client officiel Second Life est disponible en open source et est en constante 'évolution. Ces évolutions sont souvent accompagnées de mises a jour du code serveur et posent beaucoup de problèmes... Ecrit en C++, il est disponible pour Windows, MacOSX et Linux, cette dernière étant en version Beta.
  • RealXtend Viewer
    Il s'agit sans aucun doute du plus impressionnant travail de reprise du Viewer officiel. Destiné à se connecter à un serveur éponyme, RealXtend Viewer offre des possibilités impressionnantes comme des terminaux VNC sur des prims, les primitives à bases de meshes, et la navigation Web sur des prims.
  • OpenViewer
    C'est la première tentative de réécriture "from scratch" du Viewer officiel. Il peut tourner sous Windows, MacOSX et Linux grâce à Mono, qui anime à présent les scripts LSL sur les simulateurs de la grille Second Life. Ecrit à l'aide des mêmes "patterns" qu'OpenSim, son architecture accueille des plug-ins permettant de Switcher sur d'autres moteurs de rendus à la manière de RealXtend.
  • Second Viewer
    On ne sait pas grand chose à propos de cette idée de SecondViewer. Seulement que le projet est monté par des férus des technologies Microsoft, et qu'il est prévu que la version Web de ce dernier serait développé en Silverlight, sinon que la version desktop utiliserait le WPF et le WCF du .NET Framework 3.5.
  • Aether
    A part le site sur google code. Il y'a très peu d'informations sur Aether qui ne semble pour le moment n'être qu'une idée, à l'instar de Second Viewer. En résumé, il s'agirait d'un genre d'AjaxLife, mais qui prendrait en charge la 3D à l'aide d'un plugin dans un navigateur.

Les Pseudos-Clients

Appelés ainsi parce qu'ils n'offrent que des opérations élémentaires comme chatter, et qu'il n'y a aucune visualisation en 3D.

  • AjaxLife
    AjaxLife est un avant goût de ce qu'on peut faire de SL à partir d'un simple navigateur. Une petite merveille écrite par Katarine Berry. On espère qu'AjaxLife intègrera un jour de la 3D, ou bénéficie des avantages d'un plugin RIA comme Flash ou Silverlight.
  • Sleek
    Sleek ressemble à un client chat traditionnel comme mIRC ou HydraIRC, sauf qu'il se permet de se connecter à une grille Second Life pour chatter avec des résidents. Il affiche la friend list, les profils, l'inventaire... et offre d'autres surprises ! SLeek est écrit en C#, il est open source et il utilise LibSL. Tout comme AjaxLife, c'est un client ultraléger, mais il n'est pas hébergé sur un site Web et doit être installé sur votre poste. Ecrit par Delta Czukor, SLeek réserve pas mal d'autres surprises !
  • MovableLife
    Movable Life est un client Web analogue à AjaxLife, en version Alpha.

Librairies et divers

  • LibSL
    C'est de là que tout est parti. Un groupe de développeurs s'est amusé à analyser les échanges de données entre un viewer et un simulateur, et a mis au point une bibliothèque écrite en C# destinée à être employée par des applications souhaitant utiliser Second Life. LibSL est né. OpenSim, LiteSim, AjaxLife et Sleek utilisent LibSL.
  • AfterLife
    Ce projet assez curieux est un proxy permettant à plusieurs clients à la fois d'être représentés par un seul avatar sur un sim. Une tentative pour accroitre le nombre d'assistants à une conférence sur un sim, en utilisant la même technique qu'un serveur de stream dédié pour réduire le lag.

Voilà. Nombreux sont les moyens libres de se connecter ou d'héberger un petit monde compatible avec Second Life. Si vous en connaissez d'autres, les commentaires sont à vous :-)