Kann es Doom ausführen? Meine Reise durch die Hölle, um herauszufinden, warum die Antwort immer „Ja“ lautet.
Mit seiner jahrzehntelangen Geschichte ist das Meme „Can it run Doom“ einer der ältesten und beliebtesten Gags im Internet. Aber daraus ist weit mehr geworden. Es ist ein Übergangsritus für angehende Entwickler.
Machen Sie einen Spaziergang durch r/itrunsdoom , was in letzter Zeit mein Lieblings-Subreddit geworden ist, und Sie werden sehen, wie die Fackel bis heute tapfer weitergeführt wird. Seit dem It Runs Doom! Während die Tumblr-Seite vor etwa einem Jahr aufgehört hat, Updates zu veröffentlichen, ist die Reddit-Community auf über 100.000 Mitglieder angewachsen, die posten und auf die Portierung von Doom auf nahezu alles reagieren. Taschenrechner, Kreditkartenterminals – klar. Aber auch der Nintendo Alarmo , ein RS Media Robot aus dem Jahr 2006 , und ein Pioneer DJ-Multiplayer . Und das ist nur aus den letzten paar Monaten.
Je weiter ich mich auf seltsame Doom -Portierungen einließ, desto mehr begann ich mich zu fragen, woher die Idee kam – und, was noch wichtiger ist, warum sie überhaupt möglich ist. Wessen Idee war von Anfang an absurd? Um die Geschichte herauszufinden, müsste ich in den höllischen Annalen der Internetgeschichte der 1990er Jahre stöbern und mit einigen der wildäugigen Hacker sprechen, die die Tradition heute am Leben halten.
Warum Untergang?
Unsere Geschichte beginnt nicht im Jahr 1993, als Doom veröffentlicht wurde. Es beginnt vier Jahre später im Jahr 1997. Am 23. Dezember desselben Jahres, zwei Tage vor Weihnachten, veröffentlichte id Software den Quellcode für Doom. Mastermind John Carmack, der den ursprünglichen Code selbst geschrieben hatte, verfasste einen Brief an die Community, die noch immer auf der GitHub-Seite für Doom lebt. Ja, auch heute noch, selbst nachdem ein riesiger Konzern wie Zenimax id Software geschluckt hat (Zenimax wurde damals von Microsoft geschluckt), existiert der Doom -Quellcode immer noch.
„Ich weiß nicht genau, wie viele Leute damit spielen werden, aber wenn bedeutende Projekte durchgeführt werden, wäre es cool, ein gewisses Maß an gemeinschaftlicher Zusammenarbeit zu sehen“, schrieb Carmack in dem Brief. „Ich weiß, dass es sich bei den meisten frühen Projekten um grobe Hacks handeln wird, die isoliert durchgeführt werden, aber ich würde mich sehr über eine koordinierte Nettoveröffentlichung einer verbesserten, abwärtskompatiblen Version von Doom auf mehreren Plattformen im nächsten Jahr freuen.“ Carmack lieferte den Lesern sogar einige potenzielle Projektideen.
Die Community begann sofort mit der Portierung von Doom . Das meine ich wörtlich. Der erste Quellport von Doom, DOSDoom, wurde am selben Tag veröffentlicht, an dem der Quellcode veröffentlicht wurde. Sie können es noch heute herunterladen . Der ursprüngliche Quellcode, den id Software veröffentlichte, war nur für die Linux-Version von Doom. Der DOS-Code war aufgrund einer urheberrechtlich geschützten Soundbibliothek nicht verfügbar – „Wow, war das ein Fehler“, schrieb Carmack in seinem Brief. „Ich schreibe jetzt meinen eigenen Soundcode.“
Von dort aus gibt es eine äußerst dichte und komplizierte Genealogie von Doom -Quellports, die über Jahrzehnte hinweg weitergeführt wird. Erst letztes Jahr tauchte ein Fork eines anderen Quellports namens PrBoomX auf. Ehrlich gesagt würde diese Genealogie den Rahmen dieses Artikels sprengen. Um es allein abzudecken, wäre ein Artikel erforderlich, der um Größenordnungen größer ist, als dieser ohnehin schon ist. Ich wollte etwas über die seltsamen Dinge wissen.
Zum Glück dauerte es nicht lange, bis die Dinge seltsam wurden. Die früheste seltsame Version von Doom, die ich finden konnte, war für den Grafikrechner TI-82 von Texas Instruments und wurde am 12. April 1998 auf ticalc.org hochgeladen. Es ist in Basic geschrieben, es handelt sich also weniger um eine Portierung als vielmehr um einen minderwertigen Klon. Aber schon vor 26 Jahren gab es Interesse daran, Doom auf Plattformen zum Laufen zu bringen, für die es nicht gedacht war.
Für das nächste Jahrzehnt oder so gibt es im Internet nicht mehr viel zu sehen, wie Doom auf diesen seltsamen Plattformen läuft – ich meine, YouTube ging erst 2005 online. Es gab wahrscheinlich viele „grobe Hacks, die isoliert durchgeführt wurden, “, wie Carmack jedoch vorhersagte. Im Jahr 1998 wurden mehrere Kameras mit dem DigitaOS-Betriebssystem auf den Markt gebracht, und wie der YouTube-Kanal LGR vor einigen Jahren zeigte, kann man Doom auf diesen Kameras ausführen. Denken Sie an DigitaOS. Wir werden im nächsten Abschnitt darauf zurückkommen.
Hat jemand 1998 tatsächlich Doom auf einer dieser Kameras zum Laufen gebracht? Nicht nach dem, was ich finden konnte, aber ich vermute, dass es sich um eine Antwort handelt, die in der Zeit – oder zumindest im Internet – verloren gegangen ist. Aber schon in den frühen Tagen der Veröffentlichung des Quellcodes und der anschließenden Portierung auf verschiedene Plattformen ist klar, dass zumindest einige Experimente stattgefunden haben. Einer der frühesten Hinweise, die ich auf eine richtige Portierung von Doom finden konnte, war ein Doomworld-Forumsbeitrag aus dem Jahr 2007 , in dem der Autor auf ein (inzwischen gelöschtes) Video auf YouTube verweist, in dem das Spiel auf einem TI-83-Rechner läuft.
Im Oktober 2013 erschien das It Runs Doom! Die Tumblr-Seite ging online und nachdem der Autor einige grundlegende Ports des Spiels vorgeführt hatte, teilte er ein Video, in dem Doom auf einem Klavier gespielt wird .
Nach dem Durchsuchen von Tumblr, Reddit, YouTube und einfach dem alten Google tauchte jedoch immer wieder ein Video auf. Es ist LGRs Video von Doom auf dem TI-83 . Das 2017 veröffentlichte Video hat über 7 Millionen Aufrufe gesammelt und ist mit Abstand die beliebteste Quelle für Doom auf einem unkonventionellen Gerät, die ich im Rahmen meiner Recherche finden konnte. Die Idee, dass Doom auf allem laufen kann, geht auf die Erstveröffentlichung des Spiels zurück, und es ist eine Idee, mit der Enthusiasten noch Jahre danach gespielt haben. Die moderne Besessenheit, Doom auf einer Vielzahl seltsamer Geräte laufen zu lassen, scheint jedoch zumindest teilweise auf das Video von LGR zu diesem Thema zurückzuführen zu sein.
Doom ist eine Ikone und das ist zweifellos ein Grund für die Besessenheit, es zu portieren. Aber es gibt auch eine Mischung aus verschiedenen Faktoren innerhalb des Spiels selbst, die es zu einem idealen Kandidaten für diese Art von Hacking-Projekten für Enthusiasten machen.
Der äußerst tragbare Dämonentöter
Bevor wir auf einige technische Details eingehen, die Doom so portabel machen, wäre nichts davon passiert, wenn Doom nicht ein solch zertifizierter kultureller Prüfstein gewesen wäre. Zu sagen, dass Doom wahnsinnig beliebt war, ist eine Untertreibung. Valves Gründer Gabe Newell – der bei der Veröffentlichung von Doom bei Microsoft arbeitete – schätzte, dass Doom 1993 auf mehr Computern als Windows installiert war. Auch wenn das übertrieben ist, lässt sich nicht leugnen, dass „Doom“ eine Sensation war.
Nur wenige Monate nach der Veröffentlichung von „Doom“ im Jahr 1994 erwarb Universal Pictures die Rechte, einen Film zu drehen. Newell bot an, Doom kostenlos auf Windows zu portieren. Intel hat die Installation von Doom auf Arbeitscomputern verboten. In einer Pressemitteilung zur Ankündigung des Spiels schrieb id Software: „Wir gehen davon aus, dass [ Doom ] die häufigste Ursache für verminderte Produktivität in Unternehmen auf der ganzen Welt sein wird.“
„Viele begannen sich zu fragen, wie Identität Unternehmen wie Microsoft oder IBM überflüssig erscheinen lassen könnte. „Ich hatte das Shareware-Phänomen aufgegriffen und es in ein Suchtrezept verwandelt“, heißt es in David Kushners „Masters of Doom“. „ Doom war so fesselnd, dass die Leute einfach die volle Dosis haben mussten.“ Einige nannten es „Heroinware“. Das Forbes-Magazin veröffentlichte einen überschwänglichen Artikel mit dem Titel „Profits from the Underground“ darüber, wie Identität Unternehmen wie Microsoft tatsächlich obsolet machte. „Das in Privatbesitz befindliche Unternehmen id Software veröffentlicht keine Finanzdaten“, hieß es darin, „aber nach allem, was ich über die Gewinnspanne des Unternehmens sagen kann, lässt es Microsoft wie ein zweitklassiges Zementunternehmen aussehen.“
Popularität war vielleicht das Spiel, das das Lauffeuer auslöste, aber damit Doom auf so vielen verschiedenen Plattformen laufen konnte, brauchte es drei Schlüsselelemente. Erstens musste der Quellcode frei verfügbar sein. Überprüfen. Carmack entschied sich, diesen Schritt selbst zu übernehmen. Schließlich könnten Sie das Original von Super Mario Bros auf den meisten modernen elektronischen Geräten ausführen, aber viel Glück beim Finden des Quellcodes.
Aber hier sind die beiden Punkte, die etwas näher erläutert werden müssen. Quellports müssen für nahezu jede gewünschte Plattform verfügbar sein, und schließlich muss das Spiel so geschrieben sein, dass es mit extrem geringen Software- und Hardwareanforderungen läuft, selbst nach den Standards der späten 1990er Jahre.
Es gibt einige andere Spiele, die einige dieser Elemente enthalten. Aber Doom trifft in Kombination mit seiner weltbewegenden Popularität alle drei. Und wie mir Entwickler Sick.Codes erklärte, wurde Doom „zu einem der am häufigsten portierten Spiele der Welt, wo jemand es irgendwann sogar für die zufälligsten Architekturen kompiliert hat.“
Lassen Sie mich es demonstrieren.
Hier ist ein Link zu einer Version von Doom dass Sie in Ihrem Browser spielen können. Nichts Besonderes, oder? Es gibt Dutzende Möglichkeiten, Doom in Ihrem Browser zu spielen, aber wenn Sie in die Adressleiste schauen, werden Sie etwas Interessantes finden. Die Version von Doom , die Sie spielen können, ist eine SVG-Datei. Es handelt sich um eine Vektordatei – etwas, das Sie in Photoshop laden würden. Es sollten statische Bilder sein und auf jeden Fall Bilder, mit denen man nicht interagieren kann. Aber hier läuft Doom in einer SVG-Datei, die Sie in Ihrem Browser abspielen können.
Eine weitere wichtige Tatsache ist, dass PCs im Jahr 1993 nicht die ideale Plattform zum Spielen waren, als 3D-Grafikbeschleuniger teuer und schwer zu bekommen waren und die meisten dieser Chips stattdessen in Arcade-Automaten und Heimkonsolen verwendet wurden. Wenn id Software ein Spiel entwickeln wollte, und vor allem, wenn das Unternehmen es wie zuvor bei Commander Keen und Wolfenstein als Shareware vertreiben wollte, musste es auf fast allem laufen.
Gzalo ist Teil der argentinischen Freiwilligengruppe Cybercirujas, die PC-Teile als Spenden entgegennimmt und sie überholt. Der Entwickler konnte Doom auf einem Verifone VX620-Zahlungsterminal zum Laufen bringen, das er im Papierkorb gefunden hatte.
„[Doom] benötigt lediglich einen Framebuffer (Speicherbereich, der dem Bildschirm zugeordnet ist), um Bilder auszugeben, und einige sehr grundlegende Eingaben. Was die Software angeht, muss man lediglich in der Lage sein, C für die Zielarchitektur zu kompilieren, was fast immer eine der ersten Voraussetzungen ist, die man braucht, um Programme für 32-Bit-Prozessoren zu schreiben“, erklärt mir Entwickler Gzalo. „Um andere neuere Spiele zu portieren, braucht man oft ein Betriebssystem (normalerweise so etwas wie Linux/Posix) und eine Möglichkeit, OpenGL zu unterstützen, was machbar ist, aber mehr Arbeit erfordert.“
Gzalo erklärte weiter, wie wenig Doom an der Softwarefront benötigte, um zu funktionieren.
„Die Software des Terminals wird nicht verändert. Ich habe jemanden in Brasilien gefunden, der vor einem Jahrzehnt mit diesem Terminal gearbeitet hat und immer noch über das Entwicklungszertifikat und eine Möglichkeit verfügt, eine Anwendung zu signieren, sodass darauf gültiger signierter Code ausgeführt wird“, sagte mir der Entwickler.
Es ist wichtig, minimale Softwareanforderungen zu haben, aber die Hardwareseite ist genauso wichtig. Es überrascht nicht, dass Doom nicht viel Hardware benötigte, um zu funktionieren. Die ursprünglichen Systemanforderungen für das Spiel sahen eine 386-CPU mit mindestens 25 MHz und 4 MB RAM vor. In gewisser Hinsicht war der 80386 der erste x86-32-Bit-Prozessor, den Intel jemals herausgebracht hat, und er tauchte erstmals 1986 in PCs auf – sieben Jahre vor der Veröffentlichung von Doom . Es war Absicht, Doom auf nahezu allem laufen zu lassen.
Carmack selbst sagte, dass es irgendwann sogar eine Version gab, die ohne Monitor laufen und einfach Screenshots speichern konnte.
Ziemlich nah dran. Der Code war äußerst portabel – ich hatte einmal eine Version, die sogar Headless laufen und nur Screenshots speichern konnte.
– John Carmack (@ID_AA_Carmack) 3. März 2022
Die grundlegenden Software- und Hardwareanforderungen für Doom bringen uns zurück zu DigitaOS. Das Betriebssystem ist in C geschrieben und ermöglichte die Entwicklung und Veröffentlichung von Drittanbieter-Apps für die Plattform. Die ersten beiden mit DigitaOS veröffentlichten Kameras – die Kodak DC220 und DC260 – waren beide mit PowerPC 800-Prozessoren ausgestattet . Meiner Schätzung nach haben sie den MPC860 verwendet, der bis zu 80 MHz erreichen kann. Laut LGR erreicht der Chip im DC260 zumindest 66 MHz.
Und schon sind die Voraussetzungen für die Ausführung von Doom erfüllt. Wir haben eine viel leistungsfähigere CPU als der 386 mit 25 MHz, ein wenig Speicher und eine Plattform, die in der Lage ist, in C geschriebenen Code zu kompilieren. Nur damit wir den Zeitplan nicht vermasseln, das war 1998 möglich. Das gab es Nichts, was später kam, ermöglichte es Doom plötzlich, auf einer Kodak DC260 zu laufen. Die Bausteine waren von Anfang an alle da.
Das liegt jedoch nicht nur daran, dass Doom ein perfektes Programm ist. Es ist sehr flexibel und lässt sich gut auf moderne Geräte übertragen, aber ein wesentlicher Teil dieser Geschichte beruht auf der Tatsache, dass der Quellcode von jedermann kostenlos bearbeitet werden kann. In den letzten fast drei Jahrzehnten sind Quellports von Doom für nahezu jede erdenkliche Plattform aufgetaucht. Wenn Sie Doom mit dem ursprünglichen Quellcode nicht zum Laufen bringen können, können Sie es mit ziemlicher Sicherheit mit einem der vielen Quellports zum Laufen bringen.
Ich weiß, dass Sie gewartet haben – sprechen wir über die SVG. Doom kann innerhalb einer Vektordatei ausgeführt werden, da SVGs JavaScript unterstützen. Wie der Entwickler des Doom SVG sagt , führt die Vektordatei einfach js-dos aus – einen Open-Source-DOS-Emulator auf JavaScript-Basis – und verwendet dann einen der verschiedenen DOS-Quellports von Doom. Und obwohl es wie eine Art Programmierzauberei erscheinen mag, bezeichnet der Entwickler es als nicht mehr als „eine unterhaltsame Nutzung von ein paar Stunden“. Das sagt alles.
Wie Doom zu einem Minimum Viable Hack wurde
Im Jahr 2022 zeigte Sick.Codes Doom auf einem John-Deere-Traktordisplay. Es wurde auf der Def Con 2022 vorgestellt, einer jährlichen Cybersicherheits- und Hacking-Konferenz, die seit 1993 in Las Vegas stattfindet – ironischerweise im selben Jahr, in dem Doom veröffentlicht wurde. Der Hafen brachte Doom nicht nur zum Laufen, sondern verfügte auch über einen Traktor anstelle von Waffen, sodass man Dämonen buchstäblich niedermähen konnte. Es ist ein lustiger kleiner Port, aber Sick.Codes sagt, dass es Monate gedauert hat, bis er funktionierte. Warum der ganze Aufwand?
Wenn Sie mit dem Recht auf Reparatur von Uhrwerken vertraut sind, haben Sie hier wahrscheinlich bereits die Zusammenhänge verstanden. John Deere-Geräte, die von Deere & Company entwickelt wurden, standen im Mittelpunkt des Rechts auf Reparatur , und das nicht in einem positiven Licht. Das Unternehmen hatte wegen seiner gesperrten Software einen jahrelangen Rechtsstreit mit Landwirten. Ohne die direkte Beteiligung von Deere ist es nahezu unmöglich, die Ausrüstung zu reparieren. Doom auf einem John-Deere-Traktordisplay zum Laufen zu bringen, ist mehr als nur ein lustiger Trick. Es ist ein Proof of Concept.
„Das Ausführen von Doom auf dem Flaggschiff-Landmaschinendisplay von John Deere, für dessen Entwicklung über mehrere Jahre Tausende von Stunden aufgewendet wurden, zeigt, dass es mir gelungen ist, das Gerät vollständig und vollständig zu hacken“, sagte mir Sick.Codes. „Wenn ich Doom auf ihren Flaggschiff-Geräten ausführen kann, kann ich jede andere nicht autorisierte Änderung am Gerät vornehmen. Ich kann es mauern. Ich kann es verbessern. Ich kann Software von Drittanbietern installieren. Ich kann Funktionen löschen oder Funktionen installieren, die Geld kosten sollen.“
Doom auf einem John-Deere-Traktor-Display (gejailbreakt/gerootet) unter @defcon pic.twitter.com/ih0QUTGNuS spielen
– Sick.Codes (@sickcodes) 14. August 2022
In diesem Fall ist Doom der Beweis für eine tiefergehende, wichtigere Arbeit. In einem Bericht von Wired , der die Geschichte vor zwei Jahren behandelte, teilte der Entwickler mit, dass er aufgrund des Root-Zugriffs auf 1,5 GB der auf dem Computer gespeicherten Protokolle zugreifen konnte. Diese Protokolle sind nur für zertifizierte John Deere-Reparaturtechniker bestimmt. Mit ihnen können Landwirte oder externe Experten John Deere-Geräte diagnostizieren und möglicherweise reparieren, auch ohne die direkte Beteiligung von Deere & Company.
„Für die Ausführung von Doom ist eine kleine Anzahl von Bibliotheken erforderlich, nämlich SDL2 für die Grafik. Die Möglichkeit, das Spiel auf einem Gerät auszuführen, auf dem Doom nicht ausgeführt werden soll, beweist, dass Sie auf dem Gerät, an dem Sie arbeiten, beliebige Software ausführen können.“ „Sick.Codes hat es mir erzählt.
Es macht Spaß, Doom auf einem Traktordisplay laufen zu sehen, und ich möchte mir die Freude daran auf keinen Fall nehmen. Es ist jedoch wichtig, hier den größeren Kontext hervorzuheben. Sie können versuchen, andere Software auf einem solchen Gerät zu installieren, aber Doom ist ein idealer Kandidat, um diese Art von Hack vorzuführen. Es ist visuell, interaktiv und ein Programm, das für einen ganz bestimmten Zweck entwickelt wurde. Es zieht auch viel Aufmerksamkeit auf sich – glauben Sie, dass wir Nachrichten über eine Befehlszeilenschnittstelle sehen würden, die auf dem Display eines John Deere-Traktors läuft? Wahrscheinlich nicht.
Auch wenn ich den Arbeitsaufwand, der in dieses Programm gesteckt wurde, nicht herunterspielen möchte – denken Sie daran, es hat Monate gedauert, bis dieser Exploit funktioniert hat –, ist Doom auch ein relativ einfach zu präsentierendes Programm. Sick.Codes erzählt mir, dass sie für die Demonstration Chocolate Doom verwendet haben, einen Quellport, der für die Ausführung auf möglichst vielen verschiedenen Hardware- und Softwarekonfigurationen ausgelegt ist. Ich meine, es gibt sogar eine Seite im Chocolate Doom-Wiki, die sich speziell mit der Portabilität des Quellports beschäftigt . Wenn wir nicht den ursprünglichen Quellcode hätten und dieser Quellcode nicht so oft portiert würde, hätten wir diese Demonstration wahrscheinlich nicht. Es wäre sicherlich immer noch möglich, aber wer sagt, dass es tatsächlich passiert wäre?
Willkommen in der Hölle
Doom ist eines der einflussreichsten Spiele aller Zeiten, und das liegt zu einem großen Teil an den Umständen, unter denen es entstanden ist. Hochoptimierter Code für den PC traf auf das Shareware-Modell, um dem Spiel große Popularität zu verschaffen, und seine Modding-Community wuchs, als der Quellcode im Jahr 1997 veröffentlicht wurde. Heute verfügen wir mit Doom nicht nur über eine der größten und am besten zugänglichen Modding-Plattformen, sondern auch eine Anwendung, die ihren ursprünglichen Zweck bei weitem überlebt hat.
Beim Schreiben dieser Geschichte fing ich an, mich nostalgisch zu fühlen, und vielleicht geht es Ihnen nach der Lektüre genauso. Wenn ja, würde ich empfehlen, GZDoom herunterzuladen und mit einigen der verrückten Levels herumzuspielen, die im Laufe der Jahre erstellt wurden – Sie können die Original-WAD-Dateien für die ersten beiden Spiele auch online archiviert finden. Wenn Sie tiefer gehen möchten, schauen Sie sich die Dokumentation auf MyHouse.WAD an, falls Sie es noch nicht getan haben (das Video hat rund 13 Millionen Aufrufe), oder noch besser: Laden Sie das Level selbst herunter .
Und wenn Sie im Geiste bleiben möchten, Doom an Orten zu platzieren, an denen es nicht sein sollte, haben einige großzügige Entwickler ihre Reisen auf verschiedenen Geräten dokumentiert. Es gibt eine Beschreibung zur Installation auf den Ikko Activebuds-Ohrhörern und eine weitere zur Installation auf einem VoIP-Telefon . Es gibt auch einen ausführlichen Beitrag über die Portierung des Spiels auf das oben genannte VX620-Zahlungsterminal .
Unabhängig davon, wie Sie Doom genießen, erweitern oder komplett verändern, haben Sie Spaß in der Hölle. Hunderttausende Fans und Entwickler warten dort auf Sie.