my face
About Me

Published Posts

All Posts

New Post


View by Tag:

interviewing, code, testing, philosophy, blog, wantmyjob, virtualization, railsmud, heroku, ruby, published, neoarchaeology, railsgame, rails, juggernaut, astrino, cheaptoad, shannaspizza, mongodb, refactorit, devise, rvm, passenger, jruby, programming, vagrant, chef, railsframe, business, codefolio


Online Portfolio

Resume

Profile on LinkedIn

Recommend me on WorkingWithRails: Recommend Me

Transitions in Shanna's Pizza

Posted: 21 months ago (2010-04-28 02:41:57 UTC )

It's time to make Shanna's Pizza prettier. It's also time to talk about its goals.

There are several things which, long-term, stand to make Shanna's Pizza more than a retread of The Learning Company games from the 80s (not that there's anything wrong with them -- they rocked).

One is that I'm intentionally trying to minimize, and then eliminate, the amount of text happening there. I figure that's a one-off... If Shanna's Pizza were to get big, I'd probably use more text along with more complexity in the next game. But I think having a zero-text-gameplay game of this type potentially fills an interesting market niche for non-English-speakers and young children, as well as making for a more distinctive experience.

The other is that I plan to have some more complicated objects to wire up. The Learning Company games, even Robot Odyssey, had only pretty simple objects by and large. Some of the chips were complex-ish, but I can imagine some more interesting things to do. The robots themselves were an exception to this -- they were pretty complex, but you also wired them up from inside, giving a whole different experience.

Anyway. Word-free should come before complex objects. Complex objects should have a playtest audience, and I think word-free can help gather that audience.

However, word-free requires more expressive graphics and animation, because I have to be able to explain a concept like "Shanna wants pineapple on her pizza right now, but no sausage" or in the extreme case "Shanna wants pepper or sausage or both, or pineapple, but not pineapple *with* pepper and/or sausage." That's potentially a fairly complex little animation (though players will be able to have the pizzas roll by and see what she accepts and rejects, if the animation fails completely).

My current setup, using LibSDL, is just not going to cut it here. No good rotation of images, for instance, is probably a deal-breaker by itself.

I've rolled a nice little animation framework, of course. But debugging an animation framework in SDL in a non-memory-managed language is just not a good use of my time here.

Clutter is probably my best choice. I'm familiar with it, it has good animations, it does a fair bit of (non-garbage-collected) memory management, it's fast and compact... It's even available not just on Windows and Linux, but also in experimental form on iPhone/iPodTouch/iPad, which might be a big long-term win.

It means requiring OpenGL, but I think I'm going to need to do that for good animation in any case. So if that's a sunk cost, it's not clear that there's any disadvantage to using Clutter. I've been missing GLib and GObject for most of this project anyway, though I dislike how much boilerplate they require.

Of course, the GObject boilerplate isn't a guaranteed cost. Specifically, Vala actually makes it quite nice to have a lot of GObjects around, interfacing with various appropriate C code.

So that's probably where I go from here. Inkscape will still let me create static objects, frames and textures, and is still basically a good idea. However, it's worth considering more 3D animations for objects, and simple animations for describing what Shanna wants. End-of-level and similar animations may be either sort -- I'll decide as I go.

Previous: Inkscape is Awesome / Next: New Release of Shanna's Pizza

Edit | Destroy | See All Posts

blog comments powered by Disqus