|
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:
- an interface to
Simple DirectMedia Layer (SDL);
- 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!
|