@Blasterboy: Die meisten Spiele sind in C++ und nicht in C geschrieben. Ich bitte diesen Unterschied zu beachten, denn ein Vergleich von C mit Delphi (genauer Object Pascal) ist so ähnlich wie einen kleinen Flitzer mit einer Großraumlimousine zu vergleichen.
@Phobeus:
Siehst du, schon prallen Welten aufeinander.
Zwei Dinge zu glRotatef:
1.
| Microsoft OpenGL Implementation hat folgendes geschrieben: |
The glRotate function computes a matrix [...]
The current matrix (see glMatrixMode) is multiplied by this rotation matrix [...]
|
Das heißt, jeder Aufruf von glRotatef errechnet die Matrix komplett neu (mithilfe von sin/cos). Wenn du die Matrix speicherst, geht's also schneller.
2. Wenn du diese Methode verwendest, kommst du leicht zum Gimbal-Lock-Problem. Die Umgehung des Problems durch Quaternionen wird langsamer, weil aus der Quaternion bereits direkt die Matrix berechnet wird.
Das heißt, glRotatef ist einfacher, aber unter Umständen langsamer bzw. ungenauer. Das spricht nicht direkt gegen die Verwendung von glRotatef, aber für die Matrixmethode.
| Phobeus hat folgendes geschrieben: |
| Was Hilfsfunktionen angeht, wird jede fähige Programmier sich schnell selbst etwas dafür zu schreiben, anstatt stundenlang in der SDK nach Hilfe zu suchen. |
Wer lesen und schreiben kann ist klar im Vorteil (Achtung, Sarkasmus). Ich habe jedenfalls noch nie länger als ein, zwei Minuten suchen müssen - in der Zeit hätte zumindest ich die gesuchten Funktionen jedenfalls nicht fehlerfrei selbst geschrieben. Auf der anderen Seite kann ich mir dann auch eine schnelle Kapselung für die Matrixmethode schreiben.
Wie dem auch sei, daran sieht man es: Du hast lange Zeit Direct3D und OpenGL verwendet, genau wie ich. Trotzdem bin ich Direct3D-Fan und du OpenGL-Fan. Letztendlich entscheidet also nur persönlicher Geschmack.
Aber dass die objektorientierten Programmierer nur etwa 1% ausmachen ist mir neu.
Noch was zu Delphi / C++:
Zum einen kann man nur Object Pascal mit C++ vergleichen, zum anderen sind diese tatsächlich gleichgut für Spieleprogrammierung geeignet. Auch hier entscheidet wiederum die persönliche Präferenz bzw. die Zielplattform. Desweiteren ist die Sprache C++ wesentlich umfangreicher und dennoch deutlich einfacher zu schreiben (ich meine weniger tippen), und wenn man damit etwas anfangen kann, ist sie deutlich mächtiger als Object Pascal. Wenn man die coolen Features wie Überladene Operatoren, Templates, Mehrfachvererbung etc. aber nicht brauchst, ist Object Pascal vielleicht die bessere Wahl, weil man dort auch noch Delphi zur Verfügung hat.
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.