Faire son propre jeu
moood, c'est une scène vivante dessinée par du code et une page où ton code tourne par-dessus : ce que ça devient, c'est à toi de le décider. Ce qui est ouvert, ce en quoi le studio aide et comment y entrer.
Au cœur de moood, il y a deux choses. Une scène vivante dessinée par du code : un lieu avec de la lumière, du temps qu’il fait, des gens et de la musique. Et une page où le code de ton jeu tourne par-dessus cette scène. Tout le reste – quel genre de jeu ce sera – est à l’auteur de le décider.
Nos jeux sont devenus des histoires à choix : chapitre après chapitre, des répliques dites à voix haute, des mini-jeux. Mais ce n’est qu’une façon de faire. Une scène peut être un endroit où l’on a simplement envie de rester un moment. Un jeu peut être un casse-tête, un jouet, une promenade sans but, une conversation – tout ce qui tient dans du code. Voici ce qui existe pour cela et comment s’en servir.
Un monde sur moood est un ensemble de scènes. Chacune est un lieu : un ponton à l’aube, une cuisine, une steppe sous la neige. Le code le dessine – lumière, eau, brume, vent, reflets – et des gens y vivent : ils marchent, s’assoient, se retournent. La caméra filme toute seule celui que la scène regarde. Chaque scène a sa propre musique.
Une scène vit aussi par elle-même. Son état – l’aube ou la nuit, la pluie ou le ciel dégagé, qui se tient où – change par des clés, et la même scène peut aller du crépuscule à l’obscurité en une minute. On peut aussi montrer une scène sans aucun jeu, simplement comme un tableau vivant : il y a de telles esquisses sur moood.me aussi.
Un jeu est du code que tu écris toi-même, et la quantité de code est aussi ton affaire. La page lui donne les scènes et tout ce qu’on peut y changer : montrer une autre scène, changer le temps, conduire quelqu’un quelque part, lui faire dire une réplique de sa propre voix, jouer un son, sauvegarder, mettre en pause. Le reste, c’est comme tu l’imagines.
Tu peux écrire des chapitres et des choix, comme nous. Il y a de quoi t’aider : une carte de la partie, des rejouables, un langage des mini-jeux – gestes, marques et réponses qu’un joueur comprend sans légende. Tu peux aussi ne rien prendre de tout cela : garder une seule scène et laisser quelqu’un y faire quelque chose. Tu peux montrer le jeu sur ton propre site et laisser son code parler à ce que tu veux – même à un modèle de langage qui joue un personnage.
Au début, chaque jeu avait ses propres mini-jeux, et le joueur devait chaque fois deviner sur quoi appuyer. Puis, à force de plaintes et de souhaits, un langage commun a poussé : une marque sur un objet, un geste de la main, la réponse de la scène, un bandeau en haut – et un son qui dit si ça a marché. Plus de détails dans l’histoire « [La langue des mini-jeux](/stories/minigame-language) ». Tu n’es pas obligé de l’utiliser, mais il fait gagner beaucoup d’efforts.
Par un dossier. Un monde, un jeu et une histoire ne sont que des dossiers dans un dépôt git : le tien, sur ton GitHub, avec tes coauteurs, tes branches et ton historique. Un même dépôt peut en contenir autant que tu veux.
Le plus simple est de les écrire avec un agent IA – Claude Code, ChatGPT, Gemini, n’importe lequel. Pour cela, il y a le dépôt ouvert [moood](https://github.com/moood-me/moood) : les moteurs, la page de scène et la page de jeu, le langage des mini-jeux, la vérification et un petit lecteur pour jouer chez toi. Nous y avons mis les choses selon une seule règle : si quelque chose est nécessaire pour faire un jeu et y jouer, c’est là. Et la documentation, écrite pour qu’un agent puisse travailler avec : ce qui compte dans une scène et ce qu’il ne faut jamais faire, comment placer la lumière et les gens, comment un jeu est construit, comment écrire un scénario si tu en as besoin.
Et pour que l’agent ait quelque chose à regarder, nous avons aussi ouvert nos propres travaux – les dépôts [works](https://github.com/moood-me?q=works). On y trouve les mondes et les jeux de moood.me avec le code de leurs scènes et l’histoire de leur fabrication, un terrain de mini-jeux où l’on peut essayer chaque geste séparément, et de premiers petits mondes – des essais pour voir ce que peuvent être les scènes. Prends ce qui t’aide.
Toute chose – un monde, une scène, un jeu, une histoire – se nomme par une seule ligne : `ton-depot@branche:dossier`. Un commit peut remplacer la branche. C’est ainsi qu’on l’ouvre dans le studio, qu’on y renvoie depuis un autre jeu, qu’on la donne à un agent. Un jeu peut aussi reposer sur le monde de quelqu’un d’autre – par une telle adresse.
Au début, c’était plus compliqué : chaque monde avait ses propres branches de service pour chaque site où il était déployé. Les agents y étaient habitués. Pavel a regardé et a dit : « C’est un peu compliqué cognitivement, ça)… On ne peut pas se passer des branches ?) » – et il a demandé de réfléchir non pas à la façon de rafistoler, mais à la façon de faire simple. Il s’est avéré qu’il ne faut rien d’autre que git : tes branches sont tes brouillons.
Chez toi – dans le lecteur de moood : il tourne au-dessus de ton dossier, et dès que tu enregistres un fichier, la page se recharge toute seule et le jeu continue là où il en était. Ou dans le studio : n’importe quelle branche y est visible juste après un push, sur ordinateur et sur téléphone. Tu as changé quelque chose en jouant ? Le studio te propose de continuer avec la nouvelle version, sans recommencer.
Certaines choses ne se font pas sur ton propre ordinateur : il faut une carte graphique et des modèles qui parlent, composent de la musique et font bouger les gens. C’est à cela que sert le studio. Tu peux l’utiliser en entier, n’en prendre qu’un élément, ou ne pas t’en servir du tout.
**Voir.** Le studio dessine une scène sur une carte graphique : une image, une planche d’images seconde par seconde, une vidéo. Ce n’est pas seulement pour toi. Un agent regarde son propre travail en images et le corrige tout seul pendant que tu fais autre chose. Il ne se connecte au studio qu’une seule fois : tu l’autorises sur une page qui dit en mots simples ce qu’il pourra faire, et ensuite il travaille en ton nom.
**Donner vie aux gens.** Le mouvement d’une personne se décrit avec des mots : « avance lentement », « s’assoit et regarde l’eau ». Il est fait par un modèle entraîné sur des enregistrements de vrais mouvements, et le studio le montre sur différentes personnes avant qu’il n’entre dans une scène.
**Donner une voix.** N’importe quelle ligne peut être mise en voix : chaque personnage a sa voix et sa manière, et une réplique isolée peut avoir la sienne – « avec envie et ravissement, sans moquerie ». Toutes les répliques d’un jeu sont au même endroit, et tu peux les écouter.
**Donner de la musique.** Tu décris la musique d’une scène avec des mots et tu mélanges les descriptions selon leur poids : « piano doux au crépuscule » plus fort, « pluie sur les feuilles » plus bas. Tu peux écouter tout de suite, avant d’avoir rien enregistré. Ce qui a été fait une fois est gardé : la même réplique ou la même musique n’est jamais faite deux fois.
**Commencer sans code.** Le studio a un artiste – une IA à qui l’on peut simplement écrire : « fais que ce soit le soir, et que la lanterne du ponton soit allumée ». Il modifie la scène lui-même, et chaque changement se voit aussitôt. Il est là pour qu’on puisse commencer un monde directement dans le navigateur, sans éditeur et sans agent à soi. Même juste par curiosité : faire deux ou trois scènes et voir ce que ça donne.
**Ne pas saccader.** Une scène vivante doit tourner de façon fluide sur un ordinateur faible comme sur un téléphone. Le studio la mesure sur différentes machines et montre où elle ne tient pas. Pourquoi c’est si important pour nous : dans l’histoire « [Pourquoi ça ramait](/stories/why-it-was-slow) ».
**Parler toutes les langues.** Les jeux sur moood parlent douze langues, et le tien aussi peut le faire. La vérification trouve ce qui n’est pas traduit, les liens qui ne mènent nulle part, les scènes qui ne se construisent pas – et montre quelles voix, quelle musique et quelles images manquent. Ce qui manque se fait d’un seul bouton. La vérification est rapide : elle ne redessine les scènes sur la carte graphique que si on le lui demande – on a envie de vérifier souvent, après tout.
Un jeu terminé peut être proposé à la publication sur moood.me. Il est regardé avant d’être montré, puis il prend sa place sur le site à côté des autres – avec les images de ses scènes, ses voix et sa musique.
Ou sans nous. Les pages de moood peuvent être montrées par n’importe quel site ou application qui répond à leurs quelques requêtes simples. Tu peux prendre le moteur et en faire quelque chose de tout à fait à toi.
Nous avons essayé de faire du studio un endroit où l’on ne se perd pas. Il est construit comme un portail : à gauche, les services – dépôts, mondes, jeux, histoires et l’atelier : rendus, mesures, voix, musique, mouvements, l’artiste, vérifications, publications. En haut, une recherche sur tout à la fois : tape « lanterne » et tu vois le jeu, l’histoire et la scène. Ce dont tu as besoin peut être marqué d’une étoile. Il y a un thème sombre et une version téléphone, et le studio lui-même parle les mêmes douze langues.
Nous avons aussi traqué les petits détails. Tu appuies sur un élément du menu et rien ne répond – est-ce que ça a pris, ou non ? Maintenant l’élément s’allume tout de suite, et si la page met plus d’un instant à charger, « Chargement… » apparaît. Si c’est plus rapide, rien ne clignote.
Un agent à part a parcouru tout le studio en jouant plusieurs personnes imaginaires : un auteur expérimenté, un débutant, quelqu’un qui vient d’arriver. Il a ouvert chaque page dans deux langues, avec le thème clair et le thème sombre, sur ordinateur et sur téléphone – et a noté où il butait.
Il y a eu du drôle et de l’agaçant. Un auteur appuyait sur « Mesurer » et tombait sur « introuvable » : sa propre mesure ne s’ouvrait pas. Un jeu en anglais s’affichait dans le studio russe sans titre et sans bouton « Jouer ». Un débutant se heurtait à une impasse : il entre – et ensuite, rien. Tout cela a été corrigé avant l’ouverture du studio.
L’accès au studio, c’est Pavel qui le donne. Écris-lui sur [Telegram](https://t.me/pavel_zhur) ou à [[email protected]](mailto:[email protected]) – il t’ouvrira, tout simplement. Et si tu as envie d’aider moood lui-même – le moteur, les pages, la documentation –, il en sera ravi : les issues et les pull requests sur [moood](https://github.com/moood-me/moood) sont ouvertes à tous.