Not logged inGosu Forums
Forum back to Help Search Register Login
Up Topic Gosu / Gosu Exchange / Why NOT to use gosu?
- - By Naoya Date 2014-10-31 09:04
So, I started playing around with gosu and I find it awesome (I don't really have much to compare, but well). Then I started thinking, why all those indie developers would prefer another alternative for 2D games? It's a genuine question, because besides the famous ruby slowness (which seems irrelevant to most 2D games I think) I don't see why people wouldn't use it.

Maybe you guys can get some insight for me on this matter :)
Parent - By jlnr (dev) Date 2014-10-31 10:13
First: Thanks! :)

Nobody cares about the C++ version because its interface is outdated and there are so many other libraries. In general, we C++ programmers love to reinvent the wheel instead of using libraries. :D

Ruby, on the other hand, was never a popular language for game developers. I think there are many reasons for this: It is a huge mess to distribute Ruby games. (I would argue that even web apps, Ruby's biggest strengths, are absolutely painful to deploy and maintain.) Ocra, the Ruby-to-EXE tool for Windows, depends on a single maintainer on github (big thumbs up to him!). Gosu itself is often dormant for a few months, other Ruby game dev libraries have been discontinued. You can't run Ruby in the browser, unlike Flash or HTML5. It is always easy to get to a game's source code, and many indie developers want to keep their code to themselves. And only the upcoming version of Ruby, 2.2, promises to fix the garbage collection stutter that some people experience. etc...

That said, I am quite happy with it for prototyping, and I am optimistic that I could even hide my game's source code if I spent a few days on it. (Using precompiled mruby maybe, or RubyMotion on OS X and iOS.) And even if I couldn't manage to do so, porting a Ruby game to another language (C++ & Gosu for example) is not too hard, either... So don't let any of that distract you from writing good games :)
Parent - - By jahmaican Date 2014-10-31 10:38
Gosu is awesome, but there's lots of reasons.
1) Portability. Forget about mobile devices. Forget about easy distribution. Gosu apps are supposed to be compatible with Windows, Linux and Macs, but they never really are.
2) It doesn't provide very much. It's great for handling input and graphics, but all the mechanics and physics and stuff is up to you. I actually like it, because obviously it makes you learn a lot in the process, but there's a lot of people out there that just want to create something without having to worry about complicated logic and algorithms. Compared to other game libraries/frameworks Gosu can't help you much with that, and I'm not even talking about monstrosities like Unity, but eg. Phaser provides you with not just one but three! ready-to-use physics models.
Sure you can use external tools like Chipmunk etc, but they are not neccessarily always well documented, and tend to break compatibility even more.
3) Handling sound is oversimplified. It's enough in most cases, but if you want something more complex like focusing your actual gameplay around sounds or implementing dynamic music, you might not be able to (or at least it would be tricky).
4) Debugging. Being an enterprise developer, I learnt to appreciate the importance of a good debugger. OK, you can debug Ruby scripts. But you don't want to. And if you want an IDE that makes this process at least half-sensible, you have to pay (quite a lot).
5) An action/reaction loop of "it's not very popular because it's not very active because it's not very popular because...". You know what I mean. It's being developed by a single fine gentleman, who obviously doesn't do it for a living, so it's quite a slow process. There's something going on all the time, but it's not much, and there's so many features I'd love to see in Gosu, and they're not quite there yet and... Blah blah.
Also, the community isn't very active. I mean, there's no problem finding help if you're stuck making something (although sometimes the answer is "you cant"), but you'll notice there's not much going on on the forums etc.

Ask me why you should use it and the list will be twice as long, but what I listed above are quite major no-noes that keep a lot of people away.
Parent - - By jlnr (dev) Date 2014-11-01 10:01 Edited 2014-11-01 10:16

> 5) "it's not very popular because it's not very active because it's not very popular because..."

I agree, but I think the issue is not just lack of popularity with hobbyists. The Löve 2D forums are bustling with activity compared to this one, and yet I feel Löve 2D suffers from very similar issues, simply because there is no game studio using Löve 2D to make money. (Correct me if I'm wrong :))

Conversely, when I had just a single client who paid me to work on an interface for a media installation using Ruby/Gosu, Gosu's internals made leaps ahead, without much visible activity on GitHub/the forums/IRC.

If Ruby/Gosu becomes a solid choice for commercial game dev one day, then IMHO that's only because Gosu turns out to be unexpectedly useful for some kind of business operation, be it in games or in media. (Or because I win the lottery :)) Sadly, there is little money in the kind of casual 2D desktop games that Gosu is good for.

Edit: Case in point, I think the SDL is only as solid and production ready as it is because it happened to be a good library for porting AAA titles to Linux.
Parent - By lol_o2 Date 2014-11-01 13:03
There are games that are commercial and could be made with Gosu, like Chasm, Cave Story+, Rogue Legacy etc., the only problem is portability.

As for 'hiding' the source code, one of simpler 'solutions' is to make the code so obscured, that only you can understand it. If a random person wants to see how does the game work and will find an uncommented wall of text with many unclear variable names, he will be discouraged to understand it. That is with most of people, the rest could hack the game even if it's code is hidden.
Parent - By Naoya Date 2014-10-31 11:02
Hmm, those are valid points indeed.

From those the only ones that bother me are the distribution thing (I'm stuck in releasy all night long, maybe I will try Ocra now) and the exposed code. Unfortunately they seem like the hardest ones to solve :/

As for the lack of features, I found it refreshing. Most engines and frameworks I've come in touch got me absolutely overwhelmed, and in gosu I could make everything I wanted until now in just two-three days, and I feel completely at home with it. Of course some collision detection and stuff wouldn't hurt haha, but I understand that there may be other priorities and developing the framework seems like big work already (we have chipmunk after all, so it's not really a problem).

I really wished I could help to get things done but as I know nothing of C++ and very little of ruby, I may try helping in other ways.

But anyway, thanks for the hard work :D
Up Topic Gosu / Gosu Exchange / Why NOT to use gosu?

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill