用纯Python能否编写一个像魔兽世界一样大的3D游戏?
用纯Python写一个像《魔兽世界》那么大的3D游戏可能吗?假设我们使用DirectX/D3D绑定或者OpenGL绑定。
如果不行,使用Python做这样一个项目最大的障碍是什么?我知道游戏一般都是用C和C++来做的,但有时候人们出于习惯会选择其他语言!
任何信息都能满足我的好奇心。
编辑:
GIL会对3D客户端的性能造成重大影响吗?使用OpenGL或DirectX绑定和直接使用这些库相比,性能损失大概有多严重?
13 个回答
9
从技术上讲,任何图灵完备的编程语言都能实现任何功能。
不过,实际上,如果你用高级语言来搭建网络系统,就会遇到麻烦,因为服务器必须非常快,才能处理这么多玩家的请求。
在客户端的游戏部分,应该没什么问题,因为图形界面、任务和键盘输入这些都不算复杂。
真正的问题出现在服务器上,特别是那些计算量大的操作。像登录这种人能接受的速度,基本上没问题,但如果需要在一万多个用户之间瞬间响应,你可能就得考虑使用用C语言写的外部库了。
当然,可能会有一些Python高手跳出来反驳我,因为正如我一开始说的,技术上只要努力,什么都能做到。
14
虽然我对《魔兽世界》的所有技术细节都不太了解,但我认为像这样规模的网络游戏是可以用Stackless Python来开发的。
《EVE Online》就是用这个技术,他们有一台服务器可以支持20万个用户。
17
是的。不过它的表现如何又是另一个问题。
一个好的开发方式是先用纯Python来开发,然后进行性能分析,找出哪些地方运行得慢,再把这些关键的部分用C/C++/Cython重写,或者用更高效的Python代码来改进。