Thoughts on DragonRuby GTK


20 Second Game Jam Release

Save Aiyaman in 20s is a simple and short puzzle game for trying out DragonRuby GTK. Point and click around and find the right combination for Aiyaman to survive! I was planning to add an extra scene/puzzle but I didn’t have time. It is open source but the code is very messy. This is my first time programming with Ruby and I enjoyed learning it. In future, I would love to revisit this project and make the code cleaner, as well as write unit tests in the spirit of the DragonRuby engine.

Thoughts on DragonRuby GTK

I joined this game jam as an opportunity to try out something new for game development, and I must say that I am highly impressed by the elegance of DragonRuby. It provides excellent control over what you want to output to the player, with plenty of built-in functions that are actually much more lean and specific compared to any other game engine I’ve come across so far. It is extremely tiny, extremely efficient, builds to various platforms, provides an in-game console and hot-swapping code instantaneously right out of the box. This sentence alone is enough to impress any programmer.

It is very powerful in the hands of a computer scientist and a software engineer, though not so much an artist or game developers in general. Programming with DragonRuby requires a more functional and mathematical approach compared to the more intuitive GUI workflows of other game engines like Unity. This is not a bad thing; it fills an engineering niche in game development methodology, and is very refreshing to see. You have a lot of control just by code alone - all this power at your fingertips with zero bloat.

It is unfortunate that it is behind a paywall which makes it difficult for it to be popular compared to more rounded, open-source, free and feature-packed game engines like Godot. Luckily, they are giving out free copies once in a while but there needs to be a better way to entice users to at least try it out. Not only that, its documentation is poor. As of 29th November 2022, methods like Numeric#randomize and args.audio.delete were used and dumped in various code snippets, but not actually explained. While I don’t mind reading through code, they need to belong in the right sections in the table of contents for users to be able to look it up. There also doesn’t seem to be built-in multiplayer networking, simple utilities like color palettes and I don’t even know if drawing a primitive circle shape is possible, seeing that the docs use .png images for circles.

Overall, I find DragonRuby robust and fun to use. I think the asking price for the Standard License (lifetime, USD$32) is more than justified, though I am highly against any form of subscription-based plans in principle. If certain features require this to happen, it would be best to forego them to support a more libre approach - then perhaps a lifetime license could be offered for the Pro version. Lastly, while I believe the Standard License pricing is more than fair, I don’t think their stance on open source and copyright is commendable. The creators of DragonRuby want to make money to continue doing what they love, simple as that - they shouldn’t be twisting words in their documentation about open source being unsustainable or needing to be more “ethical” because nothing about open source and copyleft forbids commercialization or monetization. A simple “we made this engine to be sold as a product; we run a business and believe this method will allow us to make more money, and in turn do better” would be far more appealing than trying to rationalize away from FOSS. If the developers don’t know how to garner support even at this basic level, I worry that such an outstanding game engine may never see enough adoption.

Files

aiyaman-20s-html5.zip Play in browser
Dec 04, 2022
aiyaman-20s-linux-amd64.zip 10 MB
Dec 04, 2022
aiyaman-20s-linux-raspberrypi.zip
Dec 04, 2022
aiyaman-20s-macos.zip 11 MB
Dec 04, 2022
aiyaman-20s-windows-amd64.zip 10 MB
Dec 04, 2022

Get Save Aiyaman in 20s

Leave a comment

Log in with itch.io to leave a comment.