[ Content | Sidebar ]

things

November 12th, 2009

When I started doing GTD, I kept my next action list on a paper notebook in my pocket. (Or, at work, on a pad of paper on my desk.) I did this partly out of a certain technological conservatism and partly because, at the time, I didn’t have any suitable electronic devices that were always with me. The latter changed when I got my iPod Touch (combined with my migrating more and more to Macs as my primary computing platforms, giving me a location to sync with that I would reliably use daily); and I found that, as my paper lists aged, it became increasingly hard to pick out the few undone items on a page amid the sea of items that I’d finished.

So I used my job change as an excuse to try switching my work next action lists to something computerized. I took a look at Things, OmniFocus, and The Hit List; The Hit List didn’t have an iPhone counterpart, OmniFocus seemed a bit heavyweight, so I gave Things a try.

And I ended up rather liking it. At first, I was somewhat taken aback by not being able to map the (to me quite important) GTD concept of waiting items directly to it. But once I decided not to get hung up on that, I enjoyed the program: it’s easy to use, it’s great to be able to pull up a quick entry box to get ideas out of your mind, and the clutter problem that I’d been having with my paper system has completely disappeared.

Things also has one very nice feature that isn’t a standard part of GTD (though it is part of the pomodoro technique): it encourages you to flag actions as ones you’re planning to do today. For several months, I’d been making a tentatively daily plan at the start of the day at work, and I really like the results: it means that I rarely have to refer to my entire next action list during the day, and it makes it easier for me to take care of items that are important but not urgent or ideas that, for some reason, my mind is resisting doing.

In fact, that last point is important enough that I’ll go on a bit of a digression on it. (Partly in hopes that I’ll figure something out, because I don’t claim to have all the answers here.) Too much planning is bad: plans go stale as reality marches on without them (and, in particular, unexpected events can cause priorities to shift quite quickly); and planning takes time, which has a real cost. But avoiding planning entirely isn’t good, either: our lives are too complicated for us to always be able to make the best choices even about a narrow area on the fly, and without plans, it’s too easy to get buffeted around, chasing the urgent over the important.

So you need to balance these two forces. (Or, better yet, come up with a synthesis.) GTD’s next action concept is a great step in that direction: you do just enough planning in advance to be able to make a bit of concrete progress in a project, but you don’t overplan by committing to when you’ll take that next action or by committing to the details of later actions on that project.

That one useful way to ease to this tension: you focus yourself on a single project and are a bit vague about time. But today lists provide an orthogonal easing of tension, this time focusing on a single slice of time but looking across projects. To get them to work, you make sure to have a few minutes of quiet at the start of the day (when walking Zippy when I get up, after checking my e-mail when I show up at work) when you can look across the existing list of next actions on all of your projects and see what might be a good idea to work on next. But you don’t commit to actually doing all of that (surprises can always arise), and if you don’t finish an item on one day’s list, it’s just fine to remove it from the today list when the next morning rolls around. Done well, it only takes a few minutes, it makes it very easy to figure out what to do next, and it helps you make progress across a range of important projects.

So, once the evaluation period ended, I paid for a copy of Things, installed it at both home and work, and bought the iPhone app as well. (Which I sync with my home copy.) And I’m quite happy with my choice; aside from the reasons mentioned above, the iPhone version is quite usable, and it’s made my weekly reviews at home go a good deal more smoothly, for reasons that are idiosyncratic enough to not be worth elaborating on here. It’s not a perfect piece of software—I’m still not convinced by its handing of waiting items, and some of the concepts that it has aren’t sufficiently orthogonal (e.g. there are actions you can do on standalone tasks that you can’t do for tasks that are part of projects)—but it works more than well enough for me.

It’s also changed my GTD usage. For one thing, it has the notion of Areas of Responsibility; that’s a part of GTD that I’d never spent much time with, but once I had software that mentioned it, I started thinking about it a bit more. And I realized that some things that I’d been thinking about as projects (e.g. read books, take care of tasks around the house) are actually areas of responsibility, and are best managed as such. The other thing is its use of tags: that’s the way Things handles GTD contexts, but putting a tag on an item you’re creating on the iPhone version adds just enough friction to be a slight annoyance. And, once I realized that, I also realized that, in fact, GTD contexts are never useful to me! (I’m not saying they’re a bad thing, just that my life isn’t complicated enough in ways where they are helpful.) So now I’m moving away from using tags as GTD contexts, instead just keeping around a few special-purpose tags with other meanings.

I’m very happy with the results, and plan to keep this system for the forseeable future. I still have my paper notebook around, e.g. to take notes about blog posts, but all in all moving the portable part of my system to my phone and the non-portable part to a piece of dedicated software is working nicely.

pomodori

November 10th, 2009

So far, the talk I attended at Agile 2009 that has had the most impact on me was Renzo Borgatti’s talk on the pomodoro technique:

I’d heard a bit about the technique before, enough to know that it tells you to break your work up into 25 minute chunks and to try to really focus during those chunks, avoiding distractions and interruptions. It turns out that there’s more to the technique than that, however: it gives guidelines about breaks between chunks (3-5 minute breaks normally, longer breaks after every four chunks), there’s a whole planning and estimating mechanic you’re supposed to use with it (starting each day estimating your tasks in terms of pomodori, and reviewing your day at the end), and there are also mechanisms for tracking and actively tabling your interruptions.

What really sold me about the talk, though, was that, 25 minutes into it, a timer went off, and we all took a break for a few minutes! We took another break 25 minutes later; I think that it’s a great idea to break a 90-minute presentation into three chunks like that. As it happened, I’d been feeling over the course of the conference that I hadn’t been getting enough done over the evenings; so, that evening, I decided to give the pomodoro technique a try, and really focus on things for 25 minutes at a time.

Which turned out to work remarkably well: I probably got as much done that evening of the conference as in the other four evenings put together. Despite which I didn’t use the technique over the next month or so: I was pairing on a project in my last weeks at Sun, we were doing quite a good job concentrating as it was, and it didn’t seem to be a good time to introduce something new.

When I started work at Playdom, though, I picked up the technique again, and I’m glad I did. When I describe the technique to other people, one frequent concern that comes up is: doesn’t the timer going off interrupt your flow? For me, though, my problem is almost always too little flow rather than too much; and the pomodoro technique works great with that. I can stop myself from wandering for 25 minutes if I try, and I know I have a little release valve coming up in the not-too-distant future if I need one. And it occasionally happens that I’m banging my head against something unproductively and need the cooling off period between pomodoros to get myself thinking that I really should take a different approach. Also, it can be a big help if the next task seems frightening in some way: you’re not faced with wandering through something unknown and probably unpleasant for an unbounded amount of time, you’re faced with spending 25 minutes trying to shed a bit more light on your current situation, which is a much more palatable prospect. And I think the explicit guidelines for both shorter and longer breaks are helpful for me.

I’ve tried other aspects of the technique as well; they have had benefits, but I’m less sold on them. The planning period is a helpful reminder that I should think about all the different things that I’m considering working on (my next actions for my various projects, in GTD speak), and pomodoros give me permission to carve out a bounded amount of time to work on tasks that are important but not urgent. Having said that, I haven’t found much of a benefit from the actual process of estimating how many pomodoros a task will take at the start of the day: it doesn’t seem to be solving any problems that I have, and I have other mechanisms for telling myself when I’m getting stuck. (E.g. if I’m not doing multiple git commits over the course of a pomodoro, that might be a sign that things are going well.) So I’m stopping that for the time being.

And there’s one aspect of the pomodoro technique that I’m actively dubious about. One of the core rules is that the pomodoro is indivisible: if you don’t spend the whole 25 minutes working on what you planned, then it doesn’t count as a pomodoro, and you’re strongly encouraged to have as many pomodoros count as possible. There’s a bit of wiggle room here—if your plan at the start of the day has tasks that you think will take less than one pomodoro, then you can combine multiple of them in your plan to make a single pomodoro, and if you finish a task within the first five minutes of a pomodoro, then you’re encouraged to cancel the pomodoro, with the feeling that it was “really” finished in the last pomodoro. If you go beyond the first five minutes, though, you’re supposed to stick it out until the timer rings: in particular, the technique recommends that you spend spare time overlearning, delving into the area in question more deeply than you would otherwise.

Don’t get me wrong, overlearning is a great idea: it’s a similar philosophy to always doing a bit of refactoring once you’ve got your code working. Except that the pomodoro philosophy is different: you don’t always do it, you only do it if there’s time left on your pomodoro, and the amount of overlearning you should do is proportional to the time left. And that just seems bizarre to me.

Take this blog post, for example: I have a pomodoro timer running as I type this. If the timer goes off when I’ve got it done but not properly edited, I don’t want the pomodoro technique encouraging me to hit publish so that I won’t have a big gap to fill in my next pomodoro. After I’ve hit the publish button, probably a bit of overlearning wouldn’t be a bad idea—e.g. this blog post is suggesting an idea for another blog post I could write, so maybe I’ll take some notes on that. But that sounds like a good idea no matter how much time is left on the pomodoro; and those notes will probably take about 5 minutes, so what am I supposed to do if I turn out to have 15 minutes left on my timer when I hit the publish button?

So that doesn’t make much sense to me. The result is that I’m not feeling any guilt about either canceling a pomodoro if I finish a task in the middle of one or about not canceling the pomodoro and launching into a second task without a break in the same pomodoro. (Hmm, I probably should have a preference for one or the other of those solutions, maybe the former?)

But the core idea seems sound, and many of the surrounding ideas have seeds of something that I quite like (e.g. the concept of overlearning), even if I’m not convinced by their details.

Some resources I’ve found useful:

random links: november 8, 2009

November 8th, 2009

thief

November 3rd, 2009

I was excited that the Vintage Game Club chose Thief as its eighth game. I’ve never had a very good relation with stealth games (or stealth segments/aspects of non-stealth games); but I’ve heard enough good about Thief (especially from Justin Keverne) to make me cautiously optimistic that I’d like the genre more when I saw it done right.

Which didn’t work out so well at first: aside from my running into slightly more hardware issues with it than with other PC games we’ve played, I found myself spending most of the first couple of levels alternating between waiting, getting caught, and reloading. I didn’t feel a huge sense of accomplishment when making it past obstacles, either, and combining this with my worries about ever using limited inventory meant that I wasn’t having much fun.

One advantage of the VGC, however, is that it’s taught me something about my own play styles. And my early Thief problems reminded my of my early Deus Ex experiences. In that game, I started out frustrated by stealth and by inventory restrictions; as the latter eased, though, I found myself more confident with the range of options at my disposal, and rather enjoyed most of the game. So, combining those memories with other’s claims that the proper way to play to play Thief is to figure out how to actively manipulate your environment, I decided to try to consciously expand my search for options when dealing with obstacles and to be more generous with the tools in my inventory.

Which I dutifully tried to do for the next couple of levels. And, indeed, I enjoyed them more, but not for that reason: I would be proud of myself for using a water arrow to put out a light in an upcoming intersection, but then when I went through it a guard turned out not to be anywhere nearby! Instead, I just had an easier time parsing the levels and knocking out guards.

And then I hit the Thieves’ Guild, the first of the Thief Gold levels. The first section or two was okay, but then I found myself going in circles for ages on end; that was partly my fault, but not entirely, and when I got past that, the game gave me hints that there was quite a bit left to do in the level. I took a break for dinner; after dinner, I asked myself, “is this really what I most want to be doing right now?” And the answer came back that, no, I’d rather spend my time elsewhere.

So I stopped. And I’m glad I did: judging from the discussion in the VGC forums, I would have found the rest of the level quite frustrating, and I’m confident that I put enough effort into the game as a whole that it wasn’t about to magically click for me. (Plus, this frees up time that I can use to learn Haskell.)

I’m not going to say Thief is a bad game or anything; but its style unfortunately ran into several of my personal mental quirks. (Most notably, when given a choice between paralysis and imperfection, I have a bad habit of choosing the former; this game lets me do that in more than one way.) And there are some unfortunate misfits between it and my living situation: the amount of time that I can spend playing video games is fairly limited, and when I play PC games, I have to isolate myself in a room away from my family and play them in a VirtualBox installation that has both sound and control quirks. Also, if there’s anything I’ve learned from the VGC, it’s that even quite good games from the 90’s made design choices that are more than capable of turning away video game devotees a decade later.

I do wish my experiences had led to a better appreciation of the stealth genre, though. (Or, alternatively, a more cogent understanding of the flaws of the genre.) And it makes me sad to have not seen a VGC game through the end, though I suppose that had to come eventually.

we’re hiring

November 2nd, 2009

I’ve been working at Playdom for about a month now, and I’ve thoroughly enjoyed it so far. If any of my readers think it might be an interesting place to work as well, I wanted to point out that we’re hiring. (In a fairly big way, as the list of positions suggests.) Feel free to ask me directly if you have any questions or want me to pass your resume along; you can also apply through the web site.

revisiting majora’s mask

October 31st, 2009

For its seventh game, the Vintage Game Club chose The Legend of Zelda: Majora’s Mask. Which I was really excited about: aside from being a Zelda fan in general, I was curious to see if my memory of the sidequests held up. (Margaret Robinson’s GDC talk was an influence here.)

The short answer: yes and no. For those who aren’t familiar with the game: when you start the game, the world will end in three days, so you’re constantly looping back in time to the beginning of that period. This means that you’re constantly returning to the central town, and seeing the same people doing the same actions at the same times; this is reinforced by a notebook you acquire, the Bombers’ Notebook, which lists people who need help and the days/times at which you can help them.

And, indeed, checking off Bombers’ Notebook tasks was probably my favorite part of the game. But the problem is: there just aren’t that many of them, and you can get a lot of them done on a single cycle. So I probably had a third of the tasks done before I’d ventured out of town for the first time; another nice batch opened up after I finished the second dungeon, but in general I didn’t spend nearly as much time with the notebook as I’d liked.

The Kafei/Anju plot is the crown jewel of the notebook, weaving together several townspeople’s requests; but I made it almost to the end of the plot on my first full cycle in town (possibly aided by my dim memories of playing the game when it came out, I’m not sure I made it so far so quickly last time), and I knew I wasn’t going to be able to do the last part until right before the end of the game, putting quite a damper on my momentum. And, by the time I did get around to doing the last part, I was annoyed enough at the game’s requiring you to replay significant chunks if you miss a time slot that I didn’t take any chances: rather than trying to figure it all out again myself, I looked in a FAQ to make sure I wasn’t going too far off course. So, doubtless largely because of that, the experience wasn’t as fulfilling as I would have hoped. Which, to be sure, is partially my fault; but the game also throws a timed block-pushing puzzle at you in a context where, if you fail, it will take half an hour to get back to your current state! I can’t imagine art works in other media putting a barrier in front of you like that to get the emotional impact out of the work; I don’t think it was the right choice here, either.

Actually, my favorite notebook sidequest this time was one that I’d completely forgotten about. There’s a postman in the town who is constantly running around delivering mail. It turns out that, beneath his tireless worker facade, he’s terrified by the moon coming down from the sky, and that his overdeveloped sense of duty is the only thing keeping him from getting as far away as he possibly can. And you save him from this by, on the very last night, waking him up to deliver an urgent piece of mail to somebody who has the authority to tell him that, yes, he can and should get the hell out of there.

So: the notebook is a great idea, but it’s minor enough in terms of time spent that most of my feelings about the game came from elsewhere. Which raises the question: how does the time loop affect that?

Unfortunately, the effects of the time loop on your progress through the rest of the game is almost exclusively either neutral or negative. The neutral far outweighs the negative, and the negatives are mostly small, but I ended up liking the game less than I expected because of this.

I’d remembered that your consumables went away at the end of each time loop. In general, this isn’t a big deal: money and arrows are easy to come by, and the fact that you can optionally deposit money in the bank and that chests are restocked each loop means that the money situation in particular isn’t bad at all. Though I was annoyed by consumables disappearing on one or two occasions: I was actively excited to go explore one of the spider houses only to discover that I needed to go somewhere else and buy some magic beans first, which rather deflated my enthusiasm. And, in general, having to warp back and forth collecting fairies before venturing into a dungeon is a waste of time. Still, a minor annoyance all things considered.

What is a less minor annoyance is that the dungeon state resets on each loop. So woe be unto the player who starts a dungeon late in the loop and isn’t able to finish it in time! Fortunately, you’ll only make that mistake once at most; and the game’s designers put warp points at the entrance to each dungeon, making it easy to get to the mouth of the dungeon, loop back in time, and then play through the dungeon.

But the main boss isn’t the only thing to do in a dungeon: there are fifteen fairies sprinkled throughout each dungeon. In a normal game, I’d be happy to find most of the fairies on my first trip through, go and beat the boss, and then come back some other time, wandering through the unlocked doors of the dungeon at my leisure, to grab the rest of them. But the time loop makes that impossible: if I don’t get all the fairies in a single loop, then I’ll have to go through the whole dungeon solving every puzzle again when I want to get them all! (And the benefits from getting them all are pretty substantial, too, except for the last dungeon.) Which, again, turns what could be a pleasant challenge into a reason to go running to gamefaqs when things get at all tricky.

Don’t get me wrong: I still enjoyed the dungeons, still enjoyed the main quest line. (Though quite a few VGC members didn’t—I was surprised by how many people dropped out over the course of the game.) But the game does put some structural barriers in the way of that enjoyment.

And then there are the little touches. In Ocarina, it was the music; there’s nothing in this game like that (in particular, most of the new ocarina music isn’t very good), but I’d completely forgotten the giants who appear after each dungeon. And they’re wonderful: these huge melancholy figures shrouded in mist with haunting music playing. Also, the tree in front of the final save-the-world battle was very soothing, grounding, refreshing. (Is there some archetypal game with a tree on a hill like that that both Majora’s Mask and Flower were borrowing from?)

And, when all is said and done: it’s still a Zelda game and a noble experiment, and those are both very good things. But, like many of the most productive experiments, its value comes as much from the hypothesis that are found wanting as the hypothesis that it supports.

monads, anyone?

October 28th, 2009

Early in the summer I started going through Real World Haskell; unfortunately, conferences and job changes and other programming side projects kept me busy enough that I stopped reading it after a few chapters. That’s calmed down now; and, conveniently, a friend of mine got a copy recently and some others also expressed interest in it.

So we’re forming a book club. And I figured a few of my readers might be curious about the language as well. If you fall into that bucket, let me know and I’ll add you to the mailing list.

random links: october 27, 2009

October 27th, 2009

the beatles, rock band, and genre

October 13th, 2009

In a recent podcast, Justin Keverne talked about how it was odd that we define genre in video games almost exclusively in terms of what you do, whereas in other media genre is linked more with the themes that are under consideration in the works. I’m still not sure what I think about this (and, indeed, poking around a bit has just brought home how little I understand the concept of genre; incidentally, CDC podcast episode 4 also had some interesting things to say on the topic), but I do tend to agree that the notion that, say, “first-person shooter” defines a genre is a pretty peculiar one. As Justin pointed out, think how odd it would be to talk about “single-camera TV shows” versus “three-camera TV shows”!

Which got me wondering: what differences are our conceptions of video game genre blinding us to? What are the video games that we think of as being part of the same genre (because of their shared mechanics), while cutting across quite different areas of the theme and design space in ways other than their mechanics?

I’ve been thinking about this recently because of the Beatles game. Which I adore, as do many others; some people, however, even people who are as big Rock Band fans as I am, are less impressed. It generally comes down to the Beatles’ music not being to their taste; if you combine that with the gameplay being in many ways identical to earlier Rock Band iterations, then of course you’d prefer the wider musical variety in the earlier games.

Having said that, however, The Beatles: Rock Band isn’t quite the same as a reskinned Rock Band 2. Some differences:

  • The songs are (almost) all unlocked from the beginning.
  • Which doesn’t mean that there aren’t unlockables: you can unlock pictures and other historical artifacts.
  • If you play through the game in its story-based mode, you encounter the songs in chronological order rather than a difficulty-based order.
  • There are fewer ways in which your play affect the music that is played. (E.g. no drum free play to activate star power.)
  • On the easiest setting (which is the default), you can’t fail out of a song.
  • You can’t customize your avatar.
  • Each song has custom artwork, custom animations.

And these are not random differences or a collection of isolated refinements: they all point in the direction of moving the game away from focusing on players’ generic mastery of techniques and towards a focus on the Beatles’ music and their surrounding history. I’ll even claim that the game’s achievements show this difference: the achievements have moved away from generic gameplay accomplishments and towards achievements that get you focusing on individual songs, and even on techniques within those songs. (I’m thinking of the hammer-on/pull-off achievements for Dear Prudence and Octopus’s Garden; or the achievements for double-fab and triple-fab singing, which will lead you to appreciate just how differently the harmonies play out in different songs.)

The picture that I’m getting from this is a game that, on a non-mechanics genre level, is profoundly different from the vast majority of video games. At its core, the Beatles game is a non-fiction game in the sense that most video games are fiction games: while the game certainly takes its liberties with the historical material that it’s presenting, it’s easy to imagine reaching the game by starting from a book about the Beatles or a course about the Beatles, and dreaming about how to make it more interactive, more immersive, enabling the learner to view the music from different perspectives and to isolate different aspects of their music. (I’m not the only person who appreciates Paul McCartney’s bass lines a lot more after going through the game on bass than I did before playing it.) I’ve been hearing about the Serious Games movement for years; in its own way, this game is one of the best examples of a serious game that I can think of.

Having written the above, now that I’ve had my eyes opened to the nonfiction nature of the Beatles game, I think that other Rock Band games actually largely fit within the nonfiction space as well: they’re much more of a representation and exploration of externally constructed subjects than (to pick another game within the rhythm game genre) Space Channel 5 is. I think it took the kick of a game saying “no, we’re not going to organize the game’s progression in terms of difficulty” to open my eyes to non-fiction video games that surround me, but now that my eyes are opened, I see them there.

Or maybe they don’t surround me, actually—looking at my game shelf, Wii Fit, the Brain Age games, and (I suspect, I haven’t played it) Endless Ocean qualify, but not much else. So maybe what’s really going on here is that two companies, Nintendo and Harmonix, are doing something special; five or ten years from now we’ll look back and marvel at the changes in the possibilities that games represent that are getting their first big market successes right now. (Yes, I am aware that non-fiction games have been around for quite some time; I had a lot of fun playing Robot Odyssey a quarter-decade ago!)

Of course, everybody’s aware of what Nintendo is doing in this vein (it’s certainly hard to ignore Wii Fit); Harmonix’s efforts are, to me, going underappreciated. I’m very excited about the possibilities of Rock Band Network: I now find it frustrating that there’s any music that I can listen to but can’t play along with in a game. So I’m very much looking forward to a future world where that is no longer the case, where we have a continuum moving gradually from recordings of music that we purchase to performances of the music that we play ourselves. (Though, as mashups remind us, the linear notion of a continuum is quite misleading here!)

And just as video games will make their presence known in various places in that continuum, so too will they make themselves known increasingly broadly across our culture. But breaking free of the narrow focus on game classification into genres based on gameplay mechanics is, I think, an important step in that broadening influence.

random links: october 7, 2009

October 7th, 2009

Sorry for the delay between posts; Miranda asked recently if she could watch Haibane Renmei (which I highly recommend), so we’ve spent many of our recent evenings going through that. And I don’t have a real post now, either, but I’ll at least give a link round-up. (Besides, the Zork walkthrough is much more awesome than anything I’m likely to generate myself.)

beatles microphone recommendations?

September 25th, 2009

The one flaw I’m seeing so far in the Beatles game is its microphone support. I really want to try out the vocal harmonies, but I don’t have many suitable devices around the house: I have two Xbox headsets, but the game only supports USB mics, and I have a USB headset for Skype usage, but apparently that doesn’t qualify either. So the USB mic that I got with the original Rock Band seems to be the only device that I have that works with the game.

So I need two more mics; and I don’t want to have to hold them, so my wife and I can sing along while playing instruments. Does anybody have any recommendations on the topic? Honestly, what I’d find most ideal would be something like a USB headset except without the earphones, so the game would recognize it as a mic. But if there’s not anything available like that, then I guess a mic plus a stand would work okay. Wireless is nice but not a big deal, we sit pretty close to the TV and Xbox.

random links: september 21, 2009

September 21st, 2009

big surf island

September 20th, 2009

I very much enjoy the VGHVI game nights on Thursday evenings (we’re playing the Beatles game this week, by the way), but they don’t interact well with my normal style of going through games. I have to budget my game play time fairly strictly; since I normally like to go through games in depth, this means that I’m lucky if I can finish two games a month. And my time budget for multiplayer is even more limited than that for single player, so I generally favor single player games.

The upshot is that, while I think our choice in VGHVI games to play is quite good, they’re almost always games that I have very little experience with. I give them a brief solo spin before to get my fingers used to the controls, and we frequently return to games; even so, I constantly feel like a novice on Thursday nights. (The two exceptions being Rock Band 2, which I play quite a bit at home, and Catan, the board game version of which I played several times a decade ago.)

Burnout Paradise is a perfect example of this. It was the game we inaugurated the VGHVI gaming nights with, and we’ve returned to it six times since. It’s a quite good game, but each time I finish another game, I’ve asked myself “what game do I most feel like playing next?”, and Burnout Paradise has never been the answer. The result is that, when playing it together, I always feel a bit lost: I know my way around at a basic level, but I still find myself making wrong turns frequently, and I’ve unlocked a tenth as many cars as other players. (Fortunately, these flaws rarely restrict from enjoyment of most of the game’s fine multiplayer modes!)

But then, earlier this month, we gave Burnout Paradise yet another go; for a change of pace, we decided to explore the Big Surf Island expansion. I wasn’t all that actively excited about the expansion going in—I’d gotten the impression that it was rural sandboxy areas, and in general I prefer a bit more structure than that—but playing it has completely changed that opinion.

First, let me step back and talk more about the original Burnout Paradise content. It’s an open-world driving game, with a quite large map. The objects in the world generally have excellent affordances, with yellow signs clearly inviting you to smash through gates to explore; blue cones inviting you to step on the gas and try a big jump; red billboards inviting you to figure out how to set up a jump and smash them; and so forth. (And you get a little reward in the form of an incrementing counter the first time you smash each gate / make each jump / smash each billboard.)

This makes it a fair amount of fun to just tool around the map with no particular goal in mind, seeing where your interests lead you; if you want a goal, though, most intersections present you with challenges of various forms (traditional races, stunt runs, aggression runs). Combine this with a well-done license system, a range of cars to earn, and focused multiplayer challenges (“all players should meet at location A on the map; then drive to the top of parking structure B and jump off of it to the top of the building across the street”), and you’ve got a really good game.

Having said that, it didn’t quite grab me enough to put in huge amounts of single-player time. I’m sure I would have enjoyed doing so; but I’m not lacking in games I haven’t played that I’m sure I would enjoy. And the big map is a double-edged sword: in particular, when a race led me up the mountains on the west side of the map, I’d often get a bit frustrated by getting lost on the roads up there, and then I’d find myself up there with relatively few events that I could use to try to make my way back. There are enough fun jumps that making your way down is pretty entertaining the first half-dozen times, but eventually it got a bit stale for me.

So, while I was happy to play it on VGHVI nights, I gave up on the single-player mode once I earned my second or third license. (Which is, admittedly, more time than I’d spent on single player compared to almost any other VGHVI game!)

And then came Big Surf Island. It turned out that the others had gone through it on a previous VGHVI night when I’d been on vacation, but they were willing to indulge me and go through the 10 Big Surf Island online challenges a second time. And I quickly figured out why: the challenges are excellent. From a newcomer’s point of view, they bring you all over the island, giving you a lovely tour of it without having you feel that you’re repeating yourself. The island, rather than being the monoculture that I’d feared, turns out to be a microcosm of all the different sorts of locations in the main game: mostly urban space, but some nice playgrounds even within that urban space, and there is a more rural side as well. Unlike the original game, though, the island is compact enough that you can get quickly from any point in the island to any other; the 10 challenges do a great job of showing you the high points of the island without exposing all of its secrets. Also, they take that “high points” quite literally: the island has many more vertical spaces than the original content did, and a couple of jumps in particular are just stunning.

So we spent an hour or so going through those, and then finished off with the usual tooling around various areas of the city. After which, looking at my Big Surf Island license, I realized that I had a very nice chunk of content remaining for me there. In particular, I had 15 single-player events waiting for me to accomplish them; I’d enjoyed the online challenges enough that I was confident that I’d enjoy playing through those challenges, and it was a a small enough collection that I figured I could spend a couple of hours going through them and stop, without its interfering with other games I was in the middle of playing. Also, I was somewhat surprised to learn that I’d only discovered 8 of the 15 events: the island is small enough that I would have assumed that we’d driven through all of the intersections while going around the island, but apparently there were more nooks and crannies than I’d realized?

So, that weekend, I turned on the game again and wandered around the island. I did complete all 15 of the events, and had quite a bit of fun doing so. The small size of the island meant that point-to-point races didn’t work, and I was fine with two-lap races with intermediate checkpoints. Also, some of the races were “island tours”, which forced you to go off the roads in various areas, giving many of the same benefits that the online challenges had. The trick runs had point targets higher than I’d had to deal with in the main game; I turned out to be ready for that, though, partly because the default island car is a really good trick car, partly because the more compact nature of the game meant that good lines were easier to find, and partly because it finally dawned on me how to properly use taps of the boost button to chain. (I can be a bit slow at times.)

While doing that, though, I got to appreciate more of what the game has to offer. Even with the small size of the island, I was spending some time just driving around to get from event to event; every once in a while, when doing that, a car zoomed by inviting me to take it down. Which isn’t specific to the island—in fact, I don’t think you can unlock cars that way by only playing island content, you have to beat events in the regular game to make cars available as challenges—but it’s yet another mechanism by which the game is always giving you something to do. Also, I’d somehow avoided ever trying the showtime mode until it came up in that VGHVI night; I’m not convinced that mode has long legs, but it’s quite a bit of fun in its own unique way, and there are few enough roads on the island that I figured I’d go and earn showtime road rules on all of them. And, once I’d done that, the natural thing to do was to earn time road rules on all of the roads, which had yet another surprise: again, despite the small size of the island and despite my finding all of the events, there were places on the main roads that I hadn’t noticed yet, places that I only saw when the timed road rules forced me to drive past them.

The upshot was that, three or so hours later, I’d completed almost everything on my island license and gotten quite a bit more appreciation for the different modes that the game offers, the different ways in which it supports various forms of exploration. (The only things on the license that I hadn’t done were a few gates, billboards, and jumps; the island is small enough, though, that I’m fairly sure I should be able to find all of those, and am in fact looking forward to returning to complete those challenges!) So, with that experience freshly behind me, I went back to the main game, and started going through events there, bumping up my license.

And it’s great stuff. As I’d come to expect, it does indeed turn out that there are quite a few areas of the city in the main game that I hadn’t explored at all: you naturally end up funneling through a relatively narrow set of routes on most of the courses, so there’s street after street that I hadn’t explored. In general, I prefer the more compact nature of the island, and would support having the next iteration of the game be somewhat denser than this iteration; but it’s great to have so much to do, the larger point-to-point races have their own charms, and showtime works better on the main city streets than on the island streets. I started exploring the burning routes (and have, as a result of all of this, gone from having four cars to having over 25 of them), and I fully support those as a gameplay option. My improved trick mode skills are carrying over, and I’m starting to find some of the good trick lines; if I don’t get a few hundred thousand points, I feel like I haven’t done my job, I’ve gotten 1.5 million on one of my runs, and I’m sure I could do rather better than that with more practice. Also, billboards have changed from something that I smash into when I happen to run into them into something that can get me to stop and think about where the approach is that would allow me to smash into them.

I don’t think I’m going to end up turning into a super completist for the game, but at this point I won’t rule out the possibility. I’m certainly going to earn my Burnout license and do burning routes for all the cars I can; I’ll probably use the time road rules as a vehicle for exploring the whole map, too.

So: quite a game. As I said at the start, great affordances; and a great variety of options, which (as I’ve come to appreciate) work very well together to introduce you to more and more of the possibilities of the game. The original and its expansion also provide what I suspect could be a quite fruitful lesson in the pros and cons of open-world game design: I love the idea of having a huge map with everything open at the start, but I also didn’t really start appreciating the game until I was given a much smaller subset of the map to focus on. I’m not sure how to meld the virtues of the two approaches, or indeed if my appreciation for the smaller space has more to do with my time constraints than any universal rule of game design (and, I should note, the sequence of licenses and the achievements do a good job of providing a staged set of goals even in the original game). But I would recommend that anybody who is thinking about open-world game design should give both the original game and the expansion a look: having an optional geographically restricted playground worked very well for this player.

art style: boxlife

September 15th, 2009

Art Style: Boxlife, like the last game I talked about, is a short puzzle concept game with a mix of set-piece puzzles and random input puzzles. This time, though, the mixture is treated in a more traditional fashion, by separating the two gameplay ideas into into two separate modes.

The set-piece mode is rather good, I think. One sign of a good puzzle game is: if I were lying in bed sick with a fever, would my brain be constantly making up puzzles for this game and testing me on them? Fortunately, I didn’t get to test that exactly (I was sick late last week, but I’d mostly stopped playing Boxlife before then), but my brain was happy enough to spend time folding boxes in the shower.

The random part of the game wasn’t, to me, nearly as successful. One flaw is that it’s (I assume) really hard to create random infinitely growing layouts that people can actually manage to cut up into strips of paper of the appropriate shapes without leaving a remainder. So the game gives up on that, and instead lets you discard excess bits at a point penalty. Which is not particularly elegant (and, in general, I don’t support points as a scoring mechanism in puzzle games: the valid scoring mechanisms are completion, time, and distance), though they do try to make up for that by giving you adorable little bits to add to a house scene as you earn more points.

With this game, I’ve finished the 10 dollars of DSiWare credit that came with the purchase of the system. My guess is that I’ll probably buy more DSiWare eventually (and, in fact, that what I’ll buy will be more Art Style games), but I’ve got enough else to play that it will take me a while to get around to doing so.

experts and expertise

September 13th, 2009

I want to talk about a couple of talks I attended at Agile 2009. Both relate to experts, expertise, and how one develops the latter to become the former.

The first was given by Jon Dahl, on “Aristotle and the Art of Software Development”. You can see video and slides of an earlier delivery of the talk. (I don’t think it changed much between deliveries; I also don’t know how much sense the slides will make out of context.) He viewed this subject through a lens of ethics: a Kantian view focusing on actions (and, in particular, universal principles motivating them); a Millsian view focusing on outcomes; and an Aristotelian view focusing on actors.

As you might suspect from the title of the talk, Dahl was most taken with the third point of view. (Which begins about 15 minutes into the video or 70 slides into the deck.) He presented Aristotle as linking ethics with happiness and a life well lived, and with virtue (in the sense of performing your function well). Honestly, it may be the case that many of these words had significantly different meanings for Aristotle than they would for us; in particular, Dahl glossed the Greek term that he translates as “happiness” as coming from “good” plus “spirit”; depending on how one takes the compound, I could imagine that as meaning “one whose spirit is good”, which makes the idea that ethical people are happy potentially more of a tautology than an an interesting statement.

Leaving these glosses aside: the point is that being good (virtuous) at something is inherent in the people who are good, rather than being rule-based. Which raises the question: how do you become a virtuous person? In the talk at Agile 2009, it sounded like at least some of Aristotle’s answer to that is fatalist: virtuous people are born, not made. (And—stop me if you’ve heard this before—virtuous people always turn out to be rich non-barbarian males. Sigh.) Watching the video of the RubyConf version, though, there’s a less fatalistic point of view: you gain virtue through practice and through modeling. So, to become an expert, you should hang out with experts, and practice; as you gain expertise, use your improved understanding to improve both your expert detection and your practice.

In contrast, if you’re a Kantian, instead of looking for good people, you look out for good principles, and follow them rigorously. In an Aristotelian point of view (again, with the caveat that it’s been decades since I’ve read any Aristotle myself, I’m just going by the talk), it would be possible to have virtues without formalizing the principles at all; furthermore, Aristotle’s virtues are means between excesses and defects (see slide 95; this gives me a Buddhist vibe, too), so following rules too strictly may actually be a sign that you’re straying from virtue.

The other talk was one by Mary Poppendieck on “Deliberate Practice in Software Development”. It discussed the nature versus nurture question of becoming an expert. My memory of the talk is that she strongly came down on the nurture side of that; rereading the slides, I’m not sure my memory is correct, but what is correct is that she claimed that nature alone is not enough: the way you get to Carnegie Hall is, indeed, to practice. Specifically: people need to practice their field for about 10,000 hours before becoming experts; and those who do eventually become experts practice longer and harder than those who don’t.

This last sentence, of course, doesn’t settle the nature or nurture debate: it may be that those who aren’t naturally gifted won’t become expert violinists no matter how long they practice. On a more meta level, it may also be the case that, without the appropriate nature, you’ll find practicing violin for 10,000 hours so offputting that you’ll give it up long before then. So it’s not clear (at least to me) to what extent nature is necessary; it does seem to be the case, however, that nurture (in the form of practicing) is necessary to become an expert, and in fact quite a bit of nurture is.

It’s not the case, however, that any old 10,000 hours of practice will do. As the title of the talk says, it should be “deliberate practice”, and Poppendieck listed four key factors in making the practice successful: a mentor, a challenge, feedback, and dedication. You want somebody else to guide you; you don’t want to be complacent; you want to know how your work is turning out; and, even with that, you need to put in the sweat. And she gave examples of how you might structure your work to support this. (Looking at it through a lean viewpoint; the slides don’t mention them, though the talk may well have, but I’ll bring up A3 reports.)

I was planning to turn this post into some sort of grand overarching pulling together of the above with some other articles that had come across my twitter feed. But, after listening to Dahl’s talk again, I’m having a hard time finding any nice symmetries. So, I’ll conclude with talking off the top of my head (as if I ever do anything else!):

Poppendieck’s recommendations don’t contradict the Aristotelian point of view: in particular, it sounds like Aristotle would wholeheartedly support having a mentor. Can we make other links: maybe Mill’s utilitarian point of view resonates with feedback, for example? Actually, I’m surprised at how hard it is to find explicit Kantian resonances with the deliberate practice model; is that a sign of something deep, or is that just a sign that the idea of having principles to guide us is to obvious as to not need stating? (As a side note, right now I’m finding the idea of following quite detailed Kantian principles in software development to be strangely appealing.)

The nature versus practice question is one that I’m interested in for both personal reasons and parental reasons. Take the question of how nature affects our practice habits: I’m a decent musician, but I was never one who was drawn to spend hour after hour after hour in practice rooms honing my art. I’m sure I could have become a better musician than I actually am, though I don’t know where my ceiling would be (if that concept even makes sense), but I do know that doing so would have required quite a bit more desire out of me. And I certainly support Poppendieck’s claim that not all practice is created equal: I’ve seen more than enough of people doing “practice” in ways that strike me as noticeably suboptimal.

As for nature and raw talent: I’ve seen enough exceptional people that I don’t believe that nature is irrelevant to becoming a world-class expert, from an outside point of view. But, from an internal point of view, it’s probably best to pretend that it is irrelevant: Poppendieck’s deliberate practice recommendations sound pretty solid to me, and I’m fairly sure that anybody following them and putting in the time would improve anybody’s skills. They also suggest a meta-approach: improve your skills at deliberate practice. Though, of course, you can’t just do that in isolation: you want to deliberately practice deliberate practice, which (among other things) means actually learning stuff.

Looking at holes in my own practice: of Poppendieck’s four recommendations, the area where I probably do worst is in finding mentors. (Indeed, in retrospect I probably should have spent rather more time acting as a mentor while managing the last few years. Sorry!) I imagine I shy away from feedback (both giving and receiving), too.

Important stuff; I hope we can all figure this out.

multiuser memorization

September 8th, 2009

I’ve been using a program I wrote to help me memorize stuff (mostly Japanese vocabulary) for more than a year now. And for almost all of that time, I haven’t modified the program at all: I had plans right from the beginning to add multiuser support (if for no other reason than to make it safely accessible outside my LAN), but ssh tunneling worked well enough for remote access, and in general the program worked fine for my purposes. (Well enough, in fact, that I have almost 5000 items stored in it!)

Buying an iPod Touch changed that, though. Once I took a bit of care to add a stylesheet that looked good on the device, I found that it was just as easy to go through my vocabulary on the iPod as it was on the computer, and it was hugely easier to fit the review into spare moments of the day. So I switched from doing one big review a day to at least three a day, plus a few more when I had spare moments around the house.

So that was a huge help. I still couldn’t review vocabulary during spare moments at work, though; and once I got an iPhone, the number of places where I could conceivably review vocabulary but couldn’t actually do so got even larger! This made making the program available safely on the internet a lot more urgent.

I ended up using authlogic for authentication support; there were a few odd testing issues, but in general it worked quite well. (I think I’ve figured out at least one of the testing issues; I hope to have time soon to confirm my hypothesis and submit a patch.) And once that was in place, adding the general plumbing to link items with users was straightforward. (And I learned something about Rails in the bargain.)

I still don’t necessarily recommend that anybody else use it. For one thing, I suspect that the spacing of my review sessions isn’t optimal: I’m using exponential spacing more out of optimism than any strong evidence that it’s the best pattern to use, and in fact I get the feeling that some of my gaps in the months-out range are a little bit off. And, for another thing, I’m sure that there are features that I don’t need that others would find important; I can’t promise to be able to add them.

I will, however, strongly recommend that, if you have an iPhone or an iPod Touch and are considering using some sort of timed review program, that you don’t choose a desktop-only solution (unless you have a desktop computer in your bathroom): it makes a huge difference to be able to nibble away at your items when you have free time instead of having to do larger batches at less frequent intervals. And I hope that I’ll be able to add feature requests that I deem sensible without making you wait too much; alternatively, I’m happy to make a Mercurial repository available if you want to tinker with it yourself. I will also back up your data offsite nightly (though I make no uptime guarantees for the server my program is hosted on: it’s my home computer, and if something bad happens while I’m on vacation, it could take a couple of weeks to get it fixed). And you should be able to export your items / timing information as an XML file at will, if you want to change solutions. (Though it’s your problem getting that XML file translated into whatever format the other solution wants!) Having used it for more than a year gives me confidence that I’ll remain interested enough that it shouldn’t disappear for the forseeable future.

So if any of you wants to give it a try, let me know and I’ll set you up with an account.

Incidentally, I mentioned a few months ago that I was feeling a bit swamped with projects and conference prep, and was planning to step back some from my normal blogging schedule. (Especially the video game related parts of it.) Fortunately, Agile 2009 is now over (though, don’t get me wrong, I enjoyed both the preparation and conference very much!), and some of my side projects are winding down, so things should be getting back to normal around here. In fact, over the last week and a half things have been much more prolific than normal on this blog; I don’t plan to keep that up, but it is very nice both to have the time and energy to blog like that and to remind myself that I really enjoy doing so.

this is why you write the failing test first

September 7th, 2009

I finished adding multiuser support to my memory project this weekend. I’d added the ability for users to log in and out while I was on vacation this summer, but I hadn’t actually linked up the users with their lists of items to memorize.

The relevant models are a User model and an Item model. A user has_many :items; part of the Item class definition was the following:

class Item < ActiveRecord::Base
  ...
  def self.next
    find(:first,
         :order => "next_review_time",
         :conditions => pending_item_condition)
  end

  def self.pending_review_count
    count :conditions => pending_item_condition
  end

  def self.pending_item_condition
    ["next_review_time <= ?", Time.now.utc]
  end
  ...
end

As written, those would, for example, add up the total count of all users’ pending items; I wanted instead to be able to ask those questions on a per-user basis.

The has_many declaration gives me a collection user.items for each user. And if I pass a block to has_many, I can add methods to that collection; that seemed more stylish than, for example, adding a user parameter to the above methods. So I modified my User unit tests to make sure that there were items owned by multiple users, and copied over the Item unit tests for the above methods, replacing, e.g. calls to Item.next with calls to user.items.next.

Which I expected to fail, complaining about an undefined method “next”. But not only did the tests not fail for that reason, they in fact passed, ignoring the items for other users! At first, I assumed I’d made a mistake in my tests, but no: when I replaced the calls to user.items.next with calls to Item.next, they failed as expected. So the functionality I wanted really did seem to be working without my having to lift a finger.

But how? I could imagine some sort of method_missing implementation that forwarded functions on the collection to functions on Item. But if it were doing that, how was the functionality getting restricted to items owned by the user in question? I would hope that it wasn’t doing a broader search in SQL and then subsequently ditching inappropriate items in Ruby; sure enough, a look at the logs shows that the SQL queries that are issued do include the user_id restriction.

I haven’t verified it yet, but the only hypothesis that I’ve come up with so far is that the collection objects that are returned by user.items start off life as clones of Item; so they have all of the class methods on Item. And then some key method (find, say) is overridden so that the user restriction always gets applied, and all other lookup methods are implemented in terms of that key method, so they get the restriction in question for free.

Which, once I thought about it, makes sense. Consider Item, not as a class but as an object: you can think of it as a collection object, namely the collection of all items. With that in mind, it makes sense for other objects that are also collections of items to be closely related to it, and if we can express that tight linkage in terms of the implementation, by thinking of Item as the primordial collection of items, so much the better!

An interesting journey. At first, I thought I must be writing bad tests; then I thought I was seeing magic; and eventually I came around to a realization that what I was seeing made a lot of sense conceptually, so I was happy that I was working with a language and a framework where I could get such sensible behavior for free. And, no matter what, it was a useful reminder that there’s a reason why the TDD cycle is red, green, refactor, not just green (with simultaneous test+implementation changes), refactor: if I’d done the latter, I would have missed a useful learning opportunity.

Though there’s a postscript to the story. I’d learned that my original implementation idea was unnecessary; the question remains, though, whether the original implementation idea was a good one or not. And, after giving it some thought, I decided that I preferred having these methods in the User model rather than in the Item model. If I left them in Item, it would be easy to write code representing concepts like “what’s the next item that any user will be asked?” or “what’s the total pending item count across all users?” Which aren’t natural questions to ask, so I was setting myself up for bugs by leaving those methods in Item.

So, with my tests in place, I moved them to User:

class User < ActiveRecord::Base
  ...
  has_many :items do
    def next
      find(:first,
           :order => "next_review_time",
           :conditions => pending_item_condition)
    end

    def pending_review_count
      count :conditions => pending_item_condition
    end

    def pending_item_condition
      ["next_review_time <= ?", Time.now.utc]
    end
  end
  ...
end

Leaving me where I expected to end up when I began, but having taken a much more interesting route.

random links: september 6, 2009

September 6th, 2009

art style: pictobits

September 5th, 2009

Art Style: Pictobits is a funny mix for a puzzle game. Many puzzle games challenge you by throwing random input at you faster and faster until you break. (Tetris is a classic example.) And many puzzle games give you set-piece challenges that, while perhaps requiring some quick thinking and precision (and even having a bit of randomness), let you develop approaches that are targeted to the layout of a specific level. (Bust-A-Move levels can be examples of this.)

Pictobits, however, is in the middle. At first, it looks like a straightforward example of the “faster and faster random input” school: blocks fall from the top of the screen, the game’s designers actually manage to come up with a new but not particularly gripping twist on how to deal with that, and if you survive long enough, you win. (And unlock a picture from an NES game: Nintendo loves milking the nostalgia.)

That winning is the first sign that it’s not in the “faster and faster” school: you’re not supposed to win in games like that! Anyways, as you progress through the levels, you first run into one additional gameplay wrinkle, and, as the stages harder, you start to fail. And, on replaying the levels, you notice that the patterns seem pretty familiar, that you run into the same sorts of shapes at the same points in the level, and have to figure out ways to quickly arrange your squares to eliminate most or all of the falling shapes most thoroughly. So it really is a “set piece” game, it’s just that the set pieces are quite a bit longer than in most games of that subgenre and have quite a bit more flexibility in how to deal with them.

And then, if you’re like me, the game eventually gets hard enough that you stop playing. Which is okay. It’s the first DSiWare game that I bought; it would have cost me all of five dollars, except that you get ten dollars of credit when you purchase the system, so I effectively got it for free. And I got five bucks worth of enjoyment out of it: a puzzle system with a few new ideas, that ultimately didn’t come together for me, but that I was perfectly happy to have spent two or three hours with, to have had with me on a recent plane ride. I remain a supporter of Nintendo’s Art Style experimental series: I’ve enjoyed the games that I’ve tried in it, and I imagine one of them will end up really pushing one of my buttons.

rhythm heaven

September 4th, 2009

I feel like I should have more to say about Rhythm Heaven. It’s a rhythm game; I like rhythm games. It has quirky Japanese music and images; I like quirky Japanese music and images. It’s a small-scale experiment that was quite popular in Japan; I’m all for that sort of thing.

But I don’t have much to say. I played the game, I liked it okay, I didn’t like it as much as I expected. Part of that has to do with the progression mechanic: you have to finish each stage before progressing to the next one, and there isn’t clear feedback on what you did wrong. So when I found myself stuck at a stage where things just weren’t going right, I just got annoyed. Having said that, I didn’t have much trouble making it through all the regular stages; but I didn’t have the energy to either systematically get bonuses on the stages to unlock further rewards or to go through the harder versions of the stages that appear after you hit the credits. (At least I assume that all the stages after the credits are harder versions, I stopped after the first one, where I did what seemed decently well to me but not well enough to progress. Which is another way that the game doesn’t give you feedback: if you fail, you don’t know how close you were.)

The images and music were pleasant enough, amusing enough. Several of the pieces of music got stuck in my head, but that’s not necessarily a good thing: in particular, this happened to me with the very first stage, whose “music” consists of playing five notes of a scale over and over again. I have no idea why my brain decided to latch on to that, but I don’t particularly thank my brain or the game for that outcome.

Don’t get me wrong, I’m happy enough to have spent a few hours with it, but I’m also glad that I stopped when I did and moved on.


Not much discussion of the game on the blogosphere, but I did enjoy this Offworld article on otaku culture.