← tous les talks← all talks

WebSCUMM

WebSCUMM, open source point & click engine

Écrire un jeu d'aventure avec ma fille de 3 ans ½… et une IA

Writing an adventure game with my 3½-year-old… and an AI

Erwan Rougeux · wanoo

Utiliser IA avec imagination d'enfantUse AI with child's imagination

Le problème

The problem

« Comment annoncer à toute la famille si Troll 2 sera une fille ou un garçon ? »

“How do we tell the whole family whether Troll 2 is a girl or a boy?”

Évidemment : un jeu vidéo.

Obviously: a video game.

Regarder problèmeLook at problem

Élevé aux classiques SCUMM

Raised on the SCUMM classics

Monkey Island, Day of the Tentacle, Sam & Max… Neuf verbes, un inventaire, des énigmes absurdes.

Monkey Island, Day of the Tentacle, Sam & Max… Nine verbs, an inventory, absurd puzzles.

DonnerOuvrirFermerPrendreRegarderParlerUtiliserPousserTirer
GiveOpenClosePick upLook atTalk toUsePushPull

« Regarde derrière toi ! Un singe à trois têtes ! »

“Look behind you! A three-headed monkey!”

Regarder souvenirs d'enfanceLook at childhood memories

Version 1 : un hommage à Carmen Sandiego

Version 1: a Carmen Sandiego tribute

F.I.S.-DOS 3.1 640 Ko de mémoire C:\> ENQUETE.EXE Carnet d'enquête... OK Carte du monde..... OK C:\> _F.I.S.-DOS 3.1 640 KB of memory C:\> CASE.EXE Case notebook..... OK World map......... OK C:\> _

Une enquête, un carnet, une carte du monde, un faux terminal DOS. Des personnages dessinés en code.

An investigation, a notebook, a world map, a fake DOS terminal. Characters drawn in code.

« Trois heures de route. Tirlipouette a demandé « on arrive quand ? » quatorze fois. »

“Three hours on the road. Tirlipouette asked ‘are we there yet?’ fourteen times.”

Où dans le monde est passée ma croquette ?

Where in the world is my kibble?

Ouvrir ENQUETE.EXEOpen CASE.EXE

Puis elle a pris la main

Then she took over

90 %

du scénario vient d'elle : les personnages, les lieux, qui fait quoi, pourquoi on va là, les péripéties.

of the story is hers: the characters, the places, who does what, why we go there, the twists.

Non, elle n'a pas codé le jeu. J'ai transformé son imagination en quelque chose de jouable.

No, she did not code it. I turned her imagination into something playable.

Parler à la scénaristeTalk to the screenwriter

D'abord le cadre, ensuite l'histoire

Frame first, story second

Papa + IA, avant

Dad + AI, beforehand

  • Le moteur : scènes, verbes, inventaire, dialogues
  • Un langage simple pour décrire une pièce
  • Des outils pour vérifier que tout tient
  • The engine: rooms, verbs, inventory, dialogue
  • A simple language to describe a room
  • Tools to check everything holds

Elle, pendant

Her, along the way

  • Qui est là, où on va, pourquoi
  • Les gags, les objets, les rebondissements
  • Le ton : caricatural, absurde, tendre
  • Who is there, where we go, why
  • The gags, the objects, the twists
  • The tone: cartoonish, absurd, tender

Le pont : un storyboard vivant, une page avec une zone de corrections. On relit, on corrige, on réécrit : 31 versions.

The bridge: a living storyboard, a page with a corrections box. Read, fix, rewrite: 31 versions.

Utiliser cadre avec histoireUse frame with story

Un dimanche, une boucle

One Sunday, one loop

Elle raconte« Et là, Papa colle son numéro de vol sur la clim ! »
Je traduisen lieu, objet, énigme
L'IA écritla scène, les répliques, le code
Elle jouesur le téléphone, tout de suite
Elle relance« Et après… »
She tells“And then Dad sticks his flight number on the air-con!”
I translateinto place, object, puzzle
The AI writesthe scene, the lines, the code
She playson the phone, right away
She goes on“And then…”

L'IA donne la vitesse qu'il faut pour suivre l'attention d'une enfant de 3 ans.

AI gives the speed you need to keep up with a 3-year-old's attention span.

« C'est l'endroit le plus frais de la maison. Pour que l'information reste fraîche. »

“It's the coolest spot in the house. So the information stays fresh.”

Donner idée à PapaGive idea to Dad

Dire oui à l'absurde

Say yes to the absurd

« Allô ? C'est un cheval ! Je veux le même ! »“Hello? It's a horse! I want the same one!”

« Ninja niveau 4… et demi. »“Ninja level 4… and a half.”

« Jusqu'à 11. Parce que 10, c'est pour les débutants. »“Up to 11. Because 10 is for beginners.”

Plus de 500 répliques, des easter eggs dans les dialogues, les décors et la musique. Le ton est volontairement caricatural et parfois complètement débile.

Over 500 lines of dialogue, easter eggs in the lines, the scenery and the music. The tone is deliberately cartoonish and sometimes completely daft.

341 réactions : chaque verbe sur chaque objet a sa réplique. Même « Parler à la poubelle ».

341 reactions: every verb on every object gets a line. Even “Talk to bin”.

Pousser ampliPush amp

Son doudou devient le système d'indices

Her plush toy becomes the hint system

hints: [{ until: 'crotule_reveille', lines: [
  'Khhh… les chats…',
  '… détestent… le bruit.',
  'Khhh… branche la guitare…',
  '… et l'ampli… à fond.' ] }]

Bloqué ? On parle à Pink Vador : il donne les solutions petit à petit.

Stuck? Talk to Pink Vador: he gives the solutions bit by bit.

Khhh… je suis… ton indice.

Khhh… I am… your hint.

Parler à Pink VadorTalk to Pink Vador

Un jeu qui lui ressemble

A game that looks like her

Des moments vécus, rejoués

Real moments, replayed

  • Le doudou Pink Vador, toujours sous le bras
  • « Tu crois que le bébé aime les dinosaures ? »
  • Le badge de mission : « ultra important »
  • Pink Vador the plush, always under her arm
  • “Do you think the baby likes dinosaurs?”
  • The mission badge: “super important”

Leurs phrases cultes

Their catchphrases

« ATTAQUE NINJA ! »“NINJA ATTACK!”

« Misère et peau de banane… »“Misery and banana peel…”

« Faut forcer ! » « Faut pas forcer ! »“Force it!” “Don't force it!”

Et un grand-père disparu, présent en lumière. Easter egg : regardez le phare, son endroit préféré… il apparaît quelques secondes, puis s'efface. And a grandfather who passed away, present as light. Easter egg: look at the lighthouse, his favourite place… he appears for a few seconds, then fades away.

Regarder souvenirsLook at memories

Un tour du monde en 9 lieux

Around the world in 9 places

De la maison à Abidjan, la Thaïlande, le Kazakhstan, le Maroc…

From home to Abidjan, Thailand, Kazakhstan, Morocco…

Les voyages de Papa, racontés par sa fille.

Dad's work trips, told by his daughter.

Utiliser carteUse map

Toute la famille joue son propre rôle

The whole family plays itself

22 personnages, caricaturés par un modèle d'image à partir de photos, avec l'accord de chacun.

22 characters, caricatured by an image model from photos, with everyone's consent.

Pour faire parler un personnage : la tête validée est recopiée six fois, seule la bouche change.

To make a character talk: the approved head is copied six times, only the mouth changes.

Marcher vers canapéWalk to sofa

Un projet du dimanche… qui a grandi

A Sunday project… that grew

9lieux
22personnages
34objets
7mini-jeux
500+répliques
341réactions optionnelles
951images
66actions pour finir
9places
22characters
34objects
7minigames
500+lines of dialogue
341optional reactions
951images
66actions to finish

Prendre câblePick up cable

Qui a fait quoi

Who did what

Claude Code

Le code du jeu et du moteur, et les tests, avec plusieurs agents en parallèle.

Invoke

Les décors et les personnages, avec des prompts positifs et négatifs, et des planches validées pour garder le style.

Sons libres

Bruitages Kenney (CC0) et Freesound.

Nous deux

Elle raconte, je mets en forme.

Claude Code

The code of the game and the engine, and the tests, with several agents in parallel.

Invoke

Scenery and characters, with positive and negative prompts, and approved sheets to keep the style.

Free sounds

Kenney sound effects (CC0) and Freesound.

The two of us

She tells, I shape it.

Donner travail à agentsGive work to agents

« Est-ce que le jeu se finit ? »

“Can the game be finished?”

  • Solveur : prouve qu'on finit le jeu depuis « Nouvelle partie », en 66 actions, en 6 s.
  • Preuve exhaustive : tous les états atteignables, aucun cul-de-sac.
  • Lint : conditions impossibles, faux indices, actions jamais jouées.
  • Playtests : des parties partagées depuis un téléphone, rejouées à chaque build.
  • Solver: proves the game can be finished from “New game”, in 66 actions, in 6 s.
  • Exhaustive proof: every reachable state, no dead end.
  • Lint: impossible conditions, false hints, actions never played.
  • Playtests: sessions shared from a phone, replayed on every build.

C'est le respect d'un bon SCUMM selon Ron Gilbert (Why Adventure Games Suck, 1989) : pas de cul-de-sac, des solutions qu'on peut déduire. Sauf qu'ici, c'est la machine qui vérifie.

That is what a good SCUMM game owes you, per Ron Gilbert (Why Adventure Games Suck, 1989): no dead ends, solutions you can deduce. Except here, the machine checks it.

Regarder graphe des énigmesLook at puzzle graph

Un secret qui résiste aux développeurs curieux

A secret that survives curious developers

  • Au lancement, le joueur fait son pronostic : fille ou garçon ?
  • La révélation est scellée (AES-GCM) : le mot de passe n'est pas dans le code envoyé au navigateur.
  • Le build échoue si un indice fuit dans les fichiers publiés.
  • At launch, the player makes a guess: girl or boy?
  • The reveal is sealed (AES-GCM): the password is not in the code sent to the browser.
  • The build fails if a clue leaks into the published files.

Ouvrir le devtools ne suffit pas : il faut jouer.

Opening devtools is not enough: you have to play.

De mon temps, on ouvrait ça avec les dents.

In my day, we opened those with our teeth.

Ouvrir enveloppeOpen envelope

Du jeu au moteur : WebSCUMM

From game to engine: WebSCUMM

Le moteur extrait du jeu, open source. Un Studio pour écrire les scènes et le storyboard, des outils MCP pour n'importe quel assistant IA.

The engine, extracted from the game and open-sourced. A Studio to write rooms and the storyboard, MCP tools for any AI assistant.

npx web-scumm create mon-jeu

« Chuck Norris ? J'ai réécrit son kung-fu en Rust. »

“Chuck Norris? I rewrote his kung fu in Rust.”

Tirer moteur hors du jeuPull engine out of game

Ce que j'en retiens

What I take away

  1. Poser le cadre avant, puis laisser l'enfant conduire l'histoire.
  2. L'IA, c'est la vitesse qui permet de suivre une imagination de 3 ans.
  3. Le goût et la tendresse restent des choix humains.
  4. Tester et prouver, c'est ce qui rend le code écrit par l'IA fiable.
  1. Build the frame first, then let the child drive the story.
  2. AI is speed: enough to keep up with a 3-year-old's imagination.
  3. Taste and tenderness stay human choices.
  4. Tests and proofs are what make AI-written code trustworthy.

Prendre leçonsPick up lessons

La finale : toute la famille dans le salon

The finale: the whole family in the living room

Agent Tirlipouette, le dossier Troll 2 est ouvert…

Agent Tirlipouette, the Troll 2 file is open…

…c'est un petit frère.

…it's a baby brother.

Donner bisou à grande sœur ninjaGive kiss to ninja big sister

Merci

Thank you

Merci LucasArts et Ron Gilbert pour tous ces souvenirs.

Thanks, LucasArts and Ron Gilbert, for all the memories.

Fermer présentationClose presentation