[ Content | Sidebar ]

xbox 360

January 1st, 2008

I (correctly) didn’t think that I’d have enough video games on consoles I already own to get me through the holiday break, so I got an Xbox 360 a couple of weeks ago. Some notes:

  • I messed up a couple of cables when installing; probably because I’m conditioned to think that they’re all broken, it took me a little while to find my mistakes. (A misleading bit in the manual didn’t help.) Works fine, though.
  • The initial games that I bought for it: Beautiful Katamari, Mass Effect, and Portal. I imagine I’ll try the other four games that are packed in with the latter, too; other games that I expect to try soon are Bioshock and Eternal Sonata.
  • I spent too much time typing on virtual keyboards when setting it up, but at least that’s a one-time thing.
  • I paid the money for a gold Xbox Live account; not sure how much I’ll use it, but since online features seems to be one of the defining things that the console does better than the others, I figured I might as well give it a try. My username (sorry, “gamertag”) is “malvasia bianca”; if any of my blog readers also have accounts, please let me know.
  • You can see my vast number of achievements on my gamercard. As far as I can tell, there’s no way for you to see my actual achievements without having an account of your own; I’m under the impression that this is my public page, for a narrow definition of “public”.
  • As far as I can tell, the support for multiple users on the same console is pretty bad. I guess the right way to handle that is to create multiple Xbox Live accounts? And if we all want to do online multiplayer with separately tracked stats, we have to fork over fifty bucks a person a year? Seems a bit much. I like the Wii’s idea of just giving everybody a Mii; I only wish more games used them. (Of course, using them as your character in the game is rarely appropriate, but just using them to identify your save file, as Super Mario Galaxy does, is a great idea.)
  • The interface is rather busy, and has ads; I much prefer the Wii’s simplicity. (At least at the top level of the interface.) Though the two interfaces are trying to do different things; I haven’t really thought about what that means.
  • It came with a bunch of preloaded content on the hard drive, mostly demos but also some videos and one (bad) full game.
  • I can easily imagine myself getting hooked on trying out demos (I went to the store and downloaded several more), and switching over to having that be a big way in which I evaluate games for purchase; I can also imagine playing them just so I have a better idea of what people are talking about, even if I have no intention of buying the game. The existence of downloadable demos seems all to the good to me.
  • The download service has issues, though. On several occasions, it had problems downloading a demo, but it didn’t automatically retry, and marked it in the store as being downloaded. So I had to go out of the store, double check that I didn’t have a copy saved, go back into the store, tell it to download it again, and reassure it that, yes, it’s fine for it to erase the non-existent copy that I’d previously attempted to download.
  • When I add up space for the downloaded content and the free space on my hard drive, it still doesn’t add up to 20GB. Where’s the rest of the space? I’m used to drive numbers not adding up, for various reasons, but this seems excessive. Does it maintain a few gigabytes of free space that games can use as a cache? That would make sense, I guess.
  • I wish it came with a larger hard drive, but I refuse to pay a hundred bucks for an extra 100 gigs of disk space.

I’m happy so far, and I’ll have to be disciplined for the next few weeks to stop playing Mass Effect at a reasonable time of night lest I turn into a zombie at work. Team members, if you see me yawning in the daily standup, feel free to chastize me…

get smart

January 1st, 2008

Liesl’s dad gave her a set of Get Smart DVDs for christmas. Miranda thinks that they are absolutely hilarious. (I won’t disagree.)

random links: december 31, 2007

December 31st, 2007

ken robinson on schools and creativity

December 31st, 2007

Ken Robinson’s TED talk on “Do schools kill creativity?”

You can also watch it at its web page; I like the chapter markings on the full-screen version of the video player on their page. (Not the embedded one here.)

I heard about this talk via two separate routes: Presentation Zen and Evolving Excellence. Two blogs which don’t normally have much in common, but in retrospect it makes sense that you’d see this in both places: in particular, the lean folks know as much as anybody about the value of encouraging creativity at all levels of your organization.

Lots of good stuff in the talk; some ideas I particularly liked:

  • Students who are in school now will still be working half a century from now, yet we have a hard time predicting what the world will be like half a decade from now; can we afford to do anything other than do anything other than encourage their creativity and capacities for innovation?
  • To be creative, you need to make mistakes; yet schools punish you ruthlessly for making them. (They could take a lesson from Super Mario Galaxy: feedback doesn’t mean punishment. Or, for that matter, from more sandboxy games: you don’t need pervasive feedback, either.)
  • Different people have different strengths, yet schools focus on an obscenely small portion of those. If somebody is fidgeting in your math class, perhaps discovering that they’re a dancer is a better idea than putting them on ADHD drugs.

As always, I’m very glad that we found PACT. It’s not perfect, but it’s worlds better than what I hear of schools elsewhere.

super mario galaxy

December 31st, 2007

My thoughts on Super Mario Galaxy got long enough that I spun the first part off into a separate entry. In short, we’re back to linear platforming, with tons of jumping, done very well.

One question that any platformer has to answer is: what non-core player abilities will it mix in? Jumping is great, but platformers always go somewhat beyond that: the fireballs in the original Super Mario Bros. to the suits in SMB3. There are different ways to handle this: in particular, you can add one pervasive theme (the waterpack in Super Mario Sunshine, which didn’t turn out so well), or you can sprinkle in different capabilities (SMB3 again).

Galaxy does some of both: they add one general capability, a spin attack, activated by shaking the wiimote. About which I have mixed feelings: it’s probably useful to have some sort of general mechanism other than jumping, and the small radius of many of the planetoids can make it a bit hard to judge offensive jumps accurately, so a spinning ground attack works well enough. But I don’t like having to shake the wiimote quite so frequently, and I wish the spin attack wasn’t quite as prominent as it is.

There are also a handful of secondary capabilities, accessible by wearing suits that are available in certain areas. (Levels or sections of levels that are designed around them.) I liked the gameplay choices here: it adds a pleasant variety and gives the designers new options that they can use to extend the basic platforming concepts without distracting you from what the game is about, or for that matter what individual levels are about. None of the suits are anything special, but that’s okay, they don’t have to be: they increase the variety of levels, and that’s enough. (And I am fond of some of the new puzzles that the ice suit allowed.)

What I really want to talk about, though, is the line the game walks between challenge and frustration. Any video game is trying to keep the player from getting annoyed while providing the player who wants challenge a way to get that challenge. (Providing interesting environments to explore is also a plus; Galaxy does that well enough, too, though (as I said before) it explicitly doesn’t do that by providing big worlds to roam around in.) And I’m very impressed with how Galaxy balances those two constraints.

The early levels are pretty easy; in a couple of not very long sittings, I’d accumulated about 40 or so stars. Granted, I’m a relatively experienced player of platformers; probably a less experienced player would find them more of a challenge. Even so, I didn’t feel like I was wasting my time getting to the good stuff: they were fun levels, well designed, throwing a grab bag full of concepts at you. They also provided an easy out for the non-completists, or for people who aren’t as fond of platformers as I am: you can reach the final Bowser challenge after you’ve finished 60 of the stars (out of the 120 that the game contains), so you can happily route around challenges that you don’t particularly enjoy. (Incidentally, for those of you who are completists, you should still beat Bowser early on: you need to do that to unlock some of the stars.)

They also avoided the cheap, annoying ways to extend replay value. Within each level, there are relatively frequent checkpoints, so you never get stuck having to repeat yourself too far: the levels are broken up into relatively discrete challenges, you have to accomplish each in one go, but you can die between challenges without serious repercussions.

And, speaking of dying, you’ll do that a lot – it’s easy enough to fall off the edge of many of the environments, and your life bar is only three units long. (Which was kind of shocking at first—I can’t remember the last game I played with that short a life bar—but was absolutely the right choice.) Except for when it’s six units long: in certain, well-selected places (usually before relatively tricky end-of-level boss fights), there’s a mushroom that temporarily doubles your life bar. (A great example of slightly tweaking the gameplay to enhance the design of a portion of a level.)

But dying isn’t a big deal: on tricky sections, there’s almost always either a 1-up mushroom near the star of that section or enough star bits that you can almost always collect 50 of them, earning an extra life, before dying. (Star bits are a minor gameplay addition that exist both to give a spectator something to do—a second player can optionally collect them for you—and to provide a less-heavy-handed way of giving frequent extra lives.) The result is that I have no idea how many hundreds of times I died while finishing the game, but I ran out of my lives exactly once over the course of my playing. (The purple coin challenge on the Luigi picture with disappearing/rotating floors, if you’re curious; I entered it with 25 lives, but that wasn’t enough!) The result is that dying, instead of a punishment, is simply a feedback mechanism, and manages to enhance the gameplay instead of detracting from it.

So the core gameplay works well for people who want to play some of the game, and see bits and pieces of it, but not bang their head against it for hours on end. What about those of us who want more? Here, too, the game provides a range of pleasing solutions. The most basic: the levels are collected into galaxies, and the main galaxies each have three paths in them. (Diverging almost from the start, but sharing at least themes in common.) On one of the paths, though, there are actually two stars, so you need to keep your eyes open for a place where you have two choices as to what to do. Often, you don’t have to keep your eyes very open—half the time, there’s somebody there offering to open up a path if you feed him star bits—but sometimes you have to look harder.

Which could suck if you had to look through all three paths to find which one contains a hidden route. Fortunately, you don’t have to: the game is happy to tell you which path contains the hidden route, so you can narrow your search. (If you don’t want to be given that hint, you also have that option; nice to be given that choice.)

Or what if you want to be given a harder challenge once you’ve proven yourself capable of beating a given star? There, too, the game has an answer: each of the fifteen key galaxies comes with one comet challenge, where you have to do some or all of a level you’ve played before, but with a new rule: maybe you have a time limit, maybe you can’t get hurt, maybe enemies are faster. All of which (well, almost all of which, the one full of top-like enemies annoyed me) are great examples of tough but fair level design: they’re hard, but when you fail, it’s your fault, you know that if you’d done some one thing a little better, you wouldn’t have died, and you’ve usually gotten an extra life somewhere along the path so dying doesn’t do you any permanent harm.

The best example of those are the purple comet levels: you also get one of those in each of the key galaxies. (They only open up once you’ve beaten the final Bowser level, so don’t wait too long before doing that.) In each of those levels, they give you a portion of one of your original paths, and strew it with purple coins; you have to get 100 of them. So the focus isn’t on, say, enemy/boss fights at all: it’s all about proving that you know your environment.

Which I fully support (and, if you don’t, that’s fine, they’re optional), but it turns out that there’s more to them than that. They start off with an introductory one where there are relatively obvious paths through the environment, and it’s easy to get all 100 coins. After that, though, the gloves are off. In some of them, the challenge is looking everywhere without missing anything or falling off the edge or getting hurt by the environment. (In particular, the ice level is a masterpiece in that sub-genre, with some remarkable jumps that you have to make to find them all; there’s nothing unfair about the level, but the challenges that it presents you with are wonderful.) And some force you to really learn your controls; in particular, there’s one jump in the ghost ship purple coin level that’s almost impossible to pull off.

Some are timed: one of the ones on a bee level has you going along an obvious path, but doing it without stopping at all. But, in the game’s commitment to fairness, not only are the coins all in fairly obvious places along that path, there are even bees at various checkpoints telling you “you should have 50 coins by now”, “you should have 70 coins by now”, etc. So you never have to worry about missing something: the level is about quickly going through it while picking up the coins, not about doing that except that you have to magically know that one extra one is hidden somewhere even though you don’t have time to search for it.

In three or four of the timed levels, you have a very short timer, but, to compensate, the level has 150 very tightly-packed coins, of which you only have to get 100. Those have their own joy: you have to frantically make your way through the environment, never pausing, always heading to the densest areas of remaining coins. Which could be a bit boring, but usually the environments are hazardous in some fashion, so you also have to not screw up while doing that. I wouldn’t have wanted every level to be that way (and, in particular, there was one of these that I probably died 50 times before I finished, without any easy access to extra lives), but having a few of them scattered in was a great capstone experience for that particular aspect of platforming challenge.

It’s really a remarkable game. It’s focused on a single gameplay theme, while working in an amazing variety of experiences around that theme. It gives a wonderful range of challenges, while never stooping to cheap tricks for “extending” replay. Because of its narrow genre focus, it’s not for everybody—shooter fans need not apply, for example—but it’s by far the best game so far on the Wii in any of the traditional genres.

slow driving experiments

December 28th, 2007

Near the start of the year, I ran into an article claiming that, by slowing down in advance of traffic jams, a single driver could break up the jams, and that in particular you could turn merge congestion into smoothly flowing traffic.

Clearly, this demanded further experimentation. So I gave it a try: when I saw slow traffic ahead of me, I just took my foot off the gas, gradually slowing down until I got to where traffic was slowest. The rules of the game were that I lost if I actually came to a complete stop, and I took off points if I had to use the brakes; the goal was to change my speed as gradually as possible, in order to mute changes in traffic speed.

And it was great! My commute was much less frustrating; I was spending almost no time feeling mad at the fact that I was stuck in traffic barely moving (there’s a big difference between going 10-20 miles per hour and going 0-2 miles per hour), and I had something new to think about and keep my mind busy while driving. And it had a big effect on my gas usage: I went from having to fill up every weekend to every other weekend. (I don’t think I actually cut my gas consumption in half, but it was a noticeable difference.)

I went along like that for a couple of months, enjoying my new commuting joy. But then I remembered what the article was talking about: it didn’t just say that your commute would be more pleasant, it said that you’d be able to see miles of smoothly flowing traffic behind you. And I wasn’t seeing that.

So: what are the possible hypotheses to explain my (lack of) observation? I came up with a few:

  • The article was wrong.
  • The article was right, but I was doing the wrong thing.
  • I was having the predicted effects, I just couldn’t tell.
  • I was doing the right thing, but differences between my stretch of the highway and the author’s stretch of highway meant that the techniques wouldn’t work for me.

All of which, actually, were pretty plausible. The first two are obviously possible; as for the third, I’m driving a compact on a flat highway, which means that, on average, I don’t have to go more than about two cars away until my gaze encounters a car it can’t see over/past/through. And, as for the fourth, I only pass three exits on the way home; the first has metering lights, the third one has an extremely short merge that probably causes its own extra problems, and maybe there’s something weird about the second one that I’m not seeing. (Enough cars wanting to enter to overload any mitigation efforts?)

But the first hypothesis to investigate is that I was screwing something up. Which I was, in one obvious way: I was staying in the second lane while, if I want to have an effect on merges, I need to be in the right lane. So I did that for a while, but it wasn’t helping, at least most of the time. (It probably did help when I left enough room to let every single waiting car enter the highway, but that usually wasn’t possible.)

And then I figured out something else that I was doing wrong. What I was doing was trying to drive in such a way that I would slow down as little as possible; my algorithm for doing this was to shrink the space between myself and the car in front of me as gradually as possible, finally using it all up (except for necessary safety room) when that car was able to speed up again. In merge situations, that happens right at the merge point, so basically I was shrinking the following space down to zero right at the merge point.

The goal, however, is to set up a situation where both merging lanes are moving at a good speed, so they can merge in a high-speed flow instead of in a stop-and-go fashion. And, by minimizing both my speed and my following space at the merge point, I was working against that.

So I tried to slow down a bit earlier, to be able to enter the merge area at a higher speed and with more room in front of me. Which turns out to be really hard! My brain and right foot had been happy to start coasting earlier than they were before, but I ran into a real psychological barrier when I tried actually going so slow that I was actively holding up traffic behind me more than necessary.

I wish I had a clearer ending to this story than I do, but here’s the current state of affairs. I try to leave a little room ahead of me at the merge point, and have my speed not drop to almost zero. Sometimes I manage that; sometimes I don’t. And, sometimes when I do leave room ahead of me, the next five cars entering the highway all take this as an invitation to enter the highway, cut in front of me, and then slam on their brakes in order to avoid crashing into each other.

But sometimes I manage to sail through what had been a stalled merge point at 15 miles an hour or so, while letting a couple other cars enter the road at the same speed; it feels great when that happens. I still don’t know if it’s having any long-lasting effects, though: I can’t see far enough behind me to tell what happens to that merge point after I’ve gone by. And I’m pretty sure that the one location with a tiny merge area is incapable of staying congestion-free on its own: as far as I can tell, few enough cars use it that it empties out completely on its own every couple of minutes, which means that the backups that form there are impossible to cure without redesigning the exit. (Which sounds like a great idea to me.)

Having said that, I am convinced that there are benefits to easing off the gas when approaching a slowdown. It doesn’t slow down your commute, it makes you (or at least me) feel better, and it saves gas. So it’s a clear win, even if it doesn’t help the traffic behind me; I’m pretty sure it doesn’t hurt them, and it helps me, which is good enough.

picross ds

December 28th, 2007

Picross is Nintendo’s name for a certain genre of picture logic puzzles. Wikipedia has a pretty good explanation, and it’s easy enough to find places where you can play them online (this site seemed like the best of the first page of search results): the game consists of a grid, together with a set of numbers for each row and column. Those numbers tell you how many squares in that row/column are filled in, and how they cluster, so if the numbers are, say, “4, 5” then you know that there’s a set of four black squares, then one or more empty squares, then a set of five black squares. (Possibly with white space before the first set and/or after the last set.) The easiest example of how this helps is if you see one number that’s more than half the length of the row: if the row just contains an 8 and the row is 10 squares wide, then you don’t know exactly where the 8 goes (it could touch the left side, it could touch the right side, or it could leave one empty square on either side), but you know that, no matter what, the middle six squares are filled in.

Liesl and I had been doing these for years in Games magazine. (We also worked through most a book of them.) So, when they released Picross DS, I knew we had to get it. In particular, I was really curious how it would turn out on the DS; it seemed like a natural fit for the stylus interface.

At first, I wasn’t too impressed. It doesn’t have multiple save slots, in a blatant attempt to get people to buy multiple copies for their household. (The flip side is that it only costs $20, so even two copies don’t add up to much.) They’d advertised online features, including online competitive gameplay and new downloadable puzzles every week; I got connection failures when I first tried the former, and no puzzles were available for the latter. Puzzles are hardwired to play in either “normal” or “free” mode; in the former, you get told whenever you fill in a square that you shouldn’t, which I found fairly annoying. And the stylus controls don’t work well for puzzles larger than 10×10: you have to move around the puzzle instead of seeing it all at once.

But I kept on going, and soon none of that mattered. It has two control modes, and the D-pad + button version works just fine: you can see the whole grid at once, and it’s easier to mark squares as known to be empty in that control scheme. I let Liesl work puzzles first, and did a row of puzzles at a time; with that, it was easy enough for both of us to keep track of where we were. I still wish there were an option to do all puzzles in free mode, but I can deal. Downloadable content started appearing (every two weeks, though, not every week), and I even got in some online matches. Which turns out to be pleasantly different from the regular game: I treat the regular game as “prove that there’s a unique solution”, while on the online version you really have to go as fast as possible, so you can use things like symmetry and guesses about what the picture will look like.

And then the puzzles started to get nice and hard. They go up to 25×20, which is actually a bit much for me (not so much because of the difficulty but because of the increased amount of fiddly counting), but the hardest 20×20 puzzles were really something, and even the hardest 15×15 puzzles were quite good. Only a few of the puzzles were at the best difficulty level, but there’s a wide range that requires at least some thought, and I enjoy even the easy ones.

I’m not sure how much time I sunk into the game; it comes with about 400 puzzles, I’ve downloaded another 150 or so, and while there are a lot more that take only a couple of minutes than ones that take an hour, it wouldn’t surprise me if I’ve spent 50 hours on the game, or even more. Add in Liesl’s time spent on it, and we may have gotten 100 hours of gameplay out of our $20 purchase; hard to beat that for value.

I wasn’t expecting a simple puzzle game to be the second best game I’ve played this year, but there you have it. (Hmm, maybe third best, and some other contenders may also force their way in over the next few days.) A perfect game for a portable system; you can pick it up and play it anywhere, for minutes or hours at a time.

reprinting (three-quarters of) zot!

December 28th, 2007

They’re reprinting Zot!. Well, most if it: they’re only reprinting the black-and-white strips. (Found via Andrew Wheeler.)

This is somewhat old news; I wanted to reread the series first, in particular the color issues, before lamenting the partial reprint. After all, we’ve been through reprinting threequarters of the series before! I’m glad that they’re reprinting a different three-quarters of it this time, both so that people will be able to find the whole series a bit more easily and because the last quarter is pretty special. But the first quarter is pretty special, too! (Hmm, which quarter would I prefer that they leave out, if they were compelled to do so for some strange reason? The second, I guess.)

According to Publishers Weekly, the partial publication is “a creative decision by Scott”; sigh. Having said that, I don’t want to read too much into this; if the black-and-white reprint sells well, there will probably be a fair amount of lobbying to see the rest, and I wouldn’t be surprised if he gave in: I would think he’d have to be extremely thin-skinned / self-conscious to be actively embarrassed by the early issues.

the evolution of platformers

December 26th, 2007

My current spate of video game playing began in grad school when my friend Wayne gave me his old NES, together with Super Mario Bros.. If I’m remembering correctly, Jordan later found a copy of Super Mario Bros. 3 at a yard scale, after which I was doomed to several years of platforming addiction. Not that they were the only NES games I played—I was rather fond of Solomon’s Key, and Jordan will be pleased to hear that Blades of Steel was just rereleased on the Virtual Console—but I sunk by far the most hours into the two SMB games. I loved running, jumping, and stomping my way through the levels; I loved the way the focus was on the level design, with combat largely there to keep you on your toes; I loved the way you could explore every nook and cranny of the levels and find hidden stuff; I loved it that, even when I died, I knew it was my fault, and if I just tried the level again (and sometimes again and again and again) and just, you know, didn’t screw up, I’d get past it eventually!

So, when I got a job offer, I celebrated by buying a Nintendo 64, and one of the first games I got for it was Super Mario 64. (It was temporarily out of stock, else it would have been the first N64 game I bought; that honor fell to Extreme-G instead.) And it was great! All the crazy jumping and lightweight combat that I liked, just in 3D, but there were these huge areas for you to explore, with stuff all over the place. In fact, the environmental design in some ways took even more pride of place in Super Mario 64 than in the 2D Mario games: there were goals (stars) for you to accomplish, should you choose, but, unlike the persistent forward drive of the 2D games, you could simply wander around the levels if you wished, just poking your nose in places and having fun. There wasn’t even a strict correspondence between levels and stars: each level was big enough to have six different stars in it. (Plus a seventh that you could get by collecting 100 coins.)

I was blown away, and I wasn’t the only one: this wasn’t just the natural evolution of the platforming genre, this way a statement about how 3D games should be made, with lessons for the entire industry in its transition to the first generation of consoles that could really support 3D gaming. I collected all 120 stars, and would happily have collected twice as many; fortunately, Rare released Banjo-Kazooie a few months later. (I didn’t buy an N64 until a year and a half after launch, so they’d had almost two years to learn the lessons from Super Mario 64.)

Again, I played straight through that one, collecting every puzzle piece, finding all 100 notes on each level, and so forth. Those notes are worth mention: one aspect of 2D platformers that turned out not to translate quite as well to 3D platformers is the “find a way to hit every block to uncover secrets” part of the gameplay. I’m not sure entirely why, but my guess is that, in a 2D world, it’s easy to have constricted areas with multiple levels, which means that it’s easy to place lots of blocks that you can jump up to hit. In a 3D world, however, you need many more open spaces, otherwise the camera can’t see anything; while they still have a lot of vertical exploration, they come more in the form of hills (perhaps with paths cut in the side), trees, or just mounds with no open space between. This means that you don’t have as much freedom to place blocks to break open; Banjo-Kazooie‘s solution to this, which I think is as good as any, is to scatter 100 musical notes lying on the ground (or on hills or in trees or in caves or …) in each level. This is great for the game player who, like myself, wants to prove that he can explore every nook and cranny; if I can get all 100 on a single play through a level, I know I’ve mastered exploring that level. (I’d remembered that as unlocking a puzzle piece, but googling shows that I was wrong, so it really is quite optional.)

More platformers followed, but they didn’t have nearly the same spark for me. I finished them, but I didn’t track down every loose end, and they felt like a slog by the end. They kept the same core gameplay design; that was great the first couple of times, but it was getting stale. Levels got larger; at first, I thought this was a blessing, but at times it started to feel like a slog. Also, part of the core platformer tradition is giving your character access to a range of different abilities (the most prominent example of this being the suits in Super Mario Bros. 3); each new game experimented with new vehicles for delivering abilities, but none of them worked very well. (Rare was going through a “let the player switch between multiple characters” phase at this time, and Donkey Kong 64 showed that at its worst.)

The one shining bulwark against the rising tide of platformer mediocrity was Conker’s Bad Fur Day: it was one of the last games on the N64, and one of the best. The reasons, however, had nothing to do with the platforming gameplay, but rather had everything to do with the humor of the game. (And the pop culture references, though I probably didn’t get as much out of those as most people, since I basically hadn’t watched any new movies since moving to California.) The best example, one of my single favorite video game sequences of all time, is the “Great Mighty Poo” song; YouTube has this version with non-singing gameplay edited out, and this longer version without cuts. Please go watch one of them (warning: quite possibly NSFW) and come back. Basically, the main character in the game is a quite profane squirrel; I still laugh when I see a button described as “context-sensitive”, because of a sequence in that game involving such buttons after Conker’s been drinking rather heavily.

Conker was a glorious end to platformers on that generation of consoles, but there’s only so much that the industry could have taken from it as a model going forward. By this time, I was pretty burned out on the genre; in the next generation (Dreamcast/PS2/Gamecube/Xbox), I played almost none, and I don’t think I missed much. I did, of course, play Super Mario Sunshine, and it was pretty good, but nothing special: the core level design was solid, but the new gameplay mechanic wasn’t anything to write home about (in fact, in some ways, it weakened the traditional jumping mechanic), and I thought the “explore every nook and cranny” mechanism (blue coins) was actively annoying.

What’s going on here? The basic problem is that Super Mario 64 got so many things right that it’s hard to see what to do to incrementally improve on it. (Hmm, maybe I should spend more time thinking about lessons from completely different games with strong platforming elements, e.g. Shadow of the Colossus.) The idea of big, wide-open world that you can explore to your heart’s content is pretty compelling; Miranda has spent hours and hours over the last three or so years roaming through the environments of Super Mario Sunshine, not trying to get the stars at all, and she’s still not bored with it.

You can tweak this platforming/exploration design by adding new gameplay mechanics (which is inherently hit or miss, since jumping is always the core of platformer gameplay), you can make the worlds bigger (as happened every year), you can even stitch the worlds together so you have more one big world instead of a hub world that can magically transport you to other, distinct worlds. There’s a bit of the latter in Super Mario Sunshine, but to see where the idea of one big world leads you, it’s best to go outside of the genre entirely: if you stitch together all your worlds into one big world, keep the idea of multiple goals (“stars”) within this big world, and give up on the idea that the goals should have anything to do with jumping, then you’re led to the direction of GTA-style mission-based gameplay within a massive world. One of the biggest platformer series during the second 3D console generation was Jak and Daxter, on the PS2; by the time I got around to giving that series a try, in Jak 3, it was no longer a platformer, but had turned into a sort of GTA with furry animals and (much) less brutality.

So: was the platformer dead? Had we mined everything we could out of it, and had the time come for it to step aside and make way to the new genres that it had helped give birth to? I was wondering that myself, and I certainly wasn’t optimistic about Nintendo’s ability to do significantly advance the genre. (See my standard Nintendo review.) But then something funny happened: a year and a half, Nintendo released New Super Mario Bros. for the DS, bringing back old-school 2D platformer gameplay, and the world has lapped it up to the extent of more than12 million copies sold. Which is a staggering amount of sales (significantly more than any Final Fantasy or Halo game, for example), and this for a game that brings nothing new to the table, just revives a genre (2D platformers) that’s been rather out of fashion for a while.

So maybe there’s more to be mined from 2D platformers than we’d seen? Let’s go back and re-envision how the genre might have transitioned differently to 3D. In particular, as we’ve seen above, wide open levels with multiple goals evolved into mission-based gameplay; this is, in retrospect, a significant departure from the linear, independent levels that 2D platformers had. So what if we went back to lots of linear levels, and made sure to turn up the jumping knob even further?

This is exactly what Super Mario Galaxy did, and carried it off extraordinarily well. I’ve seen people say that it’s the Super Mario Bros. 3 of the 3D platformer genre, and I don’t agree: SMB3 is an evolution of the original Super Mario Bros. design, while Galaxy goes back to the 2D roots of the genre and imagines a different way in which the gameplay might have evolved. Like Super Mario 64, it is divided up into a collection of worlds, each with multiple stars in them; unlike its predecessor, however, you go on a linear path to each star, and those linear paths diverge almost immediately after entering the world, sharing only marginally more context than the different levels on one world of SMB3 did.

And gone are the wide open spaces, which are largely incompatible with linear gameplay. The “galaxy” notion isn’t an arbitrary choice of setting in the way that Super Mario Sunshine happened to be set on an island: instead, the astronomical setting lets Nintendo create a level out of a sequence of planetoids. (Or other random surfaces – they’re happy to plunk a water slide with no means of support floating in the middle of nowhere.) On each planetoid, you run around and accomplish a sub-goal (sometimes just reach a location, but frequently you beat a monster or hit a block which triggers an event or any number of other things) which opens up a transportation mechanism to the next planetoid. So you’re still moving in a 3D world, but at the same time the gameplay is always along a clear path, driving you towards the star at the end of the level.

The galaxy setting also lets them turn up the platforming mechanics to insane heights. They felt absolutely unconstrained by logic when designing the planetoids; in particular, if they wanted to have, say, a huge mesa rising out of nowhere that you’d run around the outside of, platforming your way up, they would freely do so, giving a very good approximation of a traditional 2D platforming mechanic in a 3D world. But they also used gravity to great effect, having levels where different regions have gravity tugging you in different directions (up, down, left, right), or having traditional “moving platform” segments where, in addition to jumping to avoid obstacles, you could walk around to the bottom of the platform to avoid them.

I could go on to describe the game in more detail; I think I’ll leave that to a separate blog post. Suffice it to say that Nintendo/Miyamoto have revisited the genre’s roots, rethought some very basic decisions that they made in the initial transition to 3D, and ended up with a very convincing alternate notion of the core concept of a 3D platformer. In fact, it’s rather more convincing a translation of the genre than Super Mario 64 was, and, partly because of that, I think it will ultimately be significantly less influential.

In retrospect, Super Mario 64 was an explanation of how to design a general 3D game, and happened to do that in a fashion that involved a lot of platforming. Whereas Super Mario Galaxy is a platformer through and through; I love that genre, a lot of other people love that genre, but I don’t expect to see a thousand flowers bloom from it.

But one beautiful flower has bloomed, which is ultimately all I want out of a game.

culinary note

December 25th, 2007

For future reference: gummi bears are not an acceptable substitute for gum drops when baking. They have a significantly lower melting point.

metroid prime 3: corruption

December 24th, 2007

Whenever I start a new Nintendo game in an established series, I do so assuming I’m going to be disappointed. Their core series made the leap brilliantly to 3D, opening up gameplay in ways that I’d never imagined. And then, with one idiosyncratic exception, Nintendo has mined that gameplay in subsequent installments, not adding anything to the mix. (Actually, I’m happy to say that there’s now a second exception, which I hope to have time to write more about soon.) The resulting games aren’t bad; they’re building off of extremely solid core gameplay, and they’re not doing anything to actively screw it up. They just don’t have the freshness of the originals, or of the best of other recent games.

Which brings me to Metroid Prime 3: Corruption. Any new ideas here? Are they, perhaps, doing something interesting with the Wii?

The answer: no, not really. It’s a good game, I’m happy to have played it; in fact, I ended up with a better feeling about it than its predecessor. I’m not an FPS connoisseur, but the controls seemed good to me: I could aim where I wanted, I could turn reasonably freely, my hand didn’t get excessively tired from having to stay pointed within a fairly small region of the screen (unless I wanted to turn). (And yes, I do realize that the game, while in the first person and involving shooting, isn’t best described as an FPS: I’m just talking about (part of) the control scheme, not the gameplay structure.)

Hmm, other than the controls, what else is there to say, given its predecessors? You go to different worlds instead of different areas of the same world; okay, but it doesn’t make any real difference. The scanning is starting to get to me, especially at the start of the game. I still like searching through the environments enough to revisit them once, trying to get power-ups, after I’ve leveled up fully. Nice that the different beams stack their powers on top of each other, removing the need to switch between them. Ship commands are kind of silly, but not actively offensive.

As I increasingly prefer in my old age, it’s pleasantly easy. Gone are the days when I have the time or desire to devote dozens of hours to master most games, especially games that make it actively difficult to do so; while I gave up its predecessor in disgust at the final boss battle, I had no such problem with this game. I had to fight some of the bosses two or three times, but I always felt that I was learning something, and just as frequently I beat them the first time on my last energy tank, with a pleasant sense of accomplishment. Hmm, now that I think about it, its predecessor’s bosses weren’t bad except for the last one, and in this game as well they committed the same structural flaw of having your last fight go too long without a save opportunity; it would have been better if they’d fixed that flaw instead of addressing the problem by making the last boss a bit of a pushover, but I’ll take what they ended up with.

As always when I write this sort of review, I feel guilty at the end. Really, it’s a good game; really, if you haven’t played another 3D Metroid game, you should give something in the series a try, and this one is a good choice. And even though I wish I were seeing more new, I’m glad to have invested 15 hours (or however much it was; a good choice of length, incidentally) of my life in playing it. In fact, I really should go give Super Metroid a try, now that it’s been released on the Virtual Console; if only there weren’t so many allegedly great games out this fall…

updating web pages dynamically

December 24th, 2007

I’ve now written my first AJAX code: if you go to a random web page in my book/game database, you should be presented with a list of blog posts that refer to that item. At least assuming that I haven’t accidentally used functionality that your favorite browser doesn’t support, which I hear is easy to do with JavaScript; fortunately, Internet Explorer seems to be the most likely candidate, and my CSS is already broken there, so I should be safe enough. (I’ve only tested under Firefox and Safari 3.)

It was fun and not too hard, all things considered. I didn’t have any prior JavaScript experience, but I figured that googling would quickly turn up instructions for how to do what I wanted. Which didn’t seem to be the case in the first 15 minutes or so of searching, but I remembered getting the idea from an example in the REST book, so I looked that up, googled some of the more specific language constructs I had questions with, and had something working in another hour or so.

Aside from stupid mistakes, the main initial difficulty that I ran into was in the guards against cross-site scripting vulnerabilities: my blog has its own domain, while my database is in bactrian.org. (And I was doing my initial prototyping on my home computer, which is a different physical machine.) The easiest way to get around that seemed to be to set up a proxy (or rather, two of them, one on my home computer and one on bactrian.org); a bit of mod_proxy configuration later and my prototype worked on my home computer.

I copied the prototype over to bactrian.org, and updated paths; it stopped working, again giving me a frustrating error message related to cross-site scripting. I couldn’t figure out what was going on, and spent a quite frustrating hour or so alternating between googling for help and trying to install and run a JavaScript debugger. (For some reason, the Venkman package in Ubuntu didn’t work for me.) Eventually, though, I remembered one more path that I would need to translate when moving the prototype; I changed it, and the prototype worked in the deployment environment.

After which it was a simple matter of programming to make the change and update the tests. Most of the work was in the latter: I have the web page skeleton abstracted fairly well out of the tests, but even so I have to modify a few different places if I change the output in a way that affects all pages. And I ran into one more road bump along the way, where inserting some white space in the HTML turned out to require me to change my JavaScript, but I figured that out pretty quickly.

So here we are. I’m really pleased with the results: there’s a big difference between being invited to click on a link to search for related blog posts (which may not even exist) and having a list of posts appear in front of you. This is the last change that I plan to make to the database for the time being (well, I might do a bit of trivial tweaking); a good change to go out on.

Random JavaScript-related thoughts:

  • Based on my limited experience, JavaScript is pleasant enough. I wasn’t impressed with its collections, but other than that the language behaved in the way I wanted, and it was quite easy to search through XML and pop some data into view.
  • I’m still mostly at sea if something goes wrong with my JavaScript. The console gives some basic help, but there were a couple of instances where I ran into a more serious problem and either wished that I could get more information out of the error or poke around data structures or something. Probably the debugger would have helped, if I’d gotten farther with using it.
  • I don’t have any acceptance tests for this, which makes me sad. It’s little enough JavaScript code that I’m happy to skip unit tests for it, but I really would like to be able to push a button and have reasonable confidence that I haven’t broken anything. (Especially since the functionality depends both on my JavaScript code and on WordPress’s behavior, so I’m going to have to manually test this every time I upgrade WordPress.) Some people on the XP list suggested some tools (Selenium in particular); maybe I’ll give that a try at some point.

first german lesson

December 22nd, 2007

Miranda had her first German lesson today. Which has taken me quite some time to arrange: while I’m reasonably good at getting around to trivialities, I’m not always so great at doing actual important stuff. So we’d been planning to get her foreign language lessons for a couple of years, but I hadn’t gotten around to doing much about it.

I did actually try to arrange something a year ago. At that time, she was more interested in French, so I did some googling and called a few numbers, but I didn’t find anything that seemed quite right. Not that I looked very hard – I should have followed up some of the possibilities more. Then I let it rest for a while, and when I asked her again, she’d decided that she’d rather learn German.

One of the other parents who helps out in the school library is from Germany; she gave me a few references. I didn’t do anything with them for a few months, but I eventually got around to sending some e-mails at the end of November.

We visited one potential class three weeks ago. It was a group lesson, and neither Miranda or I liked it at all, for different reasons: Miranda was quite nervous at the idea of being in a group where the teacher spoke almost entirely in German and the other kids already new something, while I didn’t like it because most of the kids apparently had no interest in paying attention and the teacher wasn’t doing much to fix that. Based on that, it seemed like individual lessons might be a better idea, so I exchanged a few more e-mails with somebody who was offering individual lessons. It took a few weeks for us to actually meet (everybody involved managed to come down with a cold), but Miranda finally had her first lesson yesterday.

Which went quite well. It was an hour-long lesson, the teacher was very friendly and sensitive to Miranda’s nervousness, and they covered a lot of stuff. And Miranda said she really enjoyed it. So early signs are good!

holidays

December 11th, 2007

Sun gives us the week from Christmas to New Year’s as a holiday; this year, those days fall on Tuesdays, and they’re giving us Christmas Eve as well. And we’re not going anywhere over Christmas, nor is anybody visiting us.

This means that I have eleven solid days at home with no demands on my time. Has that happened since I left academia? I’ve certainly taken two-week vacations before, but those involved flying somewhere. And then there was the time I missed three weeks of work because of a flu that turned into pneumonia, but this break from work will (I hope!) be different. (Less vomit, for one.)

The mind boggles at the number of things that I could possibly do. In fact, I’m kind of scared of making a list or plans, because if I start, I will make one that is too long for me to accomplish even in that vast expanse of time, which will lead to disappointment. Some reading, some programming, some blogging, probably a fair amount of video game playing, probably a noticeable amount of going through long saved items in the feed reader. (Even if I keep my blog reading time constant, the amount of incoming posts will probably decrease.) And, of course, hanging out with my delightful daughter. (But she is eight years old, which means that she won’t be demanding my attention as frequently as she would have when she was younger.)

I am looking forward to it. Don’t get me wrong, I quite enjoy my job, but it is nice to be able to dive into a somewhat broader range of my interests at times.

i am dense

December 11th, 2007

Over the months of reading server usage states for the blog, I have noticed that many of the search results that bring people here include the word “bianca”. Hmm, I thought, I didn’t recall writing about “bianca red latex”. Is Bianca some character in a video game that I wrote about but have since forgotten?

It only dawned on me this weekend that the frequency of the word comes from the title of the blog. I am slow at times.

Though that did get me thinking: I should have an Xbox 360 arriving tomorrow, I plan to sign up for Xbox Live, so I will need a gamertag. (I believe that’s what account names for the service are called.) I normally use names that are relatively closely aligned with my real name, but I assume said service is popular enough that carlton, dbcarlton, etc. will be taken. But surely nobody has taken “malvasia bianca” as a gamertag? The idea of using a female-associated name on the service (which is apparently full of sexist, bigoted assholes) has a certain sick interest.

Not that I plan to play multiplayer much, if any.

waiting until the last responsible moment

December 7th, 2007

From 37 Signals’ Getting Real:

People often spend too much time up front trying to solve problems they don’t even have yet. Don’t. Heck, we launched Basecamp without the ability to bill customers! Since the product billed in monthly cycles, we knew we had a 30-day gap to figure it out. We used that time to solve more urgent problems and then, after launch, we tackled billing. It worked out fine (and it forced us into a simple solution without unnecessary bells and whistles).

Not sure I would have thought of that strategy myself. Or had the courage to follow through if I did…

maybe i should become a basketball fan?

December 7th, 2007

It looks like the Warriors are going to be more entertaining than the A’s this year; maybe I should change my TV-watching habits? Starting the season 0-6 was not so great, but getting back to a .500 record a mere 8 games later was quite impressive, and they’re now 11-8 after a very good comeback in tonight’s game.

careful with your layouts

December 7th, 2007

I recently turned on “fast user switching” on the Mac, and just discovered that the login dialog keeps the previous user’s keyboard layout, instead of reverting to the system default. Which is a problem if the previous user uses Dvorak, the new user doesn’t, and the new user is typing in a password so she can’t even see that something’s gone wrong by looking at the characters that appear.

In fact, switching layouts and then switching users doesn’t work, either: it goes back to Dvorak! Weird. Changing to the Finder, then switching layouts, then switching users works.

To be fair, I can see how this sort of usability bug could slip through testing…

upgraded to leopard

December 2nd, 2007

I was in an Apple store the day before Thanksgiving to get a replacement power brick (the cable on mine had started to fray), and decided to pick up a copy of Leopard while I was there: the .1 update was already out, and while I was worried about the keyboard freeze problems, it didn’t seem widespread enough to terrify me. So I installed it over Thanksgiving.

Works fine. I gather there’s nice stuff under the hood, but I don’t particularly care about any of it yet. (Though I may buy a USB hard drive for use with Time Machine – there’s nothing irreplaceable on the machine, but it still feels like the right thing to do.) The extra eye candy is stupid, and in particular I could do without the new low-contrast “important folders” design, but I’ll live. The guest account is a nice idea, and my father used it that same weekend.

The autostarting X server is an interesting idea, and I like it if for no other reason that it means that I only start X if I ssh to another machine (which I only do about half the time), reducing the number of times that I have to tell the computer “yes, I really do want to shut you down, even though an apparently incredibly precious X server is running”. Though I could do without the new Safari warning when I have the temerity to shut down the computer if I have multiple tabs open in my browser.

Nice to see SVG support in Safari. There’s a bit of focus weirdness that interferes with my Reader workflow; I hope some of that gets fixed, but it’s not a big deal.

Not really sure that I’ve gotten $129 worth of value, but not a bad experience.

low energy for japanese

December 1st, 2007

I’m going through a low energy point in learning Japanese right now: I’m on the ninth chapter (out of thirty) in the textbook, I’m going at a rate that makes it pretty clear that I have at least a year to go before I’ll be done with the book (a year and a half looks more likely), and I’m past the stage where I’m reviewing old material (either grammar or vocabulary) but nowhere near getting a real payoff yet. No big crisis or anything – I knew this was going to take a while to pay off (I’m no longer seven years old, paired with an excellent teacher, or about to be living in a country that speaks the language), and this is a natural time to expect a down spot. Still, I might as well look at my workflow and see if there’s anything I can do to help improve my mood.

Actually, I started looking at the workflow a couple of weeks ago. One problem I was having was that it was taking me more and more time to review my vocabulary each night, and yet I still wasn’t sure I really really knew words when I claimed I did! Before I go further, I should explain my vocabulary flow: I have three bins of cards. One is a bin of words I know, one is a bin of words I don’t know. And there’s a third bin, of candidate words that I think I know, but need to prove it.

I go through the “words I don’t know” bin every day. But, on weekends, I also go through the cards in the “candidate words” bin, and every card either gets promoted to “known” or sent back to “unknown”. On the same day, I also go through the “unknown” bin and promote words that I’m comfortable with to the candidate bin.

The theory here is that having words spend a week in the candidate bin will give me time to forget them – it’s one thing to be able to remember a word night after night, and another thing to remember it after not seeing it for a week. I’ve been using variants of this system for decades, and it works pretty well. (I wish I could remember exactly how I used this system back when I was in college – was I using it just like this, or in a different way?)

The problems, though, were that I wasn’t sure spending a week in the candidate bin was long enough for me to forget words, and that also I would spend a noticeable amount of time going through words in the unknown bin that I actually knew pretty well. Fortunately, when you phrase it that way, the solution to at least the latter problem is pretty obvious: promote more frequently. (I was probably conflating the notions of transfer batch and processing batch.) The easiest way to do that is to introduce another bin, the “early candidate” bin; I can move words in there at any time, and then, on weekends, after clearing out the candidate bin, I promote everything from the early candidate bin to the candidate bin without looking at them.

Seems to be working well so far – it’s cut down the time I spend on vocabulary review each night, without any obvious cost. And it actually helps my first problem, too, since words are in one of the candidate bins for a week and a half on average instead of a week. If that’s not good enough, I guess I’ll introduce another candidate bin, to let words sit for (at least) two weeks before final approval instead of one.

That’s helping with the time I’m spending midweek. But, last week, I must have spent three or four hours studying, which is a pretty good-sized chunk of my weekend free time. And today, I really wasn’t excited about doing the exercises in the current chapter over again, as well as writing new vocabulary cards, going through the above candidate rigamarole, etc.

I’m not entirely sure about what to do with that, but at least part of the problem is that I’m trying to do too much at once on the weekends. (Especially on weekends when I’m starting a new chapter.) I think the lesson here is that I should just avoid doing everything in one sitting: I shouldn’t read through a chapter, do the exercises, sort through old vocabulary, and write down new vocabulary on a single day. There’s simply no need for me to do all of that at once: e.g. today I sorted through old vocabulary and wrote down new vocabulary, which was maybe an hour’s worth of work, so why not defer redoing the exercises until tomorrow? And, on weekends when I’m starting a chapter, maybe I can defer some of the work until midweek, or even the next weekend?

The down side of splitting that up is that it means that, on weekends when we have something planned to do, it will be hard to find time on both weekend days. Still, I don’t want to stay in a situation where I’m not looking forward to learning because of the quantity of work; if need be, it’s better to take three or four weeks for a single chapter than to push myself too hard, I’m fairly sure.

On a related note, Miranda and I looked at one German class today, and will probably look at another one next week; hopefully she’ll start lessons this month or next month.