Novemade
Alle Beiträge

Die echte Spiel-Engine im Browser ausführen

Warum die ZUPI-Demo keine Nachbildung ist, und was in der Codebasis zutreffen musste, damit das möglich war.

Technische Notiz · · 5 Min. Lesezeit

Nachtrag, 3. Oktober 2026: die hier beschriebene Demo gibt es nicht mehr, und der Grund ist mehr wert als der Artikel war. Alles Folgende ist ein wahrer Bericht über eine echte Ingenieursarbeit — ZUPIs Regelmodul war tatsächlich unverändert übernommen, sein Hash wurde tatsächlich bei jedem Build geprüft, und das Brett war tatsächlich Level 1, wie die App es erzeugt. Dann änderte sich die App. ZUPI: Pulse Shield erschien am 30. September 2026 und ist ein anderes Spiel, also wurde das hier gefeierte Modul das des vorherigen Spiels. Die Prüfung, die den Anspruch absicherte, konnte immer nur beweisen, dass die Kopie zum Repository passte, nie dass das Repository noch das war, was Leute herunterladen. /try/zupi ist jetzt eine ehrliche Nachbildung. Das Argument unten gilt weiterhin für Glow Garden und Veyra; was ihm fehlte, ist, dass eine übernommene Kopie ihre Quelle neu identifiziert braucht, nicht nur neu gehasht.

Jede Produktstudio-Seite steht vor demselben Problem: Ein Screenshot kann Ihnen nicht zeigen, wie sich etwas anfühlt, und das Gefühl ist der größte Teil dessen, was ein Spiel ist. Die übliche Antwort ist eine Nachbildung — eine vereinfachte Browserversion, die dem Produkt nahe genug kommt, um aussagekräftig zu sein. Wir halten das für die schlechteste verfügbare Option. Sie kostet echte Entwicklungsarbeit, sie driftet von der App ab, sobald sich eines von beidem ändert, und das, was ein Besucher spielt, ist konstruktionsbedingt nicht die Sache selbst.

ZUPI erlaubte uns, diese Wahl vollständig zu umgehen, aus Gründen, die nichts mit Marketing zu tun hatten.

Die Grenze war schon da

Die Regeln von ZUPI leben in einem einzigen, in sich geschlossenen Modul ohne Laufzeitabhängigkeiten von Dritten. Es besitzt die Physik, die Kollisionsbehandlung, die Levelerzeugung, die Schwierigkeitskurve, die Punktewertung und die Drei-Sekunden-Stillstandsregel. Es weiß nicht, was ein Canvas ist. Es stellt eine Klasse bereit, die Sie mit einer Levelnummer erzeugen und mit einer Delta-Zeit weiterschalten, und es sagt Ihnen, wo alles ist.

Diese Grenze wurde nicht für das Web gezogen. Sie wurde gezogen, damit das Spiel ohne Renderer getestet werden kann und damit dieselben Regeln einen Android- und einen iOS-Build tragen können, ohne zweimal geschrieben zu werden. Es ergibt sich einfach, dass ein Modul, das von einem Test-Harness angesteuert werden kann, auch von einem Browser angesteuert werden kann.

Was wir tatsächlich getan haben

  • Das Regelmodul unverändert übernommen, mit seiner Herkunft daneben festgehalten. Keine Portierung, keine Neufassung — dieselbe Datei.
  • Einen Renderer für das Web in der eigenen visuellen Sprache von NOVEMADE geschrieben, anstatt die Oberfläche der App zu kopieren.
  • Ihn aus einer Schleife mit festem Zeitschritt angesteuert, damit die Simulation unabhängig von der Bildwiederholrate identisch voranschreitet.
  • Die Levelerzeugung vollständig in Ruhe gelassen, sodass das Brett Level 1 ist, wie die App es erzeugt.

Der letzte Punkt ist der, auf den es ankommt. Levels leiten sich aus einem deterministischen Seed pro Level ab, also ist dies kein Brett, das Level 1 gleicht — es ist Level 1. Es hier zu schaffen bedeutet dasselbe, wie es in der App zu schaffen.

Ehrlichkeit als Oberflächenproblem

Weil „die echte Engine“ und „eine Nachbildung“ wirklich verschiedene Aussagen sind, trägt unser Demo-Katalog bei jedem Eintrag eine Angabe zur Werkgetreue, und sie ist im Inhaltsmodell ein Pflichtfeld und keine Annehmlichkeit. Die Demos, die noch nicht existieren, sagen, was sie sein werden, wenn es sie gibt — einschließlich, dass die von Didi eine Nachbildung sein muss, weil ihre Logik an die native UI-Schicht gebunden ist und es keine Engine-Grenze gibt, die man offenlegen könnte.

Was man mitnehmen sollte

Die wiederverwendbare Lehre handelt nicht von Web-Demos. Sie handelt davon, dass „könnte jemand anderes das ohne unsere Oberfläche ansteuern?“ eine Frage ist, die es sich lohnt zu stellen, während ein Produkt gebaut wird, und nicht danach. Wenn die Antwort ja ist, bekommen Sie Testbarkeit, Portierbarkeit und — wie sich zeigt — eine Demo, die Sie nicht zweimal bauen mussten.

Das Produkt

ZUPI

Ein Einfinger-Arcade-Spiel darüber, niemals stillzustehen — 600 Level, alle offline.