Programmiersprachen – Wie lange und welche Art von Komplexität wäre daran beteiligt, dass Chris Sawyer den größten Teil des Rollercoaster -Tycoon in Assembler geschrieben hat? Software Engineering Stack Exchange, Rollercoaster Tycoon: Das am besten optimierte Spiel aller Zeiten? | PcGamesn

Achterbahn Tycoon: Das am besten optimierte Spiel aller Zeiten

Die Montage wird kompliziert, wenn Sie all diese verrückten Optimierungen (vektorisierende Operationen, Nutzung spezieller Anweisungssätze (SSE usw.) durchführen. Wenn Sie dieses Zeug tun, dann ist die Zeit tatsächlich in der “Geigen Sie dieses Stück, messen Sie zusammen, messen Sie. Dieses Stück fummeln, montieren, messen. “Schleife und nicht in der tatsächlichen Codierung. Mit einem guten Makro -Assembler und einem erfahrenen Programmierer ist das Schreiben von Assembly nicht a riesig Treten Sie vom Schreiben von C -Code zurück.

Wie lange und welche Art von Komplexität wäre daran gewesen, dass Chris Sawyer den größten Teil des Rollercoaster -Tycoons in Assembler geschrieben hätte?

Hätte er damit beginnen können, es in C zu schreiben, und dann Teile davon nach Bedarf in Assembler in die Leistung ändern können?

Ha, ha, ha, das ist wie eine Frage von jemandem, der meine alten Kommentare gelesen hat.

3 Antworten 3

Aus dem Lesen seiner rauen Biografie sieht es nach zwei Jahren aus (Anfang 1997 bis Ende 1998). Angesichts der Tatsache, dass er ein “ein Projekt gleicher Zeit” zu sein scheint, und der Toolset und der Zeitrahmen sind nicht großartig für die „Teamentwicklung“, würde ich eine heterosexuelle 24-Programmiermonats annehmen.

Zu diesem Zeitpunkt war er seit 1983 ein professioneller Spielerprogrammierer, der in der Versammlung arbeitete, sodass ich “zwei Chris -Jahre” nicht mit “zwei ME -ME -Jahren” der Arbeit gleichsetzen würde.

Angesichts der Tatsache, dass die meisten professionellen Spiele rund 25-Personen-Jahre dauern, bis ein Team sich entwickelt, ist zwei Personen Jahre für ein branchenführendes Spiel eine erstaunliche Leistung, die den Sprüchen Creedenz verleiht:

  • Ein großartiger Programmierer ist 10x produktiver als ein guter Programmierer
  • Der Programmierer ist wichtiger als die Sprache für die Produktivität

In diesem Fall, wie viel schneller Rollercoaster Tycoon geschrieben werden würde, würde Chris C oder Java oder JavaScript verwendet oder . Wahrscheinlich wäre es nicht wichtig, als die Tatsache, dass er mit einer höheren Sprache etwas langsamer gewesen wäre, mit der er keine 14 -jährigen Erfahrung hatte.

beantwortete 18. November 2010 um 23:02 Uhr
2.331 2 2 Goldabzeichen 18 18 Silberabzeichen 17 17 Bronzeabzeichen
Tolle Punkte, ich dachte, das könnte der Fall sein.

Wenn Sie C als Assembler von C als kaum als einen “hochrangigen” Assembler betrachten, gehen wir davon aus jeden Routine, dann würde ich mir dann in % länger vorstellen, dann ist es für einen erfahrenen Assembly -Programmierer möglicherweise nicht so viel mehr.

Die Montage wird kompliziert, wenn Sie all diese verrückten Optimierungen (vektorisierende Operationen, Nutzung spezieller Anweisungssätze (SSE usw.) durchführen. Wenn Sie dieses Zeug tun, dann ist die Zeit tatsächlich in der “Geigen Sie dieses Stück, messen Sie zusammen, messen Sie. Dieses Stück fummeln, montieren, messen. “Schleife und nicht in der tatsächlichen Codierung. Mit einem guten Makro -Assembler und einem erfahrenen Programmierer ist das Schreiben von Assembly nicht a riesig Treten Sie vom Schreiben von C -Code zurück.

Trotzdem hätte ich es nicht geschafft hätte! Ich schaudere darüber nach, über den Versuch nachzudenken, DirectX direkt in der Montage zu initialisieren! (Bearbeiten: Wikipedia erzählt mir, dass er einige Teile in C geschrieben hat, um “mit dem Windows -Betriebssystem zu verkaufen”, also denke ich, dass er DirectX in der Montage nicht initialisiert hat. Puh!)

Achterbahn Tycoon: Das am besten optimierte Spiel aller Zeiten?

An einem frühen Sonntagmorgen im April 1999 lag der Game -Designer Chris Sawyer in seinem Wohnzimmerkommandozentrum, einer Sammlung von Tech der 90er Jahre, die Foren online stöberten. Ende März war der Eröffnungs -Achterbahn -Tycoon in den Regalen in Nordamerika gelandet, die mit Sawyers ansteckende Liebe zu Themenparks tropften, und etwas schien ernsthaft falsch geworden zu sein.

In den Foren sagten die Spieler, das Spiel habe irgendwie ihren Fortschritt verloren und sie in den Szenarien des Spiels auf den ersten Platz zurückgeschickt, was nacheinander die Level voranschreitet. Nach jahrelanger sorgfältiger Arbeit schien das Spiel aus mysteriösen Gründen selbst zu zerstören zu haben. Aber Sawyer hatte eine Ahnung: Letzte Nacht hatte sich die Zeit der Kindertagesstätte in Kraft gesetzt.

Vielleicht war es mehr als ein Zufall. Innerhalb weniger Stunden hatte er die Verbindung aufgedeckt. Die angepassten Zeitstempel der Spieldateien speichern, um sich vor Manipulationen oder Korruption zu schützen, stimmten nicht zu. “Peinlicherweise war es ein offensichtlicher Fehler von meiner Seite”, sagt Sawyer. “Oder war es?”

Der von ihm verwendete Systemaufruf hätte die Zeit in UTC ergeben haben, unverändert bei Tageslichteinsparungen, wodurch kein Problem erzeugt wird. „Nur aus irgendeinem Grund“, sagt er, „es tat ändern!Er hat schnell einen Patch und später ein Dienstprogramm zur Behebung der Speichern von Spieldateien codiert.

Die größere Ironie war, dass der Achterbahn -Tycoon ansonsten ein Denkmal für das stand, was eine einzelne Person in der Programmierung erreichen kann. Fast ausschließlich im Montagecode (wie Sawyers früherer Transport-Tycoon) geschrieben. Das Durchsuchen von so vielen Zahlen in Echtzeit ohne Anhänger zu einem schlanken, kompromisslosen Ansatz und nicht der langsameren, benutzerfreundlicheren C-Familie von Sprachen zu fordern. Und in ultra-lanter Montage, in der Buchstaben für Einsen und Nullen stehen, spricht man direkt mit dem Prozessor.

Es ist eine äußerst schwierige Sprache zu lernen, und seit der Entwicklung von Fortran in den 1950er Jahren ist es aus der Mode geraten. In seinen frühen Tagen veröffentlichte Sawyer Mitte der 1980er Jahre eine Handvoll Z80-kodierter Spiele und wurde ein bester Schein bei der Konvertierung von Amiga-Spielen in DOS, einschließlich der klassischen Elite II.

Schön und spritzig, dann ging er für sich selbst und schuf für sich selbst den Transporttycoon, während er an seinen Rechten festhielt, eine Gewohnheit, die ihm eine stetige Einkommensquelle zur Verfügung gestellt hat. Einiges davon ging in das reisende Europa und die USA, um Achterbahnen an Orten wie Cedar Point in Ohio zu fahren. Er ist jetzt mehr als 700 Untersetzer gefahren. Sein Favorit, Taron in Phantasialand in Deutschland, sieht aus wie etwas aus einem Tycoon -Spiel.

Sawyer gravierte auf natürliche Weise zur X86-Baugruppe und schätzte die saubere Präsentation und das leichte Kompilieren. (Die Systemanforderungen des Spiels forderten später ein Intel Pentium 90 MHz mit mindestens 16 Megabyte RAM.) Auch auf seinem Kommandoposten befand sich ein Punktmatrixdrucker (er glaubt), ein Faxgerät, eine Taschenführung zum X86-Montagecode und eine Desktop-Referenz mit 500ISH-PAGE. Das war genug für ihn; Obwohl die vollständigen Handbücher in Tausende von Seiten laufen, hatte er das meiste auswendig, was er brauchte.

“Ich habe so lange in x86 programmiert, dass ich selten die Dinge nachschlagen musste”, sagt er.

Das früheste Spiel ähnelte dem Transporttycoon, aber mit Achterbahnen, und sein Grafiker Simon Foster hat ein flexibleres und fotorealistischeres System geschaffen, damit die Untersetzer das Teil aussehen würden. Ein Großteil des anfänglichen Entwurfsprozesses war freiform. Vor allem aber musste Sawyer die Leistung priorisieren. Neue Merkmale bedeuteten eine größere Belastung für den langsamen Meerschweinchen -PC, und während einige von ihnen aus dem Code geworfen werden konnten, mussten andere bleiben.

Die Pfadfindung war eines davon und es wurde die größten Kopfschmerzen. “Es ist einfach, einen Algorithmus zur Suche nach dem Weg zu programmieren, der perfekt funktioniert”.”

Er hat die Algorithmen weggebrochen und viele kleine Männer und Frauen in den Büschen und den falschen dekorativen Weg verteilt. “Bis dahin hatte ich einige große Themenparks in den USA besucht und es geschafft, sich in einigen von ihnen selbst zu verlieren”, sagt er. „Also dachte ich, dass es wahrscheinlich richtig war, dass die Gäste im Rollercoaster Tycoon auch kämpften […], wenn das Park -Layout schlecht gestaltet war.”

Sobald sich das Spiel von der Ramshackle -Wunschliste zu einem SVGA -Tempel zu Themenparks entwickelt hatte, breitete sich Sawyer an Freunde, Nachbarn und die Kinder der Nachbarn aus, die sehr positiv reagierten. Der Verlag Hasbro hat sich für professionelle Bug-Jagd-Playesters arrangiert, und Sawyer hat seine eigene endlose Prüfung durchgeführt. Und trotz der Tagesrettungszeit war Rollercoaster Tycoon das meistverkaufte PC-Spiel von 1999.

Für die Fortsetzung fügte Sawyer der ursprünglichen Codebasis hinzu und näherte sich seiner ultimativen Sicht näher. “Ich liebe dieses Spiel und alles daran immer noch”, sagte er 2016 zu Eurogamer. Sawyer machte sich weiter mit der Versammlung und nutzte sie fast ausschließlich, um Chris Sawyers Fortbewegung im Jahr 2004, sein bisher ehrgeizigstes Spiel und auch sein letzter großer Desktop -Titel zu codieren. Seitdem ist er von der Spieleentwicklung zurückgetreten und lizenz.

Sawyer versteht sich einfach nicht mit der Branche, wie sie gerade ist, obwohl er die jüngste Wiederbelebung in Management -Sims schätzt. Heutzutage besteht ein wenig Assembler -Codierer nur wenig. “Ich habe auch das Gefühl, dass ich jetzt alle Spiele erstellt habe, die ich erstellen wollte”.”

Matt Hrodey Matt Hrodey ist ein Spielautor, der Rollercoaster Tycoon 2 für PCGamesn abgedeckt hat.