Source-Code von älteren Spielen als Lernquelle?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Source-Code von älteren Spielen als Lernquelle?

Beitrag von starcow »

Abend zusammen (-:

Ich lese immer wieder mal, dass es überaus sinnvoll sein soll, sich mit Source-Code von älteren "bekannten" Spielen zu befassen - um mal ein Bild über den eigenen Tellerrand hinaus zu gewinnen. Da ich früher sehr viel DOOM und Quake3 gespielt habe und die Spiele heute noch genauso liebe wie früher, habe ich mir überlegt, ob mich sowas vielleicht weiterbringen könnte - auch mit Blick auf eigene Projekte.
Allerdings kann ich überhaupt nicht einschätzen, ob ich damit derzeit nur hoffnungslos überfordert wäre - oder ob es durchaus auch für mich Sinn machen könnte. Habt ihr mal was ähnliches gemacht?
Von dir Krishty weiss ich ja, dass du u.a. dabei bist "Stalker" zu optimieren (porten?) - und finde das Projekt auch alleine schon durch deine spannend Beiträge extrem cool.
Ich meine gelesen zu haben, dass der Source-Code von DOOM rund 40k Zeilen - und der von Quake3 ca. 260k Zeilen lang sein soll. Aber vielleicht kann man sich auch gut einzelne Teile davon anschauen und trotzdem eine Vorstellung davon bekommen, wie bestimmte Probleme damals gelöst wurden?

Gruss, starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Source-Code von älteren Spielen als Lernquelle?

Beitrag von Krishty »

starcow hat geschrieben: 02.11.2020, 23:40Ich meine gelesen zu haben, dass der Source-Code von DOOM rund 40k Zeilen - und der von Quake3 ca. 260k Zeilen lang sein soll. Aber vielleicht kann man sich auch gut einzelne Teile davon anschauen und trotzdem eine Vorstellung davon bekommen, wie bestimmte Probleme damals gelöst wurden?
Ja, absolut! Es gibt z. B. komplette Artikel darüber, wie in DOOM das Feuer gezeichnet wurde: https://fabiensanglard.net/doom_fire_psx/

Bei Fabien Sanglard findest du auch spannende Artikel über den Quelltext anderer Spiele …
Quake: https://fabiensanglard.net/quake3/index.php
DOOM3: https://fabiensanglard.net/doom3/index.php
Trespasser: https://fabiensanglard.net/trespasser/index.php

Es kann sich also total lohnen, sich damit mal das Gehirn durchzupusten. Ich muss allerdings auch gestehen, dass nicht viel davon auf moderne Engines übertragbar ist, bei denen die GPU alles für dich macht.

Der Quelltext fast aller Spiele, die ich bisher reversed habe, zeugt von überdeutlichem Zeitdruck. Sowas sollte man sich keinesfalls abgucken, sondern immer unter dem Blickwinkel betrachten: Wie hätte man es besser machen können?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: Source-Code von älteren Spielen als Lernquelle?

Beitrag von starcow »

Wow, wirklich sehr cool! Danke für die Links! :-)
Nach welchen Gesichtspunkten wählst du denn "deine" Spiele aus? Einfach die, die dich am meisten begeistern - oder wägst du auch ab, was vom Aufwand eher zu machen ist? Dein Kompetenz-Level dürfte ja ohnehin für jedes Spiel mehr als nur ausreichend sein! :-)

Gruss
starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Source-Code von älteren Spielen als Lernquelle?

Beitrag von Alexander Kornrumpf »

Krishty hat geschrieben: 02.11.2020, 23:57 Der Quelltext fast aller Spiele, die ich bisher reversed habe, zeugt von überdeutlichem Zeitdruck. Sowas sollte man sich keinesfalls abgucken, sondern immer unter dem Blickwinkel betrachten: Wie hätte man es besser machen können?
Ich glaube übrigens dass das nicht stimmt. Ich glaube dass auf jeden Carmack halt 100 kommen, die keinen "besseren" Quelltext schreiben könnten, auch wenn sie unendlich viel Zeit hätten - oder ihr Leben davon abhinge. Und dass diese Leute den Produktionsdruck, der natürlich _auch_ existiert, dankbar als Begründung dafür hernehmen, möglicherweise dann auch in Kommentaren ("no time to do this right" oder so).

Dabei geht es mir nicht darum, irgendwelche 10x-Programmer Mythen zu pflegen. Ich finde es vor allem nicht einsehbar, warum "besserer" Quelltext länger zu schreiben dauern soll. (Erst recht nicht über den gesamten Produktionszyklus eines AAA titels wo mutmaßlich genug Code und genug Zeit zusammenkommt dass du deine technischen Schulden vom Anfang am Ende noch selbst einlöst.)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Source-Code von älteren Spielen als Lernquelle?

Beitrag von Krishty »

starcow hat geschrieben: 12.11.2020, 08:40Nach welchen Gesichtspunkten wählst du denn "deine" Spiele aus? Einfach die, die dich am meisten begeistern - oder wägst du auch ab, was vom Aufwand eher zu machen ist? Dein Kompetenz-Level dürfte ja ohnehin für jedes Spiel mehr als nur ausreichend sein! :-)
Ich wähle die aus, die mich am meisten begeistern, verschätze mich komplett im Aufwand, schaffe nur den einfachsten Bruchteil, und ziehe dann zum nächsten Spiel weiter ;)
Alexander Kornrumpf hat geschrieben: 12.11.2020, 09:02Ich glaube dass auf jeden Carmack halt 100 kommen, die keinen "besseren" Quelltext schreiben könnten, auch wenn sie unendlich viel Zeit hätten - oder ihr Leben davon abhinge. Und dass diese Leute den Produktionsdruck, der natürlich _auch_ existiert, dankbar als Begründung dafür hernehmen, möglicherweise dann auch in Kommentaren ("no time to do this right" oder so).
Wo du’s sagst … stimme ich dir da absolut zu.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten