如果您以前没有编写过游戏,我建议您从 Python 和 Pygame 开始。如果您已经是一名程序员,那么 Python 本身非常容易学习,所以这对您来说不会有太大的飞跃。
使用 Pygame,您几乎不需要花时间编写“胶水”或处理诸如窗口管理和声音设置之类的普通低级细节 - 您几乎可以立即编写游戏逻辑,并且很快就会blit
左右操作。更重要的是,让你的游戏原型运行起来非常容易,这样你就可以开始试验这些机制了——我在几个小时内就编写了一个简单的小型横向滚动平台游戏。
表现
Python 与 Pygame 的性能通常对于简单的游戏来说是不错的,尽管“平滑滚动”游戏可能会表现出很差的性能,尤其是在 Linux 上(根据我的经验,至少 -pygame.display.update()
在 Linux 上每帧需要 15-30 毫秒,而在 Linux 上每帧需要 4-5 毫秒)在 Windows 上使用便宜的 Intel 显卡,尽管这是两年前的事了,Linux Intel 驱动程序最近有所改进)。此外,如果您有大量物理/数学代码,Psyco 可以为您提供巨大的加速(在某些情况下为 20% - 200%),但您将被限制为在 x86 计算机上使用 32 位 Python。
一旦你完成了大部分游戏逻辑,如果性能仍然不能令人满意,你可以切换到 C 和 SDL。由于您已经编写了游戏逻辑,因此您只需专注于直接处理 SDL。即使这样也应该相当容易——Pygame 内部使用 SDL,所以翻译应该相对简单。
OpenGL
不幸的是,上述情况仅在您编写 2D 游戏时才成立——Pygame 对 OpenGL 基本上没有帮助。但是,我不建议使用 OpenGL 开始游戏编程。一开始可能很难理解,所以你会同时遇到两个问题 - 首先,你试图弄清楚如何获得游戏逻辑/物理/人工智能/等。工作,然后你很难理解 OpenGL。最终学习 OpenGL 是值得的,但不是从头开始——最好从基础开始,然后从那里开始。
跨平台注意事项
至于跨平台问题 - py2exe(适用于 Windows)和py2app(适用于 Mac)允许您构建包含您的依赖项(包括 Python 解释器和 Pygame)的单个可执行文件;但是,我认为您无法从 Linux 环境构建可执行文件(您可能必须能够借用 Windows/Mac 计算机几分钟)。对于 Linux,您可能只需分发一个 .deb,将 Pygame 列为依赖项(必要时将 Psyco 列为 Recommends 或 Suggests)。