Sunday, October 25, 2009

RI taking forever on Rubygems

I currently maintain Rawr, Monkeybars, and Jemini. All of these projects can be downloaded and installed as Ruby gems. However, there are some problems I've run into fairly often that's not critical, but annoying. This particular problem just makes the project look unprofessional, something we should fight tooth and nail as open source developers.

RI is a document indexing app that allows you to view RDocs at the command line. I don't ever use it myself, but by default it runs and builds an index over any gem I install. Unfortunately, when under the reins of Rubygems, it stalls when it hits binary files. When running RI by itself, everything works just dandy. You can cancel the gem installation with a swift kick to the control-C, but who wants to tell their users to do that?

In the end, I had to tell Rubygems, or Mr. Bones, to exclude certain file types that were virtal to my gem to be excluded from the RI index. Since Mr. Bones uses Rubygems, I'm not entirely sure who to blame, but Mr. Bones is just built on top of Rubygems, so I'm going straight to the source. Like a good little developer, I filed a bug a while back. Until then, you folks have the fix here, within my project config in Rakefile:


PROJ.rdoc.exclude << /jemini\.jar/
PROJ.rdoc.exclude << /package/
PROJ.rdoc.exclude << /\.java/

I just made sure all binary file types and locations were covered under this, and happiness was quick to follow!


As a side note, I've given up on my language formatting for my blog. I just have to fight it too much to get it to work, or change settings in my blog that make all my previous posts get auto-formatted to Ugly mode.

Saturday, October 10, 2009

Gauntaga - A Jemini game in 1 hour

This week Jay McGavren and myself sat down behind the my laptop and started on a game - Gauntaga - which is a fantasy themed version of Galaga. In the previous two weeks I worked on getting our animation system revamped and stupid simple, and supplying the game with all of the art and sound it needed. Our purpose was to test the speed and ease of Jemini development.

We did spend a good deal of time fixing a silly bug related to our project generator. We only clocked an hour of time against the actual game.

What we got done was pretty neat. We have a character that can move from the keyboard keys. You can start a game, stop a game, and quit. We plugged in background music and backgrounds for both the menu and the game itself. Considering that's just an hour's work, I'd say that's pretty fast. In another hour I believe will will have a fully playable game - which I define as having artwork, sound, a victory condition, a loss condition, and the ability to exit the game from within the game.

Another thing to mention is that even though we've made these tools, we haven't become familiar with them yet. As this happens, I'm sure we'll be able to churn out the same functionality even faster!

As some side notes: I've been using RubyMine as a Ruby IDE, and I love it so far. That's not to say it's without problems or quirks. It does have TextMate keybindings, which I've found to be mostly complete. Fortunately keybindings are something I can patch even on a proprietary app. Jay (A TextMate user [who won't switch <yet>]) was using some of the shortcuts with realizing it. Of course, the shortcuts that didn't match really stood out. This is a different story from say Netbeans, whose bindings are totally alien to the TextMate user.

Here's what we can do: