Pinball-Entwickler für Windows XP erklärt, warum das Spiel nicht in Windows 11 erscheint / Sudo Null IT News
Hallo, mein Name ist Dave Plummer und ich bin ein ehemaliger Microsoft-Betriebssystementwickler. Ich bin seit der Ära von MS-DOS und Windows 95 im Unternehmen. Zufällig konnte ich das mit Windows gelieferte Spiel „Space Cadet“ portieren. Heute habe ich mit dem Entwickler bei Microsoft gesprochen, der es komplett aus dem Betriebssystem entfernt hat, um zu verstehen, warum das so war, und um die Aussichten für eine Rückgabe des Spiels einzuschätzen. Ich zeige Ihnen auch, wie Sie diesen Flipper unter Windows 10 ausführen und testen Sie ihn auf dem neuen Windows 11, um zu sehen, ob er nach fast 25 Jahren noch funktioniert. Ich muss gleich sagen, dass ich nicht an Grafik, Sound, Tischdesign und Gameplay-Entwicklung beteiligt war, selbst der Originalcode wurde nicht von mir geschrieben. Es war ursprünglich ein eigenständiges Full Tilt-Spiel! Flipper von Maxis im Alter von 19 Jahren veröffentlicht95 Jahre.
Ich kann nur damit prahlen, ein relativ unbekanntes Spiel auf eine Plattform mit über einer Milliarde Nutzern portiert zu haben. Ich habe mich ursprünglich freiwillig bereit erklärt, das Spiel auf Windows NT 4.0 zu portieren.
Im Original Full Tilt! Pinball hatte drei Flippertische: Space Cadet, Skullduggery und Dragon’s Keep
Es war also 1995, ich portierte die Win 95-Shell auf Windows NT. Die Shell umfasste das Startmenü, Desktopsymbole, Ordner, allgemeine Steuerelemente, allgemeine Dialogfelder, im Allgemeinen den Hauptteil der Benutzeroberfläche, den Sie sehen. Unser Vizepräsident Jim Allchin wollte etwas in Windows NT integrieren, das die neuen Grafik- und Sound-APIs präsentieren könnte, die zuerst dem Betriebssystem hinzugefügt wurden. Die beste Lösung wäre natürlich ein spektakuläres Spiel mit schönem Sound und interessantem Gameplay. Dies würde Windows NT vor dem Image eines „langweiligen“ Systems bewahren. Wie Solitaire ist dieses Spiel fast zu einem integralen Bestandteil der Betriebssysteme geworden, mit denen es geliefert wurde. Eines Tages, als ich an der Portierung der Shell arbeitete, kam mein Vorgesetzter auf mich zu und fragte, ob ich daran interessiert wäre, ein Flipperspiel von Windows 9 zu portieren5 unter Windows NT. Die Aufgabe scheint ziemlich einfach zu sein, aber ich wusste bereits, dass es manchmal schwierig sein kann, Code von 95 nach NT zu portieren. Es hängt davon ab, wie es geschrieben wurde und welche APIs es verwendet. Aber ich stimmte trotzdem zu, weil ich die Spiele liebte und die Gelegenheit nutzte, an einem davon zu arbeiten und dafür sogar bezahlt zu werden.
Meine Hauptaufgabe im Shell-Team war die Fehlerbehebung bei Problemen mit dem MIPS-RISC-Prozessor. Wir haben alle zusammengearbeitet, um die Win 9-Shell zu erstellen5 arbeitete in NT, und insbesondere befasste ich mich mit Problemen, die mit MIPS auftraten. Damals lief Windows auf mehreren Architekturen, darunter Intel, MIPS RISC, PowerPC und Alpha AXP. Der Benutzer hätte eine für eine dieser Architekturen kompilierte Windows-Version erwerben können. In unserem Team wurde jeder Prozessor von einem Spezialisten betreut, der plattformspezifische Probleme löste, und ich persönlich arbeitete mit MIPS. Mein Desktop hatte nicht einmal x86 und ich lief NT 3.51 auf einem MIPS-Rechner, den ich als mein Hauptentwicklungstool verwendete. Ich bin von 486 direkt auf MIPS umgestiegen und habe die Phase der Arbeit mit dem Intel Pentium komplett umgangen. Wenn es uns gelang, den Code auf einem der RISC-Chips zum Laufen zu bringen, war es sehr wahrscheinlich, dass er auch auf jedem von ihnen funktionierte. Das war jedoch schwierig, da diese Chips erforderten, dass die Daten innerhalb der 32-Bit-Grenzen liegen. In der x86-Architektur wurde jedes Bit bewertet, sodass viele Variablen im x86-Code eng in Bytegrenzen gepackt sind, was für RISC nicht geeignet ist.
Wie auch immer, wenn ich das Spiel auf meinem MIPS-Rechner zum Laufen bringen würde, würde es auf jedem anderen funktionieren. Allerdings traten mehrere Probleme auf – erstens war der Code zeitweise recht verwirrend. Der Code für das Spiel wurde nicht von unseren Entwicklern geschrieben, Microsoft hat ihn einfach gekauft, und er war nicht in dem Stil geschrieben, den ich gewohnt war. Der Unterschied zwischen einem Spiel und einem Betriebssystem besteht darin, dass das Spiel häufig eine Version hat und für das Betriebssystem eine Version nach der anderen veröffentlicht wird, eine über der anderen. Viele Spiele werden nach dem Prinzip „Fire-and-Forget“ geschrieben, und die Wartbarkeit und Lesbarkeit des Codes sind nicht immer so wichtig wie die Projektgeschwindigkeit und die Veröffentlichungszeit. Ich war sehr beeindruckt vom Sound-Engine-Code. Ich bin mir natürlich sicher, dass damit alles in Ordnung war, aber es wurde im x86-Assembler geschrieben. Allerdings hätte mir der x86-Code bei der Arbeit mit MIPS, PowerPC und Alpha kaum geholfen. Betriebssysteme wie Windows auf 99,99 % bestehen aus C- und C++-Code, und Assembler wird fast ausschließlich in der Hardware-Abstraktionsschicht und möglicherweise im Boot-Code verwendet.
Wenn Sie über ein halbes Dutzend Zielprozessorarchitekturen verfügen, müssen Sie schließlich nicht für jede von ihnen Assembler-Code von Hand schreiben, sondern möchten ihn einmal in C schreiben. Damit das Spiel funktioniert, musste ich den gesamten Assembler-Code ausschneiden und durch meinen eigenen C-Code ersetzen, der dann für jede Plattform in nativen Code kompiliert wurde.
Zufälligerweise hatte ich mich ein paar Monate zuvor mit dem Microsoft Arcade-Kompilierungsteam getroffen, um deren Implementierung eines alten Atari-Arcade-Spiels namens Tempest zu testen, in dem ich Weltmeister war. Ich rief diese Leute an und bat sie, mir den Audio-Democode zu schicken, um den Assembler-Code zu ersetzen. Nachdem ich das C-Beispiel verstanden hatte, konnte ich eine neue C++-Sound-Engine erstellen, die auf allen Prozessoren lief, die ich brauchte. Kurz darauf gelang es mir, das Spiel so gut zum Laufen zu bringen, dass ich es testen konnte. Um ehrlich zu sein, war es toll, dafür bezahlt zu werden, Flipper zu spielen, aber meine Arbeit daran endete bald und ich begann mit anderen Projekten.
Tempest aus der Microsoft Arcade-Sammlung
Ich habe zehn Jahre lang nicht an Flipper gedacht, bis ich mich ehrenamtlich an der Schule meines Sohnes gemeldet habe, wo er kleinen Kindern im Computerraum geholfen hat. Ich habe ein Kind gesehen, das Flipper spielte, anstatt eine Aufgabe zu erledigen. Er fragte mich, ob ich es jemals gespielt hätte. Ich antwortete, dass ich es nicht nur gespielt, sondern auch bei Microsoft daran gearbeitet habe. Bis zu diesem Zeitpunkt war noch kein Kind von irgendetwas beeindruckt, an dem ich gearbeitet habe, denn seien wir mal ehrlich: Wenn man im Kindergarten ist, ist der Task-Manager das, was dein Vater benutzt, um deinen Computer zu reparieren, während du wie ein Baby weinst, weil eine Spiele-CD im Laufwerk steckt. Bis zum Alter von sieben oder acht Jahren verwenden Kinder den Task-Manager normalerweise nicht und waren daher normalerweise mit fast allem, woran ich gearbeitet habe, nicht vertraut. Aber Flipper ist eine andere Geschichte – für viele Kinder wurde Flipper zu ihrem Lieblingsspiel, weil es das einzige Spiel auf dem Computer war. Das bedeutet natürlich nicht, dass das Spiel gut ist, es war einfach wirklich allgegenwärtig, weil es mit Windows geliefert wurde und auf jedem PC zu finden war. Heute gibt es es nicht mehr, aber wenn Sie eine Kopie des Spiels haben, läuft es perfekt auf modernen Systemen.
Aber lassen Sie uns zunächst über die Gründe sprechen, warum es aus Windows entfernt wurde. Um das herauszufinden, wandte ich mich direkt an Raymond Chen, einen Microsoft-Entwickler, der seit Mitte der 90er Jahre an allen Windows-Versionen arbeitet. Es stellte sich heraus, dass, genau wie ich mit der Portierung eines Spiels von Windows 95 x86 auf 32-Bit-Windows NT beauftragt wurde, jemand damit beauftragt werden musste, es von 32-Bit-Windows auf 64-Bit zu portieren, und diese Person war Raymond. Früher hatte ich ein paar Wochen Zeit, um ausschließlich an Flipper zu arbeiten, aber für Raymond war es nur ein kleiner Teil seiner Arbeit, die gesamte Shell auf 64 Bit zu aktualisieren. Der Flipper war schwer zu portieren – beim Zusammenbau für ein 64-Bit-System funktionierte das Kollisionserkennungssystem nicht richtig – der Ball passierte Hindernisse und prallte nicht von ihnen ab. Es ist offensichtlich, dass im Originalcode einige Tricks oder Abhängigkeiten von der 32-Bit-Kompilierung vorhanden waren. Raymond rief seinen Kollegen um Hilfe, aber selbst nachdem er genügend Zeit aufgewendet hatte, kamen sie nicht annähernd zu einer Lösung. Als klar wurde, dass der Flipper ihren Zeitplan verpassen würde, erkannten sie, dass die einzige Möglichkeit darin bestand, ihn loszuwerden. Und das geschah auch: Der Flipper schaffte den Übergang von 32 auf 64 Bit nicht. Aber wenn es noch nie eine 64-Bit-Version von Pinball gab, wie kann man sie dann unter 64-Bit-Windows ausführen? Dies ist dank WoW64 möglich. Windows läuft nativ in 64-Bit, während 32-Bit-Anwendungen in einer speziellen Windows-on-Windows-Schicht ausgeführt werden, die 32-Bit-Kompatibilität bietet. Dies ähnelt der Art und Weise, wie wir 16-Bit-Windows 3.1-Anwendungen auf 32-Bit-Windows ausgeführt haben, nur im nächsten logischen Schritt. Soweit ich weiß, sind bei der Installation einer neuen Kopie von 64-Bit-Windows alle darin enthaltenen Binärdateien 64-Bit und nichts 32-Bit darin, sodass das WoW64-Subsystem nicht gestartet werden muss.
Das heißt, der Start dauert nicht lange und verbraucht keine Ressourcen, bis 32-Bit-Anwendungen ausgeführt werden. Allerdings muss das WoW64-Subsystem geladen werden, was Zeit und Ressourcen kostet. Einige könnten argumentieren, dass der Flipper beim Start nicht geladen wird, also spielt das keine Rolle. Aber es wäre immer noch seltsam und unprofessionell, eine einzige 32-Bit-Binärdatei unter Windows zu veröffentlichen. Wenn außerdem eine 32-Bit-Datei mit 64-Bit-Windows veröffentlicht würde und der Benutzer die WoW64-Ebene deaktiviert hätte, würde sie nicht gestartet. Daher wäre die einzige wirkliche Lösung, Zeit in die vollständige Lösung des Problems zu investieren, was den Aufwand wahrscheinlich nicht wert wäre. Erstens ist dies ein uraltes Spiel, und obwohl viele Leute es nostalgisch finden, glaube ich nicht, dass jüngere Benutzer davon begeistert sind. Darüber hinaus ist es im Vergleich zu Windows 11 grafisch veraltet – Sie können das Spiel nicht in der gleichen Form veröffentlichen, Sie müssen nicht nur Geld für Debugging und Codierung ausgeben, sondern auch für eine visuelle Änderung im Stil und in der Grafik.
Darüber hinaus müssen Größenänderung und Skalierung hinzugefügt werden, die im Original fehlten.
Artikelautor und Raymond Chen
Ein weiteres Argument gegen die Portierung ist, dass das alte Spiel weiterhin ausgeführt werden kann, obwohl es rechtliche Feinheiten gibt. Ich bin kein Anwalt, aber es scheint mir, dass Sie, wenn Sie lizenzierte Kopien von Windows XP und Windows 10 haben, die XP-Komponente in Win 10 ausführen können, aber vielleicht steht in der Lizenz eindeutig, dass sie keineswegs trennbar sind. Wenn Sie über die entsprechende Lizenz verfügen, ist die Binärdatei auch online zu finden, sodass das Ausgraben einer alten Windows XP-CD nicht erforderlich ist. Beachten Sie jedoch, dass alle von mir gefundenen Dateien nicht signiert sind und daher von Trojanern befallen sein können. Vertrauen Sie ihnen nicht, es sei denn, Sie können einen Binärvergleich oder einen MD5-Hash-Vergleich durchführen. Ich würde damit in einer isolierten VM experimentieren. Wenn Sie das Spiel starten, wird der Begrüßungsbildschirm im Vollbildmodus geöffnet, das Spiel selbst nimmt jedoch nur einen winzigen Teil des großen Bildschirms ein. Manche mögen sagen, dass die Fähigkeit einer alten Anwendung, 25 Jahre nach ihrer Veröffentlichung noch reibungslos zu laufen, ein Beweis für die Qualität des Ports ist. Andere würden vielleicht sagen, dass der Grund dafür die erstaunliche Abwärtskompatibilität von Windows selbst ist. Wie dem auch sei, Space Cadet läuft weiterhin und ist unter Windows 10.9 spielbar0003
Tief im Kern der Flipper-Logik befindet sich ein Codestück, das meiner Meinung nach niemand vollständig versteht. Nun, vielleicht versteht Raymond ihn, aber ich habe ihn definitiv nicht verstanden. Es heißt Staatsmaschine und ist fast vollständig undokumentiert. Jedes Mal, wenn der Code sie durchläuft, ändert sich der Zustand der Maschine, und dieser Zustand wird im Zustand der über das Programm verteilten Variablen verfolgt. Daher ist es sehr schwierig herauszufinden, was vor sich geht, aber alles funktioniert.
Ergänzung : Das Spiel verfügt über einen Superuser-Modus: Das machen wir normalerweise nicht in der Systemwelt, daher ist Pinball so ziemlich das einzige Beispiel für ein solches Programm unter Windows. Es macht den Spieler nicht zu einem echten Superuser, sondern eröffnet ihm lediglich neue Möglichkeiten im Spiel. Um den Modus zu aktivieren, starten Sie ein neues Spiel, warten Sie, bis der Ball fällt, und geben Sie
versteckter Test
auf der Tastatur ein. Danach können Sie die Physik des Balls mit der Maus steuern und ihn über das Spielfeld ziehen. Es gibt auch Teams, die dem Spieler zusätzliche Bälle geben, ihn im Rang erhöhen und ihn zur Bestenliste hinzufügen.
Warum Microsoft 3D-Flipper von Windows entfernt hat (und wie man es zurückbringt)
Vergessen Sie Solitaire und Minesweeper. Das beste Spiel, das jemals in Windows enthalten war, war Virtual Pinball. Mit blinkenden Lichtern und Arcade-Sounds fühlte sich 3D Pinball für Windows 1995 wie Magie an und ist auch heute noch erstaunlich spielbar.
VERWANDT: Was ist mit Solitaire und Minesweeper in Windows 8 und 10 passiert?
Aber schauen Sie nicht im Startmenü nach: Microsoft hat Space Cadet Pinball seit Windows XP in keiner Version mehr integriert, und im Gegensatz zu Microsoft Paint wird es in absehbarer Zeit wahrscheinlich keinen Neustart des Windows Store geben.
Warum ist dieses Spiel nicht mehr mit Windows verknüpft? Und gibt es eine Möglichkeit, es zurückzubekommen? Machen wir einen kleinen Spaziergang in die Vergangenheit, bevor wir Ihnen zeigen, wie Sie dieses Spiel aus dem offiziellen Microsoft-Download kopieren können.
Warum Pinball aus Windows Vista entfernt wurde
„3D Pinball für Windows – Space Cadet“ ist der Name von Microsofts „90er“ Es ist unnötig lang und enthält das größte Schlagwort im Gaming um 1995 – 3D! – und fügt hier die Worte „für Windows“ ein, nur um Sie daran zu erinnern, welches Betriebssystem Sie verwenden. Doch trotz „Microsofts außergewöhnlichem Namen“ stammte das Spiel selbst nicht aus Redmond.
Nein, Microsoft beauftragte den in Texas ansässigen Entwickler Cinematronics mit der Entwicklung eines 3D-Pinballs, um die Spielefähigkeiten von Windows 95 in einer Welt zu demonstrieren, in der die meisten PC-Entwickler an DOS festhielten.
Die Entwicklung des 3D-Flippers war laut dem Daily Dot-Artikel hektisch, aber das Team konnte es schaffen. Microsoft hat das Spiel in „Microsoft Plus!“ aufgenommen. für Windows 95“, eine separate 50-Dollar-CD, die auch den Vorgänger von Internet Explorer enthielt. Das Spiel wurde später mit Windows NT, ME und 2000 gebündelt; Windows XP war die letzte Version, die das Spiel enthielt.
Warum werden Windows Vista und spätere Windows-Versionen nicht mit Pinball ausgeliefert? Denn die Microsoft-Ingenieure konnten das Spiel nicht ohne Probleme auf die 64-Bit-Architektur portieren. Microsoft-Mitarbeiter Raymond Chen erklärt:
Insbesondere zu Beginn des Spiels wurde der Ball zum Werfer befördert und fiel dann langsam zum unteren Rand des Bildschirms, durch den Kolben und aus dem unteren Rand des Tisches.
Die Spiele waren sehr kurz.
Das hört sich … nicht lustig an. Und es stellte sich heraus, dass es nahezu unmöglich war, das Problem zu beheben: Der Quellcode des Spiels war zehn Jahre alt und nicht dokumentiert. Tatsächlich gab es niemanden, der über das Spiel sprach: Cinematronics, die das Spiel bereits im Jahr 19 entwickelten94, wurde 1996 von Maxis gekauft; Maxis wurde 1997 von EA gekauft. Alle 3D-Pinball-Entwickler sind längst verschwunden.
Also entschied Chen: 3D Pinball war weder in der 64-Bit-Version von Windows XP enthalten, noch war es seitdem in irgendeiner Windows-Version enthalten. Das heißt aber nicht, dass Sie es nicht ausführen können, wenn Sie es wirklich wollen.
So installieren Sie 3D Pinball auf neueren Versionen von Windows
Microsoft wollte kein 32-Bit-Spiel auf 64-Bit-Betriebssystemen integrieren, was verständlich ist, aber 3D Pinball funktioniert aufgrund der Abwärtskompatibilität immer noch hervorragend auf modernen Betriebssystemen wie Windows 10. Es gibt unzuverlässige Websites von Drittanbietern, die nicht autorisierte 3D Pinball-Downloads anbieten, wir werden jedoch nicht auf diese verlinken. Stattdessen bietet Microsoft, wie How-To Geek-Forumsmitglied Biswa betont, kostenlose Downloads für den Windows XP-Modus an, die ursprünglich für die Abwärtskompatibilität für Benutzer von Windows 7 konzipiert waren. Die 3D-Pinball-Dateien sind direkt darin enthalten und wir können sie mit geringem Aufwand unter Windows 10 ausführen.
Laden Sie zuerst den Windows XP-Modus von Microsoft herunter. Beachten Sie, dass Sie möglicherweise durch die Surface-Anzeigen scrollen müssen, um zum eigentlichen Download zu gelangen.
Speichern Sie die Datei in Ihrem Download-Ordner – sie ist etwa 470 MB groß. Es wird „WindowsXPMode_en-us.exe“ heißen.
Stellen Sie sicher, dass Sie die Dateierweiterungen sehen, und ändern Sie dann „.exe“ in „.zip“.
Jetzt können Sie die Datei in 7Zip oder WinRAR öffnen (die im Windows Explorer integrierte Archivierung funktioniert nicht).
Gehen Sie zum Ordner „Quellen“ und öffnen Sie dann XPM.
In diesem Archiv finden wir die Datei „VirtualXPVHD“, eine virtuelle Festplatte mit einer vollständigen Installation von Windows XP.
Das ist richtig: Wir sehen ein Archiv innerhalb eines Archivs und innerhalb eines Archivs sind es die Schildkröten darunter. Öffnen Sie dieses Archiv und Sie sehen die vollständige Dateistruktur von Windows XP.
Gehen Sie zu Programme > Windows NT und Sie finden einen ganzen Ordner mit dem Namen „Pinball“.
Ziehen Sie dies auf Ihren Desktop oder wo immer Sie möchten. Sie haben jetzt einen Flipper auf Ihrem Windows 10-System!
Viel Spaß!
Alternative: Extrahieren Sie 3D Pinball von der alten Windows XP-CD.
Wenn Sie eine eingeschränkte Verbindung haben und nicht im XP-Modus booten möchten, können Sie auch diese 32-Bit-Windows XP-CD finden, die Sie irgendwo in Ihrem Schrank haben, und das Spiel direkt daraus extrahieren.
Erstellen Sie zunächst einen Pinball-Ordner auf Ihrem Windows 10-Computer – ich habe ihn der Einfachheit halber auf der obersten Ebene der C:\-Partition abgelegt, Sie können ihn aber überall ablegen.
Legen Sie nun die Windows XP-CD ein und öffnen Sie eine Eingabeaufforderung. Wechseln Sie zu Ihrem optischen Laufwerk, indem Sie dessen Namen eingeben; Für mich bedeutete das, F:\
einzugeben und die Eingabetaste zu drücken. Sie müssen jedoch überprüfen, welchen Buchstaben Ihr optisches Laufwerk verwendet. Geben Sie dann cd I386
ein, um das Verzeichnis zu ändern, und drücken Sie die Eingabetaste.
Jetzt sind wir in dem Ordner, in dem sich das Spiel befindet – wir müssen es nur noch extrahieren. Wir werden dies Schritt für Schritt tun, beginnend mit allen Dateien mit dem Namen „pinball“:
expand -r pinball *. * C:\pinball
Dies verwendet den Befehl „expand“, um jede Datei, die mit dem Wort „pinball“ beginnt, in den zuvor erstellten Ordner C:\pinball zu extrahieren (wenn Sie Ihren Ordner an einem anderen Ort ablegen, verwenden Sie stattdessen diesen Speicherort).