Let’s talk about all the new things that have been added.
Why DragonRuby was created.
After a decade of indie game development (and many battle scars), there’s one point I can’t stress enough:
As an indie game dev, releasing cross-platform, and I mean every platform (PC, Mac, Linux, Web, Steam, Steam Deck, and Mobile) is so important for commercial success.
We’ve come to believe that releasing to all platforms from day one is too much work. And this is true given that established engines put the burden of dealing with platform fragmentation on our shoulders.
Cross-platform to them means “we’ll create a binary for you that may or may not work”. This is usually tested in the eleventh-hour, and often found to be false. It sucks to be put into a position where you have to deal with platform fragmentation days away from a release.
Your most valuable asset is your time. And that time shouldn’t be spent fixing deficiencies of an engine.
This is why DragonRuby was created. To be an engine that lets game devs focus on their game, knowing that it will look and behave the same everywhere without needing platform-specific hacks or workarounds.
DragonRuby lets you move faster than any other game engine.
DragonRuby’s ability to hotload/build your game “live” is something to experience. It truly is magical and brings the joy back to game development.
Here’s a highlight reel from the Game Engineering Podcast that shows how quickly you’re able to build a game.
The Nintendo Switch showed how wonderful a handheld, touch-enabled device can be. With the introduction of the Steam Deck, the need to trivially support multiple input methods becomes increasingly important.
With v6.0, DragonRuby added many facilities to help unify input processing:
Built in input awareness that keeps track of the last active input used (extremely helpful for presenting game instructions contextual to the player’s preferred input device).
Built in functions that normalizes UI component navigation with gamepad or keyboard (WASD/arrow keys).
Touch and Mouse normalization allowing you to treat taps and clicks as one type of action.
Well-tuned dead zone thresholds for a gamepad’s analog sticks (this is something that can be game-breaking for Steam Deck and Switch distribution if you don’t take that into consideration up front when using other engines).
Aside from focused efforts around developer productivity and cross-platform, here are some new things that were added to DragonRuby:
Linux ARM64 binary generation. Allowing your games to be played on the new Raspberry PI 5 and the rumored ARM64 Steam Deck Valve is working on (as with all DR exports, this is created automatically when you publish and will “Just Work TM”).
Continued performance improvements to the rendering pipeline.
Improved GC event management which significantly improved battery life and thermal levels on handheld devices.
The ability to render triangle primitives is now available at all license tiers.
Sample Apps
The suite of sample apps continues to grow (over 150 samples and counting). These samples ship with the engine so they are guaranteed to run. Here are some of the new samples:
Sample app that shows how to build a rhythm based game, with a calibration mechanism built in.
Sample app that shows how to create a nice scroll view that is responsive to touch and mouse gestures.
Sample app that shows how to create a radial menu that can be navigated with a gamepad or mouse (like the ones in Balder’s Gate 3).
Physics based sample app that shows how a Verlet Integration is implemented.
Starting point/reference implementation for an alchemy-based crafting game.