Moin, moin.
Leider ist es nicht ganz so einfach, auszumachen welche Rendermethoden nun wirklich bei welchen OpenGL Versionen effizient sind bzw. überhaupt funktionieren. Tutorials beschäftigen sich allzuoft mit stark veralteten OpenGL Versionen und wenn nicht, dann sind sie meist komplizierter gehalten als eigentlich nötig. Dokumentationen und Spezifikationen sind für solche spezifische Fragen nicht immer geeignet (sobei ich auch kaum die Zeit finde für jede Bibilothek die komplette Dokumentation zu lesen). Erste Priorität hat zumindest, dass es auf jedem Computer läuft, auch auf älterer oder minderwertiger Hardware. Da das resultierende Spiel nicht soviel RAM und CPU Geschwindigkeit braucht, gibt es in meinen Augen eigentlich keine Rechtfertigung dafür, ältere OpenGL Versionen nicht zu unterstützen. Nun bin ich natürlich kein Spezialist in Sachen Graphikbibliotheken, zumindest weiß ich, wie ich in alten Versionen rendere und Effekte benutze.
Momentan programmiere ich in C/C++, wobei ich nur auf wenige C++ spezifische Funktionen nur zugreife (z.B. vector) und der grundlegende Code imperativ ist. Ansonsten natürlich GLFW und GLEW, wobei soweit ich weiß, immer die höchstmögliche Version benutzt wird. Das Spiel wird in 2D sein und momentan arbeite ich an einer Art Engine, natürlich keine richtige Engine sondern nur eine einfache Vorlage für ein Spiel die ich nach belieben wieder neu benutzen kann, sollte ich erneut an einem Spiel arbeiten. Da ich Lua für viele Dinge wie z.B. die KI benutzen werde und einen Editor für ein eigenes Levelformat schreiben werde, wird das auch kein Problem darstellen.
Nun ist aber die Frage, was brauch so eine Vorlage? Fakt ist ja, dass fast die gesamte Geometrie schon voher existiert und sich wenig verändert (von Objekten wie Türen mal abgesehen) und die Graphik relativ pixelig sein wird und auch sein soll. Einzig allein ein paar Effekte wie das einfärben von Texturen, Alphablending und dynamisches Licht sind erwünscht und sollen die Graphik etwas aufpeppen (falls jemand noch andere Ideen hat welche Effekte hilfreich und schön sein könnten, bin ich gerne dafür offen). Natürlich möchte ich mich nicht unbedingt auf einen einzigen Spieltyp beschränken, ist ja der Sinn hinter dem wiederverwendbaren Code, für das erste Spiel habe ich aber eine sehr klare Vorstellung. Ich will den Kram ja richtig schreiben und nicht irgendeinen Mist verzapfen, nun seh ich aber in vielen Codebeispielen überhaupt gar keine Fehlerabfragen.
Leider tun sich bei mir inzwischen auch weitaus mehr Fragen als Antworten auf, was ich als recht frustrierend empfinde. Zumindest eine Frage wurde mir in einem etwas größeren OpenGL IRC Channel beantwortet; Wenn ich mehrere OpenGL Versionen unterstützen möchte, sollte ich am besten zwei bis drei Rendermethoden schreiben und je nach Version wird eine dieser Methoden benutzt. Aber das ist bei weitem nicht die einzige Frage.
Sind VBOs wirklich die schnellste Methode zum rendern oder gibt es irgendwas was (mit lohnenswertem Aufwand natürlich) wesentlich schneller ist? Wenn ja, sollte ich es dann bei zwei Methoden belassen (eine mit VBOs und eine ohne)? Woher weiß ich wann mein VBO "voll ist", bzw. welche Größe hat ein VBO? Wenn ich dafür Videoram reserverieren muss, wieviel wird reserviert? Wieviel ist empfohlen? Wie fange ich Fehler vernünftig ab? Was ist denn nun genau die Shadersprache und wofür verwende ich sie, ist sie überhaupt interessant für mich? Wie benutze ich Effekte wie z.B. Alphablending mit VBOs?
Alles Fragen über Fragen. Vorab schonmal: Bin wenig daran interessiert, großartig darüber zu disktuieren warum ich nun A, B oder C möchte, mache, tue oder sonstwas oder warum ich deswegen nun dumm, unfähig, unreif, 13 Jahre alt etc. bin, hab davon genug im Chat gehabt und bin dementsprechend wenig scharf darauf. Wenn ihr nicht daran interessiert seid mir zu helfen, respektiere ich das (wie auch andere Meinungen) aber auf ständige Diffamierung und elendslange Diskussionen habe ich wenig Lust, danke. Ansonsten bin ich natürlich für jede Antwort sehr dankbar.