Hey D3nX,
I just played a bit and the game looks quite good. Just a few notes:
Your Ruby doesn't look really rubyish ;-) e.g
- dont use emtpy brackets () after methods without parameters
- then is only used if you write the code in the same line as the condition like if (true) then x = 1 end and in that case we usually write the condition behind the code like you did at some places. e.g. x = 1 if true
- class methods are called with a dot(.) too like Game.as_seconds and not Game::as_seconds
- I don't like to argue about intendation (besides using two spaces instead of tabs) but you could be a bit more consistent. Most code ist aligned, but some ifs aren't which kinda "pokes me in the eye"
- use require_relative 'animation' over require './animation.rb'
- you use quite a lot of global variables which in most languages is considered bad practice. I think at least the menu*-music ones could be dropped. As far as I understood it you use them to play the sample infinetly as long as the menu is open. You should look into Song.play(true) which play the song in a loop forever.
- I personally would also move some files in subdirectories like all states to states/ and the rest to lib/
I found one "bug" so far -> you require './animation.rb' but the file is called Animation.rb which is no problem on Windows but nearly every other OS where filenames are Case-sensitive. After renaming it worked fine.
Performance - I think I noticed some delays every few seconds but haven't looked deeper into it. Might do that this evening if I got some spare minutes.
You can look at
https://github.com/bbatsov/ruby-style-guide if you want although that are only guidelines (there are quite a few I personally don't agree). But if you're new to ruby you could fetch quite some nice tricks and syntactic sugar from it.
If you didn't know - there is a freely available "Gosu Book" which described the creation of a game in gosu quite good and you can find quite some nice tricks and ideas for all kinds of things (there are for example topics about GameStates, PowerUps, Statistics and Performance) -
https://leanpub.com/developing-games-with-ruby/readOtherwise good job. Yeti Runner a few weeks later SpaceRace - you seem to enjoy it. Some more in your pipeline?
Greetings,
Kjar
PS: Your game was a nice testsuite for my current "screenshots for gosu" extension ;-)