[ Content | Sidebar ]

communal discussion of video games

January 3rd, 2009

One meme that’s been floating around in my twitter feed recently (and elsewhere, e.g. it got mentioned in the holiday Confab): there are a lot of us who like being part of a conversation about video games, who like talking with others about whatever game we’re just playing or just finished. But we don’t manage to do this nearly as often as we like, and to the extent that we do manage this, it drives us to unhealthy behavior. So: what can we do about this? Heck, I’ll be selfish: what can I do to improve the quality of my life in this regard?

I’ve mentioned before that I find the fact that many game web sites are focused on new or, still worse, unreleased games to be actively harmful. And after writing that post, I’ve altered my behavior accordingly: I visit mainstream game websites much less than I did before (and, to the extent that I visit them, I skim rather than read), I spend much less time thinking about unreleased games, and I try to entirely avoid blogging/twittering about unreleased games. The effects have been all to the good: I feel less hype-driven, I’ve freed up a noticeable amount of time, and I’ve found much more satisfying ways to use that time. (Reading more thoughtful video game blogs, playing games instead of reading about them, or doing stuff that’s completely unrelated to video games!) So I now consider the issue of excess discussion of unreleased games to be a solved problem: such discussion is clearly unhealthy, nobody’s forcing me to pay attention to it, and once I open my eyes a bit, enough of the world agrees with me to keep me quite busy reading the interesting things they have to say. It wouldn’t surprise me if this obsession with the future will wane even on mainstream sites as the medium matures: coverage of other art forms isn’t, as far as I can tell, nearly as obsessed with works that don’t actually exist yet.

Discussion of newly released games is a harder problem, though. Part of what’s in play here is the urge to follow shiny new objects; I don’t consider that particularly healthy, either, and while I do have that tendency, I have a question I can ask myself that helps me avoid its excesses. But that’s not all that’s going on: we all want to be part of a community, part of a conversation. And one difference that video games have from books: the multiplayer aspect means that we all want to play together, too! And, unfortunately, by far the easiest way to synchronize on that is to all play the newest games.

Which I do at times, though less frequently than I once did. But it has real negative consequences: being caught up in the hype means we don’t chew our food, we don’t maintain a critical distance.

So: what do do about it? Part of the solution is, I think, to come up with other mechanisms for synchronizing gameplay, mechanisms that allow us to play older games and have a bit more wiggle room than release dates allow. On the solo game side, that’s how the Vintage Game Club came to be. On the multiplayer side, I’ve enjoyed the VGHVI play sessions, though they have yet to catch on in a big way. (Multiple dying Xboxes haven’t helped; timezone and platform differences also contributed. I didn’t realize that anybody owned Rock Band 2 on the PS3!)

But I’m coming to realize that, as much as I like synchronized playthrough and discussions, it’s missing something important. Compare this to other media: I never have the feeling that I can’t talk to other people about the books or movies or music that I’m interested in. And, while the multiplayer aspect of games isn’t particularly relevant to those media (with the potential exception of music), the “synchronized playthrough” aspect is; yet, while I’m aware that book clubs exist, I’ve never joined one, and have no particular desire to do so. (Though, to be fair, I very much enjoyed reading math books together with my fellow grad students.)

Basically, while I get excited whenever I find that somebody else cares about a book or author that I also care about, I don’t feel any particular need for us to be reading the same book at the same time. In fact, it can be almost more fun to come across a discussion written years ago about one of my favorite books! And there’s certainly no end of discussion of my favorite games out there, even discussion of those games by my favorite game bloggers; I just need to find it, and find it at the right time. (When I’m playing the game in question, when I’ve just finished the game in question and am about to blog on the topic.)

My first experiment with this was in my post on No More Heroes. I asked on twitter for recommendations of interesting reading on the game; Matthew Gallant was kind enough to get me started, and clicking through links led me to a list of references that Dan Bruno had gathered.

And reading those links was tons of fun! I’m tentatively planning to do this from now on in my posts of final thoughts of games: I enjoyed the reading, and some other people seem to have found the collection of links that I came up with to be a good idea. (And, as I said above, I sure was glad that Dan had done that before I thought of it!)

The nice thing about this solution is that I can implement it myself. Don’t get me wrong, I appreciate it when other people point me at interesting discussions, but I should be able to dig up some posts myself in a pinch. In particular, searching within Google Reader should help a lot, especially with the aid of judicious tagging of feeds.

Having said that, though, I’ll encourage other people to do the same: if you’re writing about a game, consider sticking a list of links in there somewhere, even if those links don’t contain thoughts that you’re responding to directly. If somebody was interested in doing this in a more centralized matter, whether via a simple blog aggregator (Planet Brainysphere?), a wiki, a voting mechanism, or just a comprehensive hand-edited website, I’d be curious about that, too. But I’m not sure that’s necessary, or even particularly useful: a bunch of uncoordinated individual contributions should work just fine.

I am optimistic. The last year was a great one for gaming blogs; I fully expect next year to be much better.

themes

January 2nd, 2009

Some experiences from my recent reading:

  • My recent Christopher Alexander reading made me wonder: what are the centers in this blog? Am I nurturing them properly?
  • Seth Godin’s Tribes got me thinking: I see other bloggers out there leading tribes, and I quite enjoy being part of one of them. To what extent, however, do I want to try to actually lead one?
  • The theme of Goldratt’s The Choice is that “any real life situation, no matter how complex it initially looks, is actually, once understood, embarrassingly simple.” (p. 9) Is he right? How should I apply that to my life?

All somewhat different points, but all suggesting that I should consider paying a bit more attention to unity than I have in the past. In fact, sometimes I marvel at the fact that anybody reads this blog at all: I think most people come here because they’ve encountered me in some sort of topic-specific forum, but then they’re immediately confronted by a lot of other posts on completely different topics.

Let’s start with the first point: just what are the centers of this blog? There are a bunch of categories over there on the right side; I don’t think they give a particularly accurate idea of what the blog is about, though. Off the top of my head, I’m probably focusing on three areas right now: video games, agile (or lean), and a category which I’ll tentatively label “personal improvement” (of which this post is an example). In the past, there were some number of non-agile-specific programming posts on this blog, but I don’t think that’s been a big focus of this blog for the last year or so.

At least that’s what I think off the top of my head – does it match reality? Looking at my front page as I write this, my previous 20 posts contain: 11 on games, 3 on agile, 1 on improvement, 3 other/miscellaneous, and 2 from AYE that could either go in agile or improvement. So: right now, I’m blogging a lot about video games, no big surprise, but some on those other areas as well. And going through a few more pages of my history gives a fairly similar picture.

Looking at the categories I’m currently using, there are several areas there that don’t fall into any of those three buckets; none of them cry out to be included as a possible fourth bucket, however, with the possible exception of computers/programming. One other thing I notice when looking at the list of categories: I don’t have a category for personal improvement. I should probably fix that, rather than labeling those posts as “General”. (Or maybe get rid of categories entirely: do they serve any useful purpose?)

(Another random observation: I get the feeling, though it’s not particularly backed up by evidence, that many of my readers actually find my personal improvement posts the most interesting, or at least the ones that are most likely to lead to comments. Not sure what to make of that.)

In some sense, actually, I’m tempted to say that this blog has two themes instead of three. There’s a straightforward enough chain computers/programming/agile/lean; to me, though, agile and lean are about figuring how to work better as much as about a particular set of approaches, and so I’m comfortable in sticking “personal improvement” at the end of that chain. (See e.g. applications of lean to buying books or to my driving habits.) So perhaps, in some sense, that chain is a single theme, though the two ends are quite distant from each other.

I would be hard-pressed, however, to extend that chain to include video games: it’s not a coincidence that I like both computers and video games, but I don’t think the computer posts on this blog are in any significant way like the video game posts on this blog. Hmm, maybe I should get a job at some point programming video games? Any interesting Bay Area game companies that are doing agile? (Note to coworkers: no, this is NOT a sign that I’m about to quit my current job, don’t worry!)

There is another theme that includes both part of the above chain and video games, however, though it’s a theme that doesn’t come out particularly strongly in the blog: it includes the well-crafted code aspects of agile as well as video games, music, food, (fiction) books. It’s something about beauty, or craft, or art: I’m not sure how to name the concept that’s lurking behind it.

And that concept, in turn, does link to the personal improvement idea at the end of the earlier chain: both parts are about having a rich, satisfying life. Who knows, maybe that’s the theme of this blog, to the extend that there is one? But it’s an extremely personal theme: I wouldn’t expect anybody else who is looking for a way to lead a satisfying life to find my blog particularly useful toward that end. If a few posts happen to give others ideas, that’s great, but I’m sure most won’t. Still, it does give me hope that there’s some kind of underlying coherence waiting to be brought out here. And it does fit in well with the one way in which this blog has been unquestionably effective, in helping me think through whatever matters are on top of my mind, and to do so while bringing together different areas that interest me. (I can at least be confident this blog is the place to go if you want to read posts mixing Shadow of the Colossus with Christopher Alexander!)

Hmm, we seem to have wandered quite far away from the topic of Alexandrian centers in the blog, haven’t we? At first, to be honest, I wasn’t sure that that concept was at all applicable here: one would never raise the question of what the centers are in one’s diary, and this blog has a similar function to a diary for me. (Which raises another possibility: should I come up with another forum for more focused writing?) Still, I’m willing to consider this blog as a living structure, and as such there’s something to be said for thinking about what structures are present within it, whether latent or on the surface.

Not too much more that I want to say about that right now, though I really should spend more time thinking about the smaller centers, not just the larger ones. To move on to the next experience: do I want to lead a tribe? I think that now the answer is clear: I’m happy enough to lead micro-tribes in some contexts, but this blog is far too personally idiosyncratic to serve well in such a vein, unless I somehow manage to come up with a grand synthesis that puts this all together into a compelling package. And I am not holding my breath waiting for that to happen.

So: on to the third point. Should I take Goldratt seriously, and try to find the sincerity inherent in my situation? But what situation? Something about this blog? My life in general? His techniques work best when you have a problem to solve, a situation you’re unhappy with; I suppose the next step if I want to go that route is to identify such a situation, and see if I can construct a current reality tree for it that has some useful suggestions.

Which isn’t a bad idea, and probably would have been a useful way for me to spend a day or two of my holiday break. Not something that I’m up for this evening, though, and this blog post is long enough as is.

achievement unlocked

January 1st, 2009

I learned about the game Achievement Unlocked from Ludus Novus, and was surprised by how much I enjoyed it. It’s a game that looks like a single-screen platformer, but is in fact all about unlocking achievements: rather than traditional platformer goals, your only goal is to unlock the 100 achievements in the game. And these are not grand achievements: you earn three or so just for starting the game, followed quickly by several more for doing stuff like jump for the first time.

I’d expected it to be funny in a sort of postmodern and superior way, but while there’s certainly some of the former, there’s none of the latter: the game is taking the concept of achievements to a ridiculous extreme, but I never got the feeling that the author was particularly looking down at us for enjoying earning them. The game certainly acknowledges how ridiculous the quest for achievements can be, but acknowledges it in a “the things we like are a bit silly if we look at it from a certain angle” way rather than a “you poor sap who is so foolish as to strive for achievements” way. (I particularly liked the achievements you got for earning 10, 20, 30, etc. other achievements.)

Beyond the humor, though, it’s surprising how much plain fun the game is, how it managed to keep me entertained through the end of the game while making 100 achievements less of a slog than a single achievement in a lot of other games. My gameplay went through three phases: at first, I was just exploring the screen, going to all the areas, seeing what popped up, and seeing if I could think of more ways to get achievements. (What if I died by doing X?) Then I went through the list of achievement names on the right, and tried to figure out what I needed to do to unlock each of the ones that remained. There were a few that I couldn’t figure out, so I went to the hint list for those. And all of that kept me moving to the end, kept me feeling challenged and entertained without getting frustrated.

But the reason why I’m blogging about this, instead of just twittering a link, is that this was fun for two unexpected reasons. One is that it’s fun in a meta-game way: rather than being fun because you’re accomplishing something directly, it’s fun because you’re figuring out the rules of the game. (And I want to emphasize: when I say fun, I don’t mean witty or clever, I mean that I enjoyed the puzzle of trying to figure that out.)

And the other is that it’s unexpectedly fun in a traditional gameplay sense, in a way that other games could learn from more. The game world consists of a rather mundane platformerish level; if it were a traditional platformer, I would have had a single goal, to collect some objects or make it to a spot or jump on some people’s heads or something. As it is, you have to do some of that, but there are a lot of other goals that are quite a bit more arbitrary than that, or at least quite a bit less common when viewed through a traditional platformer lens.

But, it turns out, those other goals are still fun: I wouldn’t have expected a game to cram 100 goals into a single screenful and have me still enjoy them, but I did. So, to me, the lesson is: rather than spend their time crafting many levels with one well-thought-out goal/path through them, game designers should spend more time thinking about how to reuse the same levels in different ways, by providing a well-thought-out set of different tasks to carry out in that level.

This isn’t a new idea, of course: for example, one of my favorite parts of Perfect Dark was its collections of set-piece challenges to work through in the multiplayer levels. And many Xbox achievements do this to some extent, though far too often in the vein of “do this extremely difficult thing” instead of “do this thing that you wouldn’t normally try but that is fun to attempt”. Still, I think it’s an idea that could be mined a lot more than it has been so far. If nothing else, game designers should think twice before adding yet another fetch quest: surely there’s some other sort of task that they can set within their game world that hasn’t been trodden so deeply into the ground?

working standing up

December 31st, 2008

I think I first got interested in the idea of working while standing up when I was reading the book Brain Rules. That book, in fact, doesn’t just suggest that you work standing up: it suggests that you work while walking, by installing a treadmill at your desk! I’m not about to put a treadmill in my office at work, but after reading that book, I started noticing blog posts extolling the virtues of working standing up. The first was from 37 Signals, with a followup suggesting the practice had spread; and then a trio from Evolving Excellence got me thinking that it really might not be a crackpot idea.

I did a bit more googling; 43 Folders also chimes in on the matter, as does the Canadian analogue of OSHA. The latter was actually rather sobering: as somebody who basically spends all day at a computer, I sometimes forget that there are millions of jobs out there where people regularly work standing up, not always with the best consequences. Still, I found enough positive reports that I thought I’d give it a try.

So I spent the last week before break working standing up. My desk’s height is somewhat adjustable, but not adjustable enough; fortunately, there were enough office supplies (reams of paper, mostly) lying around to let me build stands for my monitor, keyboard, mouse, and notes, so an hour later I had a workable setup.

It’s hard to say yet how it’s going: as expected, it was uncomfortable (though bearable), and I haven’t been doing it long enough to get past that stage. Though even the discomfort had a surprising effect: it seems to have cut down on my procrastination, because one of my typical ways of procrastinating is to do something at my computer other than what’s most important (e.g. I check my e-mail too often); that is singularly ineffective in removing what is now my top annoyance, however, namely that my feet hurt! And that made procrastinating seem silly, so I spent less time doing it and more time getting more work done. I don’t expect that benefit to last, though.

Some people report that working standing up gives them more energy; that would be a welcome result (I frequently have a lull in energy in the early afternoon), but I haven’t noticed it yet. Other people report that it helps their back; my back does get uncomfortable after spending too much time typing, and I think that actually did improve over the course of the week. If that continues to be case, it’s certainly to the good, as long as I’m not, say, trading back pain for knee pain.

Along those lines, another effect of the experiment is that it’s reminded me how out-of-touch with my body I am. I’ve mostly given up on the idea of good posture while sitting, but I figured that, if I’m going to stand, I should put in a bit of effort figuring out what my posture should be like, so I can get good habits ingrained. The problem is, I don’t really know what good standing posture feels like! I was expecting there to be some positions that just felt right, if I would listen to my body; I haven’t yet reached that level yet, though. (I did some web searching for posture tips, but I didn’t find any that impressed me; any recommendations?) So I’m still working on my posture; for what it’s worth, though, I did end up raising my monitor on two separate occasions after my initial attempt (by a couple of inches or so each time, the height of a ream of paper) as I became less slumped and realized that I was looking down at my monitor; it’s certainly good that I’m managing to stand taller.

Some sources also recommend that you have a low step available, so you can rest one of your legs. I found one that’s about the 20 centimeters high that the CCOHS recomends, and using it for any length of time really hurt. So I’m not planning to make a habit of that, though it’s available for occasional use. I am at least shifting my body around some: in particular, I take a break from typing every 10 minutes, and now I’m sitting during that time, to give my muscles and blood vessels a break.

This is still very much a work in progress; I’m planning to keep it up through at least the end of January before making a firm decision one way or another. (I’ll report back with an update then.) If my back really feels better (and my legs/feet stop hurting), I’ll probably keep it up; ditto if I find that standing gives me more energy. If it remains uncomfortable, though, I’ll probably stop. I’m still curious about the “working at a treadmill” idea, but that sounds like a big enough experiment that I’m not planning to do it now; maybe if I ever get a job that has me working at home, I’ll give that idea a try.

animal crossing: city folk

December 25th, 2008

Animal Crossing: City Folk is a marvelous game; I’m very glad that the series is out on the Wii, I recommend it to anybody who hasn’t played a previous iteration.

It is, however, in no significant sense a new game, so I don’t see any reason to spend further time talking about it here.

gamer’s confab

December 21st, 2008

I had the pleasure of being one of the guests of the special holiday edition of the Gamer’s Confab. I haven’t listened to it yet (and wow, that’s a lot of podcast, it won’t come close to fitting into my commute during this abbreviated work week), but I thoroughly enjoyed participating in the recording of my segment, and I have no doubt that the other segments are fabulous as well.

letter order in words

December 20th, 2008

From Pragmatic Thinking & Learning, p. 102:

Cna yuo raed tihs?

Aoccdrnig to rscheearch, it dseno’t mtaetr in waht oerdr the ltteres in a wrod are; the olny iproamtnt tihng is taht the frsit and lsat ltteer be in the rghit pclae. The rset can be a taotl mses, and you can sitll raed it whotuit a pboerlm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef but the wrod as a whloe. Azanmig…

Azanmig indeed: I was pretty shocked to find that I could read that paragraph pretty much as fast as I could have if it had been spelled correctly. especially once I relaxed a bit. (Typing it in was another matter…)

Another datum for the “kids new to reading and writing are doing a completely different thing than I am” point of view. (Or is it? It’s related somehow, but I’ll have to think about exactly what it might imply.) I wonder if we should put something like this in the PACT parent ed new parent training, to give people a bit more sympathy for what K-1 kids are going through?

I think I’ve said this here before, but I’ll repeat it: it wasn’t until I started learning Japanese that I really had sympathy for what kids were going through. (My experiences with Greek and Devanagari scripts are far enough in the past to not have a current impact.) I’ve been studying it for a while now, and I still can’t even read Hiragana script with anything like the fluency that I can read Roman: I’m literally unable to misread Roman script in ways that I’m quite capable of misreading Hiragana and that first-graders are quite capable of misreading Roman. But that’s just script-to-sound translation; the above points out that that’s not what’s really going on when fluent readers read…

oddworld: abe’s oddysee

December 5th, 2008

As our third game, the Vintage Game Club chose Oddworld: Abe’s Oddysee. Which has the distinction of being the most actively annoying game that I’ve played in several years.

For one thing, it’s a really difficult game: it’s not unusual to find areas that you’ll have to play through dozens of times before succeeding, and it wouldn’t surprise me if there was an area in there somewhere that I played through a hundred times. Difficulty alone I can take: N+ and Orbient are games that I played this year that had levels that were plenty tough. (Mind you, I didn’t finish either of those games!) But both of them felt different from Abe somehow, and I’m trying to tease out why.

I think having clearly delineated levels is part of the reason: in Abe’s, in contrast, you’re never quite sure whether or not you’ve made it to the next checkpoint until you die and see where it respawns you. Also, both N+ and Orbient had a simple set of mechanisms to play with; Abe’s didn’t have all that large a set, but they were somewhat inconsistently implemented. For example, enemies frequently follow you from one screen to the next, but sometimes they don’t; sometimes throwing a bomb to the next screen will kill the enemy in that screen, but a lot of times you’ll walk to the next screen and see an enemy standing right where the bomb must have gone off. Even in situations like that, the game has its own internal logic, but it’s one that goes out of its way to prevent certain possible solutions to puzzles.

What annoyed me more than that, though, was the feeling that, at some basic level, the game designers didn’t respect my time: the game play was all about them, not about me. There wasn’t anything as extreme as the tower in Final Fantasy VI with no save spots anywhere in it and with a boss at the top with an insta-kill attack (which caused me to immediately give up on that game), but there were plenty of bits where I thought the designers could have been a bit gentler, a bit more humane without giving up anything important. The ending in particular really drove home this attitude: if you haven’t invested the ridiculous effort required to save more than half the Mudokons, you get treated to a cinema where people look at your character being threatened with execution, say “nah, he didn’t try hard enough”, and let your character die. And I, for one, felt that I’d tried quite hard enough, thank you very much, and had in fact gone out of my way to try to appreciate the game simply by virtue of the fact that I’d slogged through the whole damn thing! (I was also amazed by the notion that the game designers apparently thought that the game would be the start of a quintology; and rather put off by the combination of the title with, as far as I noticed, a complete lack of further Homeric references. But maybe that’s just me being snotty.)

It’s not the game designers’ fault, but the hype in our pre-game discussion also ended up backfiring on me: people talked about how great the presentation is, how funny it is, and it’s just not. Don’t get me wrong, the presentation is good, but you spend a lot more time going through rooms made out of the same nice but not stunning design elements than you do watching the cut scenes. And I appreciate the idea of including comic poetry, but the actual poetry left something to be desired.

Now that I’ve gotten that out of the way, however, the game does have some things going for it; I think people were looking back at their memories of game through rose-colored glasses, but there really are some good bits here. In particular, what a game like this boils down to is the quality of the sections between checkpoints: as annoying as many of those were, there were also many that were pleasant enough, and some sequences (frequently annoying ones!) were actually rather well-constructed set pieces.

Above, I complained that you didn’t know what the distance is between checkpoints. This is true; but you get a decent feel for that fairly quickly, and the frequency of dying means that you are never in doubt for very long whether or not you’ve reached the next checkpoint. And the game designers were actually pretty decent about not making you replay too much stuff before you got back to the last place you died: usually, once you figured out how to make it past a given obstacle, you could make it past that obstacle in the future fairly reliably and fairly quickly. (Though there were certainly some areas where I had to spend more time than I’d like waiting for enemies to be in the right location before I could do my next action.)

Also, given the small number of moves you could do, the small number of enemy types, and the small number of objects, they did a quite good job of figuring out different ways to combine those elements, and doing so in such a way that you could generally figure out the new technique that an area demanded. I managed to make it through the game without going to gamefaqs a single time; there were some bits where that was luck, but there were a lot of sections where I was stumped, thought about what I had to play with, and managed to figure out a way of combining the elements at had that I hadn’t thought of before. (A pleasant change from the VGC’s first game.)

Take, for example, the very last section in the game. On the one hand, it’s full of fiddly actions: you have to disable bombs at just the right time, you have to make just the right jumps. But, by then, you’ve done that dozens of times before, so that’s not really a significant challenge. What is a challenge is an area where two guillotines are coming down, with the right one coming down before the left one: it’s easy to move right-to-left, but then you have to come back through it left-to-right. And that seems like it should be flat-out impossible.

I’m not sure how many times I tried to go through that: 20 or 30, maybe? But it wasn’t nearly as frustrating as it could have been, for two reasons: for one thing, it was pretty clear that it was the next thing I had to figure out, so I wasn’t second guessing myself, and for another thing, once I got the timing down on the approach to that section (in particular on disabling a bomb), I could get to guillotines within 10 or 15 seconds of respawning after a death. So I was spending a fair portion of my time trying to figure out that puzzle, as opposed to traveling around or dying for other reasons.

And once I figured out that puzzle, I was impressed: it turns out that, if you jump at what seems like an impossibly early time, you can clear the right guillotine, and in fact clear it with ease. Simple when you see it done, almost impossible to believe until you’ve done that. I died a few more times in later sections in that area, but there weren’t any more really hard puzzles there: sure, it took me three times to get through the final screen in that section, but dying three times in this game is barely worth noting, and once I knew what to do, I could get from the respawn point to that final screen in a minute or so.

So: I don’t begrudge the choice of game, and on the whole I’m even glad that I stuck it out through the end. (Though I certainly don’t blame other people for giving up a third of the way through: I completely understand why they made that choice, and came very close to making it myself on more than one occasion.) I learned a few things from the game, and had several moments of real gaming pleasure during the time I spent with it.

But I also never want to see the game again. And I hope that our next choice of game will be something more forgiving, something less self-absorbed.

what game should I play next?

December 5th, 2008

At any given time, I’m normally in the middle of one game that I don’t let Miranda watch; but that slot in my schedule has been open ever since I finished No More Heroes. I was planning to finally get around to playing BioShock, but recent events have rendered my 360 unavailable.

Any suggestions? My PS2 and a Wii are both useable; I’d been planning for some time to get around to Persona 3, but now Persona 4 is about to be released, and my twitter feed was all abuzz about Yakuza 2 not that long ago. And doubtless there are other good ideas that I’m not thinking of. Or maybe I should take a hiatus, and do something else with my time?

art style: orbient

December 5th, 2008

Art Style: Orbient is the first new game (i.e. not a repackaging of one previously published) that I’ve purchased via download. (For the princely sum of six dollars.) And it’s a delightful little game, and one that makes me happy about the increasing variety of mechanisms by which games can be disseminated.

It’s a very simple game: the control scheme uses just two buttons (and in particular no direct directional control: no joystick, no D-pad). You play as an asteroid (by which I mean a circle) meandering through space; one of the buttons increases gravity, drawing you closer to nearby bodies (other circles), while the other turns on antigravity, pushing you away. If you get close to a larger body, you can get drawn into orbit; that, combined with gravity and antigravity, is your movement mechanism. You can absorb other bodies of your size or smaller; eventually, one of the bodies starts to glow, and you clear the level by drawing it into orbit.

Which is a pleasant concept; I’ve never seen a control scheme like that, and I was curious to explore it. And it’s presented in a simple but charming way; in particular, you can also attract smaller bodies (and eventually a moon) into orbit around you, which the game reacts to by adding more layers of music. There are, I believe 50 levels; I went through just over 30 of them, and more than felt I got my money’s worth.

It’s not a revolution in gaming or anything. But it’s got a nice idea, a pleasant presentation, a good amount of content, all at an impulse purchase price. And I think it’s great that the industry is finding ways to potentially make it economical to develop and sell games like this: I like the big budget extravaganzas as much as the next person, but there should be room for a lot more in the medium than just that. My only quibble is that I wish that it had been a DS game; no downloadable content on that platform yet (at least in the U.S.), but Nintendo is in the process of rectifying that flaw.

console death knell

December 3rd, 2008

I just got a copy of Call of Duty 4 in preparation for tomorrow’s VGHVI play session. I figured I should get my fingers used to the game first, so I went to play it tonight; I launched the game, futzed around with the menus, started a game, and it froze. (Soft, not hard, the guide button still worked.) Hmm.

I then rebooted the console, and played; this time, I could start a game, yay. I made it through the tutorial, then started the first mission, and it froze after (or in) the opening cinematic. (A hard freeze, this time.) I’ve now repeated that four times, without a single success.

So: bad disc or bad console? I’m leaning towards the latter: I played a bit of Burnout Paradise a couple of weeks ago (also for the first time, also prompted by VGHVI); the opening cinema was glitchy, and I couldn’t play the game from a hard drive install. (I can’t play CoD4 from a hard drive install, either.) I didn’t see any problems with Burnout Paradise after the opening cinema, and I haven’t had problems with other games, but that combined with today’s problems makes me think that my optical drive is going south.

Fortunately, I’m still within the warranty, even for non-red-rings problems. But this is really the wrong time of year for me to be console-less: there are a bunch of games I’d like to play, most of them are on the 360, and I’ll have time off from work soon. And the fact that shippers will soon be overloaded delivering Christmas presents makes me worried that the turnaround time will be longer than normal, too.

So: crap! Though I’ll muddle through somehow, even if I am 360-less: I can play more Spore, and World of Goo, Aquaria, Persona 3, Yakuza 2, and A Mind Forever Voyaging are all very much on my radar. Heck, maybe I’ll just spend the holiday holed up with Chrono Trigger DS. Or (gasp) read books and/or program! Still, not the way I’d like things to be.

Though I can’t say I’m surprised: I bought my 360 knowing that their quality was much worse than that of any other piece of consumer electronics that I’ve ever heard of. And I don’t regret that, I’ve had good times with it. But I very much hope that Microsoft has few enough interesting exclusives in the next generation that I’ll be able to skip their next console.

I’ll call 1-800-4MY-XBOX tomorrow and kick off the process, I guess: if I act quickly enough, I hope I’ll have it back in time for my holiday break. Whee.

no more heroes

December 1st, 2008

I wasn’t sure what to expect when I started playing No More Heroes. I was astonished by Suda 51’s previous game, Killer 7, but I didn’t really expect more of the same: for one thing, my brain isn’t imaginative enough to contemplate what more of Killer 7 would be like, and also the reviews had made it clear that it was a fairly different beast from its predecessor.

And reading more about the game didn’t help. From a mainstream source I get the impression that it’s a brawler mixed with a bad GTA clone; I was fairly sure that the review was missing something important, but just what? Moving on to territory where I feel more comfortable these days, I’m happy to learn that, as a devoted gamer, I’ll enjoy it, but how exactly? All comers agree that it’s over-the-top violent, in a way that’s intended to be funny; I’m not really sure how I feel about that these days.

Eventually, I got around to playing the game. And, at the beginning, I still wasn’t sure what to think. The brawling gameplay was pleasant enough, I guess, but a bit repetitive. I quite liked the floating icons made out of 3-D pixels; the lack of antialiasing in the overworld made my eyes hurt, though.

So I was rather surprised to find myself quite enjoying myself at the end of my next play session in the game; I was even more surprised to think about it a bit and realize that my dominant emotion was simple delight, that the adjective that I would use to describe the game at that point was “charming”. The aforementioned 3-D pixel icons; the lawnmowing task to earn money; the cat in your apartment (and its fondness for pounce toys, belly rubs, and ceiling fans); Travis’s accent (just where is that accent from, anyways?); the dojo master (hmm, maybe “charming” isn’t quite the mot juste there); Blueberry Cheese Brownies; Sylvia (the gameplay mechanic for the calls, her accent, her predictions of your impending doom); the rank up screens (the rank up music, ah the rank up music!); the Easter Island heads. In fact, even the over-the-top violence turned out to register on the charming scale: something about one of the missions where you had to kill 100 people, each of whom saw fit to complain about their spleen rather than, say, the fountain of blood coming out of their neck where their head used to be attached, just made me smile.

And I was even more surprised to find myself rather addicted to the gameplay by the end of my next session, and (as I dug into that feeling a bit more) to realize that I felt it was one of the best paced games I’d played in ages. I’ve played game after game that takes a game mechanic and runs it into the ground: I’ll be happy if I never see a JRPG overworld again, and even very good games can be prone to excessively long levels.

Not so with No More Heroes. The gameplay goes in regular cycles: fighting a sequence of enemies to reach the boss; fighting a boss; exploring what new there is to do in town; doing a non-combat job; doing the newly opened combat jobs; repeating a previous job or two if you don’t have enough money. (Further punctuated by cut scenes involving Sylvia and/or the boss.) That sounds like it might be repetitive, especially done nine and a half times over, but it’s not: each individual part is reasonably pleasant (and frequently surprisingly charming, see above), and (more important) each part only lasts 5-15 minutes, meaning that you have a change of pace before it starts feeling like a grind.

And there were enough variations on that structure as the game progressed to keep it fresh. In your first couple of iterations, you’re just getting to know the game and the city, seeing the new shops that open up. While doing that, I’d happened to run across the Lovikov balls, but didn’t know what they were for; but then you learn, and in fact learn that they affect game play, so I spent a bit more time on my next city break looking for them. And on the city break after that I decided to really hunt for them, and noticed them on my map (I’m a slow learner); if I’m remembering correctly, the balls kept me amused through three bouts through the city, including starting to get frustrated by not being able to tell them apart from money on my map, discovering how to locate the money without stabbing at random into the ground, still not finding the last ball, and then correctly hypothesizing how to find the last one and succeeding at doing so. (And also finding some amount of money and T-shirts from dumpsters: note that the map tells you how to find the visible useful collectible and the invisible (largely) useless collectible, while not telling you how to find the visible useless collectibles, which is the correct gameplay choice.)

And, as that was ending and I was starting to have my fill of the city, the game again reacted accordingly: it changed up other aspects of the missions (e.g. the boss that you didn’t have to fight, the random old arcade game sequence thrown in one of the approaches), and the pre-boss sequences got shorter and shorter. (Especially the last two.) It was similarly sympathetic to pacing in the job fights: while it would occasionally ask you to kill 100 enemies, it would never do so without having those enemies be especially underpowered. And, while I rarely found the main game challenging, I expect it would have been if I’d played at a harder difficulty, and there were the optional single-death missions for those who wanted to hone their craft. I was also expecting the pre-ranking-battle money earning to be a grind, but it wasn’t: I did a fair amount of shopping (buying all the non-clothing items except for the last sword, and some amount of clothing), and I don’t think I ever spent as much as 10 minutes just earning money to advance after having finished all of the new jobs that had opened up.

And then I came to the last two boss fights; at first, I thought that both of them were a drag, and they (combined with the bad ending) were a downer. So: a pity for the game to end on such a note. Now, though, I’m not so sure: while poking around the web doing some reading in hopes of finding enlightenment, I ran across this Cruise Elroy post, and there’s definitely more coming to the surface towards the end of the game (but present throughout) than I’d been paying attention to.

Until I’ve figured that out, though, I’m happy enough to stop with my earlier assesment: No More Heroes is charming and exquisitely paced. And if I were prone to losing faith in this medium, this game would point out in no uncertain terms how wrong that would be.

Some interesting links I ran across while preparing for this (and thanks to Matthew Gallant for his suggestions of reading material); I wish I could have taken more account of them:

child’s play

November 30th, 2008

You have doubtless noticed the new widget in my blog’s sidebar. It’s for Child’s Play, a charity that gives toys, video games, books, etc. to children’s hospitals around the world. It’s a wonderful cause, and those of us in the Vintage Game Club thought that it would be fun to try to pool our energies to gather together some donations.

All money goes directly to Child’s Play: ChipIn doesn’t collect any, they just provide the widget. If you do donate, you’ll see my e-mail address listed at some point; don’t worry, money doesn’t go to or even through me, and at the end of the process you’ll get a PayPal receipt showing that it’s going to Child’s Play. (It’s tax-deductible for those of you in the U.S., by the way.)

I’ll leave the widget up for a couple of weeks; please give a bit if you can!

i love rock band 2

November 30th, 2008

I dipped into Rock Band 2 a bit more today. Miranda wasn’t in the mood, so I went through a few solo challenges; it turns out that the various marathon challenges provide a tour through all the songs on the disk, so my previous concerns are at least somewhat unfounded.

I wasn’t planning to be obsessive about achievements, but when playing through Pretend We’re Dead I only missed the very last note before the big rock ending. (Grr. I didn’t check, did they change the rhythm up a bit there?) So of course I had to go through that song again, and completed it the next time; it’s easy enough (regular rhythm, no fast notes) as long as you’re comfortable with chord changes. After which I browsed through the achievements list a bit more, and noticed the one about creating a logo; that was a surprising amount of fun, I was quite impressed by the options there. I don’t have a high-quality version of Kiss Me Kate’s logo available, unfortunately, but you can see a woefully shrunken version in the bottom right below:

(The picture was taken via my profile page on the game’s web site, by the way.)

So much to do: so many songs to play, so much more of the main band tour mode to play (ideally with Miranda), so many more challenges, and I haven’t begun to dip into online play (whether cooperative or competitive) or downloadable content. (Other than Still Alive.) I also haven’t yet tried any instrument other than guitar (or the new drum trainer mode) on this iteration; I have every intention to try to play guitar and vocals together as well, but I’ll need to work up to that first.

My twitter feed is full of love for Fable 2, Far Cry 2, and Fallout 3; I may eventually give all of those games a try, and in fact I’m quite looking forward to the first one, but at this point I have a hard time imagining any of them displacing my love for this game.

random links: november 30, 2008

November 30th, 2008

bittersweet deception cake

November 29th, 2008

This year’s Thanksgiving dessert was the Bittersweet Deception cake from Bittersweet. Its texture is actually almost more of a mousse than anything else; very good. It looks a bit long, but it’s actually quite easy to make. (You will want to prepare it the previous day, however.)

We used 70% chocolate for it, which worked well. And we used a 10-inch round pan for the water bath; a 9-inch one might have worked in a pinch, I’m not entirely sure. We mostly stirred rather than folded the first third of the eggs. The unmolding didn’t go at all smoothly, but nobody complained about the way it looked after eating it.


Bittersweet Deception, from Bittersweet by Alice Medrich.

Ingredients:
5 ounces bittersweet or semisweet chocolate, finely chopped
1/2 cup unsweetened cocoa powder
2 tablespoons all-purpose flour
1 cup sugar
Pinch of salt
3/4 cup plus 2 tablespoons water
1 tablespoon rum or cognac
1 teaspoon pure vanilla extract
2 cold large eggs
1 cold large egg white

Equipment:
An 8-inch round non-springform pan
A larger non-springform pan to use as a water bath, at least 2 inches deep
Parchment paper

Optional Toppings:
Powdered sugar for dusting
Lightly sweetened whipped cream
Raspberry puree or fresh raspberries

Instructions:

Position a rack in the lower third of an oven, and preheat oven to 350 degrees. Grease the sides of the cake pan, and line the bottom with parchment paper. Put a kettle of water on to boil.

Place the chocolate into a large bowl and set aside. Combine the cocoa, flour, 1/2 cup of sugar, and salt in a small heavy saucepan. Whisk in enough of the water to form a smooth paste, then whisk in the remaining water. Cook over medium heat, stirring constantly (especially around the edges of the pan) to prevent scorching, until the mixture begins to simmer. Simmer very gently, stirring constantly, for 2 minutes. Pour the hot mixture over the chopped chocolate, and stir until chocolate is melted and smooth. Whisk in the rum and vanilla.

Beat the eggs, egg white, and the remaining 1/2 cup sugar with an electric mixer at high speed until nearly doubled in volume, 5 to 6 minutes. (The eggs will be very foamy but liquid rather than thick.) One third at a time, fold the eggs into the chocolate mixture. Scrape the batter into the cake pan and smooth the top.

Put the cake pan in the larger pan. Pour enough boiling water into the larger pan to come halfway up the sides of the cake pan. Bake until the cake rises and crusts slightly on top and the surface springs back when gently pressed, about 30 minutes. (The cake will still jiggle in the center, like very firm jello, and the interior will still be quite gooey.) Remove the cake pan from the water and cool completely on a rack. Cover with plastic wrap and refrigerate overnight before serving.

To unmold, run a thin knife around the edges to release the cake from the pan. Invert onto a plate, and peel off the parchment liner. Optionally, dust powdered sugar over the top and/or add whipped cream and/or raspberries.

finished rock band vocals; started rock band 2

November 29th, 2008

I’ve now finished the Rock Band vocals solo tour on Hard. To my family’s consternation / bemusement, I sung most of the songs in the second half in falsetto: it seems to pick up my pitch more reliably that way? (Dan Bruno says that I’m not the only one who does that.)

It didn’t actually seem like the songs were getting much harder as they went along; I think vocal difficulty in that game has more to do with how the song fits your voice than anything inherent to the songs themselves. And, of course, with how familiar you are with the song: I’m sure I would have done much worse on vocals if I hadn’t played through all the songs several times on other instruments.

For those of you keeping score at home, this means that I finished guitar solo tour on Hard (and have done all but one song on Expert), drums on Medium (did two-thirds of them on Hard), and vocals on Hard (didn’t try any on Expert). My initial reaction was that the difficulty settings were off on vocals compared to the other instruments: I don’t consider myself a good singer (I’ve never been in a choir or anything), but I didn’t have any real trouble going through it on Hard. Thinking about it more, though, that’s not entirely fair: I’m not completely tone-deaf, I will happily start singing at random opportunities, and it’s not like I play the guitar while taking a shower!

One related thing I noticed: singers seem noticeably less competitive than other instruments, in that I looked through the high scores on vocals and my rankings were much higher than my guitar rankings, even though I’m a much better guitar player in the game. There’s one song where I’m the 3000’th best singer, which honestly boggles the mind; and there were several songs where there weren’t even 100,000 people on the leaderboards. So if you want to be on a Rock Band leaderboard, vocals is the place to go.

That was about three weeks ago, and I was planning to take a bit of a break before diving into the sequel. (I’m playing too many other games right now, including another open-ended one.) But then a kind generous soul donated a copy of Rock Band 2 to the cause, and we had some people over for Thanksgiving, and well, you know how these things go. Miranda and I revived The Brosstones yesterday; I also started my own band (Kiss Me Kate; my first choice was Bianca, but that was taken) and I played my first challenge. (And gold starred the second song I played on solo guitar; ha.)

I was a bit taken aback at first by the lack of Solo Tour in RB2: I’ve quite enjoyed playing through all the songs on the different instruments, after all. But now that I’ve thought about it a bit more, I’m happy enough with that: it’s such an open-ended game (more than 80 songs to start off with, but of course there are hundreds more available for purchase) that playing through it linearly like that perhaps doesn’t make so much sense. I did enjoy the way the difficulty progressed as I went through the songs in the original (and as I changed from the tougher songs on Medium drums to the easier songs on Hard drums), but RB2 has set challenges available if you want to test your skills, and there’s something to be said for actually playing the songs that you feel like playing instead of mindlessly following a list. (And it’s not like the difficulty information is hidden or anything.) And, most of all, I trust Harmonix: if this is what they think is going to provide the most enjoyable experience, I’m willing to go along.

So I guess I know what I’ll be doing for the next year. And it’s actually really nice to have started playing RB2 soon after it came out: I started playing the original much later, which meant that I had my hands full just getting to know the songs on the disk. Whereas I should get to know the RB2 songs on disk long before RB3 (or the Beatles game!) comes out, so I’m really looking forward to jumping into downloadable content while waiting.

richard gabriel on christopher alexander

November 24th, 2008

I claimed that my last post was going to be my last Christopher Alexander post for a while, but I lied. I spend some time today reading Richard Gabriel’s Patterns of Software, the first part of which talks about Alexander’s work (up through the carpets book, which isn’t discussed nearly enough; Gabriel’s book dates from before The Nature of Order), and has several interesting things to say. (Including an introduction by Alexander himself!)

In particular, I agree with Brian Marick that the notion of “habitable code” (or “ease of work”, as Marick prefers to call it) is an important one. I also like Gabriel’s reminder that not all patterns (or structures resulting from applying from those patterns, whether in architecture or software) are created equal, that you have to work consciously to bring out beauty / life / the quality without a name.

So give it a look: it’s a short book, and there’s some great autobiographical stuff there, too. And there’s even an electronic version that you can download for free!

And now I really am taking a break from Christopher Alexander! Unless I find something else Alexandrian I need to think/talk about tomorrow…

agile processes as living structures

November 24th, 2008

One more Christopher Alexander Nature of Order post, and then I’ll take a break. This is a counterpart to my earlier post about living code (I even repeat some of the examples): this time, I’m focusing on the agile processes that might produce that code. Again, thanks to the Agile Open California participants who helped me think about this.

Levels of Scale

Agile processes operate at many different temporal levels of scale: you might do a red/green/refactor cycle or swap roles within a pair every few minutes, change pairs every few hours, have a standup every day, an iteration every weak, and a release every quarter. (Of course, many teams don’t do all of these, especially the last!) This is, I think, one of the strengths of agile processes: many other processes don’t say anything about actions at the smaller temporal scales. (They do say something about still larger temporal scales, but that’s usually just bloat.)

Strong Centers

Stories. The Developer team, the Customer team. Iterations. The focus on getting (working!) code into production. The test suite.

Boundaries

Recall that Alexander’s preferred boundaries are those that are thick enough to be centers in their own right. With that in mind: iteration planning meetings; retrospectives; a scrum master; refactoring stages between implementation phases.

Alternating Repetition

Red / green / refactor; or, more generally, plan / do / reflect. Which are interesting examples, because they alternate between three phases instead of two; I don’t think that goes against the spirit of Alexander’s ideas, though. Note that, in both examples, one of those phases (refactor / reflect) is somewhat different in character from the others, in that it has (to me) more of a Boundary quality.

Positive Space

As in other less geometric contexts, I’m at a bit of a loss for good examples of this property.

Good Shape

Again, a geometric property that doesn’t translate well.

Local Symmetries

Perhaps having a consistent length for your iterations, or a consistent size for your stories? Or matching test code with product code?

Deep Interlock and Ambiguity

Agile’s emphasis on conversation over formal documents is a manifestation of this property: rather than having the Customer and Developer teams interact at arm’s length through formal specifications, they work out the meanings of stories through conversations, they collaborate on tests. Test-Driven Development is also an example: rather than having distinct and distant code and test phases, you do both together, with the two reinforcing each other.

Contrast

A test is either red or green. A story is either done or not done, not “95% done” or “done except for testing”. A feature is either in the scope of a story or out of scope. Certain decisions are owned by the Customers; others are owned by the Developers.

Gradients

I’m having a hard time putting my finger on this one. Teams evolve, the product evolves, surely I should be able to find a Gradient there? By design, agile is probably low in Gradients in some areas, e.g. knowledge is deliberately spread among team members as much as possible. Though knowledge will always be somewhat uneven; perhaps that actually leads to more of a Gradient than a siloed teams where people are actively discouraged from gaining knowledge in some areas? Hmm…

Roughness

The code always has to do what the customer wants, not what some abstract architecture would like it to do. Teams are constantly trying in their retrospectives to find areas to improve, to experiment; this comes along with an acknowledgement, even a happy acceptance that Roughness will always be present. Agile acknowledges, accepts, embraces risk. Agile encourages trying out ideas in code and timeboxing your work over endless whiteboard design sessions and overengineering. Of course, it also encourages refactoring, but even there I’ve heard people recommend refactoring mercifully rather than mercilessly: stop when you can see the end of your refactoring, and don’t actually carry out that last refactoring, leave a bit of roughness in the code as a seed.

And agile also embraces that most glorious source of Roughness in software development, the fact that software is written by people.

Echoes

Similar feedback processes occur at different scales: for example, you can do test-driven development at a level that forces you to add individual lines of code, but also at a level that drives entire features. The XP practice of Metaphor belongs here as well, I think.

The Void

I’m not sure any of the following examples quite hit on this property, but: The 40-Hour Week, the fact that you actually go home at the end of the day. Actively carving out space for reflection, whether in refactoring or retrospectives. Slack, the idea that a team can work better if it’s not completely scheduled. The 20% time / gold card notion that some teams adopt, giving developers extra space for experimentation and development.

Or perhaps the fact that agile typically doesn’t lead to kitchen sink software: the software does what it wants to do, what the team has actively chosen for it to do, and a lot is left on the table as a consequence of those choices.

Simplicity and Inner Calm

Do the simplest thing that could possibly work. Refactoring, actively seeking out the simplicity inherent in your code. Perhaps slack belongs here instead of (or as well as) The Void: a team with a bit of slack can remain calm in the face of circumstances that would shatter a team that’s scheduled to the breaking point.

Not-Separateness

The Whole Team, and its physical manifestation in the form of the team room: everybody’s in this together, both conceptually and physically. Collective ownership and avoiding silos. And “Responding to change over following a plan” fits into this bucket as well: not only are the team members not needlessly separated from each other, they’re not in a bubble separated from the rest of the environment.

Final Thoughts

Agile processes seem to me to do a quite good job of exhibiting several of these properties: Levels of Scale, Strong Centers, Boundaries, Alternating Repetition, Deep Interlock and Ambiguity, Contrast, Roughness, Simplicity and Inner Calm, and Not-Separateness all show up in profound ways. Though some of agile’s distinctive character comes from centers that it doesn’t emphasize: in particular, traditional silos (functional areas in development, or development versus test) are centers in their own right, but centers that are much less strong in agile methodologies than in other methodologies.

Perhaps Alexander gives ideas of how you could design a methodology which keeps those as centers: make sure to nourish them (Strong Centers), but don’t isolate them. If you can leave in thick Boundaries, have Deep Interlock and Ambiguity between them, while keeping Not-Separateness in mind, you’ll probably end up with a process that’s appropriately resilient, flexible, adaptable to unexpected circumstances.

I wish I’d written this blog post sooner after finishing The Process of Creating Life, because that’s really what’s most interesting about these properties of living structures: they’re not just a diagnostic tool, they’re a tool for growing living structures. (And, of course, agile processes as a whole are, among other things, a tool for growing living code!) If you want to introduce agile to an existing organization, if you want to expand agile from one team to many teams, then doing it via an iterative / organic process as Alexander outlines may well be a good idea.

I’d also like to see these ideas developed more on the Customer side of things, on the user-facing design of the product rather than the design of its code. Agile processes generally treat that part of the design as a black box, as magic: we allow the Customer to grow the product by adding to it gradually, providing frequent feedback, and in general giving the Customer as much flexibility as possible. But that’s all about enabling the Customer: the processes are completely agnostic about what the Customer does with that power.

And that’s not good enough. Take my current video game infatuation as an example: I’m all for video games that are developed quickly and are free from bugs. But given a choice between a game with a technically flawed implementation of a wonderful concept or a game that does everything right but has no soul, I’ll ignore the latter every time, while I’ll happily play the former as long as enough of the concept shines through. If Alexander’s ideas help us to figure out how to develop more games that are truly alive, that would be an achievement that would live down through the ages.

Something to think about. Which I will have ample opportunity to do: I doubt these ideas are leaving my brain any time soon, and I have a thousand more pages spread across two volumes to look forward to reading!

refactoring writ large

November 16th, 2008

At Agile Open California this year, I didn’t spend all my time thinking about Christopher Alexander (and I owe y’all still more blog posts about that): I also convened a session on Refactoring Writ Large. I put my notes up on the AOC wiki, but here are the examples that motivated it:

Consider the following phenomena:

  • Don’t Repeat Yourself in Rails: the structure of your database automatically (and dynamically) generates appropriate methods in your classes. Basically, just create a class that inherits from ActiveRecord and that is named after a table in your database, and all sorts of wonderful things will happen without your having to lift a finger!
  • Some recent experiences that I’d had at work with code generation tools (we should have been using them years ago, and they’re most appropriately written in a scripting language, no matter what language you’re generating), coupled with my reading the book Code Generation in Action.
  • The current popularity of Domain-Specific Languages.
  • Tools that are created for non-developers to use, that end up speeding up the work of professional developers.

That last example was prompted by this discussion of how the user-generated content creation tools allowed the LittleBigPlanet level designers to work in a more agile fashion:

Are there any other advantages to building LBP around user-generated content besides the sheer volume of content that players will create? Do you have any plans for this content outside of the core game?

There were unexpected benefits, and obstacles, to the actual process of in-house development. The games industry consists of professionals trained effectively to ‘cheat’—to make it look like much more is going on than there really is, given the technical constraints of the game platform. The mark of a good artist, for example, is to make the minimum number of polygons convincingly convey a character’s face, or a building’s detailed architecture.

With user-generated content, our mantra had to be ‘don’t cheat’—in other words, we can only build things that users could also build. Although this is a surprisingly hard constraint to stick to, it has the huge benefit that our internal toolchain—tools being the make-or-break ingredient as far as game development goes, and the reason for the flourishing middleware market—were necessarily very simple and fast to iterate.

In fact, we treat all of ‘our’ content as user-generated content—with all the attendant benefits. We can edit everything in-game, live, with no expensive pre-lighting or visibility computation or ‘compile’ steps that would typically take hours in a traditional pipeline. So we actually ended up being a more agile team, better able to deliver lots of content even with a very small team. In terms of plans outside of the game, well, we will have to wait and see. I think Sackboy as a character, for example, has been fantastically well received and I would love for him/her to become an iconic character on the PS3. That certainly would help us find interesting ways of expanding the LBP universe and the content within it.

What all of this suggests to me is that I need to expand my notion of where refactoring would be appropriate. The Refactoring book talks about refactoring within the context of a single language; some of the most powerful refactorings, however, involve minimizing duplication by changing languages entirely! Something to keep my mental feelers out for in the future.