# The Leaning Tower of Tires

Posted by editor on March 21, 2007 at 12:26 PM PDT

There's no point to any of this, it's just stuff on my mind at the moment. Vanity blogging at its finest.

A few weekends ago, I was at my college pal Mike Stemmle's wedding, talking to fellow groomsman Hal Barwood about game development in Flash, where he seems to be having a grand time cranking out casual games for the web-based gamers. I'd been planning on investigating Flash in the form of Flex -- given the inroads Flash has made in online video, I'm already way behind the curve in failing to embrace Flash in some form -- but he encouraged me to just blow the \$400 and get the visual development tools and work with the real thing. Probably a good idea.

One of the Flash games I mentioned was Casa Della Tires, a game based on the animated movie Cars, in which you move Guido, the forklift character, back and forth to catch and stack flying tires, then launch the stack to collect your points. My point to Hal was that it perfectly points out the hazards of "doubling"-based scoring systems for games. Specifically, your stack of tires scores you 100 points for the first tire, 200 for the second, 400 for the third, etc. You also get one second of bonus time for each tire you toss.

How many points do you suppose you can get on a good day? A couple good stacks and maybe you can get to a million?

Try 223 billion. Enough to blow out the space reserved for the score label.

How do you do this? Exploit the doubles. Forget about making nice stacks of 10 tires, and instead play the entire game to get a single stack of 30, enough to go to the top of the screen. Once you have about 10-12, move to the left (where the tires come from), and stop moving - you won't be able to avoid piling the tires up to the top of the screen. Boom: billions of points. Because of the mathematical nature of the scoring system, you can accomplish in one massive throw what would take a week of shorter stacks.

The same thing is true of Skee Ball. My thinking there is that a decent Skee score starts around 300 -- every three balls, if you hit two 40's and a 20 (meaning your 40 missed), nine balls gets you a 300. That's fine, and you get decent tickets for that. But a lot of places now have a progressive jackpot that's often set at 500 points... very makable with a new twist, the "Skee Ball Lightning" feature that doubles point values at random (about 1 out of every 5 balls). You'll probably never hit five 100's in a nine-ball game, but if you play enough games, you can probably hit two that get doubled, which gets you 400. Hit these early in the game, and you can use safe shots to get your 500. When one of my son's plushy toys was falling apart, I took \$10 to the local Skee Ball joint and used this approach to hit the jackpot and get a new toy.

OK, forced Java analogy, but there's a bit of concept of the "jackpot" in technology buzz. If each adoption of a technology gets two more people to adopt the same technology, the exponential growth can be breathtaking. We've seen this in the last year with Flash for online video -- in the 18 months or so since YouTube hit the scene, Flash video has been popping up everywhere. All the various developer chat sites (JavaPolis videos, even the SDN Channel) use it, and I increasingly see sites abandoning the usual media players (Real, Windows Media, and QuickTime) in favor of Flash (the Adult Swim Fix is a particularly prominent example of this, having abandoned Windows Media for Flash). Anyways, one site goes Flash for their video, others see it and they go Flash, others see those, etc. And suddenly, Adobe has 223 billion points.

How did we manage to not accomplish this with Java, despite the 10-year head start? After all, YouTube video is basically bastardized H.263, and even the all-Java JMF can play that. I suspect the distribution/deployment story is a lot stronger than any of us appreciate or care to admit.

Speaking of video, I need to get in some more cycles on Keaton, the Java-to-QTKit wrapper, but it was a relief that enough of the stuff is in place that I could get significant code compiled, working, and checked in during a 30-minute lull while visiting the Java Posse's rented house at the Java Posse Roundup the other week. I need to get Keaton going because there's more reason to think that QTKit is the future of media on the Mac. The WWDC sessions list came out this week, and it's worth noting that QTKit gets a session and a lab, while the other QuickTime variants -- the traditional procedural-C QuickTime API, QuickTime for Java, and QuickTime for Windows -- don't get mentioned at all. I'm thinking that's a none-too-subtle hint about Apple's media direction for the next few years. There's also a session about "AJAX Methodologies for QuickTime Development", which I think just calls attention to the fact that the QuickTime plug-in can be controlled with JavaScript... this seems like a somewhat cynical/desperate attempt to get some Ajax buzz, and given that the appeal of Ajax is that offers a better-than-flat-HTML experience, tying it to a plugin that's only supported on two platforms is probably not something that's got a lot of legs.

And then there's Blu-Ray. Which I rather infamously hated at last year's JavaOne (oh look, I'm the number five result when you Google for javaone and blu-ray... I'm surprised I haven't gotten corporate hate mail). The funny thing is, despite what I saw as a miserable performance last year, Blu-Ray is back in a big way at JavaOne 2007, combined with Interactive TV and basically getting their own mini-track on Thursday, and a special page on the JavaOne site. I just hope they think to tailor this year's presentations to developers and not to content authors, because there are a lot more of the former than the latter at JavaOne. Blu-Ray has already ruined the PlayStation 3; don't be messing up JavaOne too (oh, I'm getting comments for that...).