I’ve been working quietly for the last eight months on PlainRL, a Ruby roguelike. It’s a full, working roguelike; it has the following features:
- Fully Random: Almost everything in the game is entirely randomly-generated from a few lines of plain-text (seed data).
- 30 Floors: Thirty floors of monster-slaying mayhem, complete with several side-quests. It’s a polished, full game, replete with weapons, armour, bows, everything!
- Advanced Features: Weapon skills, player skills (both level up over time), and lots of interesting things.
- Tweakable Content: You can change a great deal by editing a few plain-text files and a single globals file.
If that sounds like your fancy, give it a whirl (download link at the bottom of the post). I’m thankful for all the lessons I’ve learned along the way. I feel I have a good, solid grounding in Ruby now (useful for any Rails developer).
Download it and take a look; it’s an interesting piece of code.
Download the source here: PlainRL 1.0
SVN repository: http://OpenSVN.csie.org/plainrl
Edit: I’ve tried various versions of Curses/NCurses on Windows, and in all cases, the game just freezes if you hold down a key. If you’re on Windows, use Cygwin.
I hope nobody complains about my code :) I had only (literally) 30-60 minute sessions during which I could work on this; so it was developed incrementally, agile-style, with little emphasis on consistent architecture and design. It works well enough, and it’s easy to extend!
Hi,
it seems you developed the game in an environment without case-sensitive filenames. Because when I try to run it under Linux it fails with a lot of dangling requires due to casing issues.
Besides this, I am glad to see the source code of roguelike developed in Ruby since I am currently developing one myself in this fine language.
@Robert strange that you’re having that problem; I used Cygwin and I can recall lots of case problems. Sorry about that.
Glad to hear it helps; the line-of-sight algorithm was particularly tricky. Sorry, the code is not that great :D