用纯Python能否编写一个像魔兽世界一样大的3D游戏?

13 投票
13 回答
11771 浏览
提问于 2025-04-15 11:51

用纯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代码来改进。

撰写回答