Features

Right now, Rubygame is quite usable for making 2D and 3D games (when used alongside ruby-opengl or a similar library), but there is currently no sound support.

Some of the major features of rubygame are:

  • Image loading in many formats.
  • Scaling, rotating, and flipping images.
  • TrueType Font and SFont (bitmap font) support.
  • Keyboard, mouse, and joystick input.
  • Flexible sprite library for game objects.
  • OpenGL integration for 3D hardware-accelerated graphics (including conversion of rubygame Surfaces to OpenGL textures).
About Rubygame (README)

Rubygame is a game-development extension and library for the ruby language, with similarities to pygame. The purpose of rubygame is make the creation of games in the ruby language simple, easy, and fun, without limiting flexibility. Rubygame provides two things:

  1. an interface to Simple DirectMedia Layer (SDL);
  2. a library containing 'helper' classes and modules.

Rubygame was born out of a need (specifically, the author's need) for a clean, convenient Ruby-to-SDL binding (for more information, see the FAQ on the webpage). If rubygame isn't your cup of tea, you might try two other Ruby-to-SDL bindings, Ruby/SDL and RUDL.

Many of the tutorials and examples for pygame will work with rubygame (after some minor modification) so I encourage you to consult those as well. Pygame's 'chimp' tutorial example has been translated to rubygame, with differences noted in the comments. See 'chimp.rb' in the samples directory packaged with rubygame.

Rubygame is being programmed to be modular, meaning you can pick and choose which parts to use. For example, if you don't need TrueType font support, SDL_ttf is not required to compile rubygame. Additionally, it is possible for a game to detect at run-time which features are present, and behave differently (for example, disabling optional features).

Further, rubygame is (or will be) multi-tiered, meaning that you can access rubygame's functionality on a number of levels, each level being built on the level below it. At the lowest level, rubygame is essentially a Ruby interface to SDL. At higher levels, rubygame provides sprite classes, event queues, etc. At still higher levels, rubygame might (in the future) provide features like a simple physics model or animation classes. Each higher level is closer to a complete game, but is also less flexible.

Rubygame is considered to be in beta (as of January 2006). The API may change, but backward-incompatible changes will be marked by a major version number increment (e.g. from 1.0 to 2.0). New features additions which are backward-compatible will be marked by a minor version number increment (e.g. from 1.0 to 1.1). Bug fixes or other changes which do not affect the API will be marked by a patch version number increment (e.g. 1.0 to 1.0.1).

If you would like to help make rubygame better, please send me comments via email at rubygame AT seul.org!

seul.org logo This page last built: 2006-02-04 14:00