The best kittens, technology, and video games blog in the world.

Tuesday, May 09, 2006

Google Summer of Code


I accidentally learned on May 8th that it was the last day of Google Summer of Code submissions. I was kinda considering applying before, but I didn't really know whether I felt like doing that. Well, deadlines have this weird property of making me want to do something (do you have the same feeling sometimes ? ^_^), so I got to a computer and wrote an application.

At first I thought I'd write at least 3 applications (that would be a much safer "strategy"), but when I was thinking what kind of stuff can I do, one idea (RbGame) felt to me so awesome that it made all my other ideas look boring and uncool. So I felt like, I don't really want to do X (even if X felt cool just a few hours ago), as RbGame is so much cooler than X, and if RbGame gets rejected and some less interesting idea gets accepted I'll be feeling bad all summer working on something that's not as cool as it could be ^_^.

Well, at least it's cooler than all other ideas that seem at least somewhat relevance to the Google Summer of Code. I do have a few that are even nicer than RbGame, maybe I'll write about them sometime later ^_^.

So, as according to the probability theory RbGame won't get selected (there's going to be probably be so many applications, that even such awesome ones ^_^ as RbGame can get rejected)

Very short descriptiom - RbGame would let me port jrpg to Ruby, and because Ruby is so much better than Python, it would let me make it the best Japanese learning game ever made. (well, it is much better than KiCL and Slime Forest already, but anyway ^_^). So, like, people would play for 5 minutes and they would be able to speak Japanese. Well, maybe not that good but close.

Oh, and it would make baby pandas happy.
And here's the longer description, directly from the application.

Longer description

Ruby is without doubt the best of the currently available very
high level languages, being much more expressive and elegant than
either Perl or Python (and I'm saying that in spite of quite a lot
of Perl/Python experience).

However due to significant headstart the other languages had,
important libraries and utilities for Perl and Python often
have no equivalents for Ruby, or the Ruby equivalents aren't
as well developed. A lot of focused effort will be
required to mitigate the issue.

One of the areas where Ruby significantly lags behind
Python is game development. Python's PyGame library
is well-integrated with the language, provides very
convenient high-level interface, and has been used
to develop hundreds of great Open Source games.

On the other hand, the closest Ruby equivalent - Ruby/SDL
is just a thin wrapper for a C library, which doesn't provide
convenience comparable to PyGame and has been used
by few games or other applications.

RbGame's goal is to develop convenient high-level SDL-based
library for Ruby that can directly compete with PyGame.

The codebase is probably going to be based on Ruby/SDL.
The design is going to be based on PyGame's but taking
advantage of all Ruby features (closures, symbols, OO
metaprogramming etc.)

I expect RbGame to significantly increase Ruby's adoption
in the Open Source game development community in the next 1-2 years,
and possibly have a positive influence on Ruby's adoption
in other areas.

No comments: