[ Content | Sidebar ]

ipad as rss reader

June 13th, 2010

The reason why I got an iPad as early as I did was so that I could travel to GLS without a laptop. I’ll blog about how that went later, but I want to talk about one particular aspect of iPad life separately, namely using it as an RSS reader.

I first tried to use Google Reader on the iPad, since that’s what I use on my laptop. You can get it to work, but it’s not pleasant: the mobile version is designed for a phone, and the full version doesn’t work well without a mouse and keyboard. (It was completely unusable until I learned that you can use two-finger scrolling to scroll one pane of a multipane layout.)

So I searched for native iPad clients that can hook into my Reader subscriptions; the first I tried was Feeddler. And I was blown away: it was my first experience with just how much better the iPad can be at certain interactions. I doubt I’ll be able to explain it adequately, but here goes anyways:

I prefer to read most blog posts on the blog’s web site. So I would go through Reader, j’ing to each post and typing ‘v’ to bring up the article. But it takes a little while to load the article, so I batch them up: I clover-backtick to get to Reader, then repeat this a few times, and once I’ve got three or four loading, I clover-backtick to get to the oldest. Or at least to one of them: the main downside of Snow Leopard for me was that it changed the window cycling algorithm so that I ended up reading articles in a somewhat random order.

This interaction style doesn’t work at all on an iPad: it’s just not built for opening a bunch of windows (or a bunch of tabs) at once. So I was worried about reading RSS feeds on it: I don’t want going through my feeds to take twice as long because of all the page load wait time.

So I fired up Feeddler, and told it to show me oldest unread article. Which it did, displaying the contents of that article from the RSS feed. And then I tapped on the title, which I correctly guessed would bring up the article from the blog’s web site.

What I did not guess, however, was that the article would show up extremely quickly. I haven’t measured it, but it wouldn’t surprise me if it’s loading pages four or so times faster than this laptop. It is, admittedly, an old laptop, but I’d always assumed that it was fast enough at rendering, and that the latencies were in the network. Apparently, my assumptions were wrong: occasionally, I’d run into a post that would take a while to load on the iPad, but most of the time they would pop up very snappily.

And this, in turn, subtly changed my interaction with the blogs I was reading. Rather than having four or five windows open in my browser (and with more icons/windows visible on the screen from other applications), and having some small part of my attention aware of the fact that I’d queued up multiple blog posts, I would just focus on one post at a time. That post would fill my screen, I wouldn’t have any other distractions, and I’d move on to the next when I was done. (Incidentally, one of the things I’ve learned from my recent iPad usage is to use the vertical orientation whenever possible: fill the screen with what you’re concentrating on, only bring up navigation lists on demand rather than always having them as a left pane.)

It got better when I tapped on a Youtube video: it started playing, I noticed a fullscreen icon; so I tapped that, and turned the iPad on its side, and all of a sudden I was immersed in the video I was watching. (It helped that the first video I watched this way was really pretty.) Again, the same principle applies: by having the video fill my screen, I was minimizing my distractions, and just watching it rather than looking at the words and pictures surrounding it on the page.

At home, I’d pretty much only using the iPad to play games; no longer. If I’m in the mood to read stuff, then the iPad is a much better device than this laptop.


Advice for other iPad owners: as part of this, I sampled a few of the RSS applications. This is clearly a fast-moving space: Feeddler had a lot more bugs a week ago than it does right now. Having said that, my current opinion is:

  • NewsRack is much slower at bringing up web pages than Feeddler is, and doesn’t have any compensating benefits (I think it even had one or two other annoyances), so it’s not a choice for me.
  • My current favorite is Reeder. (That link goes to an iPhone version, but hopefully he’ll add iPad screenshots soon.) It is much more elegantly styled than Feeddler, which is important to me for iPad applications; it also starts up noticeably faster. (It’s possible it brings up web pages a touch slower, but it’s still fast enough to be quite workable.) It took a little while for me to find some of the options: to see unread articles oldest first, you have to go to its settings within the general settings application; to see a specific feed, use two fingers to expand the folder that the feed lives in.

rock band past, present, and future

June 12th, 2010

One of the rules I try to follow on this blog and on Twitter is to not talk about prerelease information for video games. (And, indeed, I don’t even follow prerelease information for video games too closely—why would I want to spend my time thinking about games that don’t yet exist in preference to games that I could actually play?) But, occasionally, a piece of news comes by that makes me sit up and take notice; and I’m enough of a Harmonix fanboy that the recent Rock Band 3 information hit me in my sweet spot. (Incidentally, Plastic Axe is the best source of Rock Band 3 information that I’ve found.)

What continues to impress me is the scope of the vision that the company has. They are not just trying to make a game that’s a lot of fun: they are trying to fundamentally alter humanity’s relationship with an art form that is older than recorded history, and to do so in an unalloyed positive fashion.

Guitar Hero, of course, kicked this off. It was mostly just a fun video game (though one with far reaching effects in the industry beyond video games, in its revitalization of alternate control interfaces), but it also tried to drag our interactions with music out of the relatively passive listening context, adding in some amount of interactivity. I don’t want to overstate the novelty of this—people sing along and play air guitar and drum along to music all the time, and there are karaoke games out there as well (though I haven’t done my research well enough to know how their dates compare to Guitar Hero‘s), but doing this in an instrumental game context was important and struck a chord.

I never played Guitar Hero 2, so I don’t have a good feel for how transformative its addition of bass was. My guess was that it wasn’t too transformative—bass and guitar isn’t all that compelling a fantasy context (though, having written that, I’ll have to admit that Liesl and I have a great time doing just that), and of course the mechanics of playing the two are very similar.

But I did play Rock Band, and the jump from Guitar Hero to that game was huge. Playing a full band is a compelling difference from just playing a guitar: it makes it a much much more social experience, and there are a lot of people who are naturally drawn to vocals or drums who wouldn’t be drawn to fake plastic guitar.

And that wasn’t the game’s only key advance: downloadable songs began to appear right after release, and they’ve come in a steady flow every week ever since. Harmonix’s support for DLC is in sharp contrast with almost every other gaming company out there, and it made it clear that they see Rock Band as a platform, not just a game, and one which they want to actively curate. And the steady flow of DLC began to raise the question: why aren’t all songs available this way? I mean, I know the practical reasons why that’s currently the case, but surely that’s a bug, not a feature? So what has to happen to fix that bug?

Next came Rock Band 2, which was an incremental improvement, albeit a solid one. It tweaked the social aspects, and its support for not only DLC for the original Rock Band but the ability to import Rock Band songs made it clear that Harmonix was serious about their platform vision.

And, a year later, we had The Beatles: Rock Band. Again, not a major advance (though vocal harmonies are surprisingly powerful), but I really appreciated the lovingly curatorial approach that the game showed. These games are altering our interactions with one of the most ancient of art forms; as such, they should treat music with love, care, and respect, and The Beatles: Rock Band very much did so. (Incidentally, that curatorial approach is another another strength of the band approach over Guitar Hero‘s single instrument: I got a lot more appreciation for the different musical parts once I was able to isolate them and concentrate on each one individually.)

So, at this stage, what are the major issues remaining, what are the next steps? The first issue is the bug I mentioned above, that not all music is available for Rock Band. The folks at Harmonix are great, and they’re putting out an unprecedented amount of DLC (I just had my 360 red ring, and when looking through the list of DLC when deciding what to re-authorize, a good 80 to 90 percent of it must have been Rock Band songs), but even so they’re clearly a bottleneck here. The solution to that, of course, is Rock Band Network; in the long run (and even the medium run) I expect that to be one of the most important video game developments from 2009.

And then there’s another variant of that problem: there does, in fact, exist music that is written for ensembles other than guitar, bass, drums, and vocals. This is, obviously, a quite open-ended problem (witness the Accordion Hero and Sousaphone Hero parodies), and it will take a long time to solve, but as a piano player, I would like to have keyboard support.

Finally, there’s the complaint that pressing colored buttons and hitting the strum bar isn’t very much like playing guitar. I don’t see this as an active problem (and I also note when it comes up that that isn’t the case for the new instruments in Rock Band), but it’s clearly an area where one can imagine improvement.

Which brings us to Rock Band 3. It attacks those two problems head on: I’ve been asking Harmonix employees in my twitter feed for keyboard support for a couple of years now, and not only do I have it, I have a couple of octaves of keyboard support, which is about as good as I can imagine right now! (And talking to people about Rock Band 3 over the last day or two, I’m not the only person out there who would like to put their piano lessons to use.) And they took the most unrealistic instrument, and completely overturned that: now, if you wish, you will be able to play Rock Band 3 on an honest to goodness electric guitar with full fingering charts. (They made incremental improvements on the realism of drums as well, but of course not as much improvement was needed there.)

And I’m looking forward to this more than any other video game news in ages. I’ll get a keyboard controller on launch, and dive into the deep end and see how well I can swim. I imagine that I’ll eventually dabble with pro mode on the guitar, too: I’m a reasonably good guitar player on Rock Band, and I think I’d get a lot more out of bumping up the realism on easy songs than from trying to master the most difficult songs on the current expert setting. I doubt I’ll dive into drums in the same way, though: I’m a much worse drum player, not even able to finish all drum songs on hard, and I imagine that I’ll be able to sink arbitrarily large amounts of time into guitar should I so choose. Which is actually another question that I’m wondering: just how much of my video game playing time is this game going to absorb in the year after it gets released?

So: what should we expect next from Harmonix? I imagine that there are enough big changes in Rock Band 3 that Rock Band 4 will end up being an incremental improvement similar to Rock Band 2; after that, though?

The above narrative points out two obvious areas for improvement. Harmonix has removed themselves as a major bottleneck for music availability, but while we’re getting a lot more content off of Rock Band Network than we could get before, there’s still a further flood of music out there that I want unleashed on the world; I’m not sure exactly what the next step is to enable further growth, but I am sure that next steps are out there. And the other is that we’ve gone from one instrument type (plus a minor variant) to three to four; we’re not done yet, and at some point we’re going to make a jump to “many”. Again, I don’t quite understand how that is going to happen (though a deep partnership with an external manufacturer, as they’ve done, is a good first step), but happen it should.

The other area of improvement that I’d like to see is for Harmonix to get platform independence. I’m now on my third Xbox 360; and even if that hardware weren’t seriously flawed, console lifecycles are only so long (though this one will be longer than normal, mercifully), and at this stage I fully expect to care much more about my musical investment than about the actual games for the console. To some extent, I’m resigned to losing most of that investment, but this is a problem that Harmonix (or somebody!) needs to solve eventually: we need to be able to move gamified songs from platform to platform the way we can move mp3s from platform to platform.

To that end, the most relevant parts of the recent announcements are the fact that all the new instruments have MIDI output ports, and that most of the existing DLC already contains symbol markings for use with the new drum kit. The point here is that this isn’t a brand new problem that Harmonix needs to solve. What we want is a way of representing music that is good enough to support learning to play it on real instruments (at least to the extent of telling if you’re basically playing the right notes at the right time), that is capable of degrading gracefully (as seen in the drum example above; I wonder whether Harmonix is already scoring keyboard parts in such a way that, eventually, we’ll be able to use Rock Band 3 and later content with an 88-key piano?), and that supports future instrument choices. And we need a platform-independent and more-or-less instrument-independent output format that can be matched up against said musical representation.

This, of course, isn’t rocket science: we’ve had perfectly suitable musical notation formats for hundreds of years now, and MIDI is (I assume, I’ve never looked into it) probably something that can do just fine on the output format representation. Also, the nice thing about this is that it gives a proof of concept that there is actually a natural stopping place to the feature creep here: we have known solutions that are sufficient to allow us to represent almost any piece of music in existence in a gamified format, which is what’s really important here. Heck, for all I know, their planned MIDI controller will already let us have most of that ability for free!

So, what’s the next big step? I don’t know for sure, of course, but it seems to me that the natural path forward is as follows (possible simultaneously, possibly in some order):

  • Harmonix generalizes their music representation format to support arbitrary instruments, with whatever changes are necessary to support that in their authoring tools.
  • Harmonix makes a full version of Rock Band available on a non-console platform, or probably on multiple non-console platforms. (I’m sure they’ve thought about launching their own dedicated device, but I don’t think this is particularly likely—they’re already moving away from hardware vertical integration, and I don’t think that a console would be enough of a match to their current strengths to help them more than it would hurt.)
  • Harmonix opens their own game music store (think “iTunes store for Rock Band“, and eventually for all music), offering long-term persistence and portability of the music that you purchase through it.
  • Harmonix, MTV, peripheral manufacturers, and actual sane forward-thinking record company executives all work together to make this a huge success, supplanting mp3s as the default format for music purchases going forward.

That last one is a bit of a stretch: sane, forward-thinking record company executives? And, of course, there are good reasons for record company executives to not want to give somebody too much exclusive control over key areas of their business. Certainly I would prefer to live in a world where this developed as an open standard that companies could freely share in; and quite possibly that’s the way that this will turn out. (Though, as is obvious, I’m enough of a Harmonix fanboy to be willing to give them a chance at being our benevolent musical overlords, at least in the short-to-medium term.)

But happen it will. Maybe I’m drinking too much of my own kool-aid, maybe being at GLS is causing me to see the potential for games everywhere. But really, how could it not happen? Having music come embedded with its own score is both obviously good and completely technologically feasible; using that embedded score for ludic and didactic purposes (and really, aren’t those one and the same in this instance?) is equally obviously good; and we are at the dawn of a golden age of gaming that makes this sort of transformation inevitable.

gls 2010: friday

June 11th, 2010

9:00am: Rethinking Education in the Age of Technology, by Allan Collins.

He began by talking about incompatibilities between schooling and technology: uniform learning vs. customization, teacher control vs. learner control, teacher as expert vs. diverse sources, standardized assessment vs. specialization, knowledge in head vs. reliance on resources, coverage vs. knowledge explosion, learning by absorption vs. learning by doing, just-in-case learning vs. just-in-time learning.

The result of these incompatibilities is that school becomes less and less important, with a new system emerging. The industrial revolution brought universal schooling; the digital revolution leads to lifelong learning. Home schooling workplace education distance education, learning centers, web communities, other examples.

He then compared shifts over three eras of education:

  • Responsibility: parents -> state -> individuals
  • Content: practical skills / literacy -> basic skills / disciplines -> generic skills / learning to learn
  • Pedagogy: apprenticeship -> didacticism -> interaction
  • Assessment: observation -> didacticism -> embedded
  • Location: home -> school -> wherever you are
  • Culture: adult -> peer -> mixed
  • Relationships: personal bonds -> authority figures -> computer-mediated interaction

What is lost, what is gained in this transition? Here, I think he went pretty far off the rails. His list of losses, prefixed by some confusion about games, and with a ridiculous claim in the middle that we’re now not learning to work together, was: equity, citizenship (seriously? Blogger/Wikipedia culture somehow hurts citizenship?), social cohesion, diversity, commercialism, isolation, broader horizons. And his list of gains: more engagement, less competition, customization, responsibility, less peer culture (again, WTF?; I think, actually, what he meant here is that we’re losing a learning-hostile peer culture and replacing it with a more positive one, but I could be wrong).

Where do we go from here? We’re in a state of flux, a time when visionaries can have a real impact. The imperatives of technology: customization, interaction, learner-control, production. Specialized certifications. Rethinking high school.

(And then I stopped taking notes; more of the same, a curious mixture of sensible statements with claims that much of this conference gives lie to.)

11:00am: Compromising among Gaming, Learning, and Society, by Ruhui Ni, Mete Akcaoglu, and Ken Dirkin.

This was a Chat and Frag about a Chinese-language learning game / virtual world called Zon. And I really enjoyed it: I have no idea what the speaker said, because I spent the whole hour playing around with the game! It was gratifying to see that I’d learned something from listening to Chinese Class 101 sporadically over the last few months…

12:30pm: The Intertwingling of Openness and Data in the Future of Education, by David Wiley.

Here are his slides on Slideshare:

He started by talking about the history of lectures. First professors read texts to students that they copied. Then, the printing press: professors read annotations of texts to students that they copied. So: if the book couldn’t change teaching, can technology? He’s not optimistic, based on how laptops are getting used. (Or based on the way that I’m blogging this…)

He then moved into a discussion of copyright, openness, remixes. His claim: openness is the only possible means of doing education. If there is no sharing, there is no education.

Expertise is nonrivalrous: you can give it away without losing it. Expressions of expertise used to not have that property (books), but now they do (electronic copies). So: more sharing, which means, by the above, more education.

But: policy fights this technological advance. We saw this back in the 15th century: you could print the bible the Latin, but you could be killed for reading, let alone publishing, it in your native tongue. And we see this now: “learning management systems” exist to prevent access to, saving of, dissemination of learning, of expressions of expertise. Or closed laptop policies: if I’m not more interesting than your sisters updates about her breakfast, then I don’t deserve your attention. (Crazy example: a professor claimed copyright not only over lecture but over derivative works, like students’ lecture notes!)

The church’s policies around the printing press led to the Protestant reformation; are we going to have our own reformation, are we going to have a splintering of sects?

There’s a huge divide between everyday life experiences and education experiences: the former is open, tethered, customizable, digital, while the latter is closed, mobile, generic, analog. Sure, we have e-learning, which advances on some of these dimensions, but not on most. In particular, it generally fails on openness, which is the key to the other attributes. (Though some schools are pushing against this, fortunately.) (He also gave a plug for a company that he’s working with, Flat World Knowledge, which is a textbook company that publishes their works under a Creative Commons license.)

In his courses, he requires students to post their work on a blog. Not infrequently, one of these blog entries gets linked by an academic aggregator, so all of a sudden thousands of people are aware of it, maybe commenting in it. If this happens in week three, then in week four the quality and ambition of students’ work dramatically improves, much more improvement than traditional academic motivators manage to produce.

He also opened up participation in his class to the public. Assessment didn’t scale in that context; he looked to MMORPGs for inspiration, with classes and leveling up. (It wasn’t completely clear exactly how the mechanics of that worked to solve the scalability problem.)

He then shifted to data collection for the purpose of continuous improvement. Amazon does a great job with this; educators, even when they have that information (e.g. server logs for online education components), and just throw it away. One vision for how to use this: tutoring is very effective, but doesn’t scale. Can we use information about what students are doing online to discover moments when we can intervene with tutoring most strategically? (They’re doing this at the Open High School in Utah. Which tutoring, incidentally, they’re logging in a customer relation system, to make sure that data gets preserved. Businesses know how to keep and use data!)

Another vision: use that data to discover which curriculum materials are most effective, and hence to improve it? Which gets back to the openness issue above: you need to be able to modify it. So the Open High School is only using open instructional materials.

To sum: openness

  • Increases access
  • Gathers more data
  • Improves sharing
  • Creates local control
  • Makes data actionable
  • Permits alignment with societal changes
  • Facilitates the unexpected

And the the conference was over! I hung out with Roger Travis, playing some Rock Band and some Roll through the Ages (which he repeatedly beat me at); I had dinner with him and Mike Young and Erik Hanson.

A very pleasant conference; I enjoyed the content, I hope I learned a few things, and it was great seeing friends in person.

gls 2010: thursday

June 10th, 2010

One bit that I forgot to mention in my writeup yesterday: one of the posters was talking about using a pressure sensor on the floor to detect how engaged players were in a game. Seems like a potentially interesting idea, though the analysis was flawed: they changed too many variables at once to be able to draw strong conclusions.

Anyways, on to today.

9:00am: Drew Davidson and Richard Lemarchand on Uncharted 2.

This wasn’t a traditional talk: Davidson played through scenes live, with both Lemarchand and Davidson discussing the scene in question. They started with the opening sequence with a train on a cliff: they discussed its tutorial role (serving in that function even while dropping you in the middle of the action, in fact in the middle of the story arc) and its camera usage: as they repeatedly mentioned, the game frequently takes camera control away for a few seconds at key moments for dramatic effect.

In the next bit, they talked about the buddy system. Your buddy gives you cues (jumping out a window where you’re supposed to follow, taking cover while looking in a way that orients you to enemy locations), but also helps keep the narrative grounded. Too many games have a single hugely powerful character wandering around the world almost completely unmoored from a social context.

At this point, I stopped taking good notes, but I enjoyed the rest of the talk; it certainly increased the chance that I’ll play the game! One bit that fit in with some of my recent concerns: on a couple of occasions, Davidson mentioned that his wife enjoyed watching him play, but more on easy difficulty than on normal: the fights dragged on too long on normal, interrupting the narrative flow.

10:30am: Eric Zimmerman, The Fantasy of Labor: A Social Game Design Workshop

Yay, Facebook games! Which he paints as having roots in casual games and MMOs: played in small chunks of time, but with a persistent world. He then gave a tour through some of the typical design elements of social games.

At which point each table designed a game. My table, ironically, decided on a game with a fashion theme, which we named “Supermodel Hero”. I swear that I had nothing to do with the choice of topic; I did, however, chime in with some game mechanics that seem to me to be obvious ways to handle some of the Facebook-specific issues that Zimmerman asked us to deal with that, in retrospect, made the game a bit closer to Sorority Life than was perhaps ideal for me. Still, I don’t think any of the other participants minded my suggestions, at least.

And, while the result was that I probably learned less from that part of the exercise than I would have otherwise, the rest was very interesting: we had to make paper prototypes on short order, and then convince other people wandering by to play the game. That was a really interesting experience; I don’t think I’ve ever made paper prototypes like that before, and I was actually really pleased with the amount of detail that we could put into them. Here’s a picture of what some of our prototype looked like:

He then ended by talking about older categories of games of chance and games of skill versus a newly popular category of games of labor. Which, he said, was a fantasy of labor: if you put time in, you get rewards out, and that’s not the way the real world works.

Next came a lunch session; because of the length of the previous session, though, I arrived late, and it was really targeted a lot more at active teachers, so I didn’t think I had much to contribute, so I ducked out for a bit.

2:00pm: The Girls in Games panel discussion, by Catherine Wyman, Alexa Boccieri, Gaby Byrd, and Katie Neal.

This was a fireside chat led by a teacher and three students from a girls’ high school, talking about a survey they’d done of middle-school girls’ gaming experiences. Certainly pleasant to listen to; the most amusing bit for me, though, was when one of them mentioned that the most popular Facebook game at their school was Sorority Life! So, afterwards, I mentioned that I was working on that; a few text messages with one of their friends led to them grabbing me a few hours later and getting me to sign an autograph for the friend in question. The first time that’s happened to me; I was amused. (But, I guess, if you work on a game that hundreds of thousands of people play daily, then this sort of thing is going to happen…)

3:30pm: Game Design: From Blue Sky to Green Light, by Deborah Todd and Andrew Hoffman.

I felt a little silly going to yet another game concept development session, but the two previous ones that I’d gone to were my favorite sessions of the conference. And I enjoyed this one, too.

My table’s blue sky concept: a consumer awareness game, with a reverse twist: you’re running a store (e.g. a grocery store), trying to make as much money as possible, no matter what sort of slimy tactics, bad product, marketing-driven product promotion it takes. (With an NPC nemesis shining light on this, with documentation available.) It would be targeted at middle school students; maybe it would be on a mobile device, so you can do game actions in real-world stores?

We refined the idea a bit more in our next level of brainstorming. We decided to change the gameplay as you progressed through the game. You’d start off running a lemonade stand, or working a stockboy, or something. There, you don’t have to worry too much about profit and loss, but you’re somewhat aware of it. Then move up to running a store, then something larger, at each point becoming more aware of the economic forces, having access to a wider range of tactics that are father away from what consumers want.

We wanted a way for players to be able to play this as a good guy, not just as a bad guy (or economically amoral guy); we didn’t get very far with details of that, though. The instructor also cautioned us to be careful with character/art choices: characters a few years older than the target audience are ideal.

I’m not sure exactly what to take out of all of this game concept brainstorming, but it’s nice to know that I can do it if necessary and to get a feel for how it works. I don’t yet feel like I have any game ideas that are bursting out of me, but I should probably ask my brain to be a bit more sensitive to ideas in that direction that it has; I’m certainly working in an environment that’s quite receptive to such thoughts, after all.

After that, I had a pleasant chat with Roger Travis and Michael Young; nice to meet another VGHVI founder! And then I had dinner with Jordan, Tanya, and Caleb.

7:00pm: No Longer Bowling Alone, by Henry Jenkins.

I showed up a little late to this; it was about politics, mass media and games, and seemed interesting enough, but it never really grabbed me. I’m not sure how much of that was my showing up late, how much of that was my being a bit tired, and how much was my interests changing over the years, because I’m fairly sure that, at one point in my life, I would have found the talk quite interesting.

gls 2010: wednesday

June 9th, 2010

I’m at the Games, Learning, and Society conference for the rest of the week; here are my notes on today’s events.

I started the day by finally getting to meet Roger Travis in person! I’ve been hearing his disembodied voice weekly for ages now at the VGHVI gaming sessions that I feel like I know him rather well, but it was great to finally get to meet him in person! (Incidentally, I spent the previous evening hanging out with Jordan; great to see him where he’s now living, looking forward to seeing his family tomorrow.)

I then spent the rest of the morning at the Mobile Learning Summit. This was structured around coming up with a game idea; my table’s brainstorming sentence was: “create an engaging game about playing piano for parents in an artistic/social context”. (We ended up ditching the parent idea, though.)

And, after a fair amount of chatter, we ended up with a game idea, a sort of musical version of foursquare which we called Starter Culture Sounds. It’s location based; if you’re at a location, you can upload a snippet of music to that location. These pieces of music get classified (to detect similar themes, or even moods; we thought it might be cool to find a way to algorithmically merge them, though that sounded pretty hard to me), resulting in a visual representation of popular themes at that location. You can also vote for other people’s tunes, and upload edited version of people’s tunes; either of those actions increases the prominence of that theme in the visual classification. (Maybe those would feed into some sort of badges/achievement system, too.) Votes age over time. Once you’ve been to a place and contributed to hit (just voting is enough), you get a virtual mic that lets you later listen in on the music there. (But you can only contribute if you’re physically present.)

After that, Michael Abbott showed up; great to see him, as always! (A pity that Roger is on the East coast, Michael is in the middle of the country, and I’m on the West coast…) We went off to lunch, where Kurt Squire gave a keynote on Games and Education.

He started off talking about Sid Meier’s Pirates! as an educational game. Here, he mainly discussed the various short-, medium-, and long-term goals that the game gives you: for the first several hours, you always have something clear to do, enriching your understanding of the game’s mechanics, and eventually leading to more free-form experimentation with those mechanics.

He then moved on to social spaces: World of Warcraft and a discussion of MUDs, where a fifth grade teacher he knew had discovered kids in her class were participating in one, and she ended up joining (serving as a Jane Jacobs-style “watchful eye”) and incorporating this into the classroom work. (For example, kids produced versions of the Hundred-Acre Woods and of their school in the MUD.)

He wove these examples into a taxonomy of progression: controls -> basic knowledge -> systemic expertise -> tools/tinkering -> fundamental design, plus another branch systemic expertise -> social control of play.

He also presented a rubric for quality of games:

  • Interesting choices, good progression
  • Enable systemic understanding
  • Scope for transgression
  • Immersive possibilities
  • Room for socialization
  • Does it inspire creativity?
  • Smooth ramp from consumer to creator?
  • (One or two other things – he talks really fast…)

I only have sporadic notes for the rest. He listed some educational game genres: microworlds, linear action, role playing, open-ended sandbox, persistent worlds. He had an interesting discussion of Civilization as a learning tool, including the biases it has: management is good, technology is good, people will attack you for oil, geography is destiny. He said some nice things about Montessori, and showed bits from a cool game about saving the lake that students had made.

At 2pm, I went to a presentation about a game called WolfQuest. Which was billed as a “Chat and Frag”, but was a straight lecture; too bad. Still, the game sounded interesting enough – you play as a wolf trying to survive in Yellowstone. I’ll mention it to Miranda, maybe she’ll like it?

And at 3:30pm, I went to a talk about Unity. Which was also misleading: it was labeled as a workshop, but it was really just a straight talk. Or at least I think it was: I seem to be incapable of going to a conference without sleeping through one of the sessions, and that session was today’s choice.

After that I wandered around the poster session, and then had dinner with Michael and Roger. (Where I got to eat green jackfruit for the first time in almost 17 years; it continues to be very good stuff.) A lovely way to end the day.

100 years of the progressive

June 8th, 2010

Some quotes from the hundredth anniversary edition of The Progressive:

The income tax is the fairest and most equitable of the taxes. It is the one tax which approaches us in the hour of prosperity and departs in the hour of adversity. Certainly it will be conceded by all that the great expense of government is in the protection of property and of wealth. There is no possible argument founded in law or in morals why these protected interests should not bear their proportionate burden of government. —William E. Borah, July 17, 1909

Let the wage earner take heart. The eight-hour day will come, and come soon, to all the workers of every state in the nation. —Robert M. La Follette, July 19, 1913

Every nation has its war party. It is not the party of democracy. It is the party of autocracy. It seeks to dominate absolutely. It is commercial, imperialistic, ruthless. It tolerates no opposition. … In times of peace, the war party insists on making preparation for war. As soon as prepared for war, it insists on making war. If there is no sufficient reason for war, the war party will make war on one pretext, then invent another, possibly more effective, pretext after war is on. —Robert M. La Follette, June 1917

The moral conscience of the nation was deeply shocked when it learned from undisputed and admitted evidence that there had been spent in the Illinois and Pennsylvania primaries several millions of dollars in an effort to obtain nominations for candidates for the United States Senate. … The expenditure of such huge sums for seats in the United States Senate cannot be justified unless we desire to turn over that great legislative body to the multimillionaires of the country who are willing to buy legislation the same as though it were merchandise sold for cash to those who are willing and able to pay the price. If this practice is to be condoned then we have placed seats in the highest legislative assembly of the world upon the auction block, and we have, by indirection, defeated every fundamental principle that underlies our government. —George W. Norris, January 1927

Without authority from Congress, American Marines have been landed in Nicaragua. This armed invasion of a friendly republic and the support of the government of General Diáz are justified by the Coolidge Administration under the flimsy pretext of protecting American lives in Nicaragua. … It has undertaken that intervention on behalf of a government whose chief claim for support is its willingness to accept dictation from our State Department and the American business interests which seek to exploit Nicaragua. The inevitable result of this harsh, bullying, and unjustifiable action is to set the nations of South and Central America against us. —Robert La Follette Jr., January 1927

The progress of science in furnishing the Government with means of espionage is not likely to stop with wire-tapping. Ways may some day be developed by which the Government, without removing papers from secret drawers, can reproduce them in court, and by which it will be enabled to expose to a jury the most intimate occurrences of the home. —Justice Brandeis, quoted by Robert La Follette Jr., July 1928

We are face to face with another unemployment crisis in this country. More men are out of work than at any time since the depression of 1920. There has been no serious effort by this government to study the causes and possible cures. The United States is today the only important civilized country in the world which has failed to plan for or aid in the relief of unemployment. —Robert La Folette Jr., May 1928

It’s Not as Late as the War Party Thinks … No War with Japan —headlines from the December 6, 1941 issue

President Truman has announced that a single atomic bomb has been dumped on a Japanese city of 340,000, probably wiping it and most of its inhabitants off the blasted acres of the Earth. … The very stuff of God, then, molded into the hands Satan but used—oh, to be sure—in a righteous, a glorious cause, and all people of peace, goodwill, and kindliness should gloat and sing paeans on the edge of that enormous crater where tens of thousands of mangled bodies fester in the stench of death. Gloria in excelsis. —Ernest L. Meyer, August 20, 1945

The Soviet Union’s establishment of a nuclear striking force on the island of Cuba was an act of criminal irresponsibility. Soviet guilt is clear, but the judgment of history will not absolve the United States from blame. … Although we are people born of revolution, we are stridently impatient with other people’s revolution. … We have behaved, on occasion, as though we were omnipotent and could enforce a double-standard on the world, under which we regarded ourselves as free to ring the Soviet Union with military bases which we say are “defensive” and “precautionary” while regarding comparable Soviet moves as “offensive” and “provocative.” —Morris Rubin, November 1962

I went rummaging recently in America’s atomic bomb factory, expecting to find an alien world of tight-lipped, hard-shelled rightwing types. I was wrong on all counts. Instead of Dr. Strangelove, I found Mr. Clean. Rightwing? Not at all. They are the pillars of liberalism in many places where they work—articulate and active in Democratic Party politics, environmental protection, urban redevelopment, equal rights for women and minorities, and yes, even the peace movement. —Samuel H. Day Jr., October 1978

If anyone ever undertook a serious study, I suspect it would show that the most common occupational diseases of clerical workers do not stem from typing posture or photocopying fumes; rather, they would turn out to be the blinding headaches and digestive problems caused by years of swallowing anger, repressing normal human responses, becoming not just efficient workers but pleasant, efficient workers, smiling on schedule, speaking on cue. —Erwin Knoll, May 1979

The struggle to prevent nuclear war is, in an altogether unprecedented way, a struggle for spirit, heart, and mind. The intention to use the Bomb—most Americans would use it, in one circumstance or another—evidences a moral paralysis, a militarization of soul, a submission to violence as necessity, a bankruptcy of ethical option that amounts to slavishness. —Philip Berrigan, May 1981

Our government has declared a military victory in Iraq. As a patriot, I will not celebrate. I will mourn the dead—the American GIs, and also the Iraqi dead, of whom there have been many, many more. Those who died in the war did not die for their country. They died for their government. They died for Bush and Cheney and Rumsfeld. And yes, they died for the expansion of the American empire, for the political ambitions of the President. They died to cover up the theft of the nation’s wealth to pay for the machines of death. —Howard Zinn, June 2003

psychonauts

June 7th, 2010

For its most recent game, the Vintage Game Club returned to its Tim Schafer roots with Psychonauts. Which I was curiously ambivalent about: many people speak highly about it, but I hit 3D platformer fatigue fairly suddenly several years ago, and only one game has really managed to break through that.

Still, it’s a genre that I was once very fond of indeed; and I enjoyed noodling around the camp at the beginning. Not so much once I dove into the first level, though: it’s of the linear level school of 3D platformer design, and I’ve really never enjoyed those platformers as much as the more free-roaming ones. (With, of course, that same glorious exception; though, as I’ve claimed before, Super Mario Galaxy is its own unique beast in the taxonomy of platformers.) Moving from A to B was pleasant enough but rarely grabbed me; and the ridiculous numbers of items to collect got really old really fast.

So, fairly soon on, I was only playing it out of duty. But then, a strange thing happened: I got to the Milkman level, and it was wonderful. The psychological issues turned from a more-or-less arbitrary way to suggest design elements of the level into something that grabbed me unexpectedly; and the gameplay turned from a straight linear wander into something with a few more twists. And the same thing happened with the Actress level, and with the Board Gamer level.

And then, somehow, the magic went away just as suddenly as it appeared. I think it happened part way through the Board Gamer level for me: a combination of running into a bug, of getting overly seduced by collecting, and of not figuring out how to deal well with one of the enemies flipped the switch back to tedium for me. Where it stayed through the end of the game, alas.

So: what to make of the game? If I went back, would I find more to like in the earlier levels as well, would I see a magic that I didn’t notice before? Maybe, but I’m not convinced: too much of the game seems to me to be following genre conventions without really making a statement about why the game exists. Coming right on the heels of playing Another World, Psychonauts doesn’t have more than a fraction of the clarity of purpose of that game, of its uncompromising attitude to waste.

To be sure, I don’t want every game to be as spare as Another World—but what I do want is for more games to ask the question of what purpose their design choices serve, and for the answer not to be an uncritical acceptance of genre conventions. (A critical acceptance is great, though: many genre conventions have evolved because they work rather well!) Perhaps Killer 7 is a more interesting model; that game took genre conventions that I’m even less interested in but treated them so roughly as to make it clear that they were only the barest of scaffolding, all the while animating them with a vision the likes of which I’d never seen before. There were glimpses of that here, but never as bright or as sustained.

tdd and javascript

June 5th, 2010

As I mentioned earlier, I’ve been having a lot of fun at work playing around with JavaScript and CSS. But there is one area where I’ve been failing miserably: for the first time in years, I’m writing very few tests while programming.

I’m working on a legacy code base, with all that entails, but that hasn’t stopped me in the past. So why am I not writing as many tests this time? For that matter, is it possible that it’s correct for me to not be writing so many tests?

There is, I think, a good reason for some of this. A lot of what I’m doing is arranging graphical elements so they look good on screen. And tests wouldn’t help with that: they’re great for getting logic right, but with presentation, all they’d do is pin down unimportant details. So if I later decide that a margin should be seven pixels wide instead of five, having a test would be pure overhead. (Incidentally, placing images properly is another thing that I’m surprised how much I enjoy—I really like participating in a process that leads to a much better-looking page, even though the art team is doing most of the hard work.)

But some of my lack of testing stems from unfamiliarity with unit testing in JavaScript. I’d done my due diligence, and decided that JsTestDriver is a pretty good unit testing framework: it lets me kick off unit tests in multiple browsers simultaneously from the command line, so I can make sure my code runs in production environments while not having to leave my IDE.

So I wrote a few JsTestDriver tests as a proof of concept. At which point I ran into my first roadblock: without trying to do anything tricky, the first four tests that I wrote all failed in Internet Explorer! Which was useful information—I learned that querying CSS properties is not likely to give the results I expect in IE—but the functionality in question actually worked fine in IE, I was doing the querying to check results in tests, not as part of the product code.

Since then, I’ve written a few more unit tests, when I didn’t understand why a piece of JavaScript logic wasn’t doing what I expected, and it has saved me time on those occasions. But I haven’t even begun to get into a good TDD rhythm at work.

So I decided to experiment at home to understand how much of this had to do with JavaScript, how much of it had to do with my ignorance, how much of it had to do with the kind of layout-heavy work that I’d been doing, how much had to do with legacy code, how much had to do with Internet Explorer. (Which I’m certainly not worrying about at home!) Specifically, I wrote an animation of moving boxes; there’s enough layout in that code for it to not be too unrepresentative of front-end work, but it’s also not about getting images positioned in the most attractive locations. (In fact, there aren’t any images at all, as will be obvious if you take a look; none of this new HTML5 stuff, either, the animation is all done by manipulating CSS positions and dimensions on a timer.)

The good news: I could, indeed, get into a TDD rhythm. Looking at the code right now, I have 374 lines of product code and 294 lines of test code; that amount of test code looks a little small (or, actually, given what the animation does, that amount of product code looks a little high…), but it’s not a ridiculously low proportion of test code.

More good news: a couple of nice generic abstractions popped out of the code as I was writing it (including one which got better as I added more functionality), and there are a few more abstractions that are specific to the animation that are waiting to be teased out of it. So it’s helped me improve my feel for good JavaScript code. (Though I certainly have a ways to go there…)

Indifferent news: I’m still not sure that all the tests are really getting at the core of what I’m doing. A fair amount of the thought in the programming exercise involved fiddling with CSS classes and creating HTML elements to give the illusion that you have a single box that is stacked up, then moving, then entering the stack again, while behind the scenes there are actually two HTML elements involved. (One positioned in the normal document flow, one positioned absolutely.) And the tests for that part of the code have too little to do with the desired visual effect and too much to do with implementation details. (Though not my all unit tests involving animations were bad: e.g. the unit tests for the movement of the element once I’d lifted it out of the normal document flow were perfectly reasonable.)

And then the bad news: I’m used to unit tests that run in isolation and that I can feel confident are testing something. (Though, being a fallible programmer, they may not always be testing what I intend!) And, it turns out, JsTestDriver fails on both counts. (I don’t actually think that’s JsTestDriver’s fault, I think it has more to do with the way JavaScript implementations work.)

I typically was running my tests in both Safari and Firefox. And, on more than one occasion, a test would just fail repeatedly in one of the browsers, for no apparent reason. The first couple of times this happened, I would curse the lack of cross-browser compatibility, check that the product code behaved as I expected, and reluctantly proceed. But then I noticed that, if I actually killed the browser where the tests were passing and restarted it, then the tests would start working again! So it seems to be the case that it’s rather difficult for JsTestDriver to completely wipe out its state from test run to test run. (I’m not sure if I tested just closing the window where JsTestDriver was running instead of exiting the browser completely; so maybe unit test frameworks where you have to manually reload a page in every browser each run wouldn’t suffer from this problem.)

Worse, there were times where I would make a syntax error and a whole suite of tests would silently stop running in one (or both?) of the browsers. That’s really disturbing: I expect my code to either try to run or give me some indication that it might not be running, but that didn’t always happen. I wasn’t in the habit of having Firebug open in the web browser to see if I get errors there; next time this happens, I’ll do that, but I shouldn’t have to, given that many JavaScript errors did make it out to the command line where I was invoking JsTestDriver. I’ve never had something like this happen to me before: I could chalk it up to dynamic language weirdness, but Ruby is pretty permissive and I’ve never seen anything like that in my Ruby tests.

An interesting experience; I definitely want to spend more time playing around with JavaScript at home. (Anybody have JavaScript code they want me to write?) I’m less sure how I’ll apply this at work; though certainly, when I look for smaller classes to extract, I should make them testable and actually add tests for them. But I’m having enough fun (and being useful enough) working on presentation issues that I’m not going to stress if I don’t spend a lot of time doing that.


James Shore has also blogged recently about his experiences with test-driving JavaScript. And, though he was using a different unit testing framework (QUnit instead of JsTestDriver), he ran into the same problem that I did of tests silently failing to run. (His reaction: “The mind boggles.”)

random links: june 2, 2010

June 2nd, 2010

1000 posts

June 1st, 2010

My WordPress dashboard tells me that this is my thousandth blog post. Which I find hard to believe; going through the archives, however, it really is true. I’ve been blogging for 2084 days, so I’m averaging almost a post every other day; I’m not managing that rate any more, but weeks when I do three posts are still not rare, and a few years ago I was rather more prolific.

Thanks to all of you for reading! Who knows, maybe after a few thousand more posts I’ll have figured this blogging thing out…

javascript and css

May 31st, 2010

I transitioned to a game team at work a couple of months ago. One of the reasons why I chose that particular team was that they were willing to let me do front end work, despite my lack of experience in that realm; this excited me because I figured I’d learn more that way than doing back end work. Also, I’m working on one of our older games; most of our new games have Flash front ends, but this game’s front end is in JavaScript, so working on this game does double-duty in that it helps fill in a notable gap in my programming experience.

So: JavaScript. It’s pretty cool. I’m glad to be working in a scripting language, I’m glad to be working in a dynamic language. I can’t say I’ve developed particularly good JavaScript style yet: in particular, the prototype-based inheritance model opens up a wider range of choices than I’m used to, choices where I don’t see a compelling reason to follow one path or another. I’m hoping that that will gel more; in the mean time, every once in a while I write some code that involves the fact that methods are properties just like any other, letting me do some cool code modification that I wouldn’t be able to do as easily in most other languages that I’m familiar with. (Though I suppose most of the time when I’m doing that it has a sort of Ruby monkeypatching feel.) And, given a desire to do that, a prototype-based system makes a fair amount of sense. I’m also not entirely sure how to react to member variables being public; for now, though, I’m just going with the flow and using that when it makes my life simpler, rather than being scrupulous about adding getters when I don’t need them or using closures to hide member variables entirely.

So, fun stuff; this doesn’t mean that I’m completely in love with the language, however. It has a few flat-out bugs; the worst is that, if you’re in a method and create an anonymous function, then, inside that function, ‘this’ is bound to the function object instead of the object whose method you are evaluating, which is never the behavior you want. (For that matter, having to type ‘this.’ all the time isn’t too thrilling, either.) And, coming from Ruby, the built-in tools for working with collections are surprisingly weak; I’m glad that I have jQuery.each and jQuery.map to help me, but that should be built into the basic language. (It doesn’t help that the callback that jQuery.each wants has its arguments in the wrong order, either. Hmm, maybe I should be looking into Prototype more?)

Of course, front end work doesn’t just mean working with JavaScript: it means working with HTML and CSS. And what I’ve been completely surprised by is how much I’m liking CSS. Previously, CSS had struck me as a basically good but banal idea, without as many tools to help me not have to repeat myself as I’d like. But now I’m really getting into the concrete benefits of the CSS Zen approach, where identical HTML is getting styled in different ways based on the context.

This really hit home when I was reworking the game’s keepsakes/scrapbook interface. Both of those pages want to display collections of items; and, on both of those pages, we make a distinction between featured collections (with a green background) and regular collections (with a blue background), leaving us with four different contexts. What I ended up doing was writing a single function that will display all the items in the collection; but outside of the HTML generated by that function I put a div with a class saying whether the collection was regular or featured, and outside of that div I put another div saying whether I was on the keepsakes page or the scrapbook page.

So then I would write simple CSS rules that specified the parts of the layout that were identical in all four contexts: e.g. pictures had the same size no matter where you were. But I’d write two rules for the backdrop: if it was contained within the featured div, the backdrop should be green, while if it’s within the regular div, it should be blue. And there were some bits of the decoration (e.g. buttons beneath the items) that I didn’t want to show at all on the scrapbook page; I’d still generate the HTML for them, but I’d include appropriate CSS selectors to get it not to be displayed on the scrapbook.

All of this resulted in nice-looking JavaScript generating nice-looking HTML, with CSS rules being easy to figure out, and making it as easy as possible to get a consistent look. Way cool. I even found some nice CSS nested selector tricks to get help bubble images to appear when I hovered over items; unfortunately, when I tried that code on Internet Explorer, it completely failed to work, so I had to redo it using JavaScript.

(In general, I would be happy if I never had to think about Internet Explorer again. Unfortunately, that’s not realistic for me right now. (At least professionally; when I’m playing around with JavaScript at home, I don’t care!) Fortunately, nine out of ten times, IE 7 and 8 are happy to render my layout in the way I expect; and in three out of the four times when it doesn’t, I can find a workaround that doesn’t look too bad or mess up my code too much. But that last time out of 40 can be a real pain…)

I also want to talk about testing, but I’m already over 900 words, it’s getting late, and I’m at a reasonable stopping point. So I’ll come back to that later in the week.

experience points podcast appearance

May 28th, 2010

I had the pleasure of being a guest on the Experience Points podcast recently; so if you want to hear me ramble, have a listen! I certainly enjoyed the conversation (and the subsequent games of Pandemic), though I wish I’d done a better job of explaining the virtues of market segmentation; many thanks to Jorge and Scott for having me on.

mysims agents

May 24th, 2010

MySims Agents is a delightful video game. The presentation is charming; the puzzle solving is lightweight enough to never be frustrating while being engaging enough to keep me happily playing through it; several of the NPCs are amusingly quirky; one of the minigames is surprisingly tricky; the mixture of your main character’s journey plus the extra stories you hear through the phone messages works rather better than I expected; and it’s long enough to feel satisfying without even beginning to overstay its welcome. Liesl and I both happily played through all of it; Miranda’s played through a little more than half, which is quite good considering that she never finishes (or even gets particularly close to finishing) games with plots and linear storylines.

Despite all of that, very few people seem to have played the game: I heard about it through Michael Abbott, but the game’s only other appearance in my feed reader was in a (rather interesting) review by Christopher Williams. I would like to construct some sort of narrative out of this about how juvenile art doesn’t get its due, were it not for the uncomfortable fact that I actually don’t have much to say about the game myself. At first I thought that might be because it’s very good but no BioShock, and not quite a Mass Effect 2, either, but looking through the list of games I’ve recently played, that’s not the only issue going on here: I see games like Yakuza 2 on that list that are much worse than MySims Agents but that gave me something active to whine about.

That’s been happening to me a fair amount recently: the same thing happened with Plants vs. Zombies, for example. (Which is the only game that I can think of that I thought I was done with playing and then picked up again half a week after blogging about it; and my iPad purchase has spawned a third round of playing it!) Plants vs. Zombies was another game that didn’t spawn a lot of discussion on the blogosphere, but at least people seemed to be playing it: I’d see various throwaway comments about it on blogs, or offhand mentions in my Twitter feed.

Whereas I get the feeling that Michael is the only other person I know who has played this game at all. Which is a shame. Give it a try: it’s charming, it’s fun, and it knows when you’ve had your fill.

another world

May 16th, 2010

Another World‘s opening cut scene shows an experiment gone awry, with my character being transported to another world, where I got dropped into a pool of water.

At which point I died.

On my next attempt, I moved out of the water; after a bit of trial and error, I killed the slugs on the next screen, but the lion on the screen after that killed me. Repeatedly, in fact. Eventually, I decided that fighting wasn’t going to work, and moving forward wasn’t going to work; a process of elimination suggested that I should try moving back, which allowed me to get away from the lion using a handy vine.

Another World looks like an action game; it may be more of a puzzle game (in the text adventure tradition) than anything else, however. You have a limited set of options at any given moment; if you choose from them appropriately, you will advance, but doing so may require consciously avoiding the standard gameplay choices at any given moment.

Soon, I got captured, and escaped with a fellow prisoner. My combat options increased when I acquired a gun, as did the range of environmental possibilities; in particular, I soon ended up in a cage with a few branching possibilities. Going up didn’t seem right just yet; releasing the water looked promising, but shut off the possibility of going further down. So I went further down, destroyed a wall that, I assumed, would be relevant later, then backtracked, released the water, and headed up top. The changing checkpoint codes as I died along the way reinforced my belief that this was the right sequence of action.

Another World and Abe’s Oddysee have a lot in common. Both are platformers built up out of distinct screens; both use large sprites to further constrain the range of options; in both, you die a lot, but the puzzles are generally fair and frequently checkpointed.

My reactions to the two games are quite different, however. Abe’s got me actively angry; Another World was quietly wonderful. I think this is largely due to the tone: to me, Another World felt melancholy, while Abe’s had a certain offhand cruelty, a cruelty that extended out of the in-game scenario to the way that the game treated the player.

As I moved on, the game continued to discard tactics that I had mastered, and wove together new possibilities out of the same set of ingredients. I was proud of myself for noticing, in the palace, that one of the guards will raise his hands and hit a switch, lowering a door which enables you to change the outcome of a subsequent battle. But I was unhappy that, after I mastered that subsequent battle, I was apparently completely stuck.

Eventually, I resorted to a walkthrough, which told me that had to let a grenade (or, apparently, four grenades?) go through to blast a hole in the floor. I felt that two new ideas in the same checkpoint was a bit unfair, and several other VGC participants also got stuck there; still, if that’s the most unfair the game gets in terms of puzzle solving, then it’s a very fair game overall.

Jesse Schell defines a puzzle as “a game with a dominant strategy”, with the implication that “puzzles are just games that aren’t fun to replay”. Which Another World takes to its heart to a remarkable extent; I’m so used to games that are filled with repetitive combat for its own sake that it’s very refreshing to see a game that refines or discards mechanics as soon as you’ve proven that you’ve mastered them. This results in a quite short game, but I don’t mind that at all; instead, I wish more game designers had the courage to strip out padding, had the vision to be able to see padding in the first place.

By this point, I was almost done with the game. It threw a completely new mechanic in at the Arena, then had one last firefight; that firefight turned into a capstone experience, where the skills that I had developed earlier (especially in the area where I got stuck, ironically), after a bit of further polish, allowed me to reliably finish the firefight first slowly then quickly. Which led to a final confrontation where, instead of a traditional boss fight, you crawl painfully across the floor, with legs apparently broken. And then you and your companion escape, perhaps to freedom.

One of the arguments we had (well, I had!) on the VGC forums was to what extent the game was minimalist. I eventually decided that I didn’t know what the term “minimalist” meant, so I don’t have an opinion on that subject, but there are some related concepts that the game does touch on.

In terms of its gameplay construction, it is spare with the concepts that it allows, while being systematic with the ways in which it combines those concepts. And the gameplay itself carries the story forward, with very few cut scenes after the game gives you control initially.

Its visual style is rough and sparse, but with a strong aesthetic that still holds up well in today’s high-polygon-count world. It gives me a certain wabi-sabi feel (if I understand that term right, which I probably don’t!), with its transience and roughness.

But the game also fights against that wabi-sabi feel in one important way: while you are lonely in that you are stranded on a strange world, with only one companion whom you can’t talk to and who isn’t with you for much of the game, you’re never actually alone. Instead, the game moves you directly from struggle to struggle, sometimes environmental but usually struggling against actual living enemies.

Looking at that tension through the lens of my favorite analytical categories, some properties that might be relevant are Positive Space, Roughness, The Void, and Simplicity and Inner Calm. The game does well in terms of Roughness and Simplicity. (I’ll have to think more about the Inner Calm half of that last one.) And, on a geometric level design sense, there is quite a bit of Positive Space.

But on a more conceptual level, the Positive Space is missing, and there’s no sense of The Void. You’re constantly forced to interact with the game, and usually with living enemies within the game: it throws one puzzle after another at you, you’re never actively invited to rest, and the spaces between puzzles rarely invite contemplation.

Ueda is frequently cited as a designer who is influenced by Another World. And if my memories serve me well, Ico has somewhat of the same problem: the game world is wonderful, but far too often in it, if you stop to drink in the world, you’ll find yourself getting attacked. It wasn’t until Shadow of the Colossus that Ueda really broke away from this, with a recognition that this combination of exquisitely crafted puzzles together with magnificently desolate environments is best served by leaving huge amounts of space between those puzzles, letting the player disengage from the puzzles and letting the nature of the environments seep into the gameplay.


I haven’t done my usual gathering of links for Another World, but I certainly recommend the discussion of the game at the Vintage Game Club.

random links: may 10, 2010

May 10th, 2010

habitable blog posts

May 4th, 2010

In my recent post on habitable software, I proposed evaluating software through the lenses of functionality, openness, and habitability. Given that one of my schticks is to yank analytical concepts out of one context and try to apply them elsewhere, this suggested a followup question: does this classification only make sense when talking about software, or can I use it elsewhere? And, given that another one of my schticks is relentless navel-gazing, this in turn led to a specialization of that question: what happens if I apply that classification to this blog?

So: functionality. In the context of a blog, I suppose that means: does this blog talk about topics that you’re interested in, and have interesting / useful / provocative contributions to the discussion about those topics? I’ll mostly leave that to others to decide; certainly I wouldn’t blame anybody else for not being at all interested in what I have to say here! But I do try to dig a bit into whatever topic happens to interest me in the moment; if you happen to find my topic du jour interesting, maybe I’ll have something worthwhile to say. I’m sure I can do better in that regard, but I’m also sure I could do worse, under the (very) generous assumption that I’m speaking of a reader who shares my peculiar collection of concerns.

And openness. I try not to hoard my ideas, I’m happy to talk about them with other people and let them build on them or disagree with them. And I try to look at what others have written, too – I read a lot of blogs, I dig for blog posts on topics that I’m focusing on, I include references to them even if I can’t find ways to fit them into the main thrust of my discussion. Again, I’m sure that there’s room for improvement, but I’m not particularly concerned on this front either.

Habitability, however, is another matter entirely. In fact, part of the reason why I’m happily giving myself a pass on the previous two criteria is that I strongly suspect that my blog is about as uninhabitable as they come, at least for readers who don’t happen to be me! This blog is a record of my day to day obsessions: when I find something I’m interested in, I try to use this blog as a way to get a piece of my thoughts on the matter better defined to myself. But I’m not particularly concerned with presenting those thoughts in a fashion that’s going to fit well with anybody else’s thought patterns. Habitability doesn’t mean “reduced to a least common denominator”, and one thing that this blog has going for it in that regard is that it is very much inhabited, but I don’t think that it’s inhabited in a way that manifests core living structures that will resonate more broadly.

One of the directions to approach this from is to come up with a set of constraints, a set of patterns. Looking around, I see some other interesting experiments. Roger Travis has been talking about taking a bardic approach recently; I’m curious about that, but I don’t have a clear vision what it would be like. (If I were still teaching, though, I would be thinking very hard indeed about what he’s been doing.) I’m very impressed by what Duncan Fyfe has produced recently, but his approach wouldn’t work at all for me. Justin Keverne seems to be in the process of rethinking his blog; some of the seeds there really appeal to me.

And then there’s Gödel, Escher, Bach, which I’ve just reread for the first time in more than a decade, and which is fascinating both as a model and as a cautionary tale. As a model: the dialogues are wonderful, and are a form that I’ve loved for ages. As a cautionary tale: while I enjoy the non-dialogue parts of the book, I also suspect that a large part of the reason why they’re there is that Hofstadter can’t bear to not explain what he’s thinking about, so they’re really there for his sake more than the readers’ sake; this is something that I do All The Time. As a model: the pictures in the book are pretty wonderful, too.

(Presentation Zen pointed out rather forcefully the strengths of pictures as well. The blogger computer geek thing to do seems to be to start taking photography seriously; perhaps inspired by my daughter, though, I’d be more interested in drawing, were my “learning non-programming stuff” slot not taken up by Japanese. Still, having a camera in my pocket isn’t the worst thing in the world; and there are zillions of images out there on the web if I only take the time to think about how to use them.)

I suspect that I should take a lesson from both Justin and from Hofstadter and play around with length. I have enough experience with writing posts in the 1000-2000 word length; I should experiment with both much smaller and much larger pieces. (Possibly starting from the same basic material, but presenting it in either a suggestive or a well worked out approach, instead of typical blog pontificating.) And I should cast my net for presentation approaches more broadly: while linear written exposition is pretty deeply embedded into my brain, now more than ever it’s not the only approach worth considering.

I have a lot to think about in terms of presentation and habitability, that’s for sure. Though I should return to the question of functionality: if I’m considering writing something longer form, I do wonder what other people would be interested in reading about from me. Obviously it’s mostly my problem to figure out what I have that’s worth saying, but I am curious what suggestions and advice others have.

After more than five years of writing this (and a couple of years of Twitter usage), it feels quite odd to be thinking about writing something that won’t immediately be available via an RSS feed. Don’t get me wrong, this blog isn’t going anywhere, but I should carve out a quieter space to think and experiment, too.

electronic book formats

April 30th, 2010

I was quite late to the music download party, but my experiences on that front have been good; that, combined with my desire to not run out of wall space in my house, suggests that I should start buying books electronically as well.

My initial hardware device for this will be an iPad, but I’m wondering what my preferred format should be for books that are available from Apple and Amazon but not from elsewhere. Some specific questions I had:

  • My understanding is that both formats involve encryption; is that correct, and, if so, is it possible to remove the encryption? (Googling suggests Amazon’s isn’t too hard to remove.)
  • My understanding is also that Apple uses a somewhat more widespread format, but their proprietary DRM makes their content unportable for now; is that right? (Is there an Apple-sanctioned way to read an iBooks book on a device other than an iPad or an iPhone/iPod Touch at all?)
  • Is there any way to browse Apple’s bookstore through a computer, or can it only be browsed within the iBooks application?
  • In general, are Kindle books or iBooks books more pleasant to read on an iPad, or is it a tossup?
  • Are there any other large stores for non-public-domain electronic books that I should be aware of?
  • Anything else I should be asking that I’m not?

Thanks in advance for any suggestions people provide.

vintage game club reboot, continued

April 27th, 2010

As I mentioned previously, we’ve relaunched the Vintage Game Club under new game selection rules. And I’m very pleased with how it’s gone so far: after about a week of feeling out what games people might be interested in playing, two games emerged with champions, and in both cases we’ve had enough support that the games have been chosen.

So we’ll start playing Another World more or less immediately; we’re still deciding when to start Psychonauts, but it’s next in the queue, and (given Another World‘s short length) we’ll probably start it in a couple of weeks.

If either of those games strikes your interest, please join us! If they don’t, please suggest another game that does strike your interest! I’m looking forward to playing both of them, and I’m very grateful to the members for being willing to work with the new system and to AndrewArmstrong and oozo (and Michael, of course) for stepping up as our first champions!

(Side grumpiness: I would be even more excited about playing Another World if my Virtual Box installation of Windows actually worked acceptably. Fortunately, I have another couple of options for playing that game, but I’m wondering if I should break down and buy a cheap Windows PC for VGC purposes. At some point, I’ll buy a reasonably powerful desktop Mac that I’ll set up for dual booting, but I’m not planning to do that any time soon, especially since I just ordered my new computing device for the year…)

random links: april 25, 2010

April 25th, 2010

christopher alexander’s fort mason bench

April 24th, 2010

One of the surprises I encountered when reading The Nature of Order was that Christopher Alexander designed a bench at Fort Mason. (He talks about the process of its construction in the third volume of Nature of Order.) So when Agile Open California returned to Fort Mason last year, I made a point to duck out between sessions and find it.

At first glance, the bench was rather disappointing: it’s seen better days, the concrete isn’t the most attractive, and there’s an odd sort of pedestal up front.

Left side of benchRight side of benchBack of benchPedestal

This being Christopher Alexander, though, I was willing to believe that there was more than met the eye at first glance, so I spent a bit of time there (and returned a second day), and ended up rather fond of it.

Point one: levels of scale. The concrete is not my favorite material, but it’s not all that there is to the bench: there are tiles on the sides, on the octagon, and in strategic locations on the front on the bench. And the tiles turn out to be rather lovely; I was particularly fond of the fox tile in the center of the front of the bench.

Front of benchFox tile

With that in mind, the concrete ends up being a rather fitting backdrop for the tiles to find themselves in. (A bench that was completely worked out at the level of the detail of the tiles would be a different work indeed!) Also, while I don’t know what constraints in terms of time and money Alexander had to work with, in general you have to make tradeoffs as to where you spend your efforts; rather than treating everything uniformly, he made sure that the tiles were special, while leaving their surroundings perfectly functional but requiring much less work.

Point two: this isn’t a work of art to be admired, it’s a bench to be used. The proportions of the bench seemed a little odd when I was looking at it, but it was really quite comfortable to sit on. And flexible, too: you can sit on the first row, you can sit on the second row, a single person wouldn’t feel overwhelmed by it but I imagine you could get as many as 20 people sitting around there if you really wanted to. (To be honest, I’m not sure why you’d want to, but still.)

And then there’s the odd octagonal pedestal at front. When I first saw it, I was nonplussed: I was willing to believe that the area in front of the bench would have felt a bit odd without something there, but I wasn’t completely convinced by the pedestal as a solution to the problem. When I came back the second day (which is when all of these pictures were taken), however, a man was there fishing, and the pedestal was in just the right place and at just the right height for him to keep his gear. So, in fact, the pedestal turned out to work very well in the living context of people actually using this area, standing closer to the water. (The trash can, in contrast, just looked ugly there.)

Pedestal in use

Point three: the setting. As Alexander repeatedly points out, you can’t consider a construction in isolation, you have to consider the construction in context. And the context for this bench is rather remarkable: you have rather steep hills covered with trees behind you and to your right, you have the Fort Mason buildings to your left, and in front of you you have a gorgeous view of the San Francisco Bay, with Alcatraz and Angel Island in the distance.

Hill behind benchBuilding to leftFront left viewFront center view (Angel Island and Alcatraz)Front right view

So it’s a funny sized area, far too small to place an actual building, but exactly the sort of secluded nook where people might want to hide out, relax, chat, and drink in the scenery. And a traditional park bench wouldn’t work nearly as well in the space: the space is large enough that a traditional bench would be so small as to feel at sea, and a traditional bench would also direct your view exclusively across the bay (which, while the most scenic view, is far from the only view of interest). And the size of the hills behind and to the right of the bench demand a certain response; the substantial nature of the bench and its cinderblock construction make it just the sort of object that doesn’t get overwhelmed by that context.

When all is said and done, I ended up quite fond of the bench. I just wish I’d had more time to spend there, instead of having to steal time between sessions. Agile Open California will be back at Fort Mason this year; maybe I’ll run a session at the bench instead of in the regular meeting rooms, weather permitting?