Skip to content
raphaelbastide edited this page Apr 20, 2011 · 6 revisions

En Bref

Modul.io est un jeu multi-joueur open source orienté développement. Chaque joueur qui se connecte possède un modul dont il pourra modifier les comportements. Pour cela sont mis à la disposition du joueur, une interface modifiable et un ensemble d'outils de développement en JavaScript. Modul.io se joue dans un navigateur web connecté mais les moduls peuvent exécuter des actions de manière autonome.

Technologies

Canvas, Websocket, Node. Le code JavaScript de l'utilisateur est sauvegardé sur le serveur, le serveur exécute ce code et le met à jour sur les navigateurs clients. (User's JS code is saved on the server, the server runs it then it updates all the connected browsers)

Concepts

Modul

Un modul est un robot ou plus exactement une unité programmable qui est à la disposition du joueur dès son entrée dans le jeu. Les moduls peuvent être programmés pour être autonomes. Ils peuvent aussi échanger des informations entre eux. Chaque modul possède un nom et une url. A chaque modul correspond un codepad. Une zone d'informations relatives à un modul est affichées à au clic sur le modul.

Joueur

Un joueur est identifié par un nom. Il peut posséder plusieurs moduls et plusieurs packs.

Skin

Apparence graphique d'un modul de 50px sur 50px, librement modifiable dans le codepad. La skin peut être animée le fps dépend du tempo.

Actions

Une action est un morceau de code JavaScript que peut exécuter un modul. À une action correspond un bouton. Certaines actions sont livrées par défaut dans un panel "Actions": Déplacement ("top", "right", "bottom", "left") et "say". D'autres actions peuvent être ajoutées soit en les copiant sur d'autres moduls, soit en les modifiant, soit en en créant de tout-à-fait nouvelles à partir de zéro. Lorsqu'une action est enregistrée, un pack portant le même nom est automatiquement créé.

Panel

Un Panel peut contenir des boutons ainsi que d'autres éléments (console). Créer un nouveau panel contenant un bouton de changement de skin :

var skinPanel = new ButtonsPanel("skins", [
new Button("mySkin", skin_mySkin)
]);

Codepad

Par défault, un fenêtre de code (Codepad) permet d'accéder au fonctions d'un modul. Le langage utilisé est JavaScript.

Pack

Un pack contient une ou plusieurs actions. Les packs permettent l'échange rapide d'actions entre moduls. Ils sont aussi un bon moyen de connaitre le profil d'un modul. "Dis-moi ce que tu exécutes et je te dirai qui tu es". Par défaut un pack est associé au modul qui l'a reçu. Le joueur peut cependant utiliser ce pack sur d'autre de ces moduls.

Tempo

Événement régulier qui met à jour tous les moduls et leurs actions.

Épave

Lorsqu'un propriétaire laisse un modul sans soins pendant (20?) jours, il est considéré comme épave. Pour éviter cela, le modul doit être mis en veille ou recevoir des soins au moins une fois tous les (20?) jours. Les épaves peuvent être nettoyées par des moduls opérationnels qui recevront en échange une quantité substantielle d'énergie.

Contact: [email protected]

Clone this wiki locally