Novemade
Toutes les expériences

Livrer le véritable moteur, non une reconstitution

Laisser un visiteur jouer au véritable jeu — le même moteur que celui qui tourne dans l’application — prouve-t-il plus que n’importe quelle galerie de captures ?

EXPÉRIENCE

·

Les sites de studio montrent généralement les produits sous forme d’images fixes. Une image fixe ne peut pas démontrer la sensation, et la sensation est l’essentiel de ce qu’est un jeu. L’alternative est normalement une reconstitution : une version navigateur simplifiée qui approche le produit. Nous pensons qu’une reconstitution est le pire des deux mondes, parce qu’elle coûte cher à construire et qu’elle n’est pas la chose elle-même.

ZUPI s’est révélé être le cas où aucun des deux compromis n’était nécessaire. Sa physique et sa génération de niveaux vivent dans un module autonome, sans dépendance d’exécution tierce, écrit pour un simple espace de coordonnées de 390×600. Ce module est la même source de vérité que celle qu’exécutent les versions iOS et Android. La démo de ce site n’approche donc pas ZUPI — elle importe le moteur de ZUPI, sa génération de niveaux, sa courbe de difficulté et la règle des trois secondes d’immobilité, et les dessine avec un moteur de rendu écrit pour le web.

L’expérience consiste à savoir si cette distinction vaut l’effort d’ingénierie, et si elle se généralise : combien de nos produits ont une véritable frontière de moteur que nous pourrions exposer ainsi, face à combien exigeraient une reconstitution que nous avons déjà décidé de ne pas construire.

Répondu, le 3 octobre 2026, et pas de la façon attendue. ZUPI a cessé d’être ce cas : l’application de l’App Store est devenue ZUPI: Pulse Shield le 30 septembre, un autre jeu, donc le module que cette démo importait est celui du précédent. L’intégration n’a jamais dérivé — l’empreinte a correspondu jusqu’au bout — et c’est là le résultat. Une empreinte répond à la question de savoir si une copie est fidèle au dépôt dont elle vient. Personne n’avait demandé si ce dépôt était encore le produit. /try/zupi est désormais une reconstitution bâtie sur la fiche publique de la boutique : précisément ce que cette expérience voulait éviter de construire, et la réponse honnête une fois la source de vérité disparue.

Ce que nous avons appris

Les conclusions à ce jour.

  1. 01

    Une copie intégrée demande que sa source soit ré-identifiée, pas seulement ré-empreintée. L’empreinte répond à la question de savoir si la copie a dérivé du dépôt dont elle vient. Elle ne peut pas répondre à celle de savoir si ce dépôt est encore le produit, et c’est la question qui a réellement échoué ici.

  2. 02

    Le moteur s’est porté sans une seule modification de ses sources. Une frontière nette entre règles et rendu, construite pour les raisons propres de l’application, s’est révélée être exactement ce dont une démo web a besoin.

  3. 03

    Le déterminisme compte plus que prévu : comme les niveaux dérivent d’une graine par niveau, la démo et l’application publiée produisent des plateaux identiques, de sorte que ce que joue un visiteur est véritablement le niveau 1 et non un sosie.

  4. 04

    Cela ne se généralise pas gratuitement. Les produits dont la logique est enchevêtrée avec une couche d’interface native ne peuvent pas être exposés ainsi, ce qui fait de « y a-t-il une frontière de moteur ? » une question qui mérite d’être posée pendant une construction plutôt qu’après.

Le voir en action

Une reconstitution, écrite pour ce site. Ce n’est pas le code de ZUPI et elle ne prétend pas l’être : les sources du jeu publié ne sont pas dans le dépôt du studio, elle a donc été bâtie à partir de la fiche publique de l’App Store — le Pulse Core, la règle des trois secondes, les déviations qui chargent un Pulse, six par Pulse, les menaces blindées que seul le Pulse brise, les diviseurs, les traqueurs et les bandes de garde. Les nombres et les comportements viennent de cette fiche et de ses captures ; les niveaux, la courbe de difficulté et la sensation appartiennent à ce site, pas au jeu. Jusqu’au 3 octobre 2026, cette page faisait tourner le moteur du jeu précédent et le présentait comme celui qui était publié.