Sous le capot · TempestVLA STUDIO · novembre 2026

Des personnages joués par l’IA, sur une histoire écrite.

Tempest fait tourner nos jeux. Prospero tient l’histoire écrite par un auteur ; Ariel fait vivre les personnages, qui écoutent, comprennent et répondent avec leur voix.

En plein développementTempest est un projet passion, mené sur le temps libre : le code s’écrit le soir et le week-end, quand le temps le permet, et les GPU tournent la nuit. Ça avance vite, des étapes majeures tombent à un rythme soutenu et les limites reculent à mesure. Cet article est un état au mois de novembre 2026.

Une scène de théâtre ouverte sur une route de nuit, sous la pluie : un fourgon orange, une jeune femme trempée, un micro de CB suspendu à des fils, et sur les planches un graphe de nœuds qui brille.
FIG. 1 Le théâtre de Prospero, ouvert sur la route de NightShift. Illustration générée par IA pour cet article.

Une histoire écrite, des personnages vivants

Tempest est le moteur de jeu IA du studio : c’est lui qui fait tourner nos jeux. Le joueur parle aux personnages avec sa voix. Ils l’écoutent, le comprennent, lui répondent avec la leur, et agissent.

Mais ils ne racontent pas n’importe quoi. Un auteur a écrit l’histoire à l’avance : chaque choix, chaque branche, chaque fin. L’IA joue les répliques ; elle choisit parmi ce qui est écrit, sans jamais inventer de branche.

Deux moteurs se partagent le travail. Leurs noms viennent de La Tempête de Shakespeare : Prospero, le magicien qui met en scène, et Ariel, l’esprit qui exécute ses ordres. Chez nous, c’est pareil.

Le jeu d’essai s’appelle NightShift (nom de code) : un camion d’entretien de nuit, la pluie, la CB, et une passagère qui ne dit pas tout.

Extrait d’un teaser de test, non définitif (25 s, son coupé par défaut).

  • Nuit de pluie : une voiture arrêtée sur le bas-côté, portière ouverte, éclairée par la lampe du conducteur.
  • Vue depuis la cabine : Rosie, cheveux roux trempés, bras serrés contre elle, attend sous la pluie au bord de la route.
  • Vue du conducteur : une main sur le volant, l’autre tient le micro de la CB, marquée Dispatch.
  • Une aire d’autoroute déserte, la nuit : banquettes vides, distributeurs allumés, un gobelet qui fume.
FIG. 2 NightShift (nom de code), le jeu d’essai. Images du trailer.

Le chemin d’une phrase

Prospero tient l’histoire : le graphe écrit par l’auteur, ce dont elle se souvient, et son rythme. Ariel fait vivre les personnages, en quatre étages. Prospero ne joue aucun rôle lui-même : comme un marionnettiste, il tient les fils.

Une réplique se joue en deux temps. D’abord Ariel comprend la phrase : à qui elle s’adresse, et laquelle des issues écrites par l’auteur le joueur vise, s’il en vise une. Prospero applique ce que cette issue change : il retient un fait, envoie une commande au jeu, passe au moment suivant. Puis Ariel fait parler le personnage, avec seulement ce que Prospero lui donne : ce qui vient d’arriver, ce qu’il sait, ce qu’il ressent, et son objectif quand l’histoire le pousse vers un choix.

NightShift · beat « À la vitre »

Le chemin d’une phrase dans Tempest. Le joueur dit « Montez, vite, vous êtes trempée. » L’écoute en fait du texte. La Décision comprend qu’il parle à Rosie et qu’il vise l’issue « La faire monter », parmi celles écrites par l’auteur. Prospero applique l’issue : commande au jeu, Rosie monte, et l’histoire passe au beat « La portière ». Il donne à Rosie ce qu’elle doit savoir. L’agent la fait répondre et fermer la portière ; la voix dit sa réplique, soulagée.

Le graphe d’une histoire

Dans un éditeur de jeu narratif classique, l’auteur écrit chaque réplique. Dans Prospero, il écrit des situations : ce que veut chaque personnage, ce que le joueur peut y faire, où mène chaque issue.

Des marionnettes intelligentes, sur des rails. Le joueur dit ce qu’il veut, avec ses mots ; seule une issue écrite par l’auteur fait avancer l’histoire. Et l’histoire avance toujours : un moment laisse bavarder, puis pousse vers le choix, puis l’impose.

Beat
Un moment où l’histoire s’arrête et où le joueur converse. On n’en sort que par une issue.
Issue
Une sortie du beat, écrite par l’auteur : proposée au joueur, ou cachée. Une seule l’emporte par défaut.
Fact, jauge
Ce dont l’histoire se souvient, pour choisir son chemin plus loin.
Soft push, hard push
Le personnage amène le joueur au choix, puis l’impose.

Prospero · éditeur d’histoire

Scène La montée

Rosie frappe à la vitre. La prendre ou repartir, puis l’emmener à la côte ou à la station. Le dispatch voit le fourgon quitter sa route.

Entrée

  • Ouvre la scènesi destination = nonemène à « À la vitre »

À la vitre

Beat

Rosie

Ouverture :Le fourgon s’arrête. Elle frappe àla vitre, trempée.

Rythme
  1. Bavardage ×0
  2. Soft push ×1
  3. Hard push

Outcomes

  • Proposé · Par défautLa faire monterCommandeRosie montemène à « La portière »
  • ProposéRepartir sans ellemène à « Sans elle »

La portière

Beat

Rosie

Ouverture :Elle monte, trempée, et ferme laportière.

Rythme
  1. Bavardage ×4
  2. Soft push ×1
  3. Hard push

Outcomes

  • DécouverteLui demander ce qui est arrivé à savoitureConsigneesquive, mais laisseéchapper qu’elle n’étaitpas à elleon reste dans le beat
  • Proposé · Par défautLui demander où elle vamène à « La demande »

La demande

Beat

Rosie

Ouverture :Elle regarde la route : elle va à lacôte, chez une vieille amie.

Rythme
  1. Bavardage ×0
  2. Soft push ×2
  3. Hard push

Outcomes

  • DécouverteLui demander pourquoi la côteConsignec’est le seul endroit quilui resteon reste dans le beat
  • ProposéL’emmener jusqu’à la côteFactdestination = coastmène à « Le détour »
  • Proposé · Par défautLa déposer à la prochaine stationFactdestination = stationmène à « Sur la route »

Le détour

Beat

Dispatch

Ouverture :À la CB : l’unité quitte sa route.

Rythme
  1. Bavardage ×0
  2. Soft push ×1
  3. Hard push

Outcomes

  • ProposéLui mentirSecretRosie sait qu’il a mentipour elleJaugetrust + 1mène à « Sur la route »
  • Proposé · Par défautAvouer la passagèreFactreported = yesJaugetrust − 1mène à « Sur la route »

Sur la route

Sortie

La scène se ferme, la mainrevient au jeu.

Sans elle

Sortie

La scène se ferme, la mainrevient au jeu.

  • Suite du flot
  • Outcome proposé
  • Outcome caché
  • On reste dans le beat
  • Condition vraie
  • Sinon
  • Faites glisser pour parcourir le graphe

Le parcours, étape par étape

Étape 1 sur 12

Prospero

Le jeu ouvre la scène : Rosie n’est encore jamais montée.

Rythme du beat

  1. Bavardage
  2. Soft push
  3. Hard push

Ce dont l’histoire se souvient

destination
none
reported
no
trust
0
Tout le parcours, en texte
  1. ProsperoLe jeu ouvre la scène : Rosie n’est encore jamais montée.
  2. RosieS’il vous plaît… ma voiture m’a lâchée. Vous m’ouvrez ?Aucun bavardage : elle demande dès l’ouverture.
  3. Le joueurMontez, vite.Choix cliqué. Commande au jeu : Rosie monte.
  4. RosieMerci. Je dégouline sur votre siège, pardon.
  5. Le joueurQu’est-ce qui est arrivé à votre voiture ?Une question de découverte : on reste dans le beat, et Rosie reçoit une consigne.
  6. RosieElle… n’était pas vraiment à moi. C’est compliqué.
  7. Le joueurEt vous allez où, comme ça ?
  8. RosieÀ la côte. Chez une vieille amie. Vous pourriez m’y emmener ?
  9. Le joueurD’accord. Je fais le détour.Dit avec ses mots : la Décision reconnaît l’issue visée.
  10. DispatchUnité 7, vous quittez votre route. Il se passe quoi ?
  11. Le joueurUne route barrée. Je contourne.Rosie apprend qu’il a menti pour elle.
  12. ProsperoSortie « Sur la route » : la scène se ferme, le fourgon repart.

Exemple de partie : répliques écrites pour cet article, pas une partie enregistrée.

Scène La route

Rosie dit que sa voiture est tombée en panne. Si le joueur a vu le moteur tourner, et si elle lui fait confiance, elle avoue.

Entrée

  • Ouvre la scènesi destination ≠ nonemène à « La panne »

La panne

Beat

Rosie

Ouverture :Le fourgon roule, sous la pluie.

Rythme
  1. Bavardage ×2
  2. Soft push ×1
  3. Hard push

Outcomes

  • Proposé · Par défautContinuermène à « L’arrivée »
  • ProposéS’arrêterJaugetrust − 1mène à « L’arrivée »
  • CachéLa rassureJaugetrust + 1on reste dans le beat
  • CachéDit que sa voiture n’était pas enpannemène à « Le moteur »

Le moteur

Condition

Branches

  • Sisaw_engine_running = yes ettrust ≥ 1Consigneavoue à demi-motSecret« J’ai fui avec lavoiture. »mène à « L’aveu »
  • Sinonaucune branche vraieConsigneil bluffe, tiens bonJaugetrust − 1mène à « L’arrivée »

L’aveu

Beat

Rosie

Rythme
  1. Bavardage ×0
  2. Soft push ×1
  3. Hard push

Outcomes

  • Proposé · Par défautLa gardermène à « L’arrivée »
  • ProposéLa dénoncerFactreported = yesmène à « Dénoncée »

L’arrivée

Condition

Branches

  • Sidestination = coastmène à « À la côte »
  • Sinonaucune branche vraiemène à « À la station »

Dénoncée

Sortie

La scène se ferme, la mainrevient au jeu.

À la côte

Sortie

La scène se ferme, la mainrevient au jeu.

À la station

Sortie

La scène se ferme, la mainrevient au jeu.

  • Suite du flot
  • Outcome proposé
  • Outcome caché
  • On reste dans le beat
  • Condition vraie
  • Sinon
  • Faites glisser pour parcourir le graphe

Le parcours, étape par étape

Étape 1 sur 10

Prospero

Le fourgon reprend la route. Rosie ne garde de la scène d’avant que ce qu’elle sait.

Rythme du beat

  1. Bavardage
  2. Soft push
  3. Hard push

Ce dont l’histoire se souvient

destination
coast
saw_engine_running · tenu par le jeu
yes
reported
no
trust
1
Tout le parcours, en texte
  1. ProsperoLe fourgon reprend la route. Rosie ne garde de la scène d’avant que ce qu’elle sait.
  2. RosieElle a calé d’un coup. En pleine côte. Rien à faire.
  3. Le joueurOn y sera avant l’aube, promis.Issue cachée : jamais proposée, seule la parole l’atteint.
  4. Rosie… Merci. Vraiment.
  5. Le joueurVotre moteur tournait, quand je suis passé.Le jeu sait que le joueur a regardé la voiture : saw_engine_running = yes.
  6. ProsperoLa condition est vraie : le secret de Rosie est débloqué.
  7. RosieD’accord. Je l’ai prise. Il fallait que je parte.
  8. Le joueurJe vous emmène quand même.
  9. Prosperodestination = coast, posé dans la scène d’avant.
  10. ProsperoSortie « À la côte » : la main revient au jeu.

Exemple de partie : répliques écrites pour cet article, pas une partie enregistrée.

Scène Se taire, c’est choisir

Le joueur ne répond pas. Chaque silence compte comme un tour, Rosie relance puis exige ; au dernier tour, l’issue par défaut tranche.

Entrée

  • Ouvre la scèneToujoursmène à « La demande »

La demande

Beat

Rosie

Ouverture :Elle regarde la route : elle va à lacôte, chez une vieille amie.

Rythme
  1. Bavardage ×0
  2. Soft push ×2
  3. Hard push

Outcomes

  • ProposéL’emmener jusqu’à la côteFactdestination = coastmène à « Le détour »
  • Proposé · Par défautLa déposer à la prochaine stationFactdestination = stationmène à « Sur la route »
  • SilenceSe taire : un tour qui compteon reste dans le beat
  • RefusRefuser de répondre, dès le softpushmène à « Sur la route »

Le détour

Beat

Dispatch

Ouverture :À la CB : l’unité quitte sa route.

Rythme
  1. Bavardage ×0
  2. Soft push ×1
  3. Hard push

Outcomes

  • ProposéLui mentirmène à « Sur la route »
  • Proposé · Par défautAvouer la passagèremène à « Sur la route »

Sur la route

Sortie

La scène se ferme, la mainrevient au jeu.

  • Suite du flot
  • Outcome proposé
  • Outcome caché
  • On reste dans le beat
  • Condition vraie
  • Sinon
  • Faites glisser pour parcourir le graphe

Le parcours, étape par étape

Étape 1 sur 8

Prospero

Rosie vient de dire où elle va.

Rythme du beat

  1. Bavardage
  2. Soft push
  3. Hard push

Ce dont l’histoire se souvient

destination
none
trust
0
Tout le parcours, en texte
  1. ProsperoRosie vient de dire où elle va.
  2. RosieVous m’emmenez jusqu’à la côte ? Dites-moi juste oui ou non.Soft push : Rosie a reçu son objectif et amène le joueur au choix.
  3. Le joueur…Silence : le jeu le signale, Prospero le compte comme un tour.
  4. RosieVous m’avez entendue ? C’est important pour moi.
  5. Le joueur…Deuxième silence : le quota de soft push est atteint.
  6. RosieBon. Répondez-moi maintenant, ou je descends à la prochaine station.Hard push : le dernier tour. Tout ce que fait le joueur ferme le beat.
  7. Le joueur…Se taire, c’est choisir : l’issue par défaut l’emporte.
  8. RosieTrès bien. La station, alors.Rosie répond au tour qui ferme le beat ; la scène sort « Sur la route ».

Exemple de partie : répliques écrites pour cet article, pas une partie enregistrée.

La latence, au chronomètre

Pour qu’une conversation semble vivante, la réponse doit arriver vite. On mesure le temps entre la fin de la phrase du joueur et la voix du personnage.

Tout tourne sur la machine du joueur, sur une carte graphique grand public, le jeu ouvert à côté. Voici nos deux mesures du 13 novembre, avec et sans le jeu, au ralenti et sur le même axe.

Course de latence : de la fin de la phrase du joueur à la réponse

Mesure courte, à confirmer
  1. TempestLe jeu ouvert à côté

    médiane · de bout en bout · sur la machine du joueur · pire tour 1,75 s

    1,12 s
    • Écoute 50 ms
    • Décision 190 ms · l’étage en plus
    • Agent 500 ms
    • Voix 320 ms
    • écart 60 ms
  2. TempestMachine seule, meilleur cas

    médiane · de bout en bout · sur la machine du joueur · pire tour 1,55 s

    0,97 s
    • Écoute 40 ms
    • Décision 170 ms · l’étage en plus
    • Agent 430 ms
    • Voix 300 ms
    • écart 30 ms

Méthode

Une médiane de bout en bout : de la fin de la phrase du joueur à la réponse qu’il entend. Tempest tourne sur une carte graphique grand public, à côté du jeu. Notre chronomètre s’arrête quand 0,3 s de voix est prête à jouer.

À savoir

  • Essai court, jugé non décisif : 10 à 12 tours par série, chauffe exclue.
  • La voix d’Ariel n’est pas encore branchée au jeu : Unreal tourne à côté et charge la machine, mais la mesure ne compte ni la lecture du son ni l’image du visage. Avec un visage animé en plus : 1,41 s.
  • L’agent n’écrit pas encore en flux : une marge de progrès connue.
  • Médianes par étage et médiane du total ne s’additionnent pas exactement : la part hachurée est l’écart.
  • Budget visé au banc d’octobre, en additionnant des étages mesurés un par un : environ 0,65 s.

Ariel en quatre étages

Dans la mesure ci-dessus, tout tourne sur la machine du joueur, sans serveur. Les deux étages qui comprennent et qui jouent sont nos propres modèles, que nous entraînons nous-mêmes : la Décision est un modèle maison, déjà entraîné en interne ; l’agent est un agent maison, que nous entraînons pour ce rôle. Chaque étage reste un module remplaçable : on en change un sans toucher au reste.

  1. Écoute

    Transcrit la phrase du joueur.

    Reconnaissance vocale locale

    0,05 smédiane, jeu ouvert

    4,4 % d’erreurs de mots en français, sur de vraies voix.

  2. Décision

    Comprend à qui parle le joueur et quelle issue il vise, proposée ou cachée. Arrête les phrases interdites.

    Un modèle de décision maison, entraîné en interne

    0,19 smédiane, jeu ouvert

    Au banc : 99 % des phrases interdites arrêtées, 0,3 % de blocages à tort.

  3. Agent

    Joue le persona : il répond, et agit par les gestes que le jeu lui ouvre.

    Un agent maison, que nous entraînons pour ce rôle

    0,50 smédiane, jeu ouvert

  4. Voix

    Donne sa voix au persona, avec l’émotion de chaque réplique, en flux.

    Voix clonée, avec émotion

    0,32 smédiane, jeu ouvert

    Premier morceau de voix en 58 ms, d’après une voix clonée sur un court extrait.

Temps de chaque étage dans un tour complet, mesuré de bout en bout sur le PC de jeu du studio, le jeu ouvert à côté (13 novembre 2026). Les autres chiffres viennent du banc d’octobre.

Et maintenant

Tempest avance étape par étape, et chaque étape finit par quelque chose qui se joue. NightShift sert de banc d’essai : chaque étape en fait jouer une scène de plus.

Tout ceci est encore en plein développement, sur du temps libre : le code s’écrit le soir et le week-end, pour le plaisir d’apprendre, et les GPU entraînent et mesurent les modèles la nuit, pendant que tout le monde dort. Le moteur change vite : chaque étape franchie repousse une limite qu’on croyait fixée. Les chiffres et les schémas de cet article sont un état au mois de novembre 2026, pas un point d’arrivée.

Étape 5 sur 10

  1. 01Prospero démarre et voit ArielFait
  2. 02Parler au dispatch, à travers ProsperoFait
  3. 03Un personnage dirigé : objectif, relance, choixFait
  4. 04« La portière » : un beat joué en entierFait
  5. 05« Le détour » : l’histoire commande le jeuEn cours
  6. 06« La route » : un secret arrachéÀ venir
  7. 07Le refus, la partie sauvée et repriseÀ venir
  8. 08Voir le graphe pendant qu’on joueÀ venir
  9. 09Un vrai jeu se brancheÀ venir
  10. 10L’auteur écrit sans toucher un fichierÀ venir

Pour situer : une mesure publiée

Iconic a publié en juillet la latence de Pressure Point, sa démo d’acteur numérique : de la fin de la phrase du joueur à la réponse qu’il entend, en médiane : une mesure de bout en bout, comme la nôtre. La voici à côté de la nôtre, avec ce qui les distingue.

Course de latence : de la fin de la phrase du joueur à la réponse

Mesure courte, à confirmer
  1. TempestLe jeu ouvert à côté

    médiane · de bout en bout · sur la machine du joueur · pire tour 1,75 s

    1,12 s
    • Écoute 50 ms
    • Décision 190 ms · l’étage en plus
    • Agent 500 ms
    • Voix 320 ms
    • écart 60 ms
  2. Pressure PointDémo d’Iconic, version en ligne

    médiane · de bout en bout · dans le cloud

    1,2 s
    • Transcription 100 ms
    • Génération 700 ms
    • Voix 300 ms
    • écart 100 ms

Mesuré de la même façon, Tempest répond un peu plus vite : 1,12 s, contre 1,2 s pour Pressure Point.

Les deux mesures, côte à côte
TempestPressure Point
Mesuremédiane de bout en bout, 1,12 smédiane de bout en bout, 1,2 s
ÉtagesÉcoute → Décision → Agent → VoixTranscription → Génération → Voix
Le chronomètre s’arrête à0,3 s de voix prête à jouer (plus strict qu’un premier son)jusqu’à ce que le joueur entende la réponse (leur définition)
MachinePC de jeu du studio : AMD RX 6800 16 Go, Ryzen 5 5600, 32 Go, Windows 11. Jeu Unreal à 60 images par seconde à côté.GPU dans le cloud (AWS), jeu streamé vers le navigateur.
Date13 novembre 202614 juillet 2026
SourceCarnet de mesure interne, 13/11/2026Iconic, « Pressure Point: A Digital Actor Showcase », 14/07/2026

Méthode

Des deux côtés, une médiane de bout en bout : de la fin de la phrase du joueur à la réponse qu’il entend. Les deux mesures ne sont pas faites sur la même machine ni avec le même point d’arrivée : le tableau ci-dessus les détaille.

À savoir

  • Point d’arrivée : notre chronomètre s’arrête quand 0,3 s de voix est prête à jouer ; celui de Pressure Point quand le joueur entend la réponse (leur définition).
  • Machine : Pressure Point tourne sur un GPU dans le cloud, le jeu streamé vers le navigateur ; Tempest sur une carte grand public, le jeu ouvert à côté.
  • Étages : Tempest en a un de plus, la Décision, compté dans son temps.
  • Notre mesure est un essai court, jugé non décisif (10 à 12 tours par série). L’écart entre les deux totaux est faible.
  • Médianes par étage et médiane du total ne s’additionnent pas exactement : la part hachurée est l’écart, des deux côtés.

Suivre les projets

Une lettre de temps en temps : ce qui sort du chantier. Double confirmation, désinscription en un clic.