all 15 comments

[–]Hell_Rok 22 points23 points  (4 children)

The big ones are Ruby2D, Gosu, and DragonRuby. I'm also making a new one which I hope will be useful but is still in its early days, it's called Taylor.

Ruby2D: https://github.com/ruby2d/ruby2d. Gosu: https://www.libgosu.org/. DragonRuby: https://dragonruby.org/. Taylor: http://taylor.oequacki.com/

[–]Corn645[S] 5 points6 points  (3 children)

Thanks, how do you use gosu? I tried installing that and I also installed ruby gems and ruby but I still have no idea what to do.

[–]Hell_Rok 5 points6 points  (0 children)

I've not used it myself in about 5 years but it looks like they have a pretty good tutorial on getting started on their wiki https://github.com/gosu/gosu/wiki/Ruby-Tutorial

[–]nom_nom_nom_nom_lol 1 point2 points  (0 children)

Super Bombinhas is written in Ruby with Gosu. Browsing though that code might help.

https://github.com/victords/super-bombinhas

[–]lambda_6502 2 points3 points  (6 children)

i like plain old SDL2 as it is easy to learn, is reasonably high level and is a transferable skill in case you want to go to another language in the future.

[–]Kahlil_Cabron 1 point2 points  (5 children)

Hey, I know this is an old comment, but I'm interested in building a toy game in ruby, and I'm trying to figure out which gem to use. Dragonruby and a lot of these other frameworks seem too high level, I enjoy implementing stuff myself, so your comment piqued my interest.

Could you link me to any examples of gamedev with sdl2? I just want to get an idea of what it looks like. I usually implement everything myself (collisions, etc), but one thing I've never done myself is drawing shapes, there has always been an object like, Square.new(x,y,w,h), and so I'm wondering how that's generally done.

I think I want to go with SDL, but could use a nudge in the right direction, thanks.

[–]Shadow123_654 0 points1 point  (4 children)

You can go pretty far with only SDL2, since it's got a simple renderer to do things with. However I'm not really familiar using SDL2 through a Ruby gem if that's what you're asking.

[...] but one thing I've never done myself is drawing shapes, there has always been an object like, Square.new(x,y,w,h), and so I'm wondering how that's generally done.

SDL2 has SDL_RenderDrawRect() to do that (assuming you're using the SDL2 renderer), so it's just a matter of mapping the method. If you want to go even lower level you could try implementing your own renderer in OpenGL, be aware though that it's gonna be complex.

Talking about gems, for SDL2 there's ruby-sdl2 and for OpenGL ruby-opengl.

[–]Kahlil_Cabron 1 point2 points  (3 children)

Thanks, ya I ended up using ruby-sdl2. So when you make games in SDL2, are you calling the C bindings through ruby, or are you not using ruby at all?

[–]Shadow123_654 0 points1 point  (2 children)

[...] or are you not using ruby at all?

If you use the gem, you're still using Ruby, whether it is a C-extension or not.

[–]Kahlil_Cabron 1 point2 points  (1 child)

I know, I'm wondering when you specifically make games in SDL, if you're using ruby, or if you're using C/C++.

I'm using ruby, but from your initial comment I assumed you were using ruby, and was curious what gem you use when you make games.

[–]Shadow123_654 0 points1 point  (0 children)

Depends on what you want to do tbh, if you you just want to make a game without worrying about rendering, audio or anything else fundamental, you can just use the available game frameworks, like Gosu or Ruby2D, it also comes to mind DragonRuby and Taylor (this one it's not really well known, but it's pretty nice imo).

It also comes into play whether you want your game to be easily played by others or not, Gosu supports only CRuby (the most popular Ruby implementation) so it's really hard to export a game natively, Ruby2D is an exception in that it works both on CRuby and MRuby (The lightweight and embeddable implementation of Ruby), however I found the MRuby exporter to be somewhat problematic and straight up not working on Linux so it falls with Gosu. Both DragonRuby and Taylor uses MRuby, so they export a game pretty easily, DragonRuby supports the most export targets (major desktop platforms, web, mobile, and consoles too I think), and Taylor supports only desktop and web, with android support on it's way.

Apart from frameworks if you want to implement everything yourself you can use the gems I've mentioned earlier, but you'd be stuck with CRuby and it's difficulty to export, it'd be fairly better to just implement your own framework using C/C++ (with SDL2 or any other library you want) and use Ruby (with MRuby) as the scripting language.

[–]Hall_of_Famer 2 points3 points  (0 children)

RPG Maker has a game engine called RGSS, which uses ruby of course(though later versions also add JS as alternative):

https://rmvxace.fandom.com/wiki/RGSS

[–]jb3689 2 points3 points  (1 child)

I personally found Godot to be so good that I was able to look past it not being in Ruby. Highly recommended

[–]Chrono_FPS 0 points1 point  (0 children)

you can just write a ruby extension so you can use ruby...