Freeglut vs SDL vs GLFW


26

我需要将我的游戏项目从Android(用C,OpenGL ES 2.0编写,感谢NDK)移植到Windows和Linux平台。当然,我将需要重写一些依赖于平台的代码,但是现在我想知道哪个库可以创建OpenGL和使用输入句柄。

迅速搜寻一下,即可获得3名候选人:

1)Freeglut-重写并免费提供良好的旧GLUT。
2)SDL-最广为人知的一个库,用于许多游戏中。
3)GLFW-一种新的但简单实用的功能。

我对PC的开发还很陌生,并且看不到任何明显的差异。您能帮我选择哪一个吗?我显然只需要核心鼠标/键盘输入和OpenGL上下文的创建,我也将使用GLEW轻松实现现代OpenGL。


2
答案将是自以为是的,对于SE格式来说并不是一个好问题。就是说,我的自以为是的答案-将这三个都用于实际项目,以及其他一些诸如SFML,GLUT,Qt和手动滚动解决方案的解决方案-是SDL很好地融合了功能,稳定性和易用性使用。我特别推荐2.0版预发布版本(只能通过检出Mercurial存储库并自己构建才能使用,但这很容易)。其次,SFML非常好。我发现GLFW中的错误太多,GLUT对游戏不利,而滚动也有很多工作。
肖恩·米德迪奇

我个人会推荐SDL,因为它可以处理游戏的所有部分,从输入到图形再到音频和输入。但是,这可能会受到限制,但是由于您来自已经开发的游戏,并且平台较为有限,所以我认为这是一个不错的选择。
CobaltHex

是的,这是一项民意调查。我的投票是GLFW,简单,轻松,从来没有遇到任何未解决的问题。它重量轻,易于编译。
deceleratedcaviar

Answers:


29

GLFW 是现代的具有非常明确的范围。它也在非常积极的发展中。

另一方面,SDL 坚如磐石,在不同范围内具有很多功能,但在所有这些功能中都有些欠缺(例如:SDL可以进行音频处理,但您可能更喜欢使用OpenAL,因为它在这方面要优越得多)。可能值得注意的是,SDL已移植到许多不同的平台,这与仅用于桌面平台(win / linux / mac)的GLFW不同。

GLUT,嗯,应该避免。根本没有什么能使它变得更好。


在我看来,完美主义者GLFW是更好的选择。因为它确实可以满足人们的需求,所以仅此而已。非常活跃的开发对于长期项目也是一个好兆头,因为这通常意味着将修复错误,将添加新功能,与最新标准保持一致并且不会在任何时候被弃用。这对于快速移植或6个月的游戏并不重要,但是对于要重用的引擎或库,我会牢记这一点。


7
但是,OP询问的是Freeglut而不是GLUT

@ user3473“ FreeGLUT是OpenGL Utility Toolkit(GLUT)库的开源替代方案。”
YoYoYonnY

@YoYoYonnY GLFW和SDL也是如此,因此这是一个问题。
丹丹

@丹...不。GLFW尤其是SDL绝对不是GLUT的替代品,因为您可以使用它们来执行GLUT不能执行的操作,反之亦然。
YoYoYonnY

@YoYoYonnY您可以使用FreeGLUT做一些您无法使用GLUT做的事情。我的观点仍然成立。
Dan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.