The DragonRuby game dev toolkit
For about four years now, I've been messing around with a game dev engine called DragonRuby, created by Amir Rajan and Ryan Gordon (Icculus). It's a very small, lean (less than 5MB) game development runtime(/environment), and games are written in the Ruby programming language.
(YouTube) A quick 5-minute introduction to DragonRuby
If you're of a certain age, you'll have grown up with computers that came with their own built-in languages. In many of these cases, it was very easy to get started doing drawing and sound and other game-like things:
- You started off in graphics mode most of the time.
- Sound hardware was, in a lot of cases, fairly simple (for example, AY sound chips), but you could also get a lot out of it if you knew how (see, for example, the still-going C64 SID music scene).
- Programming was relatively easy, largely thanks to the most popular built-in programming language being a version of BASIC. (Even though it can be argued that BASIC introduced bad habits.)
For me, DragonRuby evokes the same kind of feeling as programming on those old computers so many years ago:
- You don't need to do any kind of special setup to get into a mode where you can draw. You automatically get a window when your program starts and it's yours to do with as you please. Drawing is as simple as inserting a new array or hash into the appropriate output.
- Audio is similarly easy. In most cases, you won't be doing sound synthesis with DragonRuby - instead, you'll be using WAV/MP3 files or similar - but if you want it, sound synthesis is certainly an option.
- Programming in Ruby is an absolute *delight*, and miles better than BASIC. If you've never tried it, give it a shot. You might be surprised.
You may notice that I parenthesised the word "environment" above, when I was discussing it being a "game development runtime(/environment)". That's because it's not really an environment as such - not in the way that, say, Unity is.
Instead, you program in your regular text editor - whether that be Notepad++, nano, vim, emacs, Sublime... whatever works best for you. (I suppose you can use VS Code if you want to.) DragonRuby will automatically reload code when you save it, meaning that if you have it running at the same time as editing the code, you can save it and it will just update with the new code with no further input required.
Quite honestly, I find it a breath of fresh air. If you're interested, give it a shot.
2025-05-05 · 1 year ago · 👍 mrrobinhood5 · 🔥 1
4 Comments ↓
💎 safiire · 2025-05-05 at 03:01:
Thank you for picking (m)Ruby as the language
🦊 Sophira [OP] · 2025-05-05 at 03:51:
Just to be clear, I'm not involved in the creation of DragonRuby at all! I'm just someone who uses it and likes it enough that I wanted to make a post about it.
🦊 Sophira [OP] · 2025-05-05 at 03:53:
I just edited the first paragraph to make clear that it wasn't me who created it!
🖥️ mrrobinhood5 · 2025-05-05 at 16:03:
I've been looking at dragon Ruby for some time and didn't know if it was worth the time. thanks for this.