使用Cython进行游戏开发?

Lia*_*iam 16 c python cython

使用Cython作为游戏的主要编程语言有多实用?

我是一名经验丰富的Python程序员,我非常喜欢它,但对于游戏编程而言,我确实是个新手.我知道通常认为Python太慢而无法进行任何严肃的游戏编程,这就是为什么Cython对我很有趣.使用Cython,我可以使用类似Python的语言,速度为C.

我知道我可能还需要学习一些C/C++,但看起来Cython会比较加快开发时间.

那么,它实用吗?我还能使用OpenGL,Op​​enAL和Bullet Physics等C/C++库吗?

sso*_*low 17

如果您正在使用这样的组合,并且您的目标是编写3D游戏,那么您可能会通过成熟的物理和音频绑定以及像OGRE 3D(Python等Python API)的现成3D引擎获得更好的里程数.-OGRE)或Panda3D.即使你不这样做,这篇关于将Cython与Panda3D一起使用的帖子可能会有所帮助.

我现在不确定,但在2007年,两者之间的权衡取决于:

  • Panda3D更好地记录并且从头开始设计为C++加速的Python引擎(显然他们做出了一些C++引擎项目不会出现的API设计决策),并且可以预见,它有一个更成熟的Python API.
  • PyOgre建立在更先进的引擎之上,拥有更大,更有活力的社区.

......然而,由于时间流逝,2007年,Panda3D仍然处于GPL不兼容的许可证之下,很可能会发生变化,并且驱使很多人离开了.(包括我自己)

  • 作为一个说明,Python-Ogre现在已经死了,特别是因为网站完全消失了:-( (3认同)

gab*_*mdq 9

我是Ignifuga游戏引擎的开发者,它是面向2D的,基于Python/Cython/SDL.我通常做的是用Python开发代码,然后分析引擎以查看是否存在一些明显的瓶颈(主循环,渲染代码是好的候选者),并将这些模块转换为Cython.然后我通过Cython运行所有代码(基于Python和Cython),并针对SDL静态编译它.Cython的另一个重要"优点"是绑定到SDL或任何基于C的库几乎是微不足道的.关于线程,引擎目前是单线程的,通过Greenlets进行协同式多任务处理,尽管这来自于设计决策,以减轻无经验的开发人员可能陷入的潜在多线程陷阱,而不是对Cython的限制.


LBa*_*ret 6

在这个日期(2011年4月12日),unixmab83错了.

Cython不禁止使用线程,您只需要使用no_gil特殊语句.

除了c ++的绑定之外,现在在cython中起作用.

我们确实将它用于接近gamedev的东西.因此,虽然我无法做到最终,但cython是一个有效的候选人.


小智 5

我发现很多时候,特别是对于大型库,你花费了大量的时间来配置Cython项目来构建,知道要导入哪些结构,将C代码桥接到Python的任何一个方向等.虽然Cython是一个很好的权宜之计(并且比纯C/C++开发更令人愉快),但是你必须学会​​有效使用它的C++数量基本上意味着你必须咬紧牙关并学习C++.

PyGame怎么样?