Freeglut vs SDL vs GLFW


26

j'ai besoin de porter mon projet de jeu depuis Android (écrit en C, OpenGL ES 2.0, grâce à NDK) vers les plateformes Windows et Linux. Bien sûr, je devrai réécrire du code dépendant de la plate-forme, mais maintenant je suis resté avec la question de savoir quelle bibliothèque pour créer OpenGL et utiliser le handle d'entrée.

Juste une recherche rapide sur Google me donne 3 candidats:

1) Freeglut - réécrit et gratuit bon vieux GLUT.
2) SDL - le plus connu d'une bibliothèque, utilisé dans de nombreux jeux.
3) GLFW - une sorte de nouveau, mais simple et fonctionnel.

Je viens tout juste de découvrir PC et je ne vois aucune différence significative entre eux. Pouvez-vous m'aider lequel choisir? J'ai clairement besoin d'une entrée de souris / clavier de base et de la création d'un contexte OpenGL, j'utiliserai également GLEW pour accéder à OpenGL moderne avec facilité.


2
La réponse sera très appréciée et n'est pas vraiment une bonne question pour le format SE. Cela dit, ma réponse très avisée - après avoir utilisé les trois pour des projets réels, et quelques autres comme SFML, GLUT, Qt et le roulement manuel d'une solution - est que SDL offre un bon mélange de fonctionnalités, de stabilité et de facilité utile. Je recommande particulièrement les versions préliminaires 2.0 (uniquement disponibles en consultant le repo Mercurial et en vous construisant, mais c'est assez facile). Ensuite, SFML est assez bon. J'ai trouvé trop de bogues dans GLFW, GLUT est mauvais pour les jeux et le roulement à la main est beaucoup de travaux.
Sean Middleditch

Personnellement, je recommanderais SDL car il gère toutes les parties d'un jeu, de l'entrée aux graphiques en passant par l'audio et l'entrée. Cependant, cela peut être limitant, mais comme vous venez d'un jeu déjà développé pour une plate-forme plus limitée, je pense que ce serait un bon choix.
CobaltHex

Ouais, c'est un sondage. Mon vote est GLFW, simple, facile, n'a jamais eu de problèmes qui n'ont pas été résolus. Il est super léger et facile à compiler également.
deceleratedcaviar

Réponses:


29

GLFW est moderne et a une portée très bien définie . Il est également en développement très actif.

SDL de l'autre côté est solide comme le roc et possède de nombreuses fonctionnalités dans différentes étendues mais manque quelque peu dans toutes (par exemple: SDL peut faire de l'audio, mais vous préférerez peut-être utiliser OpenAL car il est de loin supérieur en la matière). Il est à noter que SDL a été porté sur de nombreuses plates-formes différentes, contrairement à GLFW qui n'est destiné qu'aux plates-formes de bureau (win / linux / mac).

GLUT , eh bien, devrait être évité . Il n'y a tout simplement rien de ce qui le rend bon.


À mon avis, en tant que perfectionniste, GLFW est le meilleur choix. Parce qu'il fait exactement ce que l'on veut, rien de moins rien de plus. Le développement très actif est également un bon signe pour les projets à long terme car cela signifie généralement que des bugs seront corrigés, que de nouvelles fonctionnalités seront ajoutées, qu'il suivra les normes les plus récentes et qu'il ne sera pas abandonné de près. Ce n'est pas important pour un portage rapide ou un jeu de 6 mois, mais pour un moteur ou une bibliothèque que vous souhaitez réutiliser, je garderais cela à l'esprit.


7
Mais l'OP pose des questions sur Freeglut et non sur GLUT !!!

@ user3473 "FreeGLUT est une alternative open source à la bibliothèque OpenGL Utility Toolkit (GLUT)."
YoYoYonnY

@YoYoYonnY Il en va de même pour GLFW et SDL, d'où cette question.
Dan

@Dan ... non. GLFW et surtout SDL ne sont définitivement pas des alternatives pour GLUT, car vous pouvez faire avec eux des choses que vous ne pouvez pas faire avec GLUT et vice versa.
YoYoYonnY

@YoYoYonnY Vous pouvez faire avec FreeGLUT des choses que vous ne pouvez pas faire avec GLUT. Mon argument est toujours valable.
Dan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.