I knew Thailand very well, so I showed her my Thailand.

Over the weekend I participated in Babycastles’ 48-hour game jam tribute to the life and exploits of one Jean-Claude Van Damme. The event was inevitably titled the Jean Claude Van Jam.

My team consisted of David Mauro, who provided art and jazzy UI code, and Jen Taclas, who scoured the web for choice JCVD quotes and led the scriptwriting effort. I screamed profanities at a text editor and illegally downloaded Kylie Minogue songs from BitTorrent; I expect to be prosecuted for both. The game we made is called Show Her My Thailand. The source code is on Github, if that’s your thing.


  • Each team was formed ad hoc and assigned a random Van Damme film upon which to base their game. We drew Street Fighter: The Movie, which put us to the curious task of making a game about a move about a game. This pretty much guaranteed that our game would be some variety of ironic exercise, if the basic conceit of the game jam didn’t do so already.
  • We in fact reached no stable consensus regarding the name of the game. I suggested Show Her My Thailand despite its liberal grammatical interpretation of Van Damme’s now-infamous statement on his relationship with Street Fighter: The Movie co-star Kylie Minogue. I thought the four words had a certain rhythmic and meme-sounding quality to them. Dave and Jen seemed prefer the more concise My Thailand. But the law of the digital frontier is not derived from the democratic process, but rather from the individual fiat of the guy wielding the FTP client.
  • The game jam in its Platonic form consists of three or four technical wunderkinds with Skrillex haircuts typing profound rapid somethings into their laptop keyboards over the course of 48 obligatorily sleepless hours. But in defiance of this tradition, I chose to go home and sleep both nights this time around, and it continues to feel like an excellent call on my part. My body said yes, but my mind…also said yes.
  • (For what it’s worth, this is kind of a microcosm of the commercial game development cycle, wherein you get radically diminishing returns on the inevitable “crunch” period just prior to your milestone deadlines, and yet people seem to insist on doing it out of some masochistic and decidedly masculine-seeming code of professional honor.)
  • On the other hand, the sheer physical ordeal of denying yourself sleep, along with the subsequent palette of despair-type emotions it begets, does seem to grant the whole exercise its spiritual marrow. Indeed, the telos of “exercise” as such is pain. If you’re having fun during your workout, then you’re missing the point. Remember that the next time you see some godless philistine jogging down the street with a grin on his face. He is entirely missing the point.
  • Still, I did experience the familiar game jam emotional arc: This is going to be great! Wow, we’ve got lots of ideas! Hmm, but it’s been four hours and we can’t really agree on anything! Why is everyone silent when I suggest something! Okay, who cares, let’s just do something funny! This coffee is fucking atrocious! Alright, we’ll just build the engine now and put in all the art, music, and text on the last day! None of this code is working! These people probably think I’m an asshole! Maybe I should just go home! Why did I even say I was going to do this! We have three hours left and we don’t have any art, music, or text in the game! You know what, I don’t even care anymore! It’s over, I can’t feel anything anymore! Hey wait a minute, those guys over there had a great idea! Maybe our game worked out okay after all! That was great!
  • Wait, no actually: the point of a game jam is simply to let go and make something, the short time-frame providing you very little time to heed your self-editing voice that constantly tells you that you suck at what you do. And yet I’m growing increasingly disturbed by my lack of ability to do anything creative outside my professional life without resorting to gimmicky self-discipline tactics like a 48-hour deadline. After all, why can’t I just sit down and apply some real creative discipline to my free time?
  • And I have a similar complaint/admission regarding a habitual thematic dependency on the post-modernish trifecta of absurdity, nostalgia, and irony, which can be creatively liberating at first, but tends to degenerate into a crutch, one that seems grounded in fear and self-loathing.
  • But speaking of irony, I would say that my appreciation of Jean-Claude Van Damme is only 20% ironic. I have long maintained that he, more than any other action film star from any hemisphere, was probably the true heir to Bruce Lee’s warbly, deliberate performance aesthetic, which was in the end more about the emotion than the acrobatics. What’s more is that I am convinced that Bloodsport, with its underground tournaments and hilarious ethnic menagerie of color-coded fighters and fighting styles, is almost certainly the direct spiritual antecedent to Street Fighter 2, certainly even moreso than the original Street Fighter. All that is prologue to the following indisputable claim: Street Fighter: The Movie is a terrible piece of film.
  • And I nearly forgot to mention that my favorite game from the whole affair was Trust Me. Since the team that built it was in Mexico, they didn’t get to show their game at the jam’s final presentation, which is a shame. Suffice it to say that the gameplay consists entirely of punching snakes and, as would only be true to the zeitgeist, occasionally women.

Ceci n'est pas une pipe.

And now for some words for the nerds:

  • Dave and I agreed to build the game in Javascript and run it in the browser, which nowadays seems like just about the best prototyping platform for any program with something resembling a user interface. It is easy to put images on screen, and the DOM provides a surprisingly good 2D facsimile of a scene graph.
  • Javascript itself has turned out to be a pretty nifty little language, replete with an adorably cultish fanbase, but oh man: the dynamic binding of this is a constant irritant that seems only to benefit overweeningly clever syntax tricks, at the expense of every other poor working bastard out there just trying to get some goddamn scripting done so he can go home and sleep for a few hours. For this and other such nags and nits, one is severely tempted just to drink the Coffeescript-Aide and call it a day.
  • One other reason browser-based game development isn’t quite as cut-and-dry as it should be is that web security restrictions pretty much lock you into using XHR for your dynamic file access. Wait, you thought you could just double-click on the HTML file and run the game? Nope, sorry. Time to fire up Apache and configure a virtual host. Yeaarrghghgh.
  • I don’t care what you say: I have been writing code on a Mac for about two years now, and it still feels like a text-editing ghetto to me. It is a perverse world that places the set-search-term shortcut a single key away from the close-tab shortcut. Lately my irritation has reached the point that I have started to dip my toes into the briny, caustic waters of Vim. Out of a misguided desire to develop good hacker form, I spent the first two hours of the game jam struggling with, against, and ultimately beneath MacVim. For a program with such technical bonafides, it seemed awfully buggy to me. It crashed when I tried to paste or otherwise manipulate long strings of minified Javascript. Sometimes it would echo my normal mode keystrokes into the buffer, and sometimes it wouldn’t. I quickly retreated to the slightly less-buggy Komodo Edit.
  • Tangential but potentially amusing revelation: from the standpoint of text editing, code navigation, and comprehension-at-a-glance, the best experience I’ve ever had was…get ready for this…Visual Studio 9 with VisualAssist. That’s right, kids: static typing, fast-open, and unbeatable autocomplete. All you TextMate hipsters can eat my Apps Hungarian. Now, if only VS9 didn’t routinely elect to rebuild the symbol database two seconds after I hit the compile key.
  • If there’s a lesson in all of this, it is certainly that one should never attempt to edit audio using a trackpad.