Programmierung: Age of Empires war dank Assembler seiner Konkurrenz voraus

Schneller und eine deutlich höhere Auflösung als etwa Starcraft: Ein Entwickler von Age of Empires erklärt, wie das trotz bescheidener Hardware gelang.

Artikel veröffentlicht am ,
Artwork von Age of Empires
Artwork von Age of Empires (Bild: Microsoft)

Sehr viele Videospiele aus den 90er Jahren machen massiven Gebrauch von Assembler zur Programmierung, besonders bekannt ist dabei Roller Coaster Tycoon, das fast ausschließlich maschinennah entwickelt wurde. Auch das erste Siedler nutzte Assembler. Die deutlichen Vorteile von Assembler damals erklärt nun auch der Entwickler Matt Pritchard auf Reddit, der an Age of Empires gearbeitet hat und schreibt, dass von den rund 13.000 Zeilen x86-32-Bit-Assembler in dem Spiel etwa 11.500 für das Zeichnen des Bildes auf dem Monitor verwendet worden seien.

Genutzt worden sei es vor allem zum Zeichnen der sogenannten Sprites, also spezieller Grafikobjekte, die überhaupt nur verwendet wurden, weil Grafikkarten zu der Zeit nur über sehr eingeschränkte Fähigkeiten verfügten. Pritchard schreibt: "Die Verwendung von Assembler im Zeichenkern führte zu einer ~10-fachen Verbesserung der Sprite-Zeichengeschwindigkeit gegenüber den C++-Referenzimplementierungen. Und der Zeichenkern von AoE war deutlich schneller als der von Konkurrenten wie Starcraft, weshalb die Standardauflösung von AoE 800 x 600 betrug, während fast alle unsere Konkurrenten eine Auflösung von 640 x 480 hatten. Wir konnten den Bildschirm genauso schnell oder schneller scrollen und mit Sprites füllen, obwohl wir doppelt so viele Pixel in der Spielwelt hatten."

Die Assembler-Nutzung begründet Pritchard darüber hinaus aber nicht nur mit der schnelleren Grafik. Vielmehr sei es zu der Zeit einfach nicht möglich gewesen, bestimmte Konzepte und Techniken in C++ umzusetzen. Außerdem konnte so die Cache-Architektur von CPUs berücksichtigt werden, ebenso wie Prozessorarchitektur der frühen Pentium-CPUs mit zwei Ausführungseinheiten (U- und V-Pipeline). Auch die Nutzung der CPU-Register sei manuell mithilfe von Assembler-Code durchgeführt worden, schreibt Pritchard.

Beschränkte Hardware der 90er Jahre

Der Entwickler erklärt darüber hinaus ausführlich die aus heutiger Sicht massiven Beschränkungen der PC-Hardware, insbesondere für Videospiele damals. So waren 3D-Grafikkarten fast nicht existent, und die Voodoo 1 musste als 3D-Grafikkarte parallel mit einer 2D-Karte betrieben werden. Handelsüblich gewesen seien dagegen SVGA-Chips zu Grafikbeschleunigung wie Tseng Labs ET4000. Die Karten damals nutzten außerdem ein lineares Speicherlayout und viele setzten auf Bank Switching für die Speicherverwaltung.

Der von Pritchard zur Entwicklung genutzte Rechner verfügte über eine Pentium-CPU mit 166 MHz Takt und 16 KByte Cache, der in jeweils 8KByte für Daten und Instruktionen aufgeteilt war. L1/L2/L3-Cache wie bei heutigen Systemen gab es nicht. Der Speichertakt war 66 MHz, pro Takt konnten 32 Bit übertragen werden, und der gesamte Arbeitsspeicher war 16 MByte groß. Auch dazu schreibt Pritchard, dass der Code per Assembler massiv auf die Cache-Architektur zugeschnitten war, um Cache-Line-Misses oder gar Flushes zu verhindern.

Für die 20 Jahre nach dem Original erschienene Definitive Edition von Age of Empires ersetzte Pritchard eigenen Angaben zufolge dann den Assembler-Code durch C++, da aktuelle Compiler Inline-Assembler nicht mehr unterstützten und deren Optimierungen die Nutzung auch nicht mehr erforderten. In einem alten Interview zu den Arbeiten sagte Pritchard außerdem, dass das Kompilieren des Spiele-Codes ursprünglich 15-20 Minuten gedauert habe. Zum Beginn der Arbeiten an der Definitive Edition sei das dank deutlich besserer Hardware und Compiler auf nur noch 20 Sekunden reduziert worden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


slax 09. Jan 2024 / Themenstart

Klar. Jede kompilierte Sprache wie C, C++ oder Rust etc. wird in assembler übersetzt. Du...

kaesekuchen 09. Jan 2024 / Themenstart

Schade, dass sowohl TA als auch Supreme Commander Nischenspiele blieben und nie wirklich...

Gunslinger Gary 09. Jan 2024 / Themenstart

und Zeit möglich gewesen wäre damals. Das muss sich nicht hinter Wolfenstein 3D...

Maslmaus 09. Jan 2024 / Themenstart

Außer die Auflösung, fand ich Starcraft um Längen besser. Animationen, Rotationen der...

Kommentieren



Aktuell auf der Startseite von Golem.de
HDDs
Backblaze tauscht eine kaputte Festplatte alle zwei Stunden

Der Back-up-Anbieter musste im Jahr 2023 Tausende Festplatten austauschen. Es gibt aber ein altes Modell, das allen Statistiken trotzt.

HDDs: Backblaze tauscht eine kaputte Festplatte alle zwei Stunden
Artikel
  1. Konzeptfahrzeug: Chrysler Halcyon soll der E-Sportwagen der Zukunft sein
    Konzeptfahrzeug
    Chrysler Halcyon soll der E-Sportwagen der Zukunft sein

    Chrysler hat den Halcyon vorgestellt, einen elektrischen Sportwagen, der kabellos laden und autonom fahren kann.

  2. Wie Netflix und Disney+: Paramount+ wird 4K-Qualität wohl nur gegen Aufpreis erhalten
    Wie Netflix und Disney+
    Paramount+ wird 4K-Qualität wohl nur gegen Aufpreis erhalten

    Außerhalb Deutschlands bietet Paramount+ 4K-Qualität nur gegen Aufpreis an. Wie Paramount+ in Deutschland Surroundton erhalten wird, bleibt unklar.
    Von Ingo Pakalski

  3. Sony: Playstation 5 kommt in die letzte Phase ihres Lebenszyklus
    Sony
    "Playstation 5 kommt in die letzte Phase ihres Lebenszyklus"

    Die PS5 verkauft sich schlechter als erwartet. Ein Sony-Manager überrascht mit Ausagen über die Geschäftsstrategie - auch zu neuen AAA-Games.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • MindStar: Mainboards & Grakas • PS5 Slim inkl. Spider-Man 2 544€ • Bis -70% auf Technik bei Otto • Ryzen 9 7900 359€ • Logitech G305 Lightspeed 38,50€ • Apple Week • LG 27" WQHD 165Hz 219€ • Sony Smartphones - 25% • Games für alle Systeme -66% • LG-Gaming-Monitore -800€ [Werbung]
    •  /