Turrican News, Facts and Rumours

Welcome to Turrican SETA! Here you can find the latest news, rumours, downloads and collected facts about Turrican. If you think you know anything that should be mentioned here, please contact me.
   
 

Turrican - Implementierung

Contra-254
08.10.05
Lustiges Detail der Programmierung von Turrican, die ich heute rausgefunden habe:
Ich wollte das Spiel mal wieder durchspielen, und da habe ich einen Freezer benutzt (man wird älter...).
Auf jeden Fall fiel mir auf, daß die Bytes für die Zehnerstelle und die Einerstelle für die Leben (und auch alle anderen Sachen) getrennt gespeichert werden.

Der Wert wurde auf dem Schirm direkt ausgegeben, und nicht als Hex gespeichert. Wenn man an der Einerstelle mehr als 9 Leben eingab, hat man lustige Zeichen im Lebenscounter.
Wurde wohl gemacht, um bei der Anzeige nicht jedesmal Hex -> Dezimla umzurechnen zu müssen. Dafür hat mal eine aufwendigere Logik für die Zählung implementiert (nix mit Leben = Leben -1 ), und ein Byte Speicher geopfert. Macht soweit Sinn, das die Routine zum Abziehen eines Lebens weniger oft aufgerufen wird, als die Anzeige der Anzahl der übrigen Leben.

Ich fand es deswegen interessant, weil es eine Optimierung war, was ich sofort nachvollziehen konnte. Mitunter vergesse ich bei den ganzen Objektverwaltungen, intelligenten Compilern und Designanforderungen, wie das Programmieren früher war, als noch um Bytes gefeilscht wurde, und jeder Speicherzugriff bedacht werden musste.

(Heute ist vermutlich selbst ne simple String-Klasse größer als 512
kb. allerdings dürfte die Klasse einem verdammt viel Arbeit abnehmen. Wie die c't irgendwann mal schrieb: Der reine Programmierantiel ist beim Programmieren nicht mehr kleiner zu kriegen, wenn man die modernen Entwicklungsumgebungen voll ausnutzt. Das nehmen einem Codegeneratoren, Klassenbibliotheken etc. ab. Man entwirft hauptsächlich, und kann sehr viel mächtigere Programme schreiben. Der Preis ist halt die Performance...)
Robert
08.10.05
Darin steckt übrigens auch die Erklärung, warum es ein Jahr 2000-Problem, wie es in allen großen Medien beschrieben wurde, nicht gab
Solche Microoptimierungen bringen allerdings im Umfeld moderner CPUs und aufwändigerer Programme immer weniger. Und die c't hat keinen Plan
Imperial Games
10.10.05
Optimieren sollte man dann eher innerhalb von Schleifen, da sich ja dann
jede gesparte Microsekunde verfielfacht...
Kann leicht passieren, daß man die innere Schleife einer Textur/Sprite
/Block-Routine um 1 Befehl einkürzen kann und das dann nachher den
Unterschied ausmacht, ob man 40 oder 50 Frames pro Sekunde darstellen kann.

Und Turrican 2 PC lief ja afaik sogar schon auf 286ern.
Ich weiß es nicht genau, aber ich vermute mal, daß Turrican2PC in 100%
Assembler (oder zumindest nahe dran) gecodet ist.

Robert
10.10.05
Turrican 2 hatte den VGA-Standard ziemlich ausgenutzt. Leider lief es deswegen auf vielen PCs nur mit Grafikfehlern.
Torsten
10.10.05
Turrican 2 PC war meines Wissens in Pascal + ASM gecodet.
Was ich besonders interessant an T2PC fand waren nicht die
verbesserten Grafiken, die sind nämlich Geschmackssache, sondern
der TFMX Player der extra für T2PC poriert wurde.

Answer:
Name
Name:
eMail:
Website:
Comment:

Smileys
Please read the forum introduction


Search:

Back