Python是否适合开发游戏?
理解这个问题有两个角度:
1、任何语言都可以开发游戏,任何方便好用的语言都可以快速开发游戏。Python很好用,没理由不能开发游戏。
2、现代游戏开发,不能从画像素点、画三角形做起,绝大多数情况下都要借助于游戏引擎和编辑器。而流行的游戏引擎非常有限,它们采用的编程语言自然也就被限制在那几种。
从两个角度分析,就可以得出基本结论:理论上Python完全可以开发游戏,甚至还非常好用;但是实践中很难拿它开发游戏,因为缺乏必要的工具和基础设施。
1、编程语言和引擎、技术方案有绑定关系 游戏引擎限定了技术方案,具体点说: Unity和C#UE4和C++,蓝图可以间接寄生在其它技术中的LuaH5游戏领域流行的java script和TypeScript。一套技术会形成一套生态,生态本身很难发生大的改变,主要是因为缺乏改变的必要。这是人类社会常见的现象。不仅是技术领域如此,其它领域也是一样:比如,抖音用户超级多,但是用电脑观看抖音的需求很少。
2、现代游戏开发并不排斥解释型语言 现代游戏开发中,以Lua为代表的解释型语言大行其道。国产手机游戏特别重视“热更新”功能。所谓热更新,就是用户不需要重新下载安装游戏,就能在游戏内升级版本。 为了做到代码热更新,很多公司都采用Lua编写大部分游戏逻辑代码。(也有Lua以外的其它技术)。 虽然解释型语言有着运行效率较低等弊端,但至少从大体上看,Lua能做的,Python也能做。Lua效率比Python高一些,但还是属于量的差异而不是质的差异。不少网络游戏服务器端就采用了Python。
3、Python很难做游戏开发的原因 最主要的原因还是没有技术土壤。被主流单机游戏开发排除在外的不止是Python,而是除了C++、Lua、C#以外的几乎所有语言~~~ 并不是针对Python。
次要原因是Python本身的特点。Python在执行效率、多线程、内存管理方面确实存在一些瑕疵,而这些瑕疵是高性能游戏客户端很介意的,所以Python很难成为首选方案。 而只要不是首选方案就很可能没有出头的机会,这两个原因也算是相辅相成的。