[ Content | Sidebar ]

random links: december 29, 2009

December 29th, 2009

bioshock

December 27th, 2009

I was intending for BioShock to be one of the first games I played on my 360 but, well, one thing after another came up, and it took me a couple of years to get around to the game. In the mean time, it has garnered some amount of discussion, so I’m fairly sure I won’t have anything particularly novel to say on the subject, but that’s never stopped me before…

At any rate, as soon as I stepped into the entry area to Rapture and heard a slightly scratchy rendition of Beyond the Sea, I was hooked. The musical selections really are wonderful—I was going to write that it’s the game I own whose soundtrack overlaps the most with my iPod, until I realized that was patently false, but it’s right up there, and it’s definitely the game I own whose soundtrack overlaps most with the music sitting on top of my piano. And the music is just one aspect of the wonderfully nostalgic world they’ve created: I love the industrial design, the signs and artifacts that are sprinkled about. My only quibble is that the sequences of rooms often didn’t seem to fit together as a coherent three-dimensional chunk, but I can’t think of a first-person shooter that’s handled that better.

Very nice gameplay, too: I don’t like FPSes in general, and I was a bit worried that I’d be paralyzed by the choice of different plasmids; the latter didn’t happen, though, and I rather enjoyed some of the alternative gameplay mechanisms. (I’m a sucker for picture taking as a game mechanism, and the hacking minigame was pleasant enough.) And I appreciated some of the thoughtful choices the game made, e.g. not allowing me to waste my film taking pictures of enemies whose research I’d already maxed out, instead of treating film as an ammo like any other.

I could go into more detail about all of that, but, as with so many other people, all I really want to talk about is the Little Sisters. When I first heard about them and saw pictures of them in the prerelease coverage of the game (back when I actually paid attention to prerelease coverage of games!), they freaked me out enough that I wasn’t sure I would be able to play the game at all. I’m largely inured to video game violence, but for whatever reason (perhaps because I have a daughter myself, who was 7 or 8 years old at the time), those pictures really hit home, and I was not at all looking forward to playing through a game with such imagery in it.

I eventually came around, and I’m glad I did. But, with that as my initial impression of the game, the thought of harvesting Little Sisters never crossed my mind. In general, I’m not very good at appreciating “moral dilemmas” in video games (sorry, BioWare), because, given a choice, I can rarely imagine following one of the options. And this game would be an example, except that there’s a third, covert choice here.

Consider: I’ve been thrust into an extremely dangerous and extremely strange world. Almost everybody I meet seems to want to kill me; there’s a voice on the radio acting nice enough, but those I encounter in the flesh are rather less pleasant. And, in the middle of all of this, there are these strange little girls, with “Big Daddies” hulking nearby; neither of them wants to hurt me, the Big Daddies protect the girls, and the girls are evidently quite fond of the Big Daddies. (Or of “Mr. Bubbles”, as they call them.)

Given this, what kind of person would kill the Big Daddies? The main answer, I think, is a psychopath: either somebody who is so amoral as not to care, or so afflicted with a sort of white man’s burden megalomania as to think they can march in and set things to right. (Without doing any of the real work that is actually involved in looking after young children in even a normal environment, let alone a murderous one.) But somehow, in this game, killing their protectors and leaving the girls with nobody to guard and care for them in a place like Rapture is supposed to be the good choice?

I assume that the game designers had some uncomfortable thoughts along the same lines, because of the way they structured the first Little Sister encounter. In that one, the Big Daddy is already dead, and you have to save the Little Sister from a splicer yourself. After which, you meet Tenenbaum for the first time; she makes a case that “rescuing” the little sisters is good for them, but does so in a context that paints her as an unreliable narrator.

Given this, using the magic device Tenenbaum has given you that is supposed to cure the Little Sisters is horrifically irresponsible at best; and, even if you’re tempted to do so, not stopping when the girl cries out in horror is, well, beyond my powers to describe. I felt intensely uncomfortable, but of course the game doesn’t give you a chance to stop when she complains. (Incidentally, when rescuing Little Sisters here and over the course of the game, l Iearned something about how I act when I’m uncomfortable: every single time I rescued a Little Sister and heard those protests, I raised my left arm and scratched the back of my head. What a bizarre tic, I’m not sure I wanted to learn of its existence.) Stopping when confronted with the choice would have been conceivable, but I’m almost positive that the game wouldn’t have let me continue without doing something to the first Little Sister. (And, in the extremely unlikely case that it would have let me proceed, I’m also sure it wouldn’t have let me actually look after her.)

And, once you’ve rescued the first Little Sister, she thanks you, setting you on the slope to further evil: the next time you meet one, she’s with her Big Daddy, but you can rationalize (given all the other murder you’re committing in the game) killing her protector, because the end result is for her own good, right? (It is, of course, for your own good, but we’ll have to construct some sort of rationalization that goes beyond that.) Which I dutifully did because the game expected that of me—given that I wasn’t going to stop playing the game, I decided to go along with its design—but doing so broke my heart every time. (As did seeing a Big Daddy alone later on in that same level—in retrospect, watching a video, it wasn’t the Big Daddy protecting the first Little Sister I’d rescued, but that’s how I interpreted it at the time. Even if you accept that rescuing the Little Sisters is best for them, how can you justify killing their surrogate fathers while doing so?) Unlike with the first Little Sister I assume that it is possible to avoid killing any of the later Big Daddies; if I were more given to alternative playthrough styles, trying the game that way would be very high on my list.

A powerful game, and a very good one. Though also, in its own way a very depressing one: it’s one of the pinnacles of our art form, but it devotes most of its art to exploring adolescent Randian power fantasies instead of, say, exploring a topic like what it means to be a parent. (And that final movie shows just how paint-by-numbers the game designers’ basic approach in that area seems to be.) Sigh. Maybe I should come around to Chris Hyde’s point of view and turn more of my attention elsewhere.

tiki farm constraints

December 20th, 2009

(First, a few notes: 1) I have a conflict of interest with respect to the game I’m discussing here. I haven’t worked on it and I don’t have any particular inside information about anything I’m speculating about here, else I’d have to be rather more careful about what I write, but obviously I want it to succeed. 2) Normally, games don’t have a canonical URL to refer to, so I link to a page I create for them in my database. Facebook games (and Flash games, for that matter) do have a URL, but, after some reflection, I am going to maintain the same practice, in order to maintain my automatic game-to-blog back references and to avoid treating them in a non-parallel and potentially second-class manner. I will add the link to the game on the database page, though, so if you want to play them, two clicks will get you to the right place. 3) Facebook games change a lot more quickly than disc-based games, so anything that I say here could be inaccurate by the time you read this. In fact, with the magic of A/B testing, the game that I see could be a significantly different game from the game that you see, even if we’re playing at the same time!)

We launched a couple of games last week: Wild Ones is a social networking take on Worms, while Tiki Farm is our latest entry into the farm genre. And they’re both a lot of fun, go play them! (And send me lots of goo gun ammo…) I want to talk about Tiki Farm in particular for a while, because it’s managed to work its way into my brain in ways that I didn’t expect. (Aside from its theme song, which I find myself whistling at random moments…)

In typical competing farm games, the main constraint (assuming your goal is to level up and accumulate in-game cash) is the player’s time: you can plow or plant all you want, so as long as you’re willing to put in the time to return to your farm to harvest the crops, you can make quite a bit of in-game money. Actually, that’s not quite true: FarmVille puts a limit on the size of your farm unless which you can only expand by having many friends playing the game or by paying its publisher real money (not in-game money); that’s a pretty clever idea from a virality / profit point of view, but it’s still a fairly coarse-grained cap. (Though, I should add, one which emphasizes that the main constraint is the player’s time: do you really want to spend the time to regularly plow and harvest 60 plots? And of course withering crops are another way in which the player’s time is emphasized as a constraint.)

In contrast, the primary constraint in Tiki Farm is the number of plots available: you start off with only ten or so plots available, and you only get access to two more plots each level. Which left me a bit nonplussed at first—that’s kind of a lame artificial constraint, no?—but as I made it through the initial levels, my opinion of that feature changed. For one thing, I found that not having to worry about picking the size (in terms of plots) of my farm relaxed me: a whole set of conscious and subconscious worries went away. (It’s similar, perhaps to the way I relaxed and started enjoying Deus Ex a lot more once I hit the ammo caps.)

But, for another thing, having such a clear constraint focused my game play in a way that it’s not always focused in other similar games. As the Theory of Constraints teaches us, having a constraint isn’t a bad thing: assuming that your constraint is a sensible one, you can use it to focus your actions, by subordinating the rest of your system to that constraint. What that means in Tiki Farm is that you want to use your other resources in such a way that your primary constraint is being used at its maximum capacity. In other words: you always want to be growing something in those plots.

Which is easy enough to accomplish: the in-game currency (shells) is plentiful enough that you shouldn’t be in serious danger of not being able to buy seeds. In particular, you can sell any crop for more than you paid for it, so as long as you make the habit of replanting as soon as you harvest, you’ll be fine. At which point the question becomes: how frequently do you want to return to the game? Once you’ve made that choice, it’s pretty obvious which crop to choose (yams during my initial burst of power-leveling in the game), and you can get a nice little economy going, periodically earning enough excess profit to let you buy other items to decorate your island.

Or so I thought, until the first time when I wanted to do a purchase that would last me overnight. I’d been planting yams (a 15 minute crop); I wanted to shift to a longer timespan crop, and the obvious candidate was taro root (an 8-hour crop). The problem is that yams sell for 23 shells each, while taro root costs 45 shells; I’d get enough higher profit for taro root to be a better choice overnight, but I couldn’t afford to fill my plots with taro root based on the sales I’d just made! (It didn’t help that I’d recently sunk some of my profits into a very stylish cocktail chair.)

So, basically, working strictly on a throughput basis wasn’t good enough: a changing time investment mix led to a changing crop mix led to a changing fixed cost investment mix. In lean terms: I’d been concentrating on muda (waste, in the form of excess inventory of shells), but all of a sudden I needed to worry about mura (unevenness) instead! To be concrete, it’s a lot easier to plan a straightforward Tiki Farm economy if I’m going to play once a day at the same time (just pick a good 1-day crop and stick to it) than if I’m going to play multiple times during the day and (of course) not play at all while I’m sleeping.

An interesting lean lesson there; I still want to spend some time analyzing the economy to figure out the tradeoffs between inventory, throughput, and time. But without such a clear constraint, I’m not sure these issues would have arisen in a fashion that grabbed me so much.

Though, of course, the constraint isn’t as clear as I’m painting it. For one thing, you use plots to grow crops that you plant from seed; you can also buy trees, however, which bear fruit indefinitely after you plant them. So, in effect, a tree is a plot that you can purchase and that’s particularly inflexible; if you want to grow your economy as quickly as possible, you should siphon off your profits towards trees.

And that’s only if you’re playing solo. If you’re playing with friends, you can give each other gifts; a basic question there is, are trees better gifts or seeds? If somebody gives you a seed, it’s pure profit when it grows, so if you have enough friends giving you seeds, the amount of shells you can make increases vastly. But trees give you shells in perpetuity, so they’re probably still a win in the long-term; then again, you have a fixed island size as a hard constraint, so it’s conceivable that the time scales in question are long enough that trees aren’t as big a win as I think they are. (I certainly won’t turn up my nose at either sort of gift from my friends!)

And, while plot size is a major constraint, it’s not fixed: the number of plots does increase as you level up. This suggests another potential win for seeds: they give you opportunities to get experience points more quickly, earning you more plots. I should actually take the time to understand experience point opportunities better: in particular, do all seeds give you the same XP, or does it vary with the seeds? And, again, the social nature of the game increases the complexity here: for a while, a significant component of my leveling up was spending time clearing bugs off of my friends’ farms.

Speaking of which just what are the implications of helping others’ farms? As far as I can tell, opportunities to help others’ farms in FarmVille are largely artificial (I never see raccoons on my own farm); is that true for Tiki Farm, too, or does clearing bugs off of a friends’ farm have a real effect? If it does, it’s a double-edged one: on the one hand, I’m helping their crops grow faster; but, on the other hand, I’m depriving them of the opportunity to earn XP from clearing their own bugs. I kind of hope that clearing bugs is a real effect; if so, we have a much gentler version of the crop-stealing mechanics that are apparently present in Chinese farming games.

Fun stuff; I hope the game does well, there’s more there than meets the eye. Incidentally, if you’re not already my friend on Facebook, please send me a friends request; just identify yourself as a blog reader if you’re not sure that I know who you are. Or, alternatively, don’t send me a friends request: the only items I post on Facebook are stuff forwarded from my Twitter feed plus Facebook-game-related stuff. So if you want to see the Facebook game items or if you don’t use Twitter, then Facebook is the place to go; otherwise, you’re better off just sticking with following me on Twitter. (If you want my microblogging at all!)

airfare get!

December 17th, 2009

My heartfelt thanks to all of you who contributed to Michael’s and my efforts to gather money to fly Ben to GDC. We raised $935.50 from 40 contributions by the deadline, and a couple other people chipped in right after the widget closed to bring us up to the $1100 goal, making the effort a rousing success.

I am extraordinarily grateful to all of you who contributed; it was a wonderful sign of what this community means to all of us, and I’m sure that Ben will more than repay the trust that you have placed in him. I’m very much looking forward to meeting him in person (along with any of my other blog readers who will be there; I registered for GDC myself earlier this week!) and reading his articles that will come out of this.

push polling

December 16th, 2009

I just got called for survey purposes (about the economy, health care, and the like); I thought that it was a bit odd when they asked me if I was a blogger (not just a journalist), but hey, maybe that’s the new best standard? And they seemed happy enough when I said that I generally blog about entertainment topics. At any rate, I was willing to devote five minutes of my time to the cause of statistics.

Or at least I was until I heard the first question: “do you think the country is basically going in the right direction or do you think things are going pretty seriously off track?” Yeah, survey purposes, right.

Time to go e-mail my various representatives, I think, just to provide a bit of a nudge in the direction I want?

Update: I have been convinced by some of my commentors that, at the very least, the title of this post is inappropriate.

rock band 2

December 13th, 2009

I try to write a blog post after every game that I finish playing (or, in this case, take a temporary break from playing), but really: what more do I have to say about Rock Band 2? As Bill Harris put it, it’s “more of a lifestyle than a game”, and it’s a lifestyle that I’ve discussed enough here. Well, actually, I probably haven’t discussed it enough here, but thoughts are fleeting at times, and I’m not coming up with further inspiration at the moment.

If there’s a game I’ve played more this decade, though, I don’t know what it is.

small steps in haskell

December 7th, 2009

One of my biggest surprises when learning Haskell has been how my typical test-driven development steps fail: it’s easy to write a couple of tests and get them to pass gracelessly, but surprisingly quickly I run into a test that I can’t get to pass without actually being smart, forcing me to make a leap that’s uncomfortably large from my previous position.

I ran into a situation like that last night, and I decided to try to take that big step apart; here’s what I ended up with. The problem in question was exercise 3 on page 84: it told me to print out the first word of each line of its input. My first two tests were as follows:

firstWordsTests =
    TestList["empty" ~: "" @=? firstWords "",
             "one line" ~: "first\n" @=? firstWords "first words\n"]

which I got passing with this implementation:

firstWords "" = ""
firstWords line = head (words line) ++ "\n"

The third test was where I ran into trouble, though:

firstWordsTests =
    TestList["empty" ~: "" @=? firstWords "",
             "one line" ~: "first\n" @=? firstWords "first words\n",
             "two lines" ~: "one\ntwo\n" @=?
                         firstWords "one line\ntwo lines\n"]]

How can I write a pattern which will match the third case? Not at all clear to me, but at least it points out the direction I’m going in: I want to add lines to the test cases until some sort of looping construct falls out. Given that, let’s try to refactor against one red bar in a way that brings out the decomposition into lines that’s latent here.

Fortunately, Haskell has a function lines that transforms a string into a list of the lines making up that string; let’s rewrite firstWords to use it. The smallest step that I managed to come up with to do so was this:

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray [] = ""
    concatFirstWordsOfLineArray [line] = head (words line) ++ "\n"

Which is a larger step than I’m comfortable with, but at least it’s small enough conceptually that I don’t feel like I’ve leapt into the unknown. I’m not sure what to call this sort of transformation—maybe “Insert Intermediate List”?

(Incidentally, the observant reader will note that this transformation isn’t a refactoring: it preserves the red and green bars, but the nature of the red bar goes from an unexpected result to an exception being thrown. That’s okay with me; what I’m doing is still useful as an implementation pattern. Hmm, maybe I should try writing these transformations up in an Alexandrian style?)

And, after that step, it’s now obvious how to get my test to pass:

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray [] = ""
    concatFirstWordsOfLineArray [line] = head (words line) ++ "\n"
    concatFirstWordsOfLineArray (line1 : line2 : []) =
        (head (words line1) ++ "\n") ++ (head (words line2) ++ "\n")

At this point, we have some obvious code duplication; Extract Method turns it into

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray [] = ""
    concatFirstWordsOfLineArray [line] = firstWordLine line
    concatFirstWordsOfLineArray (line1 : line2 : []) =
        firstWordLine line1 ++ firstWordLine line2
    firstWordLine line = head (words line) ++ "\n"

At which point it’s pretty obvious that we’re doing something quite similar to all elements on the list, so we want to transform this into a map plus a subsequent operation. And, in fact, the subsequent operation is concatenating all of the list elements together; keeping that in mind, we do an Insert Intermediate List on the third case, giving us:

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray [] = ""
    concatFirstWordsOfLineArray [line] = firstWordLine line
    concatFirstWordsOfLineArray (line1 : line2 : []) =
        concat [firstWordLine line1, firstWordLine line2]
    firstWordLine line = head (words line) ++ "\n"

That makes the structure clear for the third branch, and also makes it obvious that we can write the first two branches the same way:

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray [] = concat []
    concatFirstWordsOfLineArray [line] = concat [firstWordLine line]
    concatFirstWordsOfLineArray (line1 : line2 : []) =
        concat [firstWordLine line1, firstWordLine line2]
    firstWordLine line = head (words line) ++ "\n"

So now we have our map operation:

firstWords input = concatFirstWordsOfLineArray (lines input) where
    concatFirstWordsOfLineArray lines = concat (map firstWordLine lines)
    firstWordLine line = head (words line) ++ "\n"

(These last three steps seem like they should all go together: Extract Identical List Operation?)

Now the code is looking nice (and, in addition, would pass more tests should we choose to write them), and the challenge turns towards expressing it as tersely and clearly as possible. First, Replace Unaltered Parameter with Composition to get:

firstWords = concatFirstWordsOfLineArray . lines where
    concatFirstWordsOfLineArray lines = concat (map firstWordLine lines)
    firstWordLine line = head (words line) ++ "\n"

Do it again (throwing a bit of currying into the mix):

firstWords = concatFirstWordsOfLineArray . lines where
    concatFirstWordsOfLineArray = concat . (map firstWordLine)
    firstWordLine line = head (words line) ++ "\n"

And, by now, concatFirstWordsOfLineArray clearly isn’t pulling its weight, so we Inline Method:

firstWords = (concat . (map firstWordLine) . lines) where
    firstWordLine line = head (words line) ++ "\n"

I still want to make this shorter, which in Haskell land frequently seems to mean using Replace Unaltered Parameter with Composition; to that end, we rewrite the latter definition as

firstWords = concat . (map firstWordLine) . lines where
    firstWordLine line = (++ "\n") . (head (words line))

That lets us turn it into:

firstWords = concat . (map firstWordLine) . lines where
    firstWordLine = (++ "\n") . head . words

at which point we can Inline Method again, and get:

firstWords = concat . (map ((++ "\n") . head . words)) . lines

Which is short, but you have to think a little bit as to what it means; what I’d like to do is find a way to get the unlines function in there, which is a function that takes a list of strings and concatenates them with newlines between. The next step in that direction is to realize that map distributes over function composition; so we Distribute Map, giving us

firstWords = concat . (map (++ "\n")) . (map (head . words)) . lines

and, indeed, the first half of that is exactly unlines:

firstWords = unlines . (map (head . words)) . lines

Phew! The code is now about as terse as I can think of while passing those three tests, and it passes several other new tests that I might think of to boot. And, as a bonus, this version is clearer than any of its predecessors: we split the input into a list of lines (lines), then we grab the first word out of each of those lines (map (head . words)), then we smoosh all of those lines back together (unlines). Though, as Bryan pointed out to me, I forgot to write one test (which I’ll leave as an exercise for the reader), but getting the code to pass that last test was a lot easier in this form than it would have been in forms further up the blog page. (Bryan also had some suggestions for how I might use QuickCheck instead of HUnit to test this, which I hope to be able to follow up over the coming months.)

If this sounds interesting (or if it sounds bizarre but if the idea of learning Haskell sounds interesting despite my peculiar approach), it’s not too late to join the reading group: none of us are moving at a very fast pace, so it shouldn’t be much trouble for a newcomer to catch up.

random links: december 6, 2009

December 6th, 2009

professor layton and the diabolical box

December 2nd, 2009

I don’t have a lot to say about Professor Layton and the Diabolical Box—it’s a great game (my wife and I both blew through it in a few days, and Miranda also zoomed through most of it), but it adds essentially nothing to the formula created by its predecessor.

One thing that struck me: when you launch the game from a save, it gives you a little cut scene that brings you back into the game world by reminding you what you’ve just done and where you’re going. A nice touch, one that games could adopt more, though perhaps it’s better suited to 2D games than 3D games.

There hasn’t been much blogged about the game, but I did run into a few posts: from the Experience Points Blog, Jorge Albor gives us a review and Scott Juster discusses the main character and the game’s linearity; Chas of Boldstate talks about how the tea-drinking minigame has changed his life.

burnout paradise

November 26th, 2009

As I mentioned a couple of months ago, the Big Surf Island expansion expansion to Burnout Paradise got me appreciating the game in a rather more visceral way than I had before then: all the different gameplay options crammed together in one small package hooked me on the game fairly seriously. So I decided to go back and give the main game more of a try, both for fun and to see if I could make sense of it all.

It’s a rather open-ended game; I could potentially keep on playing it indefinitely, but right now I’m playing too many open-ended games rather than too few. (Until a couple of weeks ago, the only games I had in progress were Burnout Paradise, Rock Band 2, and The Beatles: Rock Band, which could easily work together to use up all of my free game-playing time for half a year if I let them.) So I knew that I had to set goals for my Burnout play: clearly I should try to get a Burnout license, but equally clearly I shouldn’t try to get an Elite license, and I should probably throw in some more exploratory goals as well.

While earning my Burnout license, I put a heavy emphasis on burning routes, because I hadn’t completed almost any of them. (In fact, when I started my recent round of play, I’d only unlocked five or so cars from the original game.) And I’m really glad I did: for one thing, on a pure gameplay level, I enjoy them more than the traditional race events. And collecting stuff is always nice, too. But it also game me a feel for the different cars: in particular, doing a road rage event in the higher licenses with an early trick car is a completely different feel from doing that same event with a good aggression car. (And getting a takedown rampage is very satisfying indeed!) I still like to use a good trick car most of the time, and I haven’t yet found much use for speed cars, but I’m glad to have been exposed to the variety.

So that worked well to get me more familiar with the different events and with the different cars. But I wanted to spend time exploring the environment as well: to that end, I decided to try to get 100% completion on Big Surf Island, and to do all the time road rules.

The former brought home the difference between the different discovery objectives. The smash gates are everywhere, giving you lots of little rewards, but finding the last few can be a bit annoying; not too annoying, though, it turns out. (The small size of the island may have helped.) The jumps are much fewer in number; the plus side is that they’re a lot of fun to do, but the down side is that there’s no visual clue as to whether or not you’ve already completed a jump. (Fortunately, I ended up completing all the Big Surf Island jumps while looking for other stuff.) And the billboards are by far the most satisfying of the three: they’re obvious enough that you can locate them all without too much work (though it didn’t hurt that I had Miranda as a spotter while I was driving around), but once you’ve found one, it can take several minutes to figure out the proper approach to it, and a couple more minutes to actually pull off your jump at the correct speed and angle. Which, in the wrong situation, could be frustrating, but somehow that never happened to me.

So finishing Big Surf Island was great. (And unlocking toy cars was a nice bonus!) But I still wanted to delve into the layout of the main game a bit more deeply; doing the time road routes on every road seemed like the best vehicle for that, since it would force me to cross every road on the map.

Which I would normally have assumed that I would already have done, if there weren’t several counters that proved to me otherwise. At this point, I’d done close to a hundred missions, and spent several hours just wandering around during VGHVI multiplayer nights: the map wasn’t that large, surely I’d driven all over it by then, except perhaps for a few cleverly hidden crannies? But no: I hadn’t yet found all the events, even though they’re all located at intersections; I hadn’t found a couple of the drive-throughs; and there was even a car park somewhere that I hadn’t found. (That last still boggles my mind: there aren’t that many, they’re all right there in the city, but I still didn’t find the last one until I had something like 15 road rules left to earn.)

This is an area of the game’s design that I came to appreciate more and more. When you first start playing the game, the events seem somewhat random: you can trigger an event by pulling up to any of over 100 intersections in the city, many of them have you driving to another location, and my initial assumption was that the ending locations were distributed in much the same way that the starting locations were. This turns out not to be the case, though I didn’t realize that until I had put quite a bit of time into the game: in fact, there are only eight final destinations.

One benefit of this is pretty straightforward: the map and its wealth of alternate routes can be overwhelming at first. And having a fixed list of destinations helps you get a grasp on this: you may be starting at a relatively random location (or you may not be—for all I know, the starting locations for events with a fixed destination may be carefully chosen as well), but it doesn’t take too much driving along towards the destination before you start funneling onto a familiar route, which you become more and more familiar with as you play more of the game.

But there’s a flip side to that funneling: there are various routes that are almost never going to be natural paths to take to get to those eight destinations. And this, in turn, leaves surprisingly large areas of the map that you’re less likely to have explored; even with some amount of wandering on your own, you’ll still have several lurking gaps on your map.

And the process of becoming aware of those gaps is brilliant: rather than the game designers overtly telling you what you’ve done and what you haven’t, they simultaneously give you counters that you can use to measure how much is unexplored (events / drive-throughs found) and a game play mechanism that lets you keep track of those areas one by one if you take the effort to do so (time road rules). Also note that ticking off the latter requires you to complete a task, not just to be present in that location: this not only made the ticking off more interesting than it would have been otherwise but also served as a further masking effect, hiding the fact that there were locations to tick off (as opposed to actions to tick off that happened to be at those locations) until I’d put quite a bit of time into the game.

The result is the most subtly unfolding open-world game I’ve ever seen: on the one hand, the entire map is open right from the start (no bridges to magically get repaired), on the other hand you’re always finding that there are more areas for you to explore than you realized, and on the third hand you’re given gentle guidance in that exploration, you’re not just dropped in a world with a map that you can’t even color in yourself and told to have fun.

So the time road rules were quietly awesome from a game construction point of view; as a bonus, they were quite a bit of fun as well. I particularly liked the range of times (sub-10-seconds all the way to 2-minutes-plus) and of difficulty levels. Also, doing the road rules (and driving back if I spotted something interesting) revealed that the exploration discoverables were distributed in a fair manner across the map: in particular, without making an exhaustive effort to search them out, I’ve gone through all the smash gates in a couple of the map regions, and 391 of the 400 in the game overall.

A great game, and I could easily keep on playing for quite a bit longer: I’m so close on the discoverables that it’s very tempting to finish them off (and I know I would have a lot of fun on the billboards), there are still quite a few more burning routes for me to do, and doing some googling while writing this blog post reminds me that there’s bike-specific content that I haven’t done. But there are quite a few games out there that I really want to play, starting with the sequel to last year’s game-of-the-year. So I’m giving the game a pause for now, stopping to collect my thoughts one more time.

Incidentally, as part of the prep work for this blog post, I searched for what other bloggers had said about Burnout Paradise. There’s a fair amount of good stuff, and I’ll include links to what I turned up at the bottom of this post, but there’s one particular dialogue that interested me. Mitch Krpata posted a trio of posts on the subject; he and Michael Abbott then discussed the game on a podcast episode. And reading/listening to them, my first reaction was: how can a couple of people whose opinions I generally respect a lot be so wrong on this game? They treat it as a racing game with open-world elements grafted on in a faddish and misguided manner; Mitch, for example, goes on about how the inclusion of “hidden collectables” (the smash gates, billboards, etc.) is “obligatory inclusion” of items which are “anithetical to the Burnout ideal” (because they “reward stopping”) and “worse still, … [don’t] actually have an impact on gameplay.”

That last quote in particular reveals the lens that Mitch was looking at the game through, equating gameplay with races. In fact, though, there’s quite a lot more gameplay that you can do; the list that I came up with is as follows:

  • Races.
  • Road rage events.
  • Stunt runs.
  • Mixtures between the above, e.g. marked man events.
  • Online variants of the above.
  • Unlocking cars, via three different mechanisms.
  • Discovering objects/actions strategically placed through the game. (Smash gates, jumps, drive-throughs, car parks.)
  • Discovering billboards and figure out how to smash them.
  • Systematically exploring all the roads in the game.
  • Showtime mode.
  • Objective-based online gameplay.
  • Exploring sandbox areas of the map that are particularly well suited to a specific style of play.
  • Just drive around the map seeing what there is to see.

That’s a lot of stuff to do; and I personally found each item in that list to be rewarding on its own merits, rather than to be judged solely as to how it helps or fails to help another row in the list.

But, having said that, and assuming you accept my claim that Michael and Mitch were coming at the game from a needlessly limiting perspective, I think their having done so is fairly reasonable. I don’t know if Mitch changed his mind on the game, but Michael did a complete about-face on it: it just took him four months to reach that point. And, while it’s hard for me to reach back into my memories of first playing the game, I’m fairly sure that I started off with opinions a lot closer to Mitch’s than to my current state of mind: while I’d never played a Burnout game before, I’d played a bunch of racing games, so the events were what I focused on, and the races were my priority within those events.

And it took me quite a while to get over that; I doubt, if Big Surf Island hadn’t come along, that I would have chosen to invest the time in the game that I needed to get to where I appreciated the range of what it offered for me. Maybe somebody without prior racing game experience (or somebody who had racing game experience but didn’t like them) would be more open to the gameplay possibilities than I was; but I suspect that Michael and I aren’t alone among traditional gamers in needing time to see what’s there in front of us. (In fact, here’s another example!)

Doing something new is hard for developers, and helping players appreciate those new aspects is doubly hard; I’m grateful to Criterion for the work they’ve put in changing the game and making it easier to appreciate the variety that is there. And, while I’m taking a break from the game now, I wouldn’t be at all surprised if, in a month or three, I find myself taking a spin through downtown Paradise City again trying to find all the billboards, smash gates, and jumps, or taking the bikes for a more serious rice, or trying to improve my stunt run scores.


Some posts that other people have written on the game; my apologies for not touching on most of them:

update on flying ben to gdc

November 25th, 2009

I would like to thank everybody who has contributed so far to our effort to fly Ben to GDC; it’s been a week, and we’re halfway there! ($557.50 out of $1100, as of this writing, to be specific.) Of course, the flip side is that we still have over five hundred dollars to go; we’ll find the money somehow, but it would be easier if we had more contributions.

So I have two requests. First: if you were planning to donate but hadn’t gotten around to doing so, please let this serve as a reminder. Second: if you have already donated, could you please publicize this somehow? (E.g. by mentioning it on twitter.) We’d really appreciate it. And, again, thanks to everybody who has donated already or who is prompted by this to do so.

random links: november 24, 2009

November 24th, 2009

help fly ben to gdc!

November 17th, 2009

I’m sure that most of the readers of my blog are familiar with Ben Abraham. He’s been a key figure in the video game blogging community for the last couple of years, both through his own blog (most recently with his permadeath series) and his tireless participation in discussions in other blogs and fora (I’ve certainly enjoyed his Vintage Game Club contributions). Earlier this year, he founded Critical Distance, not to act as a home for his own writings but to highlight others’ writings, to enrich our discussions by making us aware of thoughts and works that we would otherwise have missed.

I had a great time earlier this year in the heady mix of conversations and ideas that is the Game Developer’s Conference; but, during and after that time, I kept wishing that Ben had been there, because I really would have liked to hear his perspective on the event, to hear about what he would have dug up that I missed in all the hubbub. And, chatting with Michael Abbott recently, I found that he felt the same way.

So Michael and I have decided to draft Ben to serve as a sort of roving reporter for GDC! And in a happy turn of events, Gamasutra has graciously consented to arrange for him to have access to the event: as part of the agreement that is allowing them to publish Ben’s This Week in Videogame Blogging series, they are kindly providing a GDC 2010 all-access entry pass for Ben.

Which gets the major hurdle out of the way; but there remains a rather large ocean between Ben and GDC. And this is where I would like to enlist your assistance, because intercontinental plane flights aren’t cheap. If you’ve appreciated Ben’s nurturing of our community the way I have, please use the widget below to help defray his plane flight expenses. If you’ll chip in the price of the last video game you bought, we’ll easily be able to pay for his plane flight; if that’s too much, smaller amounts are also welcome. All the money we gather will go directly to Ben’s GDC expenses (except for the credit card processing fees that PayPal deducts); I’d also appreciate people putting this widget on their blog (click on its ‘Copy’ tab), or publicizing this on twitter.

We thank you in advance for all of your help.

(Edit: The values the widget gives below are broken; in fact, rather frustratingly, as I type this it shows less money having been contributed now than it was showing this afternoon! Thanks for those of you who have contributed so far; we’re up to $160 as I type this, which is certainly an encouraging start!)

(Edit 2: Chipin seems to be doing something wrong with their caching headers, or something, because emptying the cache seems to fix the issue. We’re up to $428 now! (now = morning of 11/19))

(Side note: the widget is acting a little funny; there’s normally a 5-minute delay before its total gets updated, but I’m still waiting on one contribution to show up. I’ve got an e-mail in to ChipIn’s support; in the mean time, rest assured that, if you’ve clicked on the widget and told PayPal to send money, it goes directly into a PayPal account I’ve set up for this purpose, whether or not the widget updates properly.)

rss overload

November 16th, 2009

I read a fair amount of blogs, and I listen to a fair amount of podcasts. In fact, one of the reasons why I’m walking to work now instead of driving is so that my commute will remain reasonably long, and hence I’ll continue to have enough time to listen to podcasts! And I spend a good-sized chunk of most weekday evenings reading blogs.

But the chinks in my system have been showing. As we know from queueing theory, if you keep your queues too close to their average capacity, then, when something goes wrong, things go out of control pretty fast. And, a couple of weeks ago, I had a cold that dragged on for a while; that, combined with some evening events that I had to drive to, meant that I didn’t walk to work for two weeks straight. The result was that I now have way too many podcasts to listen to.

Which has caused me to re-evaluate my behavior. One question that it raises: why do I feel that I have to listen to those podcasts? Just what does it mean to me to be subscribed to a podcast? My meaning had been that I intended to listen to every episode of that podcast; as I’m discovering, that’s a significant commitment, enough so that I should make it consciously instead of through inertia.

And, now that I think about it, I’m realizing that that compulsion conflicts with one of my planning rules. I try to structure my life so that, as much as possible, I’m doing what I’m most interested in at any given moment; the mere existence of subscriptions encourage me to not even think about that question. And, to the extent that I do think about the question, it biases my results: for example, it makes it less likely for me to listen to CDs, because I have to fit them in between my podcast subscriptions.

Don’t get my wrong, I really like the podcasts that I’m subscribed to. Having said that, if I didn’t have time to listen to, say, In Our Time last week, is there any reason for me to make a point of finding time to listen to last week’s episode? Stated that way, my behavior is a bit silly: there are no end of episodes that were made before I started to subscribe to the podcast; I haven’t listened to them, so what makes the more recent episodes so special?

And that’s not an isolated example. Looking through what I have in iTunes, most of the podcasts that I’m subscribed to are ones that I don’t really have a reason to commit to listening to every episode. So, while I’m not unsubscribing from any of them, I’m also going to pause on listening to several of them while I catch up on other listening, and I’m unchecking the box that will cause them to be synced to my iPhone until I’m more confident that I want to spend time listening to them.

Having said that, I’m not completely giving up on my old conception of subscriptions. In particular, I really do like JapanesePod101, This American Life, and Planet Money enough to want to listen to every episode. (There are other podcasts that I also plan to listen to every episode of, but those three are the only ones that regularly come out at least once a week.) That’s about three hours a week of listening; that will leave me with quite a bit of unscheduled listening time where I’ll be able to explore more widely than I have been in the past.

My blog reading has gotten out of control a little more subtly: it’s not that I don’t have enough time to read the blogs in my feed reader, it’s more that doing so eats up enough of my time that I find it hard to get a solid hour to really concentrate. So, if I catch up on my reading on some evening, then doing so rarely leaves me able to, say, write a blog post of my own or play a game or read a book. (The latter of which I’m not doing nearly enough these days!) So, while I am spending too much time reading blogs, it’s also interfering with my time usage out of promotion to the total time I’m spending on it. Also, constantly feeling like I’m under pressure to clear out my reader means that I don’t always take the time to really think about longer form posts, posts that are saying something new to me. (Which is more than a bit ironic, given the average length of my own posts; I’m very grateful to those of you who actually read these!)

This is pretty screwed up: I need time to think and do, to not always be hitting the ‘j’ button. Fortunately, phrasing my behavior that way makes the next step pretty clear: I should cut out larger chunks of free time explicitly by timeboxing my blog reading. Concretely, I’m going to experiment with only reading blogs three days a week: Tuesdays, Thursdays, and once on the weekend. And I’ll try to clear out my feed reader every time: if I don’t make it through my feeds, that’s a sign that either I have to unsubscribe from feeds to fit my time budget or I have to get used to the “mark all as read” button.

It’s an experiment. But I need to make more time for myself; I also need to make more time that I can spend with primary experiences (games, music, books), instead of secondary reflections. I’m overcommitted right now: I need to rediscover the void in my life, or at least a richer texture.

aspects of time

November 15th, 2009

A selection from the Pomodoro Technique book that has, for some reason, stuck with me recently:

According to the work of Bergson and Minkowski, two profoundly interrelated aspects seem to coexist with reference to time:

  • Becoming. An abstract, dimensional aspect of time, which gives rise to the habit of measuring time (seconds, minutes, hours); the idea of representing time on an axis, as we would spatial dimensions; the concept of the duration of an event (the distance between two points on the temporal axis); the idea of being late (once again the distance between two points on the temporal axis).
  • The succession of events. A concrete aspect of temporal order: we wake up, we take a shower, we have breakfast, we study, we have lunch, we have a nap, we play, we eat, and we go to bed. Children come to have this notion of time before they develop the idea of abstract time which passes regardless of the events that take place.

Of these two aspects, it is becoming that generates anxiety – it is, by nature, elusive, indefinite, infinite: time passes, slips away, moves toward the future. If we try to measure ourselves against the passage of time, we feel inadequate, oppressed, enslaved, defeated, more and more with every second that goes by. We lose our élan vital, our vital contact, which enables us to accomplish things. “Two hours have gone by and I’m still not done; two days have gone by and I’m still not done.” In a moment of weakness, the purpose of the activity at hand is often no longer even clear. The succession of events, instead, seems to be the less anxiety-ridden aspect of time. At times it may even represent the regular succession of activity, a calm-inducing rhythm.

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.