2012-02-25 3 views
2

Ruby gem rubysdlruby-sdl-ffi의 차이점을 알려주는 사람이 있습니까? 그렇다면 을 선호합니까? 나는 쓰고있는 나의 보석 Rubydraw (here)을 위해서 궁금해하고있다.rubysdl 대 ruby-sdl-ffi

미리 감사드립니다.

답변

9

저는 ruby-sdl-ffi의 저자입니다. 이 질문은 오늘 제 관심을 끌었습니다. 그래서 나는 여전히 호기심이 많은 사람의 이익을 위해 대답하고 있습니다.

가장 큰 차이점은 루비 -sdl-ffi는 FFI (외국 함수 인터페이스)를 통해 SDL (및 관련 라이브러리)에 액세스하는 순수 루비 코드 인 반면 rubysdl은 SDL (및 관련 라이브러리). 각 접근법에는 장단점이 있습니다. (분명히 FFI가 더 나은 접근 방법이라고 생각하거나 루비 -dlf-ffi를 쓰는 데 신경을 쓰지 않았을 것입니다.)

두 라이브러리는 유사한 차이점이 있지만 비슷한 기능 세트를 제공합니다 (아래 명시). 그들은 이미지, 사운드/음악 및 키보드, 마우스 및/또는 조이스틱/게임 패드를 통한 사용자 입력으로 2D 게임을 할 수 있습니다. 그들은 또한 하드웨어 가속 3D 게임을 만들기 위해 OpenGL (ruby-opengl 또는 ffi-opengl 사용)과 함께 사용할 수 있습니다. Windows, MacOS X 및 Linux (그리고 다른 플랫폼)에서 모두 사용할 수 있지만 rubysdl은 "rsdl"이라는 특수 Ruby 인터프리터 래퍼를 사용하는 경우 MacOS X에서만 작동합니다.

심각한 벤치 마크가 실행되지 않아 원시 성능에 대한 정확한 데이터를 제공 할 수 없습니다. 일반적으로 rubysdl은 약간의 성능 이점이 있지만, 두 라이브러리 사이에서 결정할 때 성능이 주요 요인이되지 않을 정도로 충분히 가깝습니다. 여기

내가 두 라이브러리의 장단점을 요약 한 것입니다 방법입니다 : 사용자가 보석을 설치하기 쉽게

루비 SDL-FFI

  • . 컴파일 할 필요가 없으므로 사용자는 C 컴파일러 또는 툴체인을 설치할 필요가 없습니다.
  • MRI ("일반적인"루비 인터프리터), JRuby 및 아마도 Rubinius에서 작동합니다.
  • MacOS X에는 특별한 해석기가 필요하지 않습니다. 그러나 최신 버전의 MacOS X에서 완전히 작동하려면 MacOS X 지원을 업데이트해야 할 수도 있습니다. (애플은 계속 변화하고 있습니다.)
  • 하위 레벨 API는 C 라이브러리를보다 밀접하게 반영합니다. 이는 귀하의 관점에 따라 좋거나 나쁠 수 있습니다.
  • 현재 SDL, SDL_gfx, SDL_image, SDL_mixer 및 SDL_ttf 라이브러리에 대한 바인딩이 있습니다. (rubysdl에 비해 SDL_gfx는 추가되지만 SGE와 SMPEG는 부족합니다.) 다른 라이브러리에 대한 바인딩을 추가하는 것은 매우 쉽습니다.
  • 더 이상 적극적으로 개발되거나 유지 관리되지 않습니다. 나는 더 이상 시간이나 관심이 없지만, 누군가는 인계 할 수 있으며, 나는 지침을 제공 할 수있다.
  • 다소 실험적이며 약간 거친 부분이 있습니다.

rubysdl는

  • 더 성숙하고 세련된, 시간의 시험을 버텨왔다.
  • 일본어 텍스트 입력 및 렌더링을 더 잘 지원합니다.
  • 상위 수준의보다 추상적인 API입니다.
  • SDL, SGE, SMPEG, SDL_image, SDL_mixer 및 SDL_ttf 라이브러리를 바인드합니다.
  • gem을 설치하려면 사용자에게 C 컴파일러가 필요합니다. 이것은 Windows와 MacOS X에서 상당히 골칫거리가 될 수 있습니다.
  • MacOS X 사용자는 특별한 "rsdl"Ruby 인터프리터를 사용하여 게임을 실행해야합니다. 따라서 내 지식으로는 MacOS X의 JRuby 나 Rubinius에서는 작동하지 않습니다.
  • 더 이상 개발이나 유지 보수가 더 이상 필요하지 않습니다.
+0

안녕하세요 John, SDL과 귀하의 보석이 고수를 사용하는 것과 어떻게 다른가요? – Andrew