【问题标题】:Game Library with Support for RPython支持 RPython 的游戏库
【发布时间】:2013-03-10 00:53:52
【问题描述】:

是否有任何支持 RPython 的 Python 游戏库(Pygame、Pyglet 等)?还是专门为 RPython 制作的游戏库?还是 RPython 游戏库的绑定?

【问题讨论】:

  • 为什么?我认为这不值得付出努力,因为 RPython 是 (1) 一种相当令人不快的编程语言,并且 (2) 除了编写虚拟机之外,它不适合任何用途。

标签: python game-engine pypy rpython


【解决方案1】:

是的,看看用 RPython 编写的 gameboy 解释器,pygirl。 https://bitbucket.org/pypy/lang-gameboy

【讨论】:

    【解决方案2】:

    RPython 不是 Python。它们是不同的语言,尽管您可以使用 Python 解释器执行 RPython 代码并获得与运行已编译的 RPython 程序类似的效果(慢得多)。 不可能有任何合理的 Python 库(游戏库或任何其他类型)也适用于 RPython。它必须是专门为 RPython 编写的,如果它在 RPython 中工作,那么当它被视为一个常规 Python 库时会非常不灵活,以至于没有人会在这种情况下使用它。

    如果您想使用游戏库以较低级别的编译语言进行编程,请使用 C# 或 Java。 RPython 不是一个好的竞争对手(很大程度上是因为它的库很少,甚至没有多少标准库)。

    如果您想用 Python 编程,请使用 Python(可能使用 Python 的 PyPy 实现,如果它支持您正在使用的所有库,它可能比标准 Python 解释器更快)。 RPython 不会帮助您编写运行速度更快的 Python 代码。

    如果您的目标不是专门制作一款游戏,而是因为您想专门学习 RPython 而使用 RPython 做一些项目,那么这是一个完全合理的目标。但是编写游戏可能不是学习编写 RPython 最有帮助的项目;您可能应该考虑编写某种解释器,因为这就是 RPython 的设计目的。

    【讨论】:

    • @kirbyfan64sos 是的,但是如果你使用 RPython 只是为了调用 C,它并没有带来太多好处。你也可以从 Java 或 C# 调用 C 库,并获得类似的具有更多支持和其他可用库的静态 OO 模型。在 RPython 中编写足够“类似于解释器”的东西以从其杀手级功能中受益是有意义的(例如,自动将 GC 和 JIT 编译添加到“解释语言”中)。如果你没有从中受益,那么 RPython 对你没有多大帮助。
    • 我不知道,但我在 RPython 中写过与解释器无关的东西。除了习惯错误消息之外,这并不是那么糟糕。我什至在里面写了一个目录树遍历器……然后为了纯粹的乐趣添加了一个 JIT(??)。我的意思是,这需要习惯,但并没有那么糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多