在python中开发非平凡的2d游戏是个好主意吗?[关闭]


10

我正计划开发2D空间RPG,但我面临的选择是:用哪种最佳语言书写?我的候选人是C ++,Java和Python。显然,我想用Python编写游戏,因为它的表现力,开发速度和添加脚本支持的简便性。但是我很担心:

  • Python不会太慢吗?该游戏并非易事(例如像俄罗斯方块),可能需要为宇宙中数千艘飞船计算任务(尽管如果玩家看不到它们的飞船,它们的AI可以大大简化)。当然,我可以用C编写一些关键部分,但是它将立即使构建和部署变得复杂。
  • 假设游戏开始流行,而我成为了超级巨星。Windows用户根本很少拥有Python(幸运的是我们拥有py2exe)。Mac OS X上的Python可能已过时,并且游戏可能因异常而崩溃。在Python中部署游戏会不会很困难?
  • 由于缺少适用于Python 3的库,我将不得不用Python 2编写游戏。难道几年之内过渡到Python 3会不会太痛苦且耗时?

对于第二个问题,我很确定还有一个py2app可用于使部署变得相当容易。
thedaian 2011年

1
如果您决定使用Python进行此操作,则可能需要查看是否可以使用numpy来完成任何“慢速”部分(但可能没有必要)。
布伦丹·朗

Answers:


8

Python不会太慢吗?该游戏并非易事(例如像俄罗斯方块),可能需要为宇宙中数千艘飞船计算任务(尽管如果玩家看不到它们的飞船,它们的AI可以大大简化)。当然,我可以用C编写一些关键部分,但是它将立即使构建和部署变得复杂。

很难说,但是在大多数情况下,性能的限制因素是一个人作为开发人员的能力/经验,而不是语言。请注意,EVE使用Stackless Python(有关相关演示文稿的下载,请参见此处此处)。我不记得确切的细节,但是显然他们的大多数服务器集群都在运行Python。因此,我可以想象它可以满足您的可伸缩性要求,尽管可以确定原型制作是好的。

Windows用户根本很少拥有Python(幸运的是我们拥有py2exe)。Mac OS X上的Python可能已过时,并且游戏可能因异常而崩溃。在Python中部署游戏会不会很困难?

大多数用户很少为游戏提供适当的二进制依赖性,而不管这些游戏是用什么技术编写的(即使C语言也需要分发运行时组件)。通过py2exe或同等版本进行部署,或者只是部署适当的依赖项,都是生活中的现实。尽管它从来都不是最简单的事情(大多数安装程序技术很痛苦),但它是可行的,也不应该成为避免使用该语言的理由-正如我所说,无论如何,您可能都需要处理类似的事情。

由于缺少适用于Python 3的库,我将不得不用Python 2编写游戏。难道几年之内过渡到Python 3会不会太痛苦且耗时?

我对此并不了解,也从未真正使用过Python3。但是我不希望Python 2.X会很快消失,因此,我什至不怀疑游戏的寿命会如此长久。 “d 需要过渡,如果你没有在想,这使得这种担忧的东西不成问题的。

正如其他人所说,您太担心项目的语言选择方面。Python是用于开发游戏的功能强大且有用的工具,如果您了解并喜欢它,则应该使用它进行开发。如果游戏从未完成,则游戏运行的速度并不重要,因为您过于担心语言。


相当广泛地使用了python 2.7之后,使用python 3.2+便无法完成2.7。这将随着时间的推移而改变,但是库支持也会随之改变。=)
2012年

14

首先,您只需要构建一个原型并查看。即使您告诉我们所有细节,也不会真正改变事情。

至于其他两点,我有点像你在把车推到马前。从您的问题看来,您似乎是游戏开发的新手,在这种情况下,您只需要选择一种工具并随身携带即可。对大多数同样有用的工具的优缺点之以鼻,这会分散您真正的挑战:学习游戏开发。


0

关于#3,Python 2.x将在至少5-10年内获得发行商的支持。如果使用的是较新的版本(2.7或可能为2.6),则在编写面向未来的代码(新型对象,处处unicode等)时,迁移路径就相当容易。痛苦主要是因为那些依赖旧的,断断续续的行为。


以帮助识别会咬你旧的行为,具有运行游戏python -3 filename.py,这将3打印出不再使用Python支持的事情警告
spiffytech
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.