Una demo en el navegador para cada producto, y una escalera de cuatro peldaños que la mantiene honesta
Once productos, once demos, y la parte incómoda: dos de ellas ejecutan el propio código del producto, y decir cuáles dos es justamente el punto.
Nota técnica · · 7 min de lectura
Cada producto de este catálogo tiene algo que puedes ejecutar en este navegador, sin instalar nada y sin cuenta. Es la frase más fuerte de este sitio y también la que con más facilidad dejaría de ser cierta sin que nadie lo note, porque añadir un producto lleva una tarde y construir su demo no. Así que no es una frase que nadie mantenga a mano: un test cuenta los productos, cuenta las demos construidas y hace fallar la compilación si llega un producto sin demo. Falló tres veces la semana en que aterrizaron los últimos tres productos, antes de pasar.
La parte difícil nunca fue construirlas. Fue etiquetarlas.
La palabra «jugable» cargaba con dos afirmaciones distintas
El primer conjunto de etiquetas era Jugable, Prototipo interactivo y Demo guiada. Eso parece una escala de interactividad, y lo es, que es exactamente por lo que estaba mal. La pregunta que se hace de verdad quien visita no es «¿puedo hacer clic aquí?». Es «¿algo de esto es lo real?». Jugable estaba por encima de las demos que ejecutan el propio código del producto y también de la que reproduce sus grabaciones de audio publicadas, y no son la misma afirmación en absoluto.
Ahora hay cuatro peldaños, y cada demo dice sobre cuál está de pie:
- Código real del producto — el propio código fuente del producto, incorporado sin modificar, con el SHA-256 de la copia registrado al lado.
- Material real del producto — el material publicado del propio producto: grabaciones, sprites, archivos de contenido, moviendo un bucle escrito aquí.
- Recreación interactiva — una mecánica reconstruida aquí, usando el contenido real del producto dondequiera que lo tenga.
- Demo guiada — un recorrido. No se calcula nada, y lo dice.
«Código real del producto» significa algo precisamente porque «Demo guiada» se usa con honestidad un producto más allá. Hoy hay dos demos en el peldaño más alto. Ese número se deriva del catálogo de demos en lugar de escribirse en una frase, por la misma razón que cualquier otra cifra de aquí.
Qué demuestra realmente un hash
Una demo del peldaño más alto incorpora el código del producto a este repositorio sin modificarlo y registra su hash. Un test recalcula el hash en cada compilación. Si alguien edita la copia incorporada para que una demo se comporte mejor en un móvil, la compilación falla, que es exactamente la protección para la que se construyó.
El 30 de septiembre, ZUPI publicó un juego nuevo en la App Store. Un juego distinto: un Pulse Shield sostenido sobre un Pulse Core, amenazas con placas de blindaje, un Warden cada cinco niveles. El juego cuyo motor estaba incorporado aquí era el anterior —un globo rojo bajo un paraguas— y la comprobación del hash pasó en absolutamente todas las compilaciones durante ese tiempo, porque la copia seguía siendo una copia fiel del repositorio del que venía.
Un hash demuestra que una copia es fiel al repositorio del que vino. No puede demostrar que ese repositorio siga siendo el producto.
Durante tres días este sitio ejecutó el juego equivocado bajo una frase que decía «el mismo motor que usan las compilaciones de iOS y Android». Nada estaba roto. Todas las comprobaciones estaban en verde. El motor incorporado ya está borrado y la demo de ZUPI es una Recreación interactiva, escrita desde la ficha de la tienda y etiquetada como tal: una afirmación más débil, y verdadera.
El peldaño que es más interesante que el de arriba
Forgotten Town es un juego en Flutter y Flame. Una compilación suya no cabe en una página web con un peso que este sitio aceptaría, así que su bucle de combinación está escrito para el navegador. Todo sobre lo que opera ese bucle es del juego: el tablero, la cadena, los sprites, y el primer pedido con el objeto que pide y las monedas que paga, leídos del archivo de contenido que carga la compilación publicada en lugar de retecleados.
La demo de Pivumo reproduce los propios archivos de voz de la app, los publicados. La demo de Swarm Kingdoms habla las propias cadenas del juego, en cualquiera de sus diez idiomas que elijas, y recurre al inglés exactamente igual que la función de localización del propio juego: porque una demo que mostrara una clave en bruto donde el juego muestra inglés estaría mostrando un error que el producto no tiene. Una traducción escrita para este sitio web sería una afirmación peor sobre el producto que las propias palabras del producto.
Un bot las juega todas antes de un despliegue
Una demo que deja de terminar sin avisar es peor que no tener demo, así que cada una se conduce en un navegador real antes de un despliegue: arrancar, interactuar, llegar a un resultado, informar. Se ejecuta en varios idiomas, porque una demo puede romperse en uno y no en los demás.
Se ha equivocado sobre sí mismo dos veces, y las dos veces el arreglo estaba en el arnés. Una vez hizo scroll en la página en lugar de jugar, porque la tecla que pulsaba nunca llegaba al lienzo enfocado. Otra perdió todas las rondas de un juego que debería haber ganado, y la versión sin interfaz de las mismas reglas mostró por qué: no estaba mirando la pantalla. Apuntar la derrota como un test inestable habría sido la salida fácil y habría dejado un bot que no sabe jugar haciendo de sustituto de una visitante que sí.
Lo que esto cuesta
Once demos son un impuesto real sobre añadir un producto, y se paga a propósito. La alternativa es una página de capturas y una afirmación, y un estudio que le pide a un desconocido creerse once afirmaciones sobre software que no puede abrir tiene que ser creído en cada una por separado. Una demo es el único argumento que no necesita ser creído.