Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

DragonRuby Game Toolkit

An intuitive 2D game engine. Fast, xplat, tiny, hot loaded. · By DragonRuby

Posts feature requests here! Sticky

A topic by DragonRuby created 55 days ago Views: 394 Replies: 11
Viewing posts 1 to 4
Developer (16 edits) (+1)

Post your feature requests here. Upvote ones that you would like to see happen sooner rather than later.

"big" things currently in development:

  • Arbitrary collision detection.
  • YAML/JSON support.
  • HTTP GET/POST support.
  • Regex and BigDecimal support.
  • Ability to create iOS apps (without the need for a pricey Mac, OH SNAP).
  • Ruby keyword arguments support. (Ruby 2.x support)
  • Mouse held attribute.
  • "Bug replication mode".
  • Fix bug with sound looping.
  • Named arguments/hashes to generate primitives (as opposed to just positional array values 
  • Sample app that shows faux 3D using line primitives.
  • XML support.

Done list:

  • Keyboard top level properties are functions that return `key_held.KEY || key_down.KEY`.
  • Ability to press § to bring up the console.
  • Reasonable defaults for dragonruby-publish.
  • Training video/intermediate Ruby crash course.
  • DragonRuby sandbox/html based editor.
  • More sample apps (so many sample apps).

Flesh out the DragonConsole a bit more to get it closer to IRB.
I'm dependent on return values and line editing, I'd really appreciate getting the full overt and implied feedback from every command and the ability to edit a line rather than backspace through it.
I was going to make this separate, but we need some sort of hyperlinked help. An ri-like command in the console would be great, but at least some formatted docs with an overview of the API pieces so I'm not studying the samples to (poorly) infer functionality. It took me about 6 hours to grok the 3 x,y parameters in a sprite (I was approaching it as absolute value stretching) and I'm still not convinced I have the parameters sanely labelled.  

(I'm super stoked about you adding Hashes, that will resolve a lot of my derpiness)


The "Advanced Sprites" sample app has a helper method in there that names all the parameters. Patch that in for now (named params is on a high todo, I promise).


Reference source code for the console. Maybe see if it sparks some ideas?

Yes, that's great! Source is always a welcome way to view intent of design for me! I'll do a deep dive this evening.


The key takeaway here is GTK's developer support stuff is built with GTK.

And from a philosophical standpoint: no matter how good the HUD becomes, you will eventually out grow it over the lifetime of a non-trivial game. "Batteries include" tool chains are really great getting started, but it doesn't show the dev that it's just as "easy" to extend the tool chain and tune it such that it "grows" with the application being built.

I'd encourage you to make your own HUD that's customized/optimized for the work you are trying to do (I definitely looks like you  have a grasp of advanced Ruby concepts and I think you'll make some really amazing things). 

I have a Pie in the Sky wish too, and that's for a synthesizer built into the SDK. I have no illusions that that's an easy request, and in fact, I'm starting to work on resolving the issue to help simplify Sonic Pi and other live-code concepts in Ruby (and Crystal). I'll talk to y'all about it as my progress matures.

But I'd give anything for a GDK with a synthesis engine baked in so that I can create a generative soundtrack based on user input.


Believe it or not, I do want to add the capability to create "chip tunes" on the fly :-)

I'm working on my Ruby "201" right now specifically to fork Sonic Pi into a (literally) modular system with a (hypothetical) JIT/AOT compiled synthesis description language written in Crystal (an up and coming Ruby-like language for LLVM). I love Sam Aaron to death as he's essentially my first Ruby mentor, but I can tell his goals for the project as an educational tool are very different from my own as a glitch/breakcore/chiptune/electro-jazz performer.
It's an ambitious project but I hope to have the pieces together for Ruby to sequence a compiled synth with minimal outside dependencies within a year in order to build both the DSL for the synth and a library that will send build directives to Crystal/LLVM from Ruby and then magically connect to the resulting optimized binary in the background. I have a feeling I'll have to do the former myself, but I think when I can show a proof of concept about a live coding a compiled language, live coders and web developers who hate building between updates will see the value. I noted that Matz unveiled an MJIT in Ruby 2.6 and what he's doing here is basically the same idea with a pure Ruby twist and automatic decisions about what to compile.

Long story short... OMG that would be awesome and if there's any way I can help to enable that within the Ruby ecosystem, I certainly will. By the same token, if you have a lib out there in a Ruby-like syntax that generates a waveform with only minimal c dependencies, I'd be grateful to know about it as that would save me a lot of fundamental work and let me focus on the implementation language.


Ping @amirrajan on, he’ll get you some insider details on the synth stuff.

  • Ability to write shaders.
  • Ability to render only part of the sprite to enable sprite sheets.

Rendering part of a sprite can already be done. Take a look at the advanced sprites sample app.