I haven't really seen anyone seriously discussing Ruby game dev here, which is too bad. It needs some love. The language is awesome.
I started with Rubygame, which is a really nice all-in-one library that leverages SDL, which works on most platforms. You get graphics, sound, media handling, sprite management, input, and rudimentary framerate management all in one. I do develop in Linux, but Rubygame worked fine in win32 as well. Just 'gem install rubygame' in windows and you're pretty much good to go. Doesn't play nice with cygwin Ruby, though; try the one-click Ruby installer instead.
Rubygame's use of SDL is a boon and a handicap. One of the biggest problems is that there aren't prebuilt binaries readily available for all the SDL libraries it uses on all platforms (SDL_gfx.dll for Windows, in particular). You can search around and eventually find them on 3rd-party sites, but it's non-trivial to try to build them yourself.
I was/am using the Chipmunk 2D physics library, and I quickly ran into limitations with sprite rotations. The binding to SDL_gfx's rotozoom function creates a new SDL surface every time it's called, and I think with a few large physics objects on the screen, I was throwing surfaces away faster than Ruby's garbage collector could keep up. Memory usage would skyrocket into hundreds of MB for a simple scene. If you don't need to do rotations on every frame, you probably won't have that problem.
Rubygame 3--if it ever gets released--is supposed to be a major rewrite that uses OpenGL for graphics rendering. That would probably cure the problems I was having.
There are other frameworks available, depending on how much you'd like done for you and how stable you'd like your library to be.
The other big game dev library is
Gosu, which is also cross-platform, and uses OpenGL as its rendering back end. I tried it briefly, but something about it just didn't agree with me. Others have had great luck with it; I've even read of 3D networked multiplayer stuff using eventmachine, but it's nothing I've experienced.
Shattered Ruby and Railgun, two Rails-ish approaches to game development, seem to have died on the vine.
My current favorite is
GLFW (gem install ruby-glfw), a really lightweight cross-platform OpenGL wrapper that gives you input support, TGA texture loading, and some timer stuff, I think. For the graphics, you basically call regular C-style OpenGL functions wrapped by ruby-opengl. It doesn't abstract much of the graphics handling, so you'll need to learn OpenGL. I've used the Ruby bindings for the nice FTGL OpenGL font handling library, too, though it was tricky for me to get it running in win32.
From my own experience, I agree with Boris above: if your interpreted program is slow, there's a faster algorithm you could be using, or you could sub out to a compiled language.
RubyInline looks like a stupid-easy way to write inline C/C++, and it looks like it may even be able to post-process some of your Ruby functions and turn them into C.
It's still tricky to distribute Ruby apps since the language lacks something nice like Python's compiler. I'm using the cross-platform
RubyScript2Exe (available as a gem), which traces your app and creates a self-extracting executable that embeds your code and a minimal Ruby distribution with the parts you need. It's pretty transparent to the end user, but the community needs to find a better solution in the long term.
The site seems to be down right now, but people at the
Rubygame Forums used to discuss Ruby game development in general.
If you like, you can have a look at the Rubygame-based text adventure a friend and I put together for the Demakes contest (
Road Trip: Southwest USA). Though it's a text adventure, the console is drawn graphically in order to emulate the slower scroll of a 386. The source is available and I'm pretty sure it's documented, though I wrote it in a week so it's probably not a work of art.
Hope that helps.