Hi. Ich habe mein erstes Projekt angefangen, einen Tetrisclone (nicht lachen) und soweit funktioniert das Teil auch schon ganz gut.
Aber obwohl ich noch nicht einmal Texturen, Lichtquellen oder andere hippe Grafikfeatures eingebaut habe, komme ich auf höchstens 25fps. Dazu muss man natürlich sagen, dass nebenbei die IDE, Winamp und dies und jenes läuft und zwar auf einem AMDK6-2 400 mit 384MByte RAM und TNT2 (nicht lachen!). Doch selbst wenn ich alles andere schließe bleibts so lahm. Gegenbeispiele: Half-Life, Unreal, Quake 3, Deus Ex, Hexen I + II etc.pp.
Was ist der Unterschied? Asen die nur mit asm rum? Ist die VCL zu lahm? Half-Life rendert x-mal so viele Polys wie mein kleines Tetrisspiel und zwar texturierte, so wheres the fucking problem?
Der Bombermanclone übrigens läuft auf meiner Maschine mit 5 fps. Auf meinem anderen Rechner (700 Mhz, Geforce2ti) allerdings mit 60+.
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Die TNT stammt noch aus Zeiten, in denen es viele Extensions und Funktionen von OpenGL noch nicht gab, die heute nicht mehr wegzudenken sind. Eventuell verwenden der Bombermanklon und du auch solche Funktionen. Es kann dann entweder sein, dass gar nichts geht oder dass alles per Software - also auf der CPU - berechnet wird. Das kann zu sehr starken Leistungseinbußen führen. Also solltest du deinen Code vielleicht mal durchforsten auf neuere Funktionen...
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
soviel ich weiss wurde quake mit opengl und einer sprache (warscheinlich c++) programmiert, zumindest habe ich immer gemeint das quake 3 mit opengl funktioniert....
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Und ich habe immer gedacht, das ist allgemein bekannt und dass OpenGL bei Vielen erst durch Doom bekannt wurde. id setzt seit langem auf OpenGL und war damit in gewisser Weise sogar ein Werbeträger dafür.
Zitat:
Wie geht denn das?
Wie meinst du das? Mit OpenGL kann man ALLES machen. Naja fast alles
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Di Sep 06, 2005 18:34 Beiträge: 362 Wohnort: Hamburg
quake3 wurde noch mit einfachem C programmiert (und natürlich OpenGL) ...
weiß nicht ob Doom 3 schon auf C++ ist, aber carmack hat irgendwo irgendwann mal gesagt, dass er auf C++ umsteigen wolle ...
_________________ Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das tut jetzt prinzipiell erstmal nichts zur Sache.
Du kannst ja mal ein rempräsentatives Stück Code posten, eventuell sieht man da auf den ersten Blick ob du Fehler machst.
Nebenbei: In Professionellen Spielen wird extrem viel Wert auf die Datenhaltung, Sichtbarkeitsprüfungen und schnelle rendertechniken gelegt. Am Anfang lernst du aber nur die einfachen Methoden Daten zu rendern. Du kannst also davon ausgehen, dass da sicherlich noch einiges optimiert werden kann. Vorallem auf Systemen wie deinem. Früher, als solche Systeme noch aktuell waren, konnten die genannten Spiele überhaupt nur laufen, weil sich Leute ihre Köpfe über optimierungen zerbrochen haben.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
TNT2 ist etwas besonderes. Bei dieser Generation der Karten musst du sehr stark darauf achten was du renderst. Denn bei dieser Generation ist jedes Dreieck was man einsparen kann eine wahre Wohltat. Die hat noch kein T&L (Transformation & Lightning). Und dadurch werden alle Lichter und Transformationen auf der CPU berechnen und die Karte stellt es dann nur noch dar.
Du solltest in JEDEM FALL IMMER Backfaceculling aktivieren. Und Licht solltest du nach Möglichkeit nicht benutzen und wen dann dafür sorgen, dass es auch wirklich nur für die Vorderseite benutzt wird. Da gibts so ne komische Konstante für.
Bei dem Tetris kannst zum Beispiel auch einiges an Flächen sparen in dem du nur die zeichnest die auch wirklich sichtbar sind. Also je nachdem wie du auf einen Stein drauf schaust sind es nur noch 3 Seiten. Oder aneinanderliegende Steine brauchen an der Stelle zum Beispiel keine Flöchen. Aber für den Anfang muss man darauf nicht achten.
Außerdem solltest du aufpassen, dass du glBegin und glEnd so sparsam wie Möglich einsetzt. Wenn ich mich daran noch recht erinnern kann ist diese Karte da auch ein wenig anfällig für. Mit anderen Worten. Wenn du deine Steine zeichnest dann mache ein mal ein glBegin und zeichne alle Flächen von allen Steinen die auf dem Bildschirm zu sehen sind und erst dann ein glEnd. Das dürfte auch schon etwas bringen.
PS: Aber es wäre dennoch mal interssant zu erfahren wie du renderst. Ich denke nämlich mal, dass man da auch noch ein bisschen was rausholen kann.
Wie meinst du das? Mit OpenGL kann man ALLES machen. Naja fast alles
Wieso verstehen nur immer weniger Menschen die deutsche Sprache?
Also nochmal auf Deutsch..."Seit wann kann man mit OpenGL (eine Grafik API/Schnittstelle) [b]programmieren[/p].
Hab noch keine Programmiersprache namens OGL gesehen. Klar ist dies Haarspalterei, aber es ist mindestens genauso nervig es so zu lesen. Vor allem wenn dann der Noob Next Door ankommt und wissen will wie man mit OGL eine EXE erstellt \o/
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Wenn wir hier schon Haarspalterei betreiben: Natürlich würde Doom mit (im Sinne von "mit Hilfe von") OpenGL programmiert. Genauso wie es bestimmt mit (im Sinne von "von") einem großen Team programmiert wurde. Und mit einem Compiler kompiliert.
Um ehrlich zu sein, ich dachte auch erst, dass du sowas gemeint hast, aber nachdem ich "Wie geht denn das?" fünfmal gelesen hab, und man das auch anders formulieren hätte können, habe ich mich für ne Erklärung entschieden...
Aber wie schließen das jetzt mal lieber ab. Hilft ja keinem weiter
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
hallo,
kann mir eigentlich nicht vorstellen, dass man bei Tetris mehr als 1000 Polygone benötigt.
das problem bei infinite muss irgendwo anders liegen, vielleicht ein treiberproblem...
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.