Warum ist es faszinierend, dass Rollercoaster Tycoon zu 99% in Assembly programmiert wurde?
Ich habe schon öfters gelesen, dass Chris Sawyer RCT zu 99% in Assembly und 1% in C programmiert hat. Wieso ist dies so faszinierend? Ich kenne mich mit programmieren überhaupt nicht aus. Ich wäre dankbar wenn es mir jemand ausführlich erklären könnte.
5 Antworten
Wenn etwas vom Menschen in Maschinensprache geschrieben wird, so kann der Mensch Optimierungen anbringen, die der Compiler, der das von C in Manschinensprache umsetzt, nicht hinbekommt. So kann eien Software geschrieben werden, die Geschwindigkeiten erreicht, die mit dem Compiler eine bessere Hardware benötigen würde, um das selbe zu erreichen.
Das Maschinensprache-Programm hat aber einen gewaltigen Nachteil: Es ist wesentlich unübersichtlicher und daher schwerer zu pflegen, wenn es um Updates geht. Auch ist es für andere Programmierer sehr schwer, Maschinensprache-Programme von anderen Leuten zu verstehen. Daher iste s auch weniger geeignet für Programmierung mit mehreren Beteiligten, sollen Maschinensprache-Programme mit mehreren Programmierern erstellt werden,s o verlangt das eine gute Supervision, also Jemanden, der den Überblick behält und steuernd eingreifen kann.
Das ist auch faszinierend, da es garantiert heutzutage eien Seltenheit ist. Früher war es normal, dass Einzelpersonen die Programmierung eines SPieles alleine machten, aber da waren die Computer auch mit 64KB (z.B. C64) oder 512KB (z.B. Atari ST oder Amiga) ausgestattet... :)
Naja, Du erreichst bei entsprechenden Kenntnissen bei gleicher Rechenleistung mehr Leistung raus. Das Programm ist deutlich optimierter geschrieben.
Assembler ist Maschinensprache, d.h. das Programm greift ohne Umwege über einen Interpreter direkt auf die Hardware zu. Das spart Speicher und erhöht die Ablaufgeschwindigkeit.
Als RAM noch kostbar war, wurde viel in Assembler gemacht, beispielsweise in der 8-Bit-Ära.
Ich habe selbst noch in Assembler programmiert. Da wird wirklich jedes Bit einzeln angesteuert. Es wäre wahrscheinlich einfacher, dem Prozessor direkt seine Opcodes zu geben...
Das kann ich nicht nachvollziehen. Was willst Du ausdrücken? Bei Assembler-Programmierung gibt man dem Prozessor durch Befehle, die aus einem, zwei oder vier Bytes bestehen, was er tun soll.
Jedes Bit einzeln angesteuert, was soll das bedeuten?
PS: Ich habe 8080, Z80, 6502 und 68000er-Prozessoren in Assembler programmiert. Teilweise ohne Assembler-Zusatzprogramm, also mit einer Mnemonic-Liste. Da tippt man Hexcodes ein, die aus zwei Ziffern bestehen, die von 00 bis FF gehen und ein Bytes ausdrücken. Beim Z80 ist dann z.B. C2 00 00 der Befehl JNZ zur Adresse 0, übersetzt als Jump on Not Zero...
Assembly ist ziemlich hardwarenah, desto näher an der Hardware, desto (richtig gemacht) effizienter, aber auch schwieriger und umständlicher ist es das ganze zu schreiben.
Verstehe. Ist es noch faszinierender, dass das Spiel eine einzelne Person in Assembly programmiert hat?