DragonRuby Game Toolkit

DragonRuby Game Toolkit is a professional grade 2D game engine. It's tiny (~3.5MB), fast, and cross-platform (including consoles and mobile). Ryan C. Gordon (Wikipedia) put together a 5-minute intro to DragonRuby Game Toolkit which shows the engine's hotload and deployment capabilities:

What Sets DragonRuby Game Toolkit Apart?

Zero Dependency Install

We've created a custom multi-level runtime specifically tuned for building games. There are no outside installers or OS level prerequisites. Everything is self-contained. Even a Raspberry Pi can be used to build games.

We handle the compilation, packaging, and execution of your code, letting you concentrate on what matters.

Indie and Community Focused

We understand the challenges that indie devs face (the creators of the engine are indie game devs themselves). We want you to succeed and ship your game. Our Discord Channel is very active and there is always someone around to help.

Editor Agnostic

We don't vendor-lock you into an IDE (and by extension we don't collect usage data about your). You can use whatever editor you like. All commands to build are accessible via a simple Command Line Interface.

Lean, Fast, Hotloaded

Optimized for size and speed. This is not the same Ruby you'd use for building web apps with Rails (far from it).

DragonRuby is powered by highly optimized C code written by Ryan C. Gordon. He is one of the core maintainers of libSDL and has worked on many critically acclaimed games (Psychonauts, Braid, Quake, and Unreal Tournament to name a few).

It's been battled tested by indie game creator Amir Rajan who's already released games with it to the Nintendo Switch. It powers real world games that have amassed millions of downloads (The New Yorker).

Oh, and it's tiny. Like really tiny. The entire toolkit is ~3.5 megabytes.

Cross Platform

Turn key builds for Windows, MacOS, and Linux with seamless publishing to Itch.io.

DragonRuby targets every platform: PC, Mac, Linux, Web Assembly, iOS, Android, Nintendo Switch, XBOX One, and PS4 (console compilation requires a business entity, NDA verification, contact Amir at [email protected] for more info).

Intuitive, Data-Oriented APIs

Dirt simple APIs capable of creating complex 2D games. Game Toolkit keeps you moving fast with hot-loaded code. You'll see changes in real time and receive instant feedback without having to rebuild. The in-game Console let's you make quick state changes and execute code on the fly. Hello world is just one file and one method.
# Define a tick method in main.rb which will be executed at 60hz.
def tick args
  # Render a label at the top left showing the current tick count.
  args.outputs.labels << { x: 10, y: 10.from_top, text: "#{args.state.tick_count}." }

  # Render a sprite at the bottom left
  args.outputs.sprites << { x: 10, y: 10, w: 100, h: 100, path: 'player.png' }

  # If the mouse is clicked, play a sound.
  args.outputs.sounds << 'fx.wav' if args.inputs.mouse.click

Online Sandbox and Showcase

You can play around with the engine using our Online Sandbox. The source code for the sandbox is available on GitHub if you want to run a local instance of the website. You can use the sandbox to go through the free game development course at WNDX School.

Be sure to checkout The Showcase Page to see all that's possible with the engine.

If you want to take a deep dive into the sample apps and api, full docs to the engine can be found here.

Limited Time Discount

For a limited time we are running a discount for the Professional License (as a thank you to all of our early supporters). Your subscription will always be the discounted amount as long as you keep it active.

Income assistance is available for those that cannot afford to pay (more information about that at the bottom).

$49.99 one time
✓ Windows
✓ Linux
✓ Web Assembly
✓ Raspberry Pi
✓ Itch.io Automation
✓ Web-based REPL
Professional (Early Access Discount)
$239.99/year $97.79/year
✓ Windows
✓ Linux
✓ Web Assembly
✓ Raspberry Pi
✓ Itch.io Automation
✓ Web-based REPL
✓ C Extensions: Harness the raw speed of clang.
✓ iOS: Requires MacOS, device, Xcode, and Apple Developer Account.
✓ Android: Requires device, Android SDK + Emulators.
✓ Sound Synthesis: Think chiptunes.
✓ Pixel Buffers: Control every pixel on the screen.
✓ Bytecode Compilation: Faster load times and code obfuscation.
✓ Embedded Webserver: Zero dependency. Process HTTP requests directly in your game.

Free Unrestricted Standard License

You are eligible for a free license if any of the following items pertain to you:

  • Your income is below $2000 (USD) per month.
  • You are under 18 years of age.
  • You are a student of any type: traditional public school, home schooling, college, bootcamp, or online.
  • You are a teacher, mentor, or parent who wants to teach a kid how to code.
  • You work/worked in public service or at a charitable organization: for example public office, army, or any 501(c)(3) organization.
  • Just contact Amir at [email protected] with a short explanation of your current situation and he'll set you up. No questions asked.

Free Unrestricted Professional License

There are many opportunities to get a free lifetime Pro subscription, but the requirements are a bit stricter. First and foremost, you have to join the DragonRuby Discord Channel and reach a rank of Black Belt 1st Degree by being an active member in the community. From there you'll want to pursue one of the following goals (talk with @amirrajan to set up a game plan if you're serious):

  • Contribute non-trivial pull requests to DragonRuby's open source repositories.
  • Be active in the #gamejams-comity channel and help facilitate Game Jams on Itch.io.
  • Complete a coding challenge provided by @amirrajan in the #hellkite channel.
  • Gain a rank of Black Belt 8th Degree by helping new comers, posting game dev work in the #show-and-tell channel, and shipping games built with DragonRuby.