attention la page s'affiche de manière incomplète avec Internet Explorer
Cahier des charges
Ce document décrire les besoins utilisateurs de la future plateforme Solipsis ainsi que les diverses contraintes qui s'y appliqueront. Sont précisés également certains choix techniques d'ores et déjà adoptés.
I. Fonctionnalités
Nous décrivons dans ce chapitre les fonctionnalités envisagées en se basant sur un travail de recensement systématique des souhaits présupposés des utilisateurs puis par priorisassions.
1. Tableau des activités, tâches élémentaires & solutions techniques
Ce tableau cherche à définir la plateforme Solipsis par la description des activités potentiellement souhaitées par les futurs utilisateurs du système mais, dans un premier temps, sans prendre en compte les contraintes techniques ni même leurs faisabilités (ex : prendre le pouvoir, faire de la musique, fantasmer…).
Ensuite pour chaque activité, est défini l'ensemble des tâches élémentaires que l'utilisateur serait susceptible de vouloir effectuer pour exercer cette activité (ex : programmer une unité autonome, projeter des supports de cours virtuels à une audience, donner / recevoir des ordres…). Puis pour chaque tâche, on détermine les solutions techniques à mettre en œuvre (ex : système de point de compétences, module avatar, moteur de recherche d'annonces …). Pour finir, on priorise chaque solution technique en prenant cette fois-ci en compte leurs faisabilités. On obtient alors une carte assez précise des fonctionnalités futures proposées à l'utilisateur ainsi que les mécanismes informatiques à déployer.
activités
Ordre
tâches
solutions techniques
Priorité
Faisabilité
Benchmarking
découvrir de nouveaux amis
4
parler à des inconnus
chat textuel public
4
4
SL, AW, WoW, H
chat audio public
4
3
SL, AW
communication corporelle
2
2
SL, AW, WoW, H
passer / consulter des annonces
tableau blanc
2
3
?
moteur de recherche d'annonces
2
3
?
chat textuel public (ex. recrutement de joueurs pour un guilde)
4
3
WoW, H
news (mode push)
2
3
?
se profiler / consulter un profil
moteur de recherche de profils
3
3
SL
news (mode push)
2
3
?
s'inscrire dans un groupe
moteur de recherche de groupes
3
3
SL, AW, WoW
se lier d'amitié avec un inconnu
buddies list (liste d'amis)
4
3
SL, AW, WoW, H
chercher de l'information / diffuser de l'information (désinformer)
6
effectuer une requête par mot clé et consulter les résultats
moteur de recherche de contenus donnant une adresse SLP
3
3
?
moteur de recherche de lieux donnant une adresse SLP
3
3
?
passer / consulter des annonces
SL, WoW
consulter / diffuser un flux d'information
gestion des flux RSS
1
2
SL
se déplacer virtuellement à l'endroit où se trouve l'information
comme téléporter
SL, AW
poser / répondre à une question
FAQ, Forums
2
3
SL, AW, WoW, craigslist
faire du commerce (acheter et vendre, échanger)
23
fixer un prix à un contenu
fichier propriété XML lié à tout contenu
1
3
-
option menu contextuel des contenus permettant d'y associer un prix
1
3
SL
passer / consulter des offres d'achats ou de ventes
comme passer / consulter des annonces
SL, WoW, craigslist
donner un contenu à quelqu'un
drag-and-drop d'un contenu nous appartenant vers un avatar
2
3
SL, WoW
stockage du contenu dans son inventaire (répertoire du disque dur local de l'utilisateur)
3
3
SL, WoW, H
acheter un contenu à quelqu'un
option menu contextuel des contenus déclenchant l'achat
1
3
SL, WoW
stockage du contenu dans son inventaire (répertoire du disque dur local de l'utilisateur)
3
3
SL, WoW, H
portail de vente en ligne
1
1
SL, H
vendre un contenu à quelqu'un
option menu contextuel des contenus permettant d'y associer un prix
1
2
SL, WoW
portail de vente en ligne
1
1
H
échanger des contenus avec quelqu'un
comme donner des contenus à quelqu'un
SL
protocole d'échange de contenu
2
2
?
juste se promener
2
se déplacer librement dans l'espace
système de coordonnées monde
4
3
SL, AW, WoW, H
interface souris / clavier pour se mouvoir et s'orienter dans l'espace
4
3
SL, AW, WoW, H
tout déplacement est perçu par les nodes avoisinants
4
2
?
contrôle de collisions avec le sol, éléments du décor et autres avatars
4
3
SL, AW, WoW, H
marcher
comme se déplacer librement dans l'espace
SL, AW, WoW
animation "marche" par défaut (bras, jambes..) ou à redéfinir
3
3
SL, AW, WoW
bruits de pas
3
4
SL, H
pesanteur (suivi du sol)
3
3
SL, AW, WoW
voler
comme se déplacer librement dans l'espace
SL, AW, WoW
animation "vol" par défaut (super man like) ou à redéfinir
3
3
SL, AW, WoW
bruits de vent
2
3
SL, AW
balader son regard
interface souris / clavier pour se mouvoir et s'orienter dans l'espace
4
4
SL, AW, WoW, H
Head-up display avec tracker
2
2
?
se déplacer
1
se déplacer librement dans l'espace
SL, AW, WoW
marcher
SL, AW, WoW
voler
SL, AW, WoW
nager
emprunter un moyen de locomotion privé
comportement "véhicule" générique associable aux objets
2
2
SL, AW, WoW
emprunter les transports en commun
génération automatique de réseaux de transports
2
2
WoW
se téléporter
se téléporter à proximité d'un node de l'overlay (cf Codecon)
4
3
SL, AW, WoW
fabriquer du contenu
8
modéliser à la main des objets en trois dimensions
modeleur impératif intuitif
3
2
SL, AW, H
modéliser des objets en trois dimensions de manière assistée
modeleur déclaratif
3
2
-
donner des comportements réalistes ou interactifs à des objets en trois dimensions
moteur physique (challenge pour assurer la cohérence en distribué!)
3
2
SL, AW, H
comme saisir un code informatique (qui interagit avec le monde)
?
comme compiler un code informatique (qui interagit avec le monde)
?
comme déclencher l'exécution d'un code informatique (qui interagit avec le monde)
Colonne Ordre (des activités) : classement de la 1ére à la 39éme
Colonne Priorité (des solutions techniques) :
4 : à faire en priorité / déjà prévu dans le lotissement
2-3 : à faire
1 : superflu
0 : à ne pas faire
-1 : à ne surtout pas faire
Colonne Faisabilité (des solutions techniques) :
4 : facile
2-3 : faisable
1-0 : trop difficile
-1 : impossible
Colonne Benchmarking :
SL : Second Life
AW : Activeworlds
Wow : World of Warcraft
Home : Home de Sony
Remarques
Le terme contenu est employé ici pour désigner tous types de médias peuplant le monde virtuel. Il peut donc s'agir d'objets en trois dimensions, d'images (textures) ou de textes représentés à l'écran, d'extraits sonores ou de musiques jouées dans l'entourage proche de la source. Mais également à plus long termes, de vidéos, de pages web ou de codes informatiques pour rendre interactif les objets.
Les tâches et les solutions techniques peuvent bien évidement être réutilisées plusieurs fois pour décrire respectivement différentes activités et tâches. Les lignes bleues indiquent qu'une tâche déjà décrite est réutilisée. Les lignes grises permettent de rappeler un bloc entier de solutions techniques précédemment défini. On se rend compte assez rapidement qu'un certain nombre de solutions techniques récurrentes se dégagent et forment le cœur des besoins utilisateurs.
2. Diagramme des activités
On peut également concevoir ce tableau comme un graphe où les nœuds seraient les activités/tâches/solutions et les arcs leurs liens de causalité. Cette représentation a l'avantage de mettre en avant les solutions techniques récurrentes et sensibles puisqu'alors fortement connexes dans le graphe (effet "plat de nouilles") :
Ce dégage deux "conglomérats" de solutions techniques sur le graphe. Le première, en bas à droite, regroupe les briques technologiques relatives aux déplacements; le second en haut à droite celles relatives à la création de contenus. A titre d'illustration, ci-dessous le même graphe privé des branches non proposées dans Solipsis [Fig I.2.b] puis dans Second Life [Fig I.2.c]. A noter pour Second Life un conglomérat relatif à la création de contenus plus clairsemé.
Les mondes virtuels de ce type, c'est-à-dire sans scénario ni environnement prédéfini mais aux contenus autoproduits, ont l'ambition de s'adresser à tous utilisateur d'ordinateur et notamment un public non joueur à l'image du web. En revanche, la modélisation d'objets en trois dimensions -dont la vulgarisation est l'un des objectifs du projet- requière d'avantage de compétences. Nous visons trois profils d'infographistes :
le professionnel avec les modules d'import/export de multiples formats de modèles 3D (3ds, Collada…) qui pourra ainsi utiliser ses propres outils ou encore recycler ses anciens travaux,
l'amateur créatif avec le module de modélisation impérative intuitif (type Google SketchUp? et tel que dans Second Life),
Monsieur tout l'monde avec à court terme la plateforme internet d'échange de modèles librement diffusables (cf III.), puis, à plus long terme, le module de modélisation déclarative.
2. Architecture réseau
On souhaite que les environnements virtuels de Solipsis soient publics -qu'ils n'appartiennent à aucune organisation ni entreprise et puissent être autogérés par les utilisateurs- c'est pourquoi l'architecture se doit d'être décentralisée. On souhaite également que le nombre d'utilisateurs soit à priori sans limite (utilisateurs autosuffisants en ressources), tout comme doit l'être l'étendu de l'univers virtuel dans sa globalité (Coordonnées "monde" stockés sur 128 bits par axe soit environ 10ˆ115 positions distinctes -à savoir 10ˆ35 fois plus que d'atomes dans l'univers !).
On désir de plus que l'architecture réseau favorise les communications et l'échange de contenus entre deux utilisateurs :
proches géographiquement dans l'environnement virtuel (proximité géographique)
partageant les mêmes intérêts ou passions (proximité sémantique)
s'étant respectivement reconnu comme amis (proximité sociale)
Par le terme favoriser on entend tout mettre en œuvre pour que les temps de communications soient les plus courts et les débits d'échange d'informations les plus importants possibles. Enfin, le système devra pouvoir fonctionner derrière un NAT.
3. Contraintes d'implémentation
On souhaite disposer d'une plateforme ouverte, sous licence libre (GPL), favorisant l'innovation ascendante et permettant des travaux indépendants mais toujours compatibles sur les différents composants du système (communication XMLRPC ou équivalent entre les deux modules node et navigateur). Le langage de programmation employé doit être le plus universellement connu et rependu afin de favoriser la réutilisation des résultats du projet et de faciliter l'interaction avec des technologies tiers libres (Ogre, OpenAL?, …). Les programmes doivent être compatibles et compilable avec, au minimum, Windows et Linux.
L'ensemble des briques logiciels de la plateforme seront les suivantes :
node : unité de communication soutenant l'architecture réseau, assurant la persistance, la cohérence et le stockage des contenus et pouvant interagir avec eux sur commande,
navigateur : interface humaine avec le node et donc avec le monde. Décomposable en :
IHM : interface homme-machine (fenêtres, menus, I/O...),
Moteur : moteur d'affichage, d'interprétation des médias et des événements,
Services : un ensemble modulable de services incluant par exemple un module de chat et un module de création d'avatars.
Une instance de node accompagnée d'un navigateur le pilotant constitue une entité de communication ou plus simplement une entité. Un utilisateur aura recours typiquement à une entité pour pénétrer dans le territoire public de Solipsis. Pourtant, puisque les deux éléments node et navigateur sont indépendants et communiquent en local ou via le réseau à travers un langage commun (type XMLRPC ou SOAP), il est envisageable d'employer un navigateur pour contrôler un node hébergé à distance : chez soi, au travail ou chez un hébergeur d'un nouveau genre offrant des nodes réactifs à forte capacité de stockage... Non réalisé dans le cadre de ce projet, pourrait être prévu un navigateur permettant de contrôler plusieurs nodes simultanément.
De plus, il doit être possible de se passer de navigateur en prévoyant une brique logiciel simple et programmable envoyant automatiquement des ordres au node. On obtient ainsi des entités robots pouvant effectuer des tâches automatiques et qui plus est, participant au maintient global du réseau pair-à-pair. Ces robots peuvent par exemple permettre de concevoir des "personnages non-joueurs" à la manière des MMOG, des microcosmes à la manière de Linden World, des compagnons, agent d'accueil voir vendeurs virtuels… Malgrés une architecture décentralisée, ces nodes robots peuvent aussi être des nœuds passifs sans matérialisation dans le monde virtuel mais offrant des ressources systèmes pour la persistance de contenus données; autrement dit, des serveurs.
III. Eléments à la disposition des utilisateurs
Interfaces homme-machine
Deux interfaces doivent être mises à la disposition des utilisateurs : l'une sous la forme d'un programme informatique indépendant à télécharger, l'autre directement accessible via une page web quelconque après installation d'un plugin. Pour la liste des fonctionnalités accessibles via ces interfaces, se référer au chapitre I.
Le site Internet devra comporter deux volets. Le premier, simple et attrayant, pour les utilisateurs non avertis ou découvrant le système. Il proposera le téléchargement des dernières versions stables, des captures d'écran, guides, news et forums. Peuvent être également ajouté un moteur de recherche d'adresses SLP, une galerie photos soumises par les utilisateurs…
Point d'entrée pour les néophytes, ce site aiguillera l'utilisateur curieux, plus expérimenté ou souhaitant apporter sa contribution au système, vers le volet développement open source et recherche du portail. Celui-ci comportera Wiki, forge logicielle, documentation techniques, études scientifiques et sociologiques, papiers et plus généralement l'ensemble des documents rendus publics produits par le projet.
2. Portail d'échange de modèles 3D
Répondant en partie à notre objectif de contribuer à la vulgarisation de l'infographie, est prévue la mise en place d'un service d'échange de modèles 3D (mesh + materials) autoproduits, librement diffusables (licence CC, LAL) et indexés par tag par les utilisateurs eux-mêmes, à l'image des sites tel flickr ou deviantart pour les photos, jamendo pour la musique ou dailymotion pour les vidéos. Cette idée ne date pas d'hier. Il existe en effet de nombreuses plateformes commerciales basées sur ce principe; la première à proposer des contenus libres de droits étant teapotters.
L'intérêt pour l'utilisateur ici est double. A l'aide d'un bouton "importer dans Solipsis" il peut bénéficier d'objets en trois dimensions de qualité qu'il aura préalablement visualisés directement dans son navigateur Internet (plugin Firefox / Active X). Il peut également utiliser le portail et le plugin pour faire partager ou exposer ses travaux infographiques sur sa page personnelle ou sur son blog.