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
end
    

Online Sandbox, Showcase, and Docs

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.

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.

Standard
$48
one-time
✓ One Time Purchase
✓ Income Assistance Available
✓ OSX
✓ Windows
✓ Linux
✓ Web Assembly
✓ Raspberry Pi
✓ Itch.io Automation
✓ Web-based REPL
-


-


-


-


-


-


-


-


-


-


-


-


-


Indie
$96
yearly
✓ $8 Per Month (Paid Yearly)
✓ Income Assistance Available
✓ OSX
✓ Windows
✓ Linux
✓ Web Assembly
✓ Raspberry Pi
✓ Itch.io Automation
✓ Web-based REPL
C Extensions: Harness the raw speed of clang.

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.
-


-


-


-


-


-


-


-


Pro + VR
$128
yearly
✓ $11 Per Month (Paid Yearly)
✓ Early Access: Discounted from $256.00
✓ OSX
✓ Windows
✓ Linux
✓ Web Assembly
✓ Raspberry Pi
✓ Itch.io Automation
✓ Web-based REPL
C Extensions: Harness the raw speed of clang.

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.
iOS: Requires MacOS, device, Xcode, and Apple Developer Account.

Android: Requires device, Android SDK + Emulators.

Oculus Quest: 3D APIs to turn your 2D game into a VR Experience [demo].

MP4 Replay Export: Create replay artifacts that your artists can use to replace placeholder images [demo].
🔜 Triangle Primitives: APIs to render filled triangles (a foundational building block for 3D games).
🔜 HD Mode: Hi DPI rendering facilities to support resolutions from 720p all the way up to 4k.
🔜 All Screen Mode: Edge to edge rendering across multilple aspect ratios (eg. ultrawide, portrait, 4:3, 19.5:9, etc).
🔜 Portrait Mode: Vertical render canvas (great for mobile games).

Income Assistance - 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.

Income Assistance - Free Unrestricted Indie License

There are many opportunities to get a free lifetime Indie 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 9th Degree by helping new comers, posting game dev work in the #show-and-tell channel, and shipping games built with DragonRuby.