CySp
Un article de lowh.
CySp est un projet de cyber-espace en 3D construit par ses habitants. Chacun peut héberger une partie du monde qui est globalement persistant, tenant ainsi un rôle clé de la survie du cyber espace. C'est donc un MMORPG peer-to-peer totalement évolutif et auto construit.
On donc peut voir CySp comme de la technologie moderne ajoutée au concept du MUSH (multiple user shared hallucination -- sorte de jeu de rôle assisté par ordinateur en mode texte, véritable perle du web 0.5).
| "un shell ou t'es le hero et tu peux compiler des trucs en 3d ca le fait GRAVE" |
| wakko |
Sommaire |
Un monde auto-construit
Un cyber espace est un lieu de liberté, il faut donc que ses habitants puissent agir sur leur environnement. Celui qui est composé d'objets en 3D éventuellement animés.
Pour que les participants puissent construire un monde en 3D, ils disposent de plusieurs méthodes selon leur capacité d'appréhension des lois de ce nouveau monde. Les nouveaux arrivants se contenteront de jouer avec les objets qui existent et pourront déjà faire vivre ce monde en l'éclairant de leur présence humaine et converser avec les autres personnes dans les parages. Ceux qui ont un peu plus d'expérience pourront à leur tour modifier des objets ou même en créer des nouveaux.
UN monde ?
Chacun peut héberger une zone du cyber espace et ainsi prendre en charge un espace du monde. Et puisque comme vous le savez "chacun est maître en sa demeure", cela veut dire que chacun est maître d'une partie du monde ! Plus concrètement, cela veut dire que si vous décidez que votre partie du cyber espace est un lac ou les gens peuvent nager, voir et créer des poissons, qu'il en soit ainsi. Vous pouvez aussi avoir un espace ou tout est changé, les gens marchent au plafond, volent dans des nuages aux couleurs irréelles. Dans un style plus underground on peut trouver des complexes Alpha (cf. Paranoïa) ou un espace qui soit fait d'écrans de surveillance, et en changeant de pièce on passe d'un écran à l'autre..
A l'intérieur de votre monde vous êtes maître, cela veut aussi dire que vous décidez des restrictions que vous y appliquez. Vous pouvez décider que certaines personnes ne doivent plus pouvoir rentrer (la dernière fois ils ont tout cassé et vous avez du recharger une sauvegarde de toutes les entités) ou bien que telle porte mène vers l'espace d'une de vos connaissances, mais que si elle dispose d'une clé durement acquise après une longue quête à travers des forêts de méta-données à combattre des trolls déguisés en petites filles qui mangent des tartelettes à la myrtille.. (miam)
Les entités
Le cyber espace est composé d'objets en 3D, ou plutôt d'entités. Ainsi dans ce monde, une table est une entité, de même que la chaise qui se trouve devant, et votre avatar qui est assis dessus aussi. Votre paire de lunettes super tendance qui provoque un effet psychédélique quand vous passez en vue à la 1ere personne est aussi une entité. Le sol sur lequel vous marchez (ou la mer dans laquelle vous nagez, ou l'espace ou vous volez) est aussi une entité. Votre belle mère qui s'est connectée dans l'espace d'à coté et qui a pris un avatar d'orque mâchouillant des nourrissons est aussi une entité. Dans CySp, tout est entité.
La principale caractéristique de ces entités est qu'elles sont modifiables par tout le monde. C'est un peu comme si vous pouviez vous approcher de n'importe quel objet autour de vous et décider de le sculpter, de changer ses formes et ses couleurs. La seule restriction est qu'il faut comprendre un minimum comment elles sont construites, et cela est facile puisque l'on peut accéder au code source de chaque entité.
Programmer ?
Un des aspects intéressants du cyber espace est que le monde soit son propre éditeur. Chaque joueur se saisissant d'un objet devant lui pourra faire apparaître son code source, éditer celui-ci devant ses amis et appliquer instantanément les modifications sur l'entité.
Intérêts
Au delà de l'aspect ludique, l'aspect programmation 3D temps réel en ligne permet de montrer instantanément des objets et des effets 3D à travers le réseau. On peut ainsi réaliser des 3D-conférence de programmeurs de jeux vidéos qui veulent comparer leurs versions d'un effet et les modifier en ligne, ou un groupe de démo-makers[1] faisant un live show, ou encore des recrutements en ligne ou celui qui fait le plus beau feu d'artifice gagne le plus gros salaire...
Contribuer
Si le projet vous intéresse au point que vous lisiez cette section c'est que vous avez sûrement déjà contribué à en parler autour de vous (merci !). Si ça n'est pas le cas, commencez tout de suite, ou si vous n'êtes pas très communicant (comme moi) vous pouvez toujours prendre part dans le design / code / site web / graphisme, bref les éléments fondateurs du projet, sous réserve d'acceptation par son dictateur bénévole, à savoir billitch !
TODO
- Monter une subversion et un trac sur lowh.net
- Résoudre les questions fondamentales de design
Design
Des questions fondamentales auxquelles ils faut trouver une réponse avant de coder quoi que ce soit :
J'aurais tendance à pencher fortement pour le D qui compile vite et garde les performances du C tout en étant plus simple à utiliser.
- Utiliser une base de donnée (postgres) ?
C'est sûrement une excellente idée coté serveur, mais qu'en est-il des performances ?
Idées
- Crypter les connections
- Versionner les entités. Un joueur peut demander qu'on lui envoie les futures modifications de l'entité.
- Pouvoir héberger plusieurs espaces (ne pas limiter un port TCP à un seul espace)
- Pouvoir héberger un miroir d'un espace.. (full P2P) <=> bdd distribuée etc.. pb de confiance
- Utilisation de l'xml sur les serveurs <a href="cysp://..."> ?
- Le projet Xanadu résumait dès 1965 les fonctionnalités d'un système d'information de « support » de connaissance formalisé selon les 17 règles suivantes [i] :
- Chaque serveur Xanadu est unique et sécurisé.
- Chaque serveur Xanadu peut être mis en service séparément ou en réseau.
- Chaque utilisateur est unique et identifié.
- Chaque utilisateur peut rechercher, récupérer, créer et stocker des documents.
- Chaque document peut consister en un nombre quelconque de parts donc chaque élément peut être constitué de quelque genre que ce soit.
- Chaque document peut contenir des liens de tous types, voire de copies virtuelles ("transclusions") d'un autre document accessible par son propriétaire.
- Les liens sont visibles et peuvent être suivis depuis les deux extrémités.
- La permission de lier vers un document est explicitement garantie par l'acte de publication même.
- Chaque document peut contenir un mécanisme de rétribution, à un degré quelconque de granularité, pour assurer le paiement de chaque portion accédée, en incluant les copies virtuelles (« transclusions ») de tout ou partie d'un document.
- Chaque document est identifié, unique et sécurisé.
- Chaque document peut avoir des règles d'accès sécurisés.
- Chaque document peut rapidement être recherché, stocké et récupéré sans que l'utilisateur ne sache où il est physiquement situé.
- Chaque document est automatiquement situé sur un moyen de stockage approprié vis-à-vis de sa fréquence d'accès depuis n'importe quel point de consultation.
- Chaque document est automatiquement stocké de façon redondante, pour maintenir la disponibilité même en cas de désastre.
- Chaque fournisseur de service Xanadu peut facturer à sa discrétion ses utilisateurs pour le stockage, la récupération, et la publication de documents.
- Chaque transaction est sécurisée et reste perceptible seulement par les parties l'effectuant.
- Le protocole de communication client-serveur Xanadu est un standard librement publié. Le développement et l'intégration de tierces parties sont encouragés.

