Checked in the first draft of Scene today.
I sometimes worry that I'm making the new Rubygame system too rigid and inflexible. That it will be harder to do weird, unusual stuff with it because of its well-defined structure. That I'm dictating how people use Rubygame: "Your game must have a Scene. The Scene must have Sprites. The Sprites must have a Body and Shapes and an image."
When I worry that way, I try to remind myself that having some structure is a good thing. The point of Rubygame is to take care of the boring stuff, the stuff that every game has to have but is a chore to write, so that game developers can focus their efforts on the interesting, fun stuff that makes their game different from any other one.
In this way, Rubygame is expanding from library into the realm of frameworks. Rubygame has always been about providing a set of tools, but now it's also providing a recommendation about the structure of your game. Even more than a recommendation, it's providing the foundation and a few I-beams for the building to rest on.
You can find this same train of thought in two of my musings from last summer:
It's only because I know that the advantages of the new structure outweight the imposed constraints, that I can bear to go through with it. Plus, as far as constraints go, the ones imposed by this system are actually pretty flimsy.