This story starts, for me anyways, at WWDC. The theming for Moscone West was bursting, flying app store icons. Up on the second floor, the windows showed icons captioned with the name of an app, where it was created, and some fanciful stats (“Marriages saved: 700″, “Bullets fired: 2,000,000″, that kind of thing). One that caught my eye was this somewhat “Western manga-style” icon:
![]()
That’s Flo, the lead character of Diner Dash, the first and most popular of PlayFirst’s casual games (more on the series from Wikipedia). The game is based in time-management: you get more points by chaining your actions (seating customers, taking orders, delivering meals) in groups, so you try to juggle impatient customers, buffering them up for a few seconds so you can get them all in the same mode (ordering, eating, paying), and thereby build up a combo.
Since the original dates back to 2004, I ended up buying one of its more modern sequels, Wedding Dash, and have been playing the heck out of it. Between self-employment and high-maintenance kids, I don’t have time for long PS2 sessions (Final Fantasy got me in the mindset of setting aside at least an hour whenever I turn on the PS2, something I can never do), but knocking off a Dash level in five minutes is a nice break.
One thing that struck me about the game is the simple story that unfolds between levels, as lead character Quinn starts planning weddings for friends and slowly turns it into a career, and a business that Quinn builds as you progress through the game. Flo cameos frequently to keep Quinn’s head in her business:
About the third time that Quinn described the work of the game as her “business”, it hit me that there is a none-too-subtle message to this game, about building a business as a virtuous pursuit. With rare exceptions (like Miyazaki’s least typical film, Kiki’s Delivery Service), you really don’t see that often in pop culture; companies are much more typically portrayed as insufferable sweatshops, or rapacious empires. And given the times, Flo and Quinn’s DIY messages really stand out as a breath of fresh air: here in handout-happy Michigan, it seems like a lot of people are sitting around waiting for their share of stimulus money (i.e., their grandkids’ future taxes), and as video games go, it’s a sharp contrast with the “build a criminal empire” ethos of the Grand Theft Auto series and its many, many knock offs.
Continuing that message, PlayFirst just announced a collection of women’s apparel that builds on the idea of Flo as a 512-pixel Dagny Taggart. The t-shirts offer slogans like:
- Roll up your sleeves. Dreams take work.
- Not another princess. I’m my own Fairy Godmother.
- Elbow grease is the new black.
From the PR:
The launch of Flo’s Closet is deliberate in its timing as it aims to inspire and encourage women to strive towards success in challenging times. A recent study* reiterates this potential showing that female business owners are surviving the downward trend better than other businesses and Flo’s in-game character notoriously rejected the corporate life and aggressively pursued a more meaningful venture as a successful restaurateur.
So, yay PlayFirst. The games are fun, and the message is something that all of us, women and men, need to hear more of. I’m now following PF on Twitter, and the PF jobs Twitter is a nice feature with a shockingly low number of followers (13?!)
The WWDC keynote announcement that iPhone OS 3.0 would be released in a little over a week caught us a bit by surprise: the next edition of our iPhone SDK Programming book was nearly ready to go, but we’d waited until WWDC to resolve some blockers. Now we had a week to get the new version ready for the public release of 3.0 and the end of the NDA for that version.
The biggest blocker for me had to do with the Bluetooth peer-to-peer features in the new Game Kit framework. The problem is with device support: first-gen iPod touches don’t have Bluetooth, and the first-gen iPhone (which I have) has an older Bluetooth chipset that Game Kit doesn’t support. So back in April, I bought a second-gen iPod touch, largely for writing this chapter.
Unfortunately, it turns out that the iPhone Simulator doesn’t support Game Kit’s Bluetooth networking, even on Macs with Bluetooth. So, to develop and test a P2P game, you need two recent iPhone OS devices.
I could have waited until Friday, when I’ll be buying an iPhone 3GS (which surely will have Game Kit-capable Bluetooth), but to get the chapter out for the new version of the book, I wrote blind code on Tuesday and Wednesday, and spent Thursday morning in the iPhone Lab with Apple’s test devices, and the Game Kit engineers handy to answer my questions.
After a couple hours, I had P2PTapWar running on the two devices. This is an asinine little game that lets two players find out who can tap their screen the fastest.
I’m glad we got this chapter into the book, the latest beta of which is available today. It went well enough, in fact, that a section of the Game Kit chapter is one of the new free excerpts available on the book’s page.
Now to finish up our remaining issues with this book and get it to the printer.
I’ve brought this up before, but now that it’s official, I just want this noted for the record:
In October 2005, I said that it might make sense to wait for the then-announced Intel transition, rather than buy PowerPC hardware. Check out the comments — the Mac zealots were seriously pissed at me for suggesting that buying into PowerPC was a dead-end. It was called “ridiculous advice”, “dumb advice”, and “flat wrong”.
In part, my blog was based on my estimate of when Apple would ditch PPC support:
So, I suspect that Leopard is the end of the line for PowerPC, and that 10.6 will be Intel-only. That means you are buying into a four-year dead-end on PowerPC.
This was based on a rough calculation that 10.6 would come out in 2010. Yet we know from yesterday’s keynote that it will actually arrive in September, 2009. And we also know from yesterday’s keynote, confirmed on the Snow Leopard tech specs page, that it is Intel-only.
Yeah, you’re welcome.
I’m leaving for WWDC on Sunday afternoon, getting in Sunday night which means I get my pass Monday morning and therefore can’t be in line early enough to get in the main room and will instead be in the overflow. Don’t mind actually; my time is worth something, and waiting more than six hours in line at Moscone West is just not worth it. For me, the appeal of WWDC is the knowledge, not the spectacle.
I’m not in the mood for predictions (I didn’t do well last year, predicting the deprecation of Carbon), though there are little things that are obvious: we’ll get major new beta builds of both iPhone OS 3.0 and Snow Leopard, hopefully at least one of which will be provided on DVD so we don’t paralyze the wifi with a thousand simultaneous downloads. Last year, working through an iPhone OS build that had botched app-signing, I spent four hours Tuesday morning with a group of developers trying to download a fixed build, and when I was the first to get it, I burned a DVD and shared via Bonjour so the rest of the group could get it.
I don’t think there will be an iPhone OS-based tablet for two reasons. First: tablets, thusfar, have sucked, and the case for them hasn’t been made. Secondly, a tablet would have different dimensions than an iPhone, and for third party apps to run on it, I would expect the iPhone SDK to be pushing us towards resolution independence. But instead, the opposite seems to be happening: we were told two years ago to start getting Leopard apps ready for resolution-independence, and that at some point Apple would “flip the switch” and make Leopard resolution-independent in the field. Yet I don’t think that ever happened, and the iPhone SDK continues to dictate explicit pixel sizes for things like icons and badges, just the opposite of the guidance I’d expect if we were being set up for running under varying screen dimensions.
Similarly, the SDK makes an argument against the rumor of video recording with editing. I originally thought the idea of QTKit as an API was a migration strategy on the Mac to get developers off the legacy QuickTime code (a 20-year-old code base!) and on to something modern: while QTKit largely calls into the old QuickTime code, if the underlying implementation changed to a new code base, developers would be none the wiser, and you could retire the old code (this might be what QuickTime X is doing, but Apple continues to call it “the streamlined path for efficient playback of modern standards-based media”, and playback represents only a tiny fraction of QuickTime/QTKit functionality). Now, what if QTKit weren’t just hiding a migration of underlying code, but migration of platforms: if you were going to support video editing on the iPhone, it would make sense to at least try to reuse the work that’s already been done on the desktop (as they’ve done with Core Audio, for example). But arguing against this hypothesis is the existence of the iPhone’s AVFramework, a high-level framework for the simplest of audio tasks, like playing a file. It doesn’t exist on the desktop, because QTKit makes it unnecessary: to play an MP3, just open it as a QTMovie and call play. So the fact that there still is an iPhone-only AVFramework makes me think that QTKit is not coming to the iPhone anytime soon, which in turn argues against video editing.
Of course, I’ve been wrong before. Like, last year.
As for WWDC wishes? I’d actually like to see AppleTV get some love. With the explosion of Flash-based video streaming sites, AppleTV is starting to seem irrelevant when it can’t play video from Hulu, Crunchyroll, or any of the network sites. For AppleTV to get relevant again, it would presumably have to either get Safari and Flash into the box (and thereby cave on the consistent user experience), or Apple would have to make deals with the major content providers for them to make their stuff available to AppleTV (similar to the way the iPhone offers a non-Flash YouTube). But how many providers would they have to work with? And would this cut too deeply into iTunes if the same box offers you a streaming show with commercials that you’d otherwise have to pay for? (counter-argument: doesn’t seem to hurt iTunes on the desktop.) At some point, I’d like to move into something like an AppleTV, but the streaming anime I want to watch is on a bunch of websites that it doesn’t support; more likely that I’d use the Mac Mini as a super-AppleTV, even though its output options don’t agree with the analog-only inputs on my HDTV.
A small thing I’m hoping for is a genuine D-pad accessory for the iPhone. Touch games are great, but we can see from the sales of titles like Ms Pac Man and Galaga that old-school joystick games are still desirable. The touch screen is awful for these, because you don’t have a tactile sense of whether your thumb is on the correct button. I’m hoping for a control that wraps around the iPhone, putting D-pad on one side, and a set of buttons on the other, making it a de-facto PSP (hopefully, software would support flipping for lefties, like the old Atari Lynx did). The key for this would be that the hardware manufacturer would set a standard for developers to use the External Accessory API to determine if the D-pad is present and poll the button status. If we had 10 different D-pad accessories that worked differently, there’d be no software support. We really need one strong hardware maker (Pelican, Belkin, whoever) to set a standard and open it up to the developer community. Not counting on this happening, but there’s no way we’re getting Street Fighter or Soul Calibur on the iPhone until it does.
One more wish: I hope putting out the session videos doesn’t take four months again. That’s too long to wait for needed information from sessions you missed due to schedule conflicts. Hell, would it be so wrong to just get the slides out right away?
Now that I get to skip JavaOne for the first time in five years (more on that in a couple weeks), I have a short conference schedule for this summer.
-
Apple WWDC – June 8-12 – Expensive, but so worth it. The nature of the Mac and iPhone development community is, honestly, that of a Cargo Cult: it’s primarily driven by Apple’s decisions and announcements (and I don’t think that’s a bad thing; inclusion and community sounds great in theory, but sometimes the result is a four-year pissing match over closures in Java, or a competition of multiple awful Linux desktop environments, each awful in its own special way). So attendees get an advantage by having direct access to the essential APIs and frameworks, both in the form of sessions and labs with the engineers. There’s a lot in QuickTime and Core Audio that seems to come out of the blue, but you get the thinking behind it when the Apple guys present it in a session.
There’s also a lot of information here that seems to never get out to the public. For example, last year’s Media and Graphics State of the Union announced the deprecation of QuickTime for Java, but no public announcement was ever made, and the QTJ home page, while dated, still goads developers into adopting it.
-
iPhone Camp Atlanta 2009 – July 18 – It’s a heck of a drive, but we moved out of Atlanta just last Fall, and the sale of our house there is finally closing three days before, so this half-day unconference affords a chance to pick up any paperwork or forgotten personal effects, to say nothing of meeting up with other iPhone devs. I proposed via Twitter a session on low-level Core Audio, something I’ve had my head a lot in this Spring.
Right now, there are over 100 registered attendees, though I’d be surprised if this many show up (people will always register for something free, then half will flake the day of… I would have had a nominal [$25-50] registration fee just to weed out the flakes).
I’m also thinking about using one of the whiteboards at WWDC to propose the idea of a Core Audio unconference somewhere. A lot of people are digging into CA on the iPhone (probably out of necessity… in 2.0, the Audio Queue was the only way to play a flat audio file, and as of 2.2, recording still requires AQ [or audio units]), at different levels of experience and ambition. Maybe it makes sense to get together somewhere for a few days, share notes, and bang on code. We’ll see if anyone bites.
Since returning to GRR, I’ve let the Mac Pro run overnight, downloading 30-some WWDC 2008 videos, which just became available on Friday. At an average of 500 MB each, I’m probably burning through 15 GB of data, which means that under some bandwidth-rationing regimes, I’d be closing in on a bandwidth cap. I ranted about this before, but this is a textbook case of why the US’ broadband oligopoly is going to hurt the country in the long run: somewhere out there, there’s an iPhone developer on Comcast or AT&T who can’t get needed iPhone development info because he or she has hit an arbitrary bandwidth cap. American developers are at a disadvantage, relative to the rest of the world, thanks to the crooked arrangement of just having one or two providers (if any) in a given area, enjoying a government-protected monopoly while not being expected to provide any specific level of service.
We don’t have a single provider taking care of everyone in the public interest, nor do we enjoy the benefits of genuine competition. What we’ve got is good old fashioned US-style cronyism, something that will only get worse as the government frantically borrows more money (WTF?) to buy more of the private economy (WTF?)
Having said that… why the heck are all these videos a half gig anyways?
If you look at the previous years’ WWDC videos or similar ADC on iTunes content (Leopard Tech Talks, for example), you’ll notice that by and large, the video portion of the file is just the slides. Except for the transitions and any demos, the video portion of the presentation doesn’t move. Yet if you zoom in on the text, you’ll see a little bit of an artifact that jumps every second or so as it hits a keyframe, meaning this non-moving content has been encoded as if it were natural, moving video.
And it’s a massive waste of bandwidth. Since QuickTime supports variable frame rates, you could have a single frame (i.e., a slide) that stays up for 10 or 20 or 60 seconds, and only need the data for that frame once. Then for the next slide, you’d only need one sample, however long it is. There are slideshow-movie-maker examples for QuickTime that do exactly this (I think I even did one in QTJ a long time ago, but it’s not in the book [should have been] and I don’t know where I posted it, if I did). I suspect you could do the slides with a lossless codec, like PNG or even Animation (which is just RLE), and still get a huge space saving over the current process of re-encoding that keyframe every second, and providing B-frames (deltas) that don’t convey any information because the image doesn’t actually change.
In fact, you could still use natural video for your demos by simply having a second video track that would contain samples only for those times when you’re actually doing video. Moral of story: QuickTime creative abilities remain freaking awesome.
So why not do this? Well, obviously, the videos need to be playable on iPods and iPhones, which only support H.264 (though I’d be interested to know if H.264 can do variable frame rates… I assume it can’t, at least not in the Low Complexity profile, but it’d be a real nice feature for exactly this kind of thing). You could use the variable length samples in production — drop some PNGs on a video track in your Final Cut timeline and stretch their durations and you’re doing exactly that — but once you export, you’ll get the same constant-frame-rate H.264 that you would if you were exporting your kids’ Halloween videos. Alas.






