Novemade
Todos os textos

Uma demonstração no navegador para cada produto, e uma escada de quatro degraus que a mantém honesta

Onze produtos, onze demonstrações, e a parte incómoda: duas delas executam o próprio código do produto, e dizer quais duas é o ponto todo.

Nota técnica · · 7 min de leitura

Cada produto deste catálogo tem algo que pode executar neste navegador, sem instalar nada e sem conta. É a frase mais forte deste sítio e também a que mais facilmente deixaria de ser verdade sem ninguém notar, porque acrescentar um produto leva uma tarde e construir a sua demonstração não. Por isso não é uma frase que alguém mantenha à mão: um teste conta os produtos, conta as demonstrações construídas e faz falhar a compilação se um produto chegar sem uma. Falhou três vezes na semana em que aterraram os últimos três produtos, antes de passar.

A parte difícil nunca foi construí-las. Foi rotulá-las.

A palavra «jogável» carregava duas afirmações diferentes

O primeiro conjunto de rótulos era Jogável, Protótipo interativo e Demonstração guiada. Isso parece uma escala de interatividade, e é — razão exata por que estava errado. A pergunta que quem visita faz de facto não é «posso clicar nisto». É «alguma coisa disto é a real». Jogável cobria tanto as demonstrações que executam o próprio código do produto como aquela que reproduz as suas gravações áudio publicadas, e não são de modo algum a mesma afirmação.

Há agora quatro degraus, e cada demonstração diz em qual está:

  • Código real do produto — o próprio código do produto, incorporado sem alterações, com o SHA-256 da cópia registado ao lado.
  • Materiais reais do produto — o material publicado do próprio produto: gravações, sprites, ficheiros de conteúdo, a mover um ciclo escrito aqui.
  • Recriação interativa — uma mecânica reconstruída aqui, a usar o conteúdo real do produto onde quer que exista.
  • Demonstração guiada — um percurso. Nada é calculado, e di-lo.

«Código real do produto» significa algo precisamente porque «Demonstração guiada» é usada com honestidade um produto adiante. Hoje há duas demonstrações no degrau de cima. Esse número é derivado do catálogo de demonstrações em vez de escrito numa frase, pela mesma razão que todos os outros números daqui.

O que uma impressão digital prova de facto

Uma demonstração do degrau de cima incorpora o código do produto neste repositório sem o alterar e registra a sua impressão. Um teste recalcula a impressão em cada compilação. Se alguém editar a cópia incorporada para que uma demonstração se porte melhor num telemóvel, a compilação falha — exatamente a proteção para que foi construída.

A 30 de setembro, o ZUPI publicou um jogo novo na App Store. Um jogo diferente: um Pulse Shield seguro sobre um Pulse Core, ameaças blindadas, um Warden a cada cinco níveis. O jogo cujo motor estava incorporado aqui era o anterior — um balão vermelho debaixo de um guarda-chuva — e a verificação da impressão passou em todas as compilações durante esse tempo, porque a cópia continuava a ser uma cópia fiel do repositório de onde veio.

Uma impressão prova que uma cópia é fiel ao repositório de onde veio. Não pode provar que esse repositório continua a ser o produto.

Durante três dias este sítio executou o jogo errado debaixo de uma frase que dizia «o mesmo motor que as compilações iOS e Android usam». Nada estava quebrado. Todas as verificações estavam verdes. O motor incorporado está apagado e a demonstração do ZUPI é uma Recriação interativa, escrita a partir da ficha da loja e rotulada como tal — uma afirmação mais fraca, e verdadeira.

O degrau que é mais interessante do que o de cima

O Forgotten Town é um jogo em Flutter e Flame. Uma compilação dele não cabe numa página web com um peso que este sítio aceitasse, por isso o seu ciclo de fusão está escrito para o navegador. Tudo sobre o que esse ciclo opera é do jogo: o tabuleiro, a cadeia, os sprites, e a primeira encomenda com o objeto que pede e as moedas que paga, lidos do ficheiro de conteúdo que a compilação publicada carrega em vez de reescritos.

A demonstração do Pivumo reproduz os próprios ficheiros de voz da aplicação, os publicados. A demonstração do Swarm Kingdoms fala as próprias cadeias do jogo, em qualquer das suas dez línguas que escolha, e recorre ao inglês exatamente como a função de localização do próprio jogo faz — porque uma demonstração que mostrasse uma chave em bruto onde o jogo mostra inglês estaria a mostrar um erro que o produto não tem. Uma tradução escrita para este sítio seria uma afirmação pior sobre o produto do que as próprias palavras do produto.

Um robô joga-as todas antes de um lançamento

Uma demonstração que deixa de terminar em silêncio é pior do que nenhuma, por isso cada uma é conduzida num navegador real antes de uma implantação: arrancar, interagir, chegar a um resultado, reportar. Corre em várias línguas, porque uma demonstração pode quebrar numa e não nas outras.

Enganou-se sobre si mesmo duas vezes, e nas duas a correção estava no arnês. Uma vez deslocou a página em vez de jogar, porque a tecla que premia nunca chegava à tela com o foco. Outra perdeu todas as rondas de um jogo que devia ter ganho, e a versão sem ecrã das mesmas regras mostrou porquê: não estava a olhar para o ecrã. Dar a derrota por um teste instável teria sido a saída fácil e deixaria um robô que não sabe jogar a substituir uma visitante que sabe.

Quanto isto custa

Onze demonstrações são um imposto real sobre acrescentar um produto, e é pago de propósito. A alternativa é uma página de capturas e uma afirmação; e um estúdio que pede a uma desconhecida que acredite em onze afirmações sobre software que não pode abrir tem de ser acreditado em cada uma em separado. Uma demonstração é o único argumento que não precisa de ser acreditado.