Tuesday, March 9, 2010

Rapid Prototyping with RevRun

In San Francisco for GDC '10 and taking a break from sessions after Microsoft gave me flashbacks of graphics class in a talk on block compression methods in texturing. Ouch. So far this GDC has been a significant improvement over the last. Not sure if the economy's pickup, better planning, or the free Google Androids are to blame, but the whole sphere is teeming with eagerness, the air electric in anticipation.

While on the plane I fiddled around for about 3 hours with a new language called Revolution (the IDE is called RunRev). It's a GUI prototyping language that boasts a more "human" syntax. My conclusion: RunRev is a cross between Visual Basic and Python that's good for prototyping but not yet ready for the mainstream. As always, the good before the bad.

A list of stuff Revolution is good at:

  • it's really fast to get a handle on

  • it has a pretty GUI system with an intuitive script flow

  • it can toggle between build and run-time mode fluidly

  • it has plans to launch a Mobile converter that will address Android, Blackberry and iPhone



Why Revolution isn't ready:

  • It doesn't have a very robust or complete API. For example, it has a datatype called "point" which is any two numbers in a certain context separated by a ,. While there were a lot of functions built around the manipulation of the point, I could not for the entire 3 hours find some way to extract the x or y coordinate specifically from this basic datatype. If I wanted to do that I'd have to create and maintain custom Point object.

  • The language itself was a headache to learn because it intentionally tried to break a lot of the conventions programmers are used to. This was to give it a more "human" syntax, but it really just frustrated things in a lot of places.

  • The IDE itself failed more than expected.. often I couldn't open windows and had to restart.



So, here's the little sample game I built(you'll need the plugin). To play click "restart". A ball will enter the screen. Click the screen near the ball and it will change the ball's direction. Your objective is to get the ball into the hole.

The original idea was to have the ball bounce to a direction depending on the angle it hits the pointer at (the pointer representing a finger on the iPhone), but because I couldn't extract the necessary information it just bounces in a random direction.

Verdict: Revolution is a decent prototyping language, but there are better ones out there, and it's not yet ready for full scale production usage. I'll stick with Flash for iPhone and C++/Java for Blackberry/Android, perhaps visiting Revolution from time to time.

No comments: