想要学习python的小伙伴,或者已经学习了python的小伙伴,或许想要从事游戏开发这个行业,毕竟现在游戏的势头也是蒸蒸日上,游戏开发的前景也是一片大好,现在热门很火爆的游戏很多,如:王者荣耀、和平精英,但是想要从事游戏开发的人依旧很多。
那么,python是否适合开发游戏呢?
对于这个问题,从理论上讲:python是可以开发游戏的。
因为,事实上,任何语言都可以开发游戏。python简单易上手,使用起来十分方便,为什么不能用来开发游戏呢?
但是,从实践上讲:python很难开发游戏。
其原因有几点:
第一点,游戏引擎限制了实现的技术方案。现代游戏的开发,绝大多数情况下都要借助于游戏引擎和编辑器。而流行的游戏引擎非常有限,它们采用的编程语言自然也就被限制在那几种,如目前开发游戏经常使用的语言主要有c++、c#、c、java语言等等。
第二点,python在执行效率、多线程、内存管理方面确实存在一些瑕疵,而这些瑕疵是高性能游戏客户端很介意的,所以Python很难成为首选方案。
第三点,python执行速度慢。python是解释型语言,而解释型语言的缺点就是速度慢,功耗大。
解释型语言和编译型语言的区别。使用编译器对编译语言编译后生成elf或者bin文件是计算机可以直接执行的,而解释型语言不需要编译器,它是通过解释器在程序运行时实时解释执行。这就是为什么解释型(python)语言慢的原因。
第四点,保密安全问题。python的源代码不方便保密存储,而python的源代码是开发者不希望,尤其是对于盈利的开发者来说,他们不希望自己的代码被公开,因此,python不适合用于游戏开发。
那么,python真的就被一棒子打死,真的就不能做游戏开发了吗?
答案当然是否定的。实际上,如果只用Python编写游戏逻辑部分,图形计算密集计算用C++等编译型语言写好底层实现,然后封装成一个Python的API就直接在Python的开发环境内调用了。也就是游戏框架交由高性能的编译性语言来完成,游戏逻辑部分交由Python来完成,这样既能提高游戏的运行速度又能降低游戏的开发难度和开发周期。
目前Python主流的游戏框架有:
1.PyGame:PyGame在优秀的SDL库之上添加了更多功能。允许使用python语言创建功能齐全的游戏和多媒体程序。具有高度的可移植性,几乎可以在所有平台和操作系统上运行
2.PySoy:Python 3的高级3D游戏引擎,紧密结合了渲染,物理,动画和网络
3.Python-Ogre: 用于OGRE 3D引擎的完整python包装器,以及用于GUI,物理,特效,声音等的15个其他图形和游戏相关库
4.Panda3d:专门用于python的全功能开源3d引擎,但用c ++编写。功能:性能,多平台支持,场景图,导出/导入,3D音频,碰撞检测,物理,浏览器插件,动画等。
5.Blender3D:GNU GPL许可下的开源游戏引擎,建模器,动画师和3D渲染器。使用Python作为脚本语言。
利用这些游戏框架,python也可以进行游戏开发。
领取专属 10元无门槛券
私享最新 技术干货