Wie beängstigend kann ein Old-School-Programmierer sein?

  Eugene Kaspersky schrieb kürzlich in seinem Blog über das so genannte große Comeback der Old-School-Virenautoren. Ich bin alt genug, dass ich mich an diese Jungs und ihre brilliante Arbeit

school_GER

 

Eugene Kaspersky schrieb kürzlich in seinem Blog über das so genannte große Comeback der Old-School-Virenautoren. Ich bin alt genug, dass ich mich an diese Jungs und ihre brilliante Arbeit erinnern kann – ich meine damit nicht unbedingt Virenschreiber, ich spreche von Programmieren, Codern und Assembler-Meistern. Sie sind wie die Jedi und Sith des alten Reiches, die von allen Skywalker-verwandten Helden für viel machtvoller und erfahrener mit dem Lichtschwert gehalten werden (kein Scherz, fragen Sie Yoda). Und ich denke… verdammt… wahrscheinlich gibt’s nur noch drei Menschen, die die wahre Macht dieser Leute noch gesehen haben (mich, Kaspersky und Bill Gates). Im Ernst – es ist schwer zu verstehen, zu was ein Old-School-Hacker fähig ist – deshalb habe ich beschlossen, Ihnen zu zeigen, von was Eugene spricht, so dass Sie selbst entscheiden können, ob das beängstigende Nachrichten sind.

Extreme Übungen für dumme Rechner

Damals, im Jahr 1992, waren Computer im Grunde nur schlaue Taschenrechner mit großen Bildschirmen (das ist kein Scherz, Kinder). Aber es gab verschiedene Gruppen von Enthusiasten, die die Software-Herausforderung gerne annahmen: Manche Programmierer schafften es, Programme zu schreiben, die jedes Byte des Speichers nutzten, jede Prozessorfunktion und jedes Register, jedes Kommando des Betriebssystems, und am wichtigsten, 100 Prozent der Hardware-Leistung – bis auf den letzten Tropfen ausgequetscht. Ich muss herausstellen, dass man sehr kreativ sein muss, viel Kaffee braucht (oder mal ehrlich: viel Gras raucht), um diese Aufgabe zu meistern – und man braucht einen wahnsinnigen IQ. Die Bewegung selbst startete etwa 1988, mit der ersten mehr oder weniger weitverbreiteten MS-DOS-Version. Sie hatte keinen offiziellen Namen, doch nach dem Gesetz der Evolution, mussten diese Enthusiasten früher oder später gegeneinander antreten. Und so gab es 1992 die erste „Assembly“.

assembly_GER

Die Future Crew kommt zurück aus der Zukunft

Im Jahr 1992 traf sich eine Gruppe skandinavischer Coder namens „Future Crew“ mit ihren Freunden der Gruppen „Complex“ und „Amiga“, und zusammen organisierten sie eine Veranstaltung namens „The Assembly“. Hier wollten sie ihre herausragende Arbeit mit der Programmiersprache Assembler vorstellen und um den Titel „Bester Programmierer des Jahres“ kämpfen. Es gab verschiedene Disziplinen, von denen die interessantesten „Plattform-Demos“ (PC, Amiga, C64) und „PC 64k“ sind. Bei der ersten war das Ziel, eine möglichst elegante Programmierlösung oder beste Ausnutzung der Hardware zu demonstrieren, und das mit minimiertem und optimalem Code. Die zweite Kategorie war kompliziert: Die Programmierer waren auf 64kb beschränkt – ihre kompilierten Programme (also die ausführbaren Dateien) durften nicht größer als 64 Kilobyte sein. Deshalb wurde diese Kategorie zur Königsdisziplin der Programmierer.

Ein Demo ist im Grunde eine vorgeschriebene Serie von Ereignissen, programmiert, um die Möglichkeiten einer Hardware oder von besonderen Softwarelösungen für eine bestimmte Aufgabe zu zeigen, etwa die Berechnung komplexer physikalischer Daten.

Im Jahr 1992 hat die Future Crew den Wettbwerb mit ihrem Demo „Unreal“ für sich entscheiden können. Hier ist das Demo (denken Sie daran, dass das 1992 ist und es noch kein Windows gab. Das Demo hieß nicht ohne Grund „Unreal“ – niemand (!) hat so etwas bis dahin vorgeführt):

 

Sie waren die ersten, die eine 3D-Umgebung vorstellten, Grafik-Layers, komplexe Physik und Lichtberechnungen, usw. Und der ganze kompilierte Code war etwa 1 Megabyte groß (inklusive Musik! Und lassen Sie mich noch dazusagen, dass es damals noch keine MP3-Kompression gab). Die einzige Möglichkeit, so ein Ergebnis zu bekommen, war, Assembler zu meistern, die in meinen Augen komplexeste Programmiersprache aller Zeiten. Um Ihnen kurz eine Vorstellung zu geben, was Assembler ist, sehen Sie hier, was mir die Jungs der Future Crew vor Jahren gesagt haben:

Programmieren zu lernen ist ein langer und schwerer Prozess. Es dauert Jahre, bis man Demos richtig gut programmieren kann. Ein guter Start klappt mit einer Hochsprache wie Pascal oder C, dann kann man beginnen, mit Assembler zu experimentieren. Es braucht viel Zeit und viele Experimente, um besser zu werden, und es gibt keine Abkürzungen. Die Hauptsache ist, zu versuchen, was man macht zu verstehen. Und dann zu versuchen, das Programm zu ändern, um zu sehen, was man dadurch erhält. Und herauszufinden, wie man bestimmte Dinge am besten durchführen kann. Gut Programmieren zu lernen braucht viel Geduld, viel Enthusiasmus und viel Zeit. Es ist nicht einfach.

Im Grunde wurden die Teilnehmer des Wettbewerbs zur ultimativen Quelle der Inspiration für alle Software-Entwickler. Ich sage nicht, dass man ihnen ihre Ideen gestohlen hat, nein – jeder hat einfach… ihre kreative Vision übernommen. Die meisten Produkte, die wir heute haben – ALLE SPIELE, die Grafik- und Videoprogramme von Adobe, Meteo und GPS, Google Earth… all diese Multimilliarden-Dollar-Produkte wurden an einem bestimmten Punkt von der Assembly inspiriert. (BTW – bei dem Wettbewerb ist Filmen und Fotografieren absolut verboten – wer es dennoch macht, wird für immer ausgeschlossen).

1993 – das Jahr von „Second Reality“ und Eclipse

Die Assembly war so ein großer Erfolg, dass die Zahl der Teilnehmer und präsentierten Demos im folgenden Jahr doppelt so hoch war (dieser Trend wurde beibehalten, und seit 1999 findet die Assembly im größten Fußballstadtion Helsinkis statt, in das etwa 5.000 Menschen aus aller Welt kommen).

Im Jahr 1993 präsentierte die Future Crew etwas… fantastisches. Etwas, das die Messlatte für alle weiteren Wettbewerbe ziemlich hoch legte und die Welt der Programmierung für immer veränderte – das Second-Reality-Demo:

Es ist wichtig, zu verstehen, dass dieses Demo programmiert wurde, BEVOR Intel den Pentium-Prozessor vorstellte (Intel kündigte ihn am 22. März an, die ersten Pentium-PCs wurden aber erst 1994 ausgeliefert. Die Assembly findet normalerweise im Sommer statt – Juli/August. Die Future Crew zeigte dieses Demo also mindestens ein halbes Jahr vor der Auslieferung des Pentiums!). Das bedeutet, dass all die fantastischen Grafiken und Sounds auf einer x486-CPU mit primitiven Sound Blasters und OHNE Grafikkarte liefen. Dieses Demo hat die Jury und die Programmierergemeinde weggeblasen – es zeigte, was mit herausragender Assembler-Arbeit und minimalistischer Herangehensweise möglich ist (kompiliert war Second Reality etwa 1,5 Megabyte groß). In diesem Jahr wurde die Future Crew weltberühmt.

Hier ein Behind-The-Scenes-Video der Future Crew – als sie an Second Reality arbeiteten:

Im Jahr 1994 wurde das Demo „Verses“ (von der Gruppe EMC) Sieger.

Sie zeigten der Welt, dass realistische Wasserberechnungen möglich sind, und jegliches Morphing von 3D-Objekten innerhalb der Geschwindigkeitsgrenzen eines Pentium auch kein Problem darstellt:

Und dieser 64kb-Gewinner – „Airframe“ von Prime – ist der Urvater aller moderner 3D-Luftfahrt- und Weltraum-Simulationen:

Damit Sie eine Vorstellung bekommen, wie schnell sich der Code entwickelte, hier eine Liste der Gewinner von 1995 bis 2012.

Assembly-Gewinner 1995: „Stars“ von NoooN

Assembly-Gewinner 1996: „Machines of Madness“ von Dubius

Assembly-Gewinner 1997: „Boost“ von Doomsday

Assembly-Gewinner 1998: „Gateways“ von Trauma

Übrigens ist das der Vorfahre der visuellen Umsetzung von „World Of Warcraft“. Hier wurden 3D-MMORPG-Grafiken entworfen.

Im Jahr 1999 veränderte die 3DFX-Technologie die Grafiken für immer. Und das Demo „Virhe“ der Gruppe MatureFunk erstaunte alle:

Die überarbeitet Assembly

Im Jahr 2000 wurden die Regeln verändert – statt Wettbewerben in den drei Kategorien Amiga, PC und C64, gabe es die Wettbewerb „Combined Demo“, „Oldschool Demo“ und „64kb Limit Intro“. Die 64k-Kategorie wurde im Jahr 2010 abgeschafft. Aber am Ende dieses Artikels sehen Sie einige fantastische Beispiele, was ein hervorragender Assembler-Coder in 64 Kilobyte packen kann.

Hier die Liste der Gewinner im Bereich „Combined Demo“, der derzeitigen Königsdisziplin der Assembler-Meister:

Assembly-Gewinner 2000: „Spot“ von Exceed

Sehen Sie sich diese Lichteffekte an… sie sind atemberaubend. Denken Sie daran: Das ist die Technologie von vor 13 Jahren!

Assembly-Gewinner 2001: „Lapsuus“ von Maturefurk

Assembly-Gewinner 2002: „Liquid… Wen?“ von Haujobb

Ich muss noch herausstellen, dass alle Grafiken der Assembly-Demos, inklusive der Gesichter und Charaktere, NUR über die Programmierung dargestellt werden – das sind keine Bilddateien, die einfach in das Demo eingebaut werden. Nein, mein Herr! 🙂

Assembly-Gewinner 2003: „Legomania“ von Doomsday. Begrüßen Sie damit alle 3D-Konsolenspiele 🙂 Und ich bin mir sicher, dass zu dieser Zeit die Vision der Nintendo Wii geboren wurde:

Assembly-Gewinner 2004: „Obsoleet“ von Unreal Voodoo:

Assembly-Gewinner 2005: „Lconoclast“ von ASD:

Im Jahr 2006 hat das Demo „Starstuck“ von The Black Lotus mit seinem ausgefeilten Grafik-Coding die Programmierergemeinschaft enorm beeindruckt. Ich würde sagen, sie haben die Messlatte damit ganz schön hoch gelegt:

Assembly-Gewinner 2007: „LifeForce“ von ASD. Auch das war – wieder einmal – ein Stück fantastischer Assembler-Arbeit:

Assembly-Gewinner 2008: Das Ohr von „Within Epsilon“ von Pyrotech:

Assembly-Gewinner 2009, und einer meiner persönlichen Favoriten: „Frameranger“ von den Gruppen Fairlight, CNCD & Orange:

Im Jahr 2010 zeigte „Happiness is right around the bend“ von ASD ein fantastisches Aquarium

Assembly-Gewinner 2011: „Spin“ von ASD:

Der Gewinner 2012 war phänomenal: „Spacecut“ von Carillon & Cyberiad CNCD

Beispiele für Demos mit 64-Kilobyte-Limit

Um Ihnen zu zeigen, was ein professioneller Programmierer mit 64 Kilobyte anstellen kann: Das ist der Gewinner des Jahres 2005 – „Che Guevara“ von Fairlight:

Ich wiederhole – das sind nur 64 Kilobyte Assembler-Code. Kein Byte mehr.

Aber drei Jahre später, zeigte die gleiche Gruppe einen immensen Fortschritt der Technologie und schaffte es, das Demo „Panic Room“ in 64kb unterzubringen – und hat damit den ersten Preis in dieser Kategorie gewonnen:

Doch das beste 64k-Demo ALLER ZEITEN, war „X marks the spot“ von Portal Process im Jahr 2010 – der erste Platz der 64k-Kategorie:

Und nun… lassen Sie mich etwas anderes vorstellen… All diese Demos, vor allem die mit Limitierung auf 64 Kilobyte, zeigen, was ein talentierter Old-School-Programmierer schaffen kann, wenn er sich lange genug damit beschäftigt und er – was noch wichtiger ist – ein Assembler-Meister ist. Etwas, das es heute kaum mehr gibt, da die meisten Produkte mit mit so genannten „High-Level“-Programmiersprachen produziert werden, wie Visual C und Object C.

Stellen Sie sich nur einmal vor, dass so ein Programmierer oder eine Gruppe wie die Future Crew sich entschließen, 3D-Grafiken, Musik, Physik und den ganzen Enthusiasmus zum Teufel zu jagen, um sich nur auf ein Ziel zu konzentrieren – kleine Programme zu schreiben, die Finanzdaten stehlen oder einen Atomreaktor neu kalibrieren. Was glauben Sie, wie erfolgreich wären sie? Wie groß wäre der Code, wenn 64 Kilobyte mehr als genug sind? Würden Sie einen Weg finden, die in Windows oder Apple integrierten Sicherheitssysteme auszuhebeln? Sind sie mobil? Sind sie flexibel? Haben sie die Finanzkraft, so etwas durchzuführen, wenn sie 20 Jahre lang eine kostenlose Veranstaltung für 5.000 Teilnehmer machen?

Ich möchte Ihnen die Antwort nicht geben. Entscheiden Sie selbst. Aber wenn ich höre, wie jemand sagt „Mein PC braucht keinen Schutz“, kann ich nicht anders, als mich an „Second Reality“ zu erinnern und fange an zu beten.

Gott sei Dank sind die Jungs, die einmal die Future Crew waren heute sehr beschäftigt . Wenn man beim Programmieren von Demos der Beste ist, schafft man es auch im Business, stimmt’s? Wenn Sie das nächste Mal einen 3Dmark-2011-Test auf Ihrem PC starten – denken Sie an Unreal, Second Reality und die Future Crew. Als Team hat die Future Crew nach dem Scream Tracker 3 (Dezember 1994) nichts mehr veröffentlicht. Obwohl sie nie offiziell aufgelöst wurde, sind die Mitglieder der Gruppe in der zweiten Hälfte der 1990er Jahre eigene Wege gegangen. Firmen wie Futuremark (3DMark), Remedy (Death Rally, Max Payne, Alan Wake), Bugbear Entertainment (FlatOut, Glimmerati, Rally Trophy), Bitboys (eine Firma für Grafik-Hardware) und Recoil Games (Rochard) wurden alle komplett oder in Teilen von Mitgliedern der Future Crew gegründet.

Ich möchte mich bei ihnen allen bedanken – sie haben die Welt für immer verändert und uns gezeigrt, dass alles möglich ist, wenn man nur will. Inklusive Kaspersky Internet Security.

Danke für die Inspiration, Jungs. Und tief in mir hoffe ich, dass nicht ein einziger Programmierer, der Teil der Assembly war, seine/ihre Fähigkeiten jemals für böse Zwecke einsetzen wird.

 

Tipps