At RailsConf 2009 (of which a summary will be coming soon to Ruby Inside), Hongli Lai and Ninh Bui of Phusion (the guys behind Passenger) gave a presentation called Scaling Rails. As part of this, they wanted to demonstrate that Ruby is powerful enough to run a 3D game at a decent speed so they built Rubystein, a Wolfenstein 3D clone in Ruby, using the Gosu game development library.
Rubystein is not a true clone in the sense that it's exactly the same as Wolfenstein 3D, but the principles are the same. It's heavily tailored to Ninh and Hongli's presentation, however, and features a "pack of Mongrels", various Rubyists, and Zed Shaw as a boss.
As a standalone work, it's impressive. I've not seen such a slick 3D game developed in Ruby before. On my netbook running stock Ruby 1.8.6 it runs slow, but under Ruby Enterprise Edition it's somewhat faster though. To my surprise, however, it also runs perfectly under Ruby 1.9 and it flies there.
Hongli and Ninh are quick to point out that Rubystein is a very, very rough work. The project has no directory structure and is just a giant mass of files. The application itself is reasonably well structured, though, and there's plenty of opportunity to use this code as a base to build your own variations. No instructions are provided, however, so it's not for the timid. To try out Rubystein as it is, just git clone the repository from git://github.com/FooBarWidget/rubystein.git and then run wolf3d.rb.
Note: If you don't have the font Myriad Pro installed, the game will quit when you reach a boss. Either install Myriad Pro or change the font name to something more generic in wolf3d.rb.
