No, I have no shame.
One of the things I most wanted (and got) for Christmas was Karaoke Revolution, a PlayStation 2 game in which you use a USB headset to sing along with an onscreen avatar and are graded for how well you hit the pitch and timing of the original song. Of course, it helps that I've already spent years with the in-no-way embarrassingDance Dance Revolution, and have a set of worn out dance-mat controllers to prove it.
Now I'm not just about the media games — stop by sometime if you want your butt kicked in SSX or Soul Calibur II — but I think they represent a fascinating evolution in gaming. Most of the money and marketing go into typical genres or chasing the latest success (are we done with the Grand Theft Auto rip-offs yet?), but there's still room for new kinds of experiences. And I'm not the only one to notice. Time peggedKaraoke Revolution as the best video game of 2003. And Game Girl Advance's Jane Pinckard noticed these media games in her 2003 video-game yearender for Salon "Video Gaming and Its Discontents".
Pinckard also notes a curiosity that is infectiously fun to play as a store demo: the Sony Eye Toy is a USB camera that tracks the viewers movements and turns them into games, and even non-games like wiping simulated junk off the screen to reveal your own image underneath. For Mac users with iSight or other FireWire cameras, FreeVerse's Toy Sight works on the same concept.
Two interesting things to note: the camera games are specifically enabled by their technology, the camera. This is typical in games, but usually when we talk about game technology, we usually mean about sprite- or polygon-processing power — often, the games that best define a gaming platform are those that exploit the machine's power, doing things that couldn't be done on earlier hardware and yet aren't so ambitious as to be let down by the hardware (think SSX or Grand Theft Auto III in this generation of game consoles [PS2 and its rivals], Metal Gear Solid, Tomb Raider, and Final Fantasy VII in the 32-bit era [PS1]). In the case of the media game, the enabling technology is the camera, the headset, the dance-pad controller, etc.
The other interesting thing is that these media games don't typically push the typically vaunted CPU and GPU capabilities to their limits. Dance Dance Revolution is the rare game that arrived years after it was technologically possible. All it needs is a CD and sprites, meaning earlier machines like the SegaCD, 3D0, and CD-i could have handled it. This is a rare occurrance, when you think about it, since most games are so closely pegged to what's technologically possible. About the only other example I can think of is Tetris, which arrived in the mid-80's, but could have been done on early-80's technology like the Atari 2600 or Odyssey 2.
Karaoke Revolution got me thinking about the PS2 headset craze: it's essential for this game, but also greatly enhances a growing number of online games that allow voice chat between players. Perhaps the most prominent of those is the first-person shooter SOCOM: US Navy Seals. I played SOCOM as part of a PS2 online beta test in Spring 2001, and didn't think it was anything special... because I wasn't part of the group seeded with headsets. Little did I expect this was going to be the real eye-opener for console online gaming.
So what does this have to do with Java? Well, I was all ready to go back and pick a big nit with JSR 134: Java Game Profile, which proposed a collection of expected-to-be-there API's for Java game development. IMHO, they got media supporttotally wrong by calling for a subset of the Java Media Framework to be present only in order to support "cut scenes", i.e., high quality movies that play at certain points to set the mood, advance the story, etc. I'm not a big fan of JMF — more correctly, I'm not a big fan of its inert reference implementation and four years of neglect — but only throwing in enough JMF to play back video would be a disaster. Without the capture API, you don't get to do something like Eye Toy or Karaoke Revolution. Leave out streaming and you can forget voice chat for SOCOM and sports games.
In short, most of the interesting things being done with media in games would not be possible in the JSR 134 world.
JSR 134 seemed backwards looking - at best, it could supportsome of what was being done in the gaming world at the time of its release. That's not good enough. Sometimes, you have to leave the door open and see what happens. The PS2 originally had a FireWire/iLink port in addition to two USB ports. Maybe it was there for a never-developed home media option, maybe for linking machines for head-to-head play... maybe there was never a good reason, but Sony decided to spend a buck or two per unit to see if anything came of it. It didn't, and they took it out of later models. But you have to take those kinds of chances. By contrast, the USB ports have paid off nicely with keyboard support for online gaming, headsets, EyeToy, etc.
Anyways, when I went back to check JSR 134, I saw that it had been withdrawn in July of last year. Maybe that's for the best. A standardized set of Java API's for gaming seems like a good thing, so we can finally have a target environment for Java games other than the desktop PC with an ad hoc collection of extension packages, but this J2ME-based collection seemed too half-assed to cut it. Maybe java.net's Gaming Community will lead the way from here.