6

我正在寻找一个好的图形框架来用 Ruby 制作一个漂亮的 2D 游戏。我做了 3 个非常简单的测试,看看在GosuRubygame之间哪个图形 Ruby 框架更快。该测试创建了 1000 个“Square”类的实例,这些实例使用框架的方法以最简单的方式移动并绘制了一个红色方块。第三个测试是同样的事情,但在一个纯 OpenGL 实现中(没有任何框架)。这是结果:

纯 OPENGL(使用 ruby​​-opengl)80Fps: 替代文本 http://grab.by/JTM

GOSU(使用 ruby​​-opengl + gosu)46Fps: 替代文本 http://grab.by/JTC

RUBYGAME (使用 ruby​​-opengl + ruby​​game + rsdl) 32Fps : alt text http://grab.by/JTw

为什么纯 OpenGL 测试与 Rubygame 或 Gosu 测试之间的 fps 差异如此之大?(他们都使用opengl吗)

这些框架真的可靠还是我应该使用更好的框架?(我不认为自己经历了在纯 OpenGL 中加载图像声音和字体的整个过程:p)

你怎么看?

4

4 回答 4

5

当您使用框架时,任何用于简化和加速开发的框架都会立即招致性能损失。OpenGL 是一个很好而且速度很快的库,但是当你用像 Ruby 这样的高级语言和框架来包装它时,你绝对可以期待它会变慢。OpenGL 仍然很快,你的缓慢来自于这些框架内发生的任何事情的开销。尽管如此,46 fps 似乎并不算太​​糟糕,但如果您要对引擎施加比您的示例更多的压力,您最终可能会得到一个无法玩的游戏。

于 2009-11-23T16:21:19.767 回答
2

我刚刚使用 Ruby 1.9.2 和 Gosu 做了一个方形项目。我能够在我的 MacBook Pro 上获得 1000 个方格和 60 fps 而没有性能问题。使用 eval 展开我的对象数组,我以 60 fps 的速度获得了 4000 个方格。方块具有随机速度并从显示器边缘反弹。

于 2010-11-25T11:21:44.563 回答
0

如果这是使用框架的惩罚,我想知道实际实现游戏逻辑的惩罚是什么……我对使用 Ruby 进行游戏开发的希望正在下降得更快。

于 2009-11-23T20:23:19.453 回答
0

你在使用 YARV 吗?您应该尝试另一种 ruby​​ 实现,例如 jruby 或 rubinius。

于 2010-06-29T10:21:35.073 回答