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 you). 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
Buy
One Time Payment
MacOS
Windows
Linux, RPi
Steam Deck
Web Export
Itch.io Publishing: Streamlined publishing via DragonRuby
Web Server: Process http requests in-game.
Sound Synth: Think chiptunes.
Pixel Buffers: Control every pixel on the screen.
Portrait Mode: Vertical rendering.

Steam Publishing: Manual publishing via Steamworks CLI
















Indie
$108
yearly
Buy
$9 Per Month (billed yearly)
MacOS
Windows
Linux, RPi
Steam Deck
Web Export
Itch.io Publishing: Streamlined publishing via DragonRuby
Web Server: Process http requests in-game.
Sound Synth: Think chiptunes.
Pixel Buffers: Control every pixel on the screen.
Portrait Mode: Vertical rendering.

Steam Publishing: Streamlined publishing via DragonRuby
C Extensions: Harness the raw speed of clang.
Bytecode Compilation: Faster load times and code obfuscation.
Triangle Primitives: APIs to render triangles.










Pro
$144
yearly
Buy
$12 Per Month (billed yearly)
Discounted from $256.
MacOS
Windows
Linux, RPi
Steam Deck
Web Export
Itch.io Publishing: Streamlined publishing via DragonRuby
Web Server: Process http requests in-game.
Sound Synth: Think chiptunes.
Pixel Buffers: Control every pixel on the screen.
Portrait Mode + Device: Vertical rendering and local deployment.
Steam Publishing: Streamlined publishing via DragonRuby
C Extensions: Harness the raw speed of clang.
Bytecode Compilation: Faster load times and code obfuscation.
Triangle Primitives: APIs to render triangles.
Apple AppStore Publishing
Google Play Publishing
HD Mode: High DPI resolutions from 720p to 4k. [demo]
All Screen Mode: Crossplatform edge to edge rendering. [demo]
Oculus Quest: Beginner friendly VR Apis (beta) [demo].
MP4 Replay Export: Recorded gameplay to MP4. [demo].
Contact [email protected] for console publishing (Nintendo, Sony, Microsoft).

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 be an active member in the community. From there you'll want to pursue the following goals (talk with @amirrajan on Discord to set up a game plan if you're serious):

  • Contribute non-trivial pull requests to DragonRuby's open source repository.
  • Be active in the #gamejams 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 10th Degree by helping new comers, posting game dev work in the #show-and-tell channel, and shipping games built with DragonRuby.