Ich muss mein Spielprojekt von Android (geschrieben in C, OpenGL ES 2.0, dank NDK) auf Windows- und Linux-Plattformen portieren. Natürlich muss ich etwas plattformabhängigen Code umschreiben, aber jetzt blieb ich bei der Frage, welche Bibliothek zum Erstellen von OpenGL und Eingabe-Handle verwendet wird.
Nur ein schnelles googeln bringt mir 3 Kandidaten:
1) Freeglut - umgeschrieben und frei gute alte GLUT.
2) SDL - die meisten kennen eine Bibliothek, die in vielen Spielen verwendet wird.
3) GLFW - eine Art neuer, aber einfacher und funktionaler.
Ich bin gerade erst in der PC-Entwicklung und sehe keine signifikanten Unterschiede zwischen ihnen. Kannst du mir bei der Auswahl helfen? Ich brauche nur die Eingabe der Maus / Tastatur und das Erstellen des OpenGL-Kontexts. Außerdem verwende ich GLEW, um mit Leichtigkeit zu modernem OpenGL zu gelangen.
Antworten:
GLFW ist modern und hat einen sehr genau definierten Anwendungsbereich . Es ist auch unter sehr aktiver Entwicklung.
SDL auf der anderen Seite ist solide und verfügt über viele Funktionen in verschiedenen Bereichen, es fehlt jedoch an allen Funktionen (zum Beispiel: SDL kann Audio abspielen, aber Sie bevorzugen möglicherweise OpenAL, da es in dieser Hinsicht weitaus besser ist). Es ist möglicherweise bemerkenswert, dass SDL auf viele verschiedene Plattformen portiert wurde, im Gegensatz zu GLFW, das nur für Desktop-Plattformen (win / linux / mac) gilt.
GLUT , na ja, sollten vermieden werden . Es gibt einfach nichts, was es gut macht.
Meiner Meinung nach ist GLFW als Perfektionist die bessere Wahl. Weil es genau das tut, was man will, nicht weniger und nicht mehr. Die sehr aktive Entwicklung ist auch ein gutes Zeichen für langfristige Projekte, da es normalerweise bedeutet, dass Fehler behoben werden, dass neue Funktionen hinzugefügt werden, dass es mit neueren Standards Schritt hält und dass es in der Nähe nicht abgebrochen wird. Dies ist für einen schnellen Port oder ein 6-monatiges Spiel nicht wichtig, aber für eine Engine oder eine Bibliothek, die Sie wiederverwenden möchten, würde ich dies berücksichtigen.
quelle