Pygame和Pyglet的优缺点

44
我想知道从哪个开始比较好,pyglet还是pygame?哪个更快,哪个更活跃?
我还想知道pyglet是否会支持Python 3,因为我在这里读到过,可能不可能或者需要很长时间。
谢谢。

Python游戏库Pygame和Pyglet之间的区别 - Sridhar Ratnakumar
6
我不会称之为重复问题。那个问题在问区别,并非哪一个更好作为起点。 - Reshure
做什么?你没有说它将用于什么。 - Nick
4
顺便提一下,pyglet 1.2alpha1 版本开始支持 Python 3。 - anatoly techtonik
Pyglet 2.0正在开发阶段(带有向量和矩阵!!) - zoomlogo
3个回答

38

Pygame非常活跃,见证了1.9版本的发布,支持nokia s60、增强的py2app/py2exe支持和一系列实验功能(例如:Python 3.1、webcam、gfx等)。像Hello World这样的书籍以及定期举行的有趣比赛,如ludumdarepyweek,都证明了其社区和生态系统的活力。

Pyglet拥有一个整洁而新的API,并且很方便(纯Python,BSD许可证,而不是LGPL)。

至于速度,我没有运行基准测试,但我了解到,pyglet默认情况下更擅长利用高级硬件加速来处理3D工作,而pygame则更擅长处理2D工作,在那些不具备光鲜亮丽的3D硬件加速器的硬件上(如智能手机、上网本等)。您可以通过添加插件来增强两个框架的速度,但这会失去方便性。

在Py3支持等方面,我认为问题仅仅在于pygame更成熟、更受欢迎,拥有一个更庞大的核心开发团队,因此它当然可以更早地推出新功能,如Py3支持。

如果上述问题都不是您决定性的问题(您不介意LGPL vs BSD,不太关心智能手机,不需要书籍等等),唯一明智的做法就是下载两者,并在您感兴趣的机器上尝试相同的基本任务——这将告诉您每个框架在速度、方便性等方面如何“适合您的思维”和需求。


道格拉斯批准 :)。Pygame是生命、爱和幸福,而Hello World是有史以来最好的Python书籍。 - Douglas - 15 year old Pythoner

15

抱歉我无法评论其他回答,所以我必须写一篇新的。就速度而言,Pyglet 相比于 pygame 有着更快的速度,而在使用 pygame 进行开发时,速度常常会让人担忧(您需要更新屏幕上最小的部分,并且记住已经发生了什么可能很繁琐)。但是 Pyglet 没有这个问题。

如果您使用 cocos2d (在 pyglet 之上的一层),加速变得更加容易,只需将精灵附加到 BatchNode 上,即可看到 FPS 的提高。

正如评论中所说,pyglet 支持 python3。

这只是我的个人喜好,但我更喜欢 Pyglet,而且使用 cocos2d 更容易学习。缺点是社区较小。


8

这似乎是一个重复的问题:Python游戏库Pygame和Pyglet之间的区别?

那里至少是寻找其他答案的一个地方。

我参加了Steve Johnson在PyOhio的关于pyglet的演讲(第18个演讲,网址为http://pyohio.org/2009/Talks/),并对所需的代码量感到印象深刻。pygame似乎很大,而且我(个人认为)不喜欢所有额外的依赖。

也就是说,我还没有为任何一个写过代码。我的计划是从pyglet开始,等我熟悉它之后,再尝试pygame,看看它们如何比较。

我同意Alex的回答,如果你在谷歌上搜索pygame vs. pyglet,你会发现很多个人偏好。我看到的唯一客观的区别是支持多少个图形处理器(pygame不需要OpenGL,因此pygame可以支持更多)。


1
我看过那个问题,但是答案对我来说感觉不完整。 - Reshure

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接