2 Punkte von GN⁺ 2025-01-14 | 1 Kommentare | Auf WhatsApp teilen
  • DoomPDF ist eine Umsetzung, die Doom (1993) innerhalb eines PDFs ausführbar macht; der Spielbildschirm und die Bedienhinweise sind im PDF-Dokument enthalten
  • Die Steuerung basiert auf WASD für die Bewegung; q entspricht esc, z enter, e use und space fire
  • Mit shift+WASD kann man sprinten, mit m die Karte öffnen und mit 1-7 Waffen auswählen
  • Auf einer separaten Webseite lassen sich custom WAD files hochladen, und der Quellcode ist in einem GitHub-Repository veröffentlicht
  • Die Ausführungsumgebung ist auf Chromium-basierte Browser beschränkt, daher ist die Funktion in anderen PDF-Viewern eher nicht zu erwarten

Doom, das innerhalb eines PDFs läuft

  • DoomPDF ist eine Doom-(1993)-Ausführung, die als PDF-Dokument bereitgestellt wird
  • Im Dokument sind Hinweise zur Tastatursteuerung und Anzeigen für Richtungseingaben enthalten
  • Die Laufzeitumgebung ist auf Chromium-basierte Browser beschränkt

Steuerung und Erweiterungsdateien

  • Grundlegende Steuerung
    • WASD: Bewegung
    • q: esc
    • z: enter
    • e: use
    • space: fire
  • Zusätzliche Steuerung
    • shift+WASD: sprint
    • m: map
    • 1-7: weapons
  • custom WAD files hochladen: WAD-Dateien können auf einer separaten Seite hochgeladen werden
  • Source code: Repository mit dem Quellcode von DoomPDF

1 Kommentare

 
GN⁺ 2025-01-14
Meinungen auf Hacker News
  • Ich bin derjenige, der „PDF Tetris“ gemacht hat. Großartige Arbeit! Ich hatte zur gleichen Zeit dieselbe Idee und habe auch meine Version von PDF Doom
    Source: https://github.com/thomasRinsma/pdfdoom
    Spielbar: https://th0mas.nl/downloads/doom.pdf
    Trotzdem ist diese Implementierung in vielerlei Hinsicht sauberer
    • Es erscheint „Dieses Dokument hat ein Problem“, und ich weiß nicht, ob das Problem ich bin oder das Dokument
  • die eingeschränkte JS-Runtime der PDF-Engine
    Die Menschheit ist zu weit gegangen

    • Ernsthaft gesagt: Gibt es ein anderes Format, das die folgenden Bedingungen erfüllt? Es lässt sich einfach und kostenlos per E-Mail oder Cloud Drive teilen, mitsamt Assets, Bildern und Fonts; Formulareingaben und Speicherung können direkt in der Datei liegen, ohne HTTP-Übertragung; im Dokument eingebettete kryptografische Signaturen können von Endnutzern einfach und sicher geprüft werden; und die Drucktreue ist perfekt
      In der EU ist das besonders wichtig, weil elektronische Signaturen nicht nach DocuSign-Art „ich schwöre, ich bin John Smith“ funktionieren, sondern kryptografisch basiert sind. Man beschwert sich ständig über PDF, aber tatsächlich gibt es kein Ersatzformat. Organisationen wie W3C / WHATWG könnten auf Basis von Webtechnologien etwas bauen, aber das gibt es noch nicht, und EPUB löst nur den engen Anwendungsfall der E-Book-Verteilung, nicht aber „geschäftliche“ Zwecke
    • Ich verstehe nicht ganz, warum man so etwas sagt. Eingebettetes Scripting ist für viele Dinge wie Formularvalidierung nützlich, und ein hinreichend komplexes Validierungssystem wird am Ende Turing-vollständig
      Dann ist es besser, JavaScript zu verwenden, statt eine eigene Spezial-Sprache zu bauen; und wenn man JavaScript, Eingaben und eine Möglichkeit hat, ein grafisches Pixelraster zu aktualisieren, ist man auf dem Niveau, Doom ausführen zu können. Dass Rechenleistung und Programmierbarkeit so billig geworden sind, dass sie sogar in den gewöhnlichsten Apps weit verbreitet sind, finde ich eher großartig als schrecklich
    • Nur so kommen wir voran
  • Die Büchse der Pandora wurde geöffnet
    Der nächste Schritt ist, Bellards JSLinux (https://bellard.org/jslinux/) hineinzupacken und ein vollständiges Betriebssystem samt Entwicklungsumgebung und Office-Suite in ein PDF zu stecken
  • Portable Doom Format
    • Nur möglich, wenn es in Chrome läuft
    • Da es nur in einer einzigen PDF-Engine funktioniert, ist es nicht besonders portable
  • Eine meiner prägenden Erfahrungen als Informatik-Erstsemester war, dass ich versehentlich ein PDF mit Emacs öffnete und statt seltsamer Binärdaten ein tatsächlich gerendertes PDF sah
    Da fragte ich mich, was da im Hintergrund sonst noch alles passiert, ohne dass ich es weiß. Leider konnte ich Doom in einem PDF innerhalb von Emacs nicht zum Laufen bringen. Wahrscheinlich wäre es einfacher, eine ähnliche Technik wie hier mit Emacs-Bordmitteln und ASCII-Zeichen neu umzusetzen, oder eine ähnliche Technik wie im Bad-Apple-vim-Beitrag[1] zu verwenden, der auf Platz 1 stand, als dieser Beitrag auf Platz 2 war
    [1]: https://news.ycombinator.com/item?id=42674116
    • Vor ein paar Wochen habe ich versehentlich ein PDF mit less geöffnet und dabei pdftotext sowie diverse Software kennengelernt, mit der ein Pager bei passender Konfiguration beliebige Dokumente anzeigen kann
      Das erinnerte mich daran, wie moderne Linux-Distributionen entscheiden, wie Dateien ausgeführt werden. Nachdem ich das vor ein paar Jahren gelernt hatte, habe ich viel zu lange versucht, meine Maschine dazu zu bringen, .exe-Dateien mit wine oder mono auszuführen. Eine interessante Übung, aber es war den Aufwand nicht wert
  • Man muss auf den Bereich klicken, in dem „type here for keyboard controls“ steht
    Zum Starten mehrmals z drücken, bewegen mit w/a/s/d, benutzen mit e, schießen mit Space, z ist Enter
  • Unter den Top 4 auf der HN-Startseite sind sowohl Doom als auch Bad Apple. Die Woche fängt gut an
  • Cool! Als Nächstes kommt ein PDF-Reader, der in Doom läuft
    • Das ist ein bisschen geschummelt. PDF-Reader haben so viele Remote-Code-Execution-Schwachstellen, dass es am Ende wie /XObject <> /Invoke RCE aussehen wird
    • Eine endlose Kette aus PDF-Reader und Doom
  • Da PDF DEFLATE-Kompression unterstützt, sollte sich die Größe des PDF-Dokuments ziemlich reduzieren lassen
    • Stimmt. Das wäre gut, um PDFs schneller übers Netz zu übertragen und kleinere Dateien im Cache abzulegen
      Ob man es so klein wie die Datei DOOM1.WAD bekommen kann? Die ist 4 MB groß
  • Das ist ziemlich sauber, und ich finde es kreativ, weil es auch praktische Anwendungen zu haben scheint, etwa bei der Jobsuche direkt im Lebenslauf Engineering-Arbeiten zu zeigen
    Aber gibt es noch andere Einsatzmöglichkeiten für so eine Technik? Könnte man zum Beispiel Apps als PDF auf stark eingeschränkten Geräten wie einem iPhone oder auf verwalteten Geräten wie PlayStation, Xbox oder Kiosken verteilen? Als ich mir Adobe Reader angesehen habe, wirkte es so, als könne man auch Filme in PDFs einbetten und die Menüleiste anpassen. Es scheint ein flexibleres Format zu sein, als man denkt