Spiel-Link: Spiel als ZIP exportieren #278

Open
opened 2026-09-29 18:26:31 +02:00 by meleki · 0 comments
Owner

Aus #266 (Entscheidung 8: „Not in this step: … export as ZIP.“).

Befund

  • Ein Spiel lässt sich heute nur als Link auf nockal.com veröffentlichen. Die Kopie liegt in data/releases/<token>.json und kommt über GET ?r=releases/{token}, die Spielseite holt Bilder, Fonts und Sounds vom Server.
  • Wer das Spiel woanders hosten will (itch.io, eigene Seite) oder offline spielen möchte, kann das nicht.

Zu bauen (Vorschlag)

  • Im Release-Dialog Download ZIP mit play.html, dem Spiel-Bundle (ohne Editor), der Projekt-JSON und allen Dateien, die das Projekt benutzt. Die Seite liest das Projekt aus der ZIP statt von der API.
  • Die ZIP enthält den gespeicherten Stand, wie Publish.
  • Tests: Unit für die Liste der benötigten Dateien. e2e: ZIP herunterladen, entpacken, play.html über einen lokalen Server öffnen, das Spiel startet und reagiert auf eine Taste.

Offen (mit Vorschlag)

  1. Gebaut am Server oder im Browser? Vorschlag: am Server mit PHPs ZipArchive, weil dort Bundle und Dateien liegen. Ob die Erweiterung im Container web-php-fpm und im CI-Image vorhanden ist, ist noch zu prüfen.
  2. Persistente Variablen: Der Link hat einen eigenen Speicherbereich pro Token. Vorschlag: Die ZIP bekommt einen festen Schlüssel aus Projekt und Exportdatum.
  3. Öffnen per Doppelklick (file://)? Chrome blockiert dort fetch auf lokale Dateien. Vorschlag: nur über einen Webserver. Ein Hinweis dazu liegt als README.txt in der ZIP.
Aus #266 (Entscheidung 8: „Not in this step: … export as ZIP.“). ## Befund - Ein Spiel lässt sich heute nur als Link auf nockal.com veröffentlichen. Die Kopie liegt in `data/releases/<token>.json` und kommt über `GET ?r=releases/{token}`, die Spielseite holt Bilder, Fonts und Sounds vom Server. - Wer das Spiel woanders hosten will (itch.io, eigene Seite) oder offline spielen möchte, kann das nicht. ## Zu bauen (Vorschlag) - Im Release-Dialog **Download ZIP** mit `play.html`, dem Spiel-Bundle (ohne Editor), der Projekt-JSON und allen Dateien, die das Projekt benutzt. Die Seite liest das Projekt aus der ZIP statt von der API. - Die ZIP enthält den gespeicherten Stand, wie Publish. - Tests: Unit für die Liste der benötigten Dateien. e2e: ZIP herunterladen, entpacken, `play.html` über einen lokalen Server öffnen, das Spiel startet und reagiert auf eine Taste. ## Offen (mit Vorschlag) 1. **Gebaut am Server oder im Browser?** Vorschlag: am Server mit PHPs `ZipArchive`, weil dort Bundle und Dateien liegen. Ob die Erweiterung im Container `web-php-fpm` und im CI-Image vorhanden ist, ist noch zu prüfen. 2. **Persistente Variablen:** Der Link hat einen eigenen Speicherbereich pro Token. Vorschlag: Die ZIP bekommt einen festen Schlüssel aus Projekt und Exportdatum. 3. **Öffnen per Doppelklick (`file://`)?** Chrome blockiert dort `fetch` auf lokale Dateien. Vorschlag: nur über einen Webserver. Ein Hinweis dazu liegt als `README.txt` in der ZIP.
meleki added the new label 2026-09-29 18:26:31 +02:00
admin added held-back and removed new labels 2026-09-29 18:30:48 +02:00
admin added this to the Development project 2026-09-29 18:30:52 +02:00
admin moved this to Held back in Development on 2026-09-29 18:30:54 +02:00
admin added the question label 2026-09-29 18:31:46 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#278