Une démo dans le navigateur pour chaque produit, et une échelle à quatre barreaux pour rester honnête
Onze produits, onze démos, et la partie inconfortable : deux d’entre elles exécutent le code source du produit, et dire lesquelles est tout l’enjeu.
Note technique · · 7 min de lecture
Chaque produit de ce catalogue a quelque chose que vous pouvez exécuter dans ce navigateur, sans rien installer, sans compte. C’est la phrase la plus forte de ce site, et c’est aussi celle qui cesserait le plus facilement d’être vraie sans que personne s’en aperçoive : ajouter un produit prend un après-midi, construire sa démo non. Ce n’est donc pas une phrase que quelqu’un entretient à la main : un test compte les produits, compte les démos construites, et fait échouer la compilation si un produit arrive sans démo. Il a échoué trois fois la semaine où les trois derniers produits sont arrivés, avant de passer.
La partie difficile n’a jamais été de les construire. C’était de les étiqueter.
Le mot « jouable » portait deux affirmations différentes
Le premier jeu d’étiquettes était Jouable, Prototype interactif et Démo guidée. Cela ressemble à une échelle d’interactivité, et c’en est une — ce qui est précisément pourquoi elle était fausse. La question que se pose réellement une visiteuse n’est pas « puis-je cliquer là-dessus ». C’est « est-ce que quelque chose là-dedans est le vrai produit ». Jouable couvrait à la fois les démos qui exécutent le code source du produit et celle qui joue ses enregistrements audio livrés, et ce ne sont pas du tout les mêmes affirmations.
Il y a maintenant quatre barreaux, et chaque démo dit sur lequel elle se tient :
- Code réel du produit — le code source du produit lui-même, repris sans modification, avec le SHA-256 de la copie consigné à côté.
- Matériaux réels du produit — le matériel livré du produit lui-même : enregistrements, sprites, fichiers de contenu, qui alimentent une boucle écrite ici.
- Recréation interactive — une mécanique reconstruite ici, utilisant le contenu réel du produit partout où il en a.
- Démo guidée — une visite. Rien n’est calculé, et elle le dit.
« Code réel du produit » veut dire quelque chose précisément parce que « Démo guidée » est employée honnêtement un produit plus loin. Deux démos se tiennent aujourd’hui sur le barreau du haut. Ce nombre est dérivé du catalogue de démos plutôt qu’écrit dans une phrase, pour la même raison que tous les autres chiffres ici.
Ce qu’une empreinte prouve réellement
Une démo du barreau du haut reprend le code du produit dans ce dépôt sans le modifier et consigne son empreinte. Un test recalcule l’empreinte à chaque compilation. Si quelqu’un modifie la copie reprise pour qu’une démo se comporte mieux sur un téléphone, la compilation échoue — c’est exactement la protection pour laquelle elle a été construite.
Le 30 septembre, ZUPI a publié un nouveau jeu sur l’App Store. Un autre jeu : un Pulse Shield tenu au-dessus d’un Pulse Core, des menaces blindées, un Warden tous les cinq niveaux. Le jeu dont le moteur était repris ici était le précédent — un ballon rouge sous un parapluie — et la vérification d’empreinte a tenu à chaque compilation pendant tout ce temps, parce que la copie restait une copie fidèle du dépôt dont elle venait.
Une empreinte prouve qu’une copie est fidèle au dépôt dont elle vient. Elle ne peut pas prouver que ce dépôt est encore le produit.
Pendant trois jours, ce site a exécuté le mauvais jeu sous une phrase disant « le même moteur que celui des builds iOS et Android ». Rien n’était cassé. Toutes les vérifications étaient au vert. Le moteur repris est supprimé et la démo de ZUPI est une Recréation interactive, écrite depuis la fiche du store et étiquetée comme telle — une affirmation plus faible, et vraie.
Le barreau plus intéressant que celui du haut
Forgotten Town est un jeu Flutter et Flame. Un build de ce jeu ne tient pas dans une page web au poids que ce site accepterait, donc sa boucle de fusion est écrite pour le navigateur. Tout ce sur quoi cette boucle travaille appartient au jeu : le plateau, la chaîne, les sprites, et la première commande avec l’objet qu’elle demande et les pièces qu’elle paie, lus dans le fichier de contenu que charge le build livré plutôt que ressaisis.
La démo de Pivumo joue les fichiers de voix de l’application elle-même, ceux qui sont livrés. La démo de Swarm Kingdoms parle les chaînes du jeu lui-même, dans celle de ses dix langues que vous choisissez, et retombe sur l’anglais exactement comme le fait la fonction de localisation du jeu — car une démo qui afficherait une clé brute là où le jeu affiche l’anglais montrerait un bug que le produit n’a pas. Une traduction écrite pour ce site web serait une affirmation plus mauvaise sur le produit que les mots du produit lui-même.
Un robot les joue toutes avant un déploiement
Une démo qui cesse discrètement d’aller au bout est pire que pas de démo, donc chacune est pilotée dans un vrai navigateur avant un déploiement : démarrer, interagir, atteindre un résultat, rendre compte. Cela tourne dans plusieurs langues, parce qu’une démo peut casser dans une et pas dans les autres.
Il s’est trompé sur lui-même deux fois, et les deux fois le correctif était dans le harnais. Une fois il a fait défiler la page au lieu de jouer, parce que la touche enfoncée n’atteignait jamais le canevas qui avait le focus. Une fois il a perdu toutes les manches d’un jeu qu’il aurait dû gagner, et la version sans affichage des mêmes règles a montré pourquoi : il ne regardait pas l’écran. Passer une défaite au compte d’un test instable aurait été la solution facile, et aurait laissé un robot incapable de jouer tenir la place d’une visiteuse qui en est capable.
Ce que cela coûte
Onze démos, c’est un vrai impôt sur l’ajout d’un produit, et il est payé volontairement. L’alternative est une page de captures et une affirmation ; et un studio qui demande à une inconnue de croire onze affirmations sur des logiciels qu’elle ne peut pas ouvrir doit être cru sur chacune séparément. Une démo est le seul argument qu’il n’est pas nécessaire de croire.