
April 6, 2026
Ruby outside the web browser. On a game cartridge. Sort of.
Every so often, something appears in the Ruby world that doesn’t fit the usual categories. It’s not a web framework. Not a gem for background jobs. Not a Rails performance tweak.
It’s a game engine. And it runs on a Nintendo Switch.
The thing
DragonRuby Game Toolkit is a cross-platform 2D game engine where you write code in Ruby. Actual Ruby. Not a transpiled subset. Not a configuration language masquerading as Ruby.
You write:
def tick(args) args.outputs.sprites << { x: 100, y: 100, w: 50, h: 50, path: "sprites/hero.png" }end
That’s a moving character. That’s a game loop. That’s Ruby doing something most of the ecosystem forgot it could do.
Why this matters for Ruby developers
1. It breaks the “Ruby is only for web” assumption
For years, the message has been subtle but persistent: Ruby is slow. Ruby is for Rails. Ruby doesn’t belong on desktops or devices.
DragonRuby runs on:
- Windows, macOS, Linux
- Steam Deck
- Raspberry Pi (zero, 3, 4, 5)
- iOS and Android
- Web (WebAssembly)
- Console development kits (PS5, Xbox, Switch)
That’s not theoretical. Games built with DragonRuby have shipped on those platforms.
2. Hotloading is a different way to think
You edit a Ruby file while the game is running. Save it. The game updates immediately. No recompile. No restart. No losing your place in the game.
This isn’t just convenient. It changes how you experiment. You can tweak a number, see the result instantly, and decide if it feels right. That’s closer to playing an instrument than compiling a binary.
3. No garbage collection stutter
DragonRuby uses a custom Ruby VM designed for real-time graphics. The garbage collector doesn’t freeze your frame rate. That’s why the same code runs on a Raspberry Pi and a PlayStation.
This is the part that surprises Rubyists the most: Ruby can be this fast if you build the right VM for the job.
4. No editor. Just code.
Unity, Godot, and Unreal are powerful. They also have enormous visual editors with hundreds of buttons, panels, and menus.
DragonRuby has none of that. You write code. You run it. You see the result. That’s the entire workflow.
For developers who learned programming through text editors and terminals, this feels like home.
Who is behind it
Amir Rajan (creator of A Dark Room on iOS) leads the project. The underlying tech is built by Ryan C. Gordon – one of the original SDL developers who has ported countless games to Linux and other platforms.
They use DragonRuby to build their own games. They are not abstract architects. They are in the trenches.
The community
The DragonRuby Discord is consistently described as unusually welcoming. The creators answer questions daily. Newcomers are treated seriously. There is no “read the manual” gatekeeping.
If you have ever hesitated to ask a question in a C++ or Rust community – this is the opposite.
A few things to know
It’s not CRuby. DragonRuby uses its own VM. That means:
- No gem install
- No Rails or Sinatra
- A custom standard library
But it is Ruby. Classes. Blocks. Hashes. Symbols. The syntax you know. The patterns you use. They all work.
It’s 2D only. This is not a 3D engine. If you want 3D, this is not the tool.
What has been made with it
Over 400 games. Some have been written about in The New Yorker, The New York Times, and Slate Magazine.
Not prototypes. Shipped, playable, commercial games.
Why RubyStackNews should care
Because Ruby needs stories like this.
The ecosystem is healthy on the web. But Ruby as a language – the thing itself – can do more than serve HTTP requests. DragonRuby proves that.
It’s a reminder that Ruby is not just “the Rails language.” It’s a general-purpose tool that creative people are using in unexpected places.
Where to look
The Itch.io page has the downloads and documentation. The GitHub organization has community samples and contributions. The Discord is where the conversations happen.
The bottom line
DragonRuby is not a toy. It’s not a hobby project. It’s a production game engine that happens to speak Ruby.
And it’s a sign that our language still has surprises left.
