2009-11-23 3 views
6

Ruby에서 멋진 2D 게임을 만들기위한 좋은 그래픽 프레임 워크를 찾고 있습니다. 어떤 그래픽 루비 프레임 워크가 GosuRubygame 사이에서 빠르다는 것을 알기 위해 3 가지 간단한 테스트를 만들었습니다. 이 테스트에서는 프레임 워크의 방법을 사용하여 가장 간단한 방법으로 빨간색 사각형을 이동하고 그려주는 "Square"클래스의 1000 인스턴스를 만듭니다. 세 번째 테스트는 순수한 OpenGL 구현에서 (프레임 워크없이) 동일한 작업입니다.왜 루비 게임과 고수가 순수한 OpenGL보다 느린가요?

PURE OPENGL (사용 루비는 OpenGL) 80Fps : alt text http://grab.by/JTM

고수 46Fps (루비는 OpenGL + 고수 사용) : 여기 결과이다 alt text http://grab.by/JTC

Rubygame과 (사용 루비는 OpenGL + Rubygame과 + rsdl) 32Fps : alt text http://grab.by/JTw

왜 순수한 OpenGL 테스트와 Rubygame 또는 Gosu 테스트간에 큰 fps 차이가 있습니까? (둘 다 OpenGL을 사용합니까?)

프레임 워크는 실제로 신뢰할 수 있습니까? 아니면 더 나은 프레임 워크를 사용해야합니까? (나는 순수한 OpenGL에서 이미지 사운드와 글꼴을 로딩하는 과정을 겪어 보지 못한다 : p)

당신의 의견은 무엇입니까?

답변

5

프레임 워크를 사용하면 모든 프레임 워크가 단순화되고 개발 속도가 빨라지므로 성능 저하가 즉시 발생합니다. OpenGL은 훌륭하고 빠른 라이브러리이지만 Ruby와 같은 고급 언어와 프레임 워크로 랩핑하면 절대적으로 느려질 수 있습니다. OpenGL은 여전히 ​​빠르며, 느린 프레임 워크는 프레임 워크 내부에서 일어나는 모든 작업의 ​​오버 헤드에서 비롯됩니다. 그래도 46fps는 그리 나쁘지는 않겠지 만, 예를 들어 엔진보다 더 많은 스트레스를받는다면 게임이 끝나지 않을 수도 있습니다.

+1

나는 동의한다. 그러나 그 격차가 크다. :) 루비에 실시간으로 2 차원 (또는 3d) 그래픽을 만드는 더 좋은 프레임 워크가 있는가? – XPac27

0

프레임 워크를 사용했을 때의 과한 처벌이라면 실제로 게임 로직을 구현할 때 어떤 불이익을 주는지 궁금합니다 ... gamedev에 Ruby를 사용하기를 희망합니다.

+0

프레임 워크가 자신에게해야 할 일이 많다는 것이 일반적입니다. 따라서 초기 속도가 느려지지만 게임 코드를 추가하기 시작할 때 프레임 워크를 효율적으로 사용하여 작업을 완료 할 때 속도가 더 느려지지 않을 수도 있습니다. – Kylotan

+0

한번에 1000 개의 이미지를 한꺼번에 이동하고 싶습니까? 비록 당신이하더라도 당신은 여전히 ​​45 FPS를 얻을 것이다. 그다지 나쁘지 않습니다. – horseyguy

0

YARV를 사용하고 있습니까? jruby 나 rubinius와 같은 대체 루비 구현을 시도해야합니다.

+0

아니, 나는 루비 1.8.1 (맥)를 사용하고 있습니다. 하지만 최상의 솔루션 인 것 같습니다 : http://programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/ 아마도 Rubygame이 SDL을 기반으로한다는 사실에서 문제가 발생할 수 있습니다. – XPac27

+1

Mac을 사용하는 경우 http://www.macruby.org/를 살펴보십시오. – mk12

2

방금 ​​Ruby 1.9.2와 Gosu를 사용하여 사각형 프로젝트를 만들었습니다. 내 MacBook Pro에서 성능 문제없이 1000 제곱 및 60fps를 얻을 수있었습니다. eval을 사용하여 객체 배열을 펼치면 60fps에서 4000 개의 사각형이 나타납니다. 사각형은 임의의 속도를 가지고 있으며 모니터 모서리에서 튀어 나옵니다.

관련 문제