为什么rubygame和gosu比纯opengl慢?

XPa*_*c27 6 ruby opengl rubygame libgosu

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

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

GOSU(使用ruby-opengl + gosu)46Fps: alt text http://grab.by/JTC

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

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

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

你怎么看?

Pau*_*sik 5

当您使用框架时,任何简化和加速开发的框架都会立即导致性能下降.OpenGL是一个优秀而快速的库,但是当你使用像Ruby这样的高级语言和框架包装它时,你绝对可以期待减速.OpenGL仍然很快,你的缓慢来自这些框架内部正在发生的任何开销.尽管如此,46 fps似乎并不是太糟糕但如果你要比你的例子更加强调引擎,你可能会得到一个不可玩的游戏.