This looks nice. I'm always excited to see higher level languages being used for scripting games. Lua is awesome at what it does but I've never really liked the syntax and lack of real objects. Building objects on top of Lua tables has always felt like such a hack to me personally.<p>The one thing that always concerns me with Ruby engines, however, is distributing the un-obfuscated ruby files with a game. In a single player game, with no online leader-boards or other concerns of cheating it's fine. But in a game where someone might be tempted to cheat this just makes it too easy. I know obfuscating / compiling code isn't very strong security against cheating but it's a huge step up from distributing source files ready to be edited.<p>Engines like Love2D (maybe other Lua based engines too, I haven't tried) allow you to compile your lua scripts and distribute the compiled versions.<p>With Ruby I guess the options would be to make a Java game engine with JRuby then you're just distributing JVM bytecode. Or maybe building a native engine in c (like this one) but including Rubinius to run compiled Ruby code. Rubinius has a blog post suggesting that this should be possible (<a href="http://rubini.us/2011/03/17/running-ruby-with-no-ruby/" rel="nofollow">http://rubini.us/2011/03/17/running-ruby-with-no-ruby/</a>)<p>I'd love to see a game engine on Ruby with code obfuscation built in.
What I don't see there is collisions. Without a fast collision tool, it's hard to do whole classes of games anything like efficiently. It's a little disappointing that, having written a renderer adapter with native code, there isn't collisions as well.
Is it possible to detect absolute position of a polygon? It looks like polygon.pos gives position relative to where it was created (and therefore polygon.pos.{x, y, height} are sort of broken).