- Why can’t we make another Shadow of the Colossus?
-
Super Mario World camera behavior.
(Via @danbruno.)
- An Apple //e really does make a good iPad stand.
- Jupiter loses a stripe. (Via @stephentotilo.)
- Ruby Ramen? (Make sure to look at the different product pictures.) (Via @yukihiro_matz.)
- I’m not exactly happy to learn that Phoenix Wright‘s legal system apparently isn’t as unrealistic as it looks. (Via @kateri_t.)
- Wow, Diaspora really hit a nerve.
- A really interesting interview with Brenda Brathwaite.
- Good ideas for social gaming innovation.
- This phishing attack is pretty scary; I accidentally left it open in a tab for a while, and could easily have fallen prey to it when coming back.
random links: june 2, 2010
June 2nd, 2010
1000 posts
June 1st, 2010
My WordPress dashboard tells me that this is my thousandth blog post. Which I find hard to believe; going through the archives, however, it really is true. I’ve been blogging for 2084 days, so I’m averaging almost a post every other day; I’m not managing that rate any more, but weeks when I do three posts are still not rare, and a few years ago I was rather more prolific.
Thanks to all of you for reading! Who knows, maybe after a few thousand more posts I’ll have figured this blogging thing out…
javascript and css
May 31st, 2010
I transitioned to a game team at work a couple of months ago. One of the reasons why I chose that particular team was that they were willing to let me do front end work, despite my lack of experience in that realm; this excited me because I figured I’d learn more that way than doing back end work. Also, I’m working on one of our older games; most of our new games have Flash front ends, but this game’s front end is in JavaScript, so working on this game does double-duty in that it helps fill in a notable gap in my programming experience.
So: JavaScript. It’s pretty cool. I’m glad to be working in a scripting language, I’m glad to be working in a dynamic language. I can’t say I’ve developed particularly good JavaScript style yet: in particular, the prototype-based inheritance model opens up a wider range of choices than I’m used to, choices where I don’t see a compelling reason to follow one path or another. I’m hoping that that will gel more; in the mean time, every once in a while I write some code that involves the fact that methods are properties just like any other, letting me do some cool code modification that I wouldn’t be able to do as easily in most other languages that I’m familiar with. (Though I suppose most of the time when I’m doing that it has a sort of Ruby monkeypatching feel.) And, given a desire to do that, a prototype-based system makes a fair amount of sense. I’m also not entirely sure how to react to member variables being public; for now, though, I’m just going with the flow and using that when it makes my life simpler, rather than being scrupulous about adding getters when I don’t need them or using closures to hide member variables entirely.
So, fun stuff; this doesn’t mean that I’m completely in love with the language, however. It has a few flat-out bugs; the worst is that, if you’re in a method and create an anonymous function, then, inside that function, ‘this’ is bound to the function object instead of the object whose method you are evaluating, which is never the behavior you want. (For that matter, having to type ‘this.’ all the time isn’t too thrilling, either.) And, coming from Ruby, the built-in tools for working with collections are surprisingly weak; I’m glad that I have jQuery.each and jQuery.map to help me, but that should be built into the basic language. (It doesn’t help that the callback that jQuery.each wants has its arguments in the wrong order, either. Hmm, maybe I should be looking into Prototype more?)
Of course, front end work doesn’t just mean working with JavaScript: it means working with HTML and CSS. And what I’ve been completely surprised by is how much I’m liking CSS. Previously, CSS had struck me as a basically good but banal idea, without as many tools to help me not have to repeat myself as I’d like. But now I’m really getting into the concrete benefits of the CSS Zen approach, where identical HTML is getting styled in different ways based on the context.
This really hit home when I was reworking the game’s keepsakes/scrapbook interface. Both of those pages want to display collections of items; and, on both of those pages, we make a distinction between featured collections (with a green background) and regular collections (with a blue background), leaving us with four different contexts. What I ended up doing was writing a single function that will display all the items in the collection; but outside of the HTML generated by that function I put a div with a class saying whether the collection was regular or featured, and outside of that div I put another div saying whether I was on the keepsakes page or the scrapbook page.
So then I would write simple CSS rules that specified the parts of the layout that were identical in all four contexts: e.g. pictures had the same size no matter where you were. But I’d write two rules for the backdrop: if it was contained within the featured div, the backdrop should be green, while if it’s within the regular div, it should be blue. And there were some bits of the decoration (e.g. buttons beneath the items) that I didn’t want to show at all on the scrapbook page; I’d still generate the HTML for them, but I’d include appropriate CSS selectors to get it not to be displayed on the scrapbook.
All of this resulted in nice-looking JavaScript generating nice-looking HTML, with CSS rules being easy to figure out, and making it as easy as possible to get a consistent look. Way cool. I even found some nice CSS nested selector tricks to get help bubble images to appear when I hovered over items; unfortunately, when I tried that code on Internet Explorer, it completely failed to work, so I had to redo it using JavaScript.
(In general, I would be happy if I never had to think about Internet Explorer again. Unfortunately, that’s not realistic for me right now. (At least professionally; when I’m playing around with JavaScript at home, I don’t care!) Fortunately, nine out of ten times, IE 7 and 8 are happy to render my layout in the way I expect; and in three out of the four times when it doesn’t, I can find a workaround that doesn’t look too bad or mess up my code too much. But that last time out of 40 can be a real pain…)
I also want to talk about testing, but I’m already over 900 words, it’s getting late, and I’m at a reasonable stopping point. So I’ll come back to that later in the week.
experience points podcast appearance
May 28th, 2010
I had the pleasure of being a guest on the Experience Points podcast recently; so if you want to hear me ramble, have a listen! I certainly enjoyed the conversation (and the subsequent games of Pandemic), though I wish I’d done a better job of explaining the virtues of market segmentation; many thanks to Jorge and Scott for having me on.
mysims agents
May 24th, 2010
MySims Agents is a delightful video game. The presentation is charming; the puzzle solving is lightweight enough to never be frustrating while being engaging enough to keep me happily playing through it; several of the NPCs are amusingly quirky; one of the minigames is surprisingly tricky; the mixture of your main character’s journey plus the extra stories you hear through the phone messages works rather better than I expected; and it’s long enough to feel satisfying without even beginning to overstay its welcome. Liesl and I both happily played through all of it; Miranda’s played through a little more than half, which is quite good considering that she never finishes (or even gets particularly close to finishing) games with plots and linear storylines.
Despite all of that, very few people seem to have played the game: I heard about it through Michael Abbott, but the game’s only other appearance in my feed reader was in a (rather interesting) review by Christopher Williams. I would like to construct some sort of narrative out of this about how juvenile art doesn’t get its due, were it not for the uncomfortable fact that I actually don’t have much to say about the game myself. At first I thought that might be because it’s very good but no BioShock, and not quite a Mass Effect 2, either, but looking through the list of games I’ve recently played, that’s not the only issue going on here: I see games like Yakuza 2 on that list that are much worse than MySims Agents but that gave me something active to whine about.
That’s been happening to me a fair amount recently: the same thing happened with Plants vs. Zombies, for example. (Which is the only game that I can think of that I thought I was done with playing and then picked up again half a week after blogging about it; and my iPad purchase has spawned a third round of playing it!) Plants vs. Zombies was another game that didn’t spawn a lot of discussion on the blogosphere, but at least people seemed to be playing it: I’d see various throwaway comments about it on blogs, or offhand mentions in my Twitter feed.
Whereas I get the feeling that Michael is the only other person I know who has played this game at all. Which is a shame. Give it a try: it’s charming, it’s fun, and it knows when you’ve had your fill.
another world
May 16th, 2010
Another World‘s opening cut scene shows an experiment gone awry, with my character being transported to another world, where I got dropped into a pool of water.
At which point I died.
On my next attempt, I moved out of the water; after a bit of trial and error, I killed the slugs on the next screen, but the lion on the screen after that killed me. Repeatedly, in fact. Eventually, I decided that fighting wasn’t going to work, and moving forward wasn’t going to work; a process of elimination suggested that I should try moving back, which allowed me to get away from the lion using a handy vine.
Another World looks like an action game; it may be more of a puzzle game (in the text adventure tradition) than anything else, however. You have a limited set of options at any given moment; if you choose from them appropriately, you will advance, but doing so may require consciously avoiding the standard gameplay choices at any given moment.
Soon, I got captured, and escaped with a fellow prisoner. My combat options increased when I acquired a gun, as did the range of environmental possibilities; in particular, I soon ended up in a cage with a few branching possibilities. Going up didn’t seem right just yet; releasing the water looked promising, but shut off the possibility of going further down. So I went further down, destroyed a wall that, I assumed, would be relevant later, then backtracked, released the water, and headed up top. The changing checkpoint codes as I died along the way reinforced my belief that this was the right sequence of action.
Another World and Abe’s Oddysee have a lot in common. Both are platformers built up out of distinct screens; both use large sprites to further constrain the range of options; in both, you die a lot, but the puzzles are generally fair and frequently checkpointed.
My reactions to the two games are quite different, however. Abe’s got me actively angry; Another World was quietly wonderful. I think this is largely due to the tone: to me, Another World felt melancholy, while Abe’s had a certain offhand cruelty, a cruelty that extended out of the in-game scenario to the way that the game treated the player.
As I moved on, the game continued to discard tactics that I had mastered, and wove together new possibilities out of the same set of ingredients. I was proud of myself for noticing, in the palace, that one of the guards will raise his hands and hit a switch, lowering a door which enables you to change the outcome of a subsequent battle. But I was unhappy that, after I mastered that subsequent battle, I was apparently completely stuck.
Eventually, I resorted to a walkthrough, which told me that had to let a grenade (or, apparently, four grenades?) go through to blast a hole in the floor. I felt that two new ideas in the same checkpoint was a bit unfair, and several other VGC participants also got stuck there; still, if that’s the most unfair the game gets in terms of puzzle solving, then it’s a very fair game overall.
Jesse Schell defines a puzzle as “a game with a dominant strategy”, with the implication that “puzzles are just games that aren’t fun to replay”. Which Another World takes to its heart to a remarkable extent; I’m so used to games that are filled with repetitive combat for its own sake that it’s very refreshing to see a game that refines or discards mechanics as soon as you’ve proven that you’ve mastered them. This results in a quite short game, but I don’t mind that at all; instead, I wish more game designers had the courage to strip out padding, had the vision to be able to see padding in the first place.
By this point, I was almost done with the game. It threw a completely new mechanic in at the Arena, then had one last firefight; that firefight turned into a capstone experience, where the skills that I had developed earlier (especially in the area where I got stuck, ironically), after a bit of further polish, allowed me to reliably finish the firefight first slowly then quickly. Which led to a final confrontation where, instead of a traditional boss fight, you crawl painfully across the floor, with legs apparently broken. And then you and your companion escape, perhaps to freedom.
One of the arguments we had (well, I had!) on the VGC forums was to what extent the game was minimalist. I eventually decided that I didn’t know what the term “minimalist” meant, so I don’t have an opinion on that subject, but there are some related concepts that the game does touch on.
In terms of its gameplay construction, it is spare with the concepts that it allows, while being systematic with the ways in which it combines those concepts. And the gameplay itself carries the story forward, with very few cut scenes after the game gives you control initially.
Its visual style is rough and sparse, but with a strong aesthetic that still holds up well in today’s high-polygon-count world. It gives me a certain wabi-sabi feel (if I understand that term right, which I probably don’t!), with its transience and roughness.
But the game also fights against that wabi-sabi feel in one important way: while you are lonely in that you are stranded on a strange world, with only one companion whom you can’t talk to and who isn’t with you for much of the game, you’re never actually alone. Instead, the game moves you directly from struggle to struggle, sometimes environmental but usually struggling against actual living enemies.
Looking at that tension through the lens of my favorite analytical categories, some properties that might be relevant are Positive Space, Roughness, The Void, and Simplicity and Inner Calm. The game does well in terms of Roughness and Simplicity. (I’ll have to think more about the Inner Calm half of that last one.) And, on a geometric level design sense, there is quite a bit of Positive Space.
But on a more conceptual level, the Positive Space is missing, and there’s no sense of The Void. You’re constantly forced to interact with the game, and usually with living enemies within the game: it throws one puzzle after another at you, you’re never actively invited to rest, and the spaces between puzzles rarely invite contemplation.
Ueda is frequently cited as a designer who is influenced by Another World. And if my memories serve me well, Ico has somewhat of the same problem: the game world is wonderful, but far too often in it, if you stop to drink in the world, you’ll find yourself getting attacked. It wasn’t until Shadow of the Colossus that Ueda really broke away from this, with a recognition that this combination of exquisitely crafted puzzles together with magnificently desolate environments is best served by leaving huge amounts of space between those puzzles, letting the player disengage from the puzzles and letting the nature of the environments seep into the gameplay.
I haven’t done my usual gathering of links for Another World, but I certainly recommend the discussion of the game at the Vintage Game Club.
random links: may 10, 2010
May 10th, 2010
- The Internet Archive has made a million books available for free to those who are blind or otherwise print-impaired.
- A delightful Bob-omb Battlefield performance.
- A city of staples. (Via @rands.)
- I love this attitude towards reuse. (Via @markhneedham.)
- “Games are too hard, they’re too long, and they provide way too much stuff.” (Via @ncroal.)
- CSS animation demo. (Via @shawnr.)
- Two game designers reflect: Clint Hocking and Manveer Heir.
habitable blog posts
May 4th, 2010
In my recent post on habitable software, I proposed evaluating software through the lenses of functionality, openness, and habitability. Given that one of my schticks is to yank analytical concepts out of one context and try to apply them elsewhere, this suggested a followup question: does this classification only make sense when talking about software, or can I use it elsewhere? And, given that another one of my schticks is relentless navel-gazing, this in turn led to a specialization of that question: what happens if I apply that classification to this blog?
So: functionality. In the context of a blog, I suppose that means: does this blog talk about topics that you’re interested in, and have interesting / useful / provocative contributions to the discussion about those topics? I’ll mostly leave that to others to decide; certainly I wouldn’t blame anybody else for not being at all interested in what I have to say here! But I do try to dig a bit into whatever topic happens to interest me in the moment; if you happen to find my topic du jour interesting, maybe I’ll have something worthwhile to say. I’m sure I can do better in that regard, but I’m also sure I could do worse, under the (very) generous assumption that I’m speaking of a reader who shares my peculiar collection of concerns.
And openness. I try not to hoard my ideas, I’m happy to talk about them with other people and let them build on them or disagree with them. And I try to look at what others have written, too – I read a lot of blogs, I dig for blog posts on topics that I’m focusing on, I include references to them even if I can’t find ways to fit them into the main thrust of my discussion. Again, I’m sure that there’s room for improvement, but I’m not particularly concerned on this front either.
Habitability, however, is another matter entirely. In fact, part of the reason why I’m happily giving myself a pass on the previous two criteria is that I strongly suspect that my blog is about as uninhabitable as they come, at least for readers who don’t happen to be me! This blog is a record of my day to day obsessions: when I find something I’m interested in, I try to use this blog as a way to get a piece of my thoughts on the matter better defined to myself. But I’m not particularly concerned with presenting those thoughts in a fashion that’s going to fit well with anybody else’s thought patterns. Habitability doesn’t mean “reduced to a least common denominator”, and one thing that this blog has going for it in that regard is that it is very much inhabited, but I don’t think that it’s inhabited in a way that manifests core living structures that will resonate more broadly.
One of the directions to approach this from is to come up with a set of constraints, a set of patterns. Looking around, I see some other interesting experiments. Roger Travis has been talking about taking a bardic approach recently; I’m curious about that, but I don’t have a clear vision what it would be like. (If I were still teaching, though, I would be thinking very hard indeed about what he’s been doing.) I’m very impressed by what Duncan Fyfe has produced recently, but his approach wouldn’t work at all for me. Justin Keverne seems to be in the process of rethinking his blog; some of the seeds there really appeal to me.
And then there’s Gödel, Escher, Bach, which I’ve just reread for the first time in more than a decade, and which is fascinating both as a model and as a cautionary tale. As a model: the dialogues are wonderful, and are a form that I’ve loved for ages. As a cautionary tale: while I enjoy the non-dialogue parts of the book, I also suspect that a large part of the reason why they’re there is that Hofstadter can’t bear to not explain what he’s thinking about, so they’re really there for his sake more than the readers’ sake; this is something that I do All The Time. As a model: the pictures in the book are pretty wonderful, too.
(Presentation Zen pointed out rather forcefully the strengths of pictures as well. The blogger computer geek thing to do seems to be to start taking photography seriously; perhaps inspired by my daughter, though, I’d be more interested in drawing, were my “learning non-programming stuff” slot not taken up by Japanese. Still, having a camera in my pocket isn’t the worst thing in the world; and there are zillions of images out there on the web if I only take the time to think about how to use them.)
I suspect that I should take a lesson from both Justin and from Hofstadter and play around with length. I have enough experience with writing posts in the 1000-2000 word length; I should experiment with both much smaller and much larger pieces. (Possibly starting from the same basic material, but presenting it in either a suggestive or a well worked out approach, instead of typical blog pontificating.) And I should cast my net for presentation approaches more broadly: while linear written exposition is pretty deeply embedded into my brain, now more than ever it’s not the only approach worth considering.
I have a lot to think about in terms of presentation and habitability, that’s for sure. Though I should return to the question of functionality: if I’m considering writing something longer form, I do wonder what other people would be interested in reading about from me. Obviously it’s mostly my problem to figure out what I have that’s worth saying, but I am curious what suggestions and advice others have.
After more than five years of writing this (and a couple of years of Twitter usage), it feels quite odd to be thinking about writing something that won’t immediately be available via an RSS feed. Don’t get me wrong, this blog isn’t going anywhere, but I should carve out a quieter space to think and experiment, too.
electronic book formats
April 30th, 2010
I was quite late to the music download party, but my experiences on that front have been good; that, combined with my desire to not run out of wall space in my house, suggests that I should start buying books electronically as well.
My initial hardware device for this will be an iPad, but I’m wondering what my preferred format should be for books that are available from Apple and Amazon but not from elsewhere. Some specific questions I had:
- My understanding is that both formats involve encryption; is that correct, and, if so, is it possible to remove the encryption? (Googling suggests Amazon’s isn’t too hard to remove.)
- My understanding is also that Apple uses a somewhat more widespread format, but their proprietary DRM makes their content unportable for now; is that right? (Is there an Apple-sanctioned way to read an iBooks book on a device other than an iPad or an iPhone/iPod Touch at all?)
- Is there any way to browse Apple’s bookstore through a computer, or can it only be browsed within the iBooks application?
- In general, are Kindle books or iBooks books more pleasant to read on an iPad, or is it a tossup?
- Are there any other large stores for non-public-domain electronic books that I should be aware of?
- Anything else I should be asking that I’m not?
Thanks in advance for any suggestions people provide.
vintage game club reboot, continued
April 27th, 2010
As I mentioned previously, we’ve relaunched the Vintage Game Club under new game selection rules. And I’m very pleased with how it’s gone so far: after about a week of feeling out what games people might be interested in playing, two games emerged with champions, and in both cases we’ve had enough support that the games have been chosen.
So we’ll start playing Another World more or less immediately; we’re still deciding when to start Psychonauts, but it’s next in the queue, and (given Another World‘s short length) we’ll probably start it in a couple of weeks.
If either of those games strikes your interest, please join us! If they don’t, please suggest another game that does strike your interest! I’m looking forward to playing both of them, and I’m very grateful to the members for being willing to work with the new system and to AndrewArmstrong and oozo (and Michael, of course) for stepping up as our first champions!
(Side grumpiness: I would be even more excited about playing Another World if my Virtual Box installation of Windows actually worked acceptably. Fortunately, I have another couple of options for playing that game, but I’m wondering if I should break down and buy a cheap Windows PC for VGC purposes. At some point, I’ll buy a reasonably powerful desktop Mac that I’ll set up for dual booting, but I’m not planning to do that any time soon, especially since I just ordered my new computing device for the year…)
random links: april 25, 2010
April 25th, 2010
-
Daniel Floyd and James Portnow on Video Games and Moral Choices.
-
Ryan from 37 Signals on applying Christopher Alexander to everyday work.
- Seth Godin’s April Linchpin session.
-
A cat and an iPad. Which I find totally fascinating in a non-cat-youtube-video way.
(Via @Laralyn.)
- I am a biotic god! (Via @truffle.)
- Amazing clouds. (Via @marick; also, according to this note, the title of that page may be inaccurate.
- Interesting book industry evolution thoughts. (Via @martinfowler.)
- How to write an iPhone (or iPad, presumably) webapp. (Via @raganwald.)
- A fabulous take on the Super Mario Bros. 2 theme. (Via @ChrisLepine_AG.)
christopher alexander’s fort mason bench
April 24th, 2010
One of the surprises I encountered when reading The Nature of Order was that Christopher Alexander designed a bench at Fort Mason. (He talks about the process of its construction in the third volume of Nature of Order.) So when Agile Open California returned to Fort Mason last year, I made a point to duck out between sessions and find it.
At first glance, the bench was rather disappointing: it’s seen better days, the concrete isn’t the most attractive, and there’s an odd sort of pedestal up front.
This being Christopher Alexander, though, I was willing to believe that there was more than met the eye at first glance, so I spent a bit of time there (and returned a second day), and ended up rather fond of it.
Point one: levels of scale. The concrete is not my favorite material, but it’s not all that there is to the bench: there are tiles on the sides, on the octagon, and in strategic locations on the front on the bench. And the tiles turn out to be rather lovely; I was particularly fond of the fox tile in the center of the front of the bench.
With that in mind, the concrete ends up being a rather fitting backdrop for the tiles to find themselves in. (A bench that was completely worked out at the level of the detail of the tiles would be a different work indeed!) Also, while I don’t know what constraints in terms of time and money Alexander had to work with, in general you have to make tradeoffs as to where you spend your efforts; rather than treating everything uniformly, he made sure that the tiles were special, while leaving their surroundings perfectly functional but requiring much less work.
Point two: this isn’t a work of art to be admired, it’s a bench to be used. The proportions of the bench seemed a little odd when I was looking at it, but it was really quite comfortable to sit on. And flexible, too: you can sit on the first row, you can sit on the second row, a single person wouldn’t feel overwhelmed by it but I imagine you could get as many as 20 people sitting around there if you really wanted to. (To be honest, I’m not sure why you’d want to, but still.)
And then there’s the odd octagonal pedestal at front. When I first saw it, I was nonplussed: I was willing to believe that the area in front of the bench would have felt a bit odd without something there, but I wasn’t completely convinced by the pedestal as a solution to the problem. When I came back the second day (which is when all of these pictures were taken), however, a man was there fishing, and the pedestal was in just the right place and at just the right height for him to keep his gear. So, in fact, the pedestal turned out to work very well in the living context of people actually using this area, standing closer to the water. (The trash can, in contrast, just looked ugly there.)
Point three: the setting. As Alexander repeatedly points out, you can’t consider a construction in isolation, you have to consider the construction in context. And the context for this bench is rather remarkable: you have rather steep hills covered with trees behind you and to your right, you have the Fort Mason buildings to your left, and in front of you you have a gorgeous view of the San Francisco Bay, with Alcatraz and Angel Island in the distance.
So it’s a funny sized area, far too small to place an actual building, but exactly the sort of secluded nook where people might want to hide out, relax, chat, and drink in the scenery. And a traditional park bench wouldn’t work nearly as well in the space: the space is large enough that a traditional bench would be so small as to feel at sea, and a traditional bench would also direct your view exclusively across the bay (which, while the most scenic view, is far from the only view of interest). And the size of the hills behind and to the right of the bench demand a certain response; the substantial nature of the bench and its cinderblock construction make it just the sort of object that doesn’t get overwhelmed by that context.
When all is said and done, I ended up quite fond of the bench. I just wish I’d had more time to spend there, instead of having to steal time between sessions. Agile Open California will be back at Fort Mason this year; maybe I’ll run a session at the bench instead of in the regular meeting rooms, weather permitting?
galcon
April 23rd, 2010
(Short Game disclaimer: There is a trial version of Galcon available in the app store, you’ll have a very good idea of what the game is like after playing it for less than five minutes.)
I got curious about Galcon when Randy Smith used it as an example in his GDC talk on “Designing to Grab and Retain Players” this year. My memory turns out to be faulty: I thought he’d talked about it as an affordance example, and I was going to quibble about that (given some surprises I had when trying to select multiple planets when first playing the game), but nope: in the “grab players” section, he rightly praised the game for the simple controls (you just tap on planets to send fleets from one to another), but he also said the affordances were weak, and that there were too many clicks before you got started. (I remember being confused by the tutorial.)
It actually turns out that Smith had more positive to say about the game in the “depth” section of his talk: the randomly generated levels, the consequences that the simple rules lead to, the different game modes for different play styles. And here too, I generally agree with Smith: I had to go through one major shift in strategy as I went up the difficulty chain in the main game mode, I’m pretty sure I would have had to make another strategic shift if I’d really wanted to make it all the way to the most advanced difficulty, and of the other game modes, one was too mellow for me, one was too frantic for me, one was too mysterious for me, one was arguably a slight improvement over the main mode, and they all brought something to the table.
All that aside, though, I think the reason why I must have bought the game is that it just looked like a neat idea. A very simple playing field with large circles and small triangles; you control the game just by touching the circles; and if there turns out to be actual depth there, what’s not to like? And I’m happy to have bought it, and it’s a good example of the sorts of design possibilities the iPhone opens up: I like the tactile feel of the game a lot more than I would have liked it if I were playing it with a mouse or trackpad, and I suspect also more than I would have liked it if I were playing with a stylus.
One aspect of my interaction with the game that I’m not sure what to make of: as you go up the difficulty levels, it doesn’t just give the enemy more ships, it also switches from showing you the count of enemy ships on planets to not showing you the count. Which rather annoyed me at the time; in retrospect, I’m not sure if I would prefer for the game to have its current design, for it to have show/hide ships to be an option that’s orthogonal to other difficulty changes, or for the game to have picked one mode or the other and stuck with it. I guess I would tentatively lead towards the latter (probably with hidden numbers, despite my general preference for visibility of that sort of thing): the game’s current design let me be actively disappointed about something that I wouldn’t have thought about at all otherwise, and in general I’m not a big option fan. (So, going back to the depth discussion from a few paragraphs up, I don’t see the multiple game modes as the most satisfying form of depth, either.)
plants vs. zombies
April 21st, 2010
Plants vs. Zombies is a thoroughly delightful game about which, for better or for worse, I have very little to say. Despite not being a tower defense fan, I enjoyed the main gameplay mode: while I had my favorite tactics, it threw enough changes at me to keep me interested but not overwhelmed. The minigames allowed the game to experiment further, exposing me to more options; and, as I made it part way through the second story mode a second time, it continued to throw new wrinkles at me.
But what sets the game apart is the charming touches that are everywhere: the title, the art, the help screen, the descriptions in the almanac, the music video. Miranda was fascinated as soon as she saw it, and both she and Liesl have spent quite a bit of time with the game as well.
So I really wish that I had something deeper to say about the game! The fact that I don’t, though, is in no sense a criticism of the game (though perhaps it is a criticism of me): I thoroughly enjoyed the time that I spent with it.
(Random fact, just to make you jealous: over lunch on Mondays and Fridays at work, I play board games in a group that Dave Rohrl, the model for Crazy Dave in this game, organizes. Steve Meretzky is another regular participant.)
Not a lot out there about the game in the blogs, but some links:
- Gerald Delaney plays the game as a pacifist.
- Greg Howley goes through some of the plants and the zombies.
- Bonnie Ruberg talks about it shortly after release.
- Carl Muckenhoupt compares it to other tower defense games.
- Gianfranco Berardi talks about prototyping and accessibility.
- Simon Carless pits Plants vs. Zombies against AAA games.
vintage game club, iteration two
April 19th, 2010
The Vintage Game Club has been going on for more than a year and a half now, and I’ve had a great time with it. But, as with any endeavour, its first appearance in the world leads to areas where the initial plan was, perhaps, not the best; so we’re experimenting with a new way to organize the participation.
I don’t want to speak for my fellow moderators, but I thought I’d explain some of the reasons why I thought these changes might be useful. Some of the issues I had:
- The moderators were busy enough that the between-game decision periods lasted rather longer than I was comfortable with.
- On several occassions, we selected games that people didn’t want to stick with, with even the game’s biggest proponents in the voting dropping off quickly.
- The voting process itself wasn’t very satisfactory: console gamers and PC gamers couldn’t agree on what to play, and the need to satisfy a large number of people and the rhythm of play meant that we couldn’t choose games that were too hard or to short or too long. (The Another World suitability discussion was the best example of this latter problem.)
Looking at all of these, I saw one theme: voting. It was directly causing problems (point three), it didn’t give particularly satisfactory results (point two), and it made the moderators a bottleneck (point one). Which raises the question: why are we voting?
I’m not sure we ever made that explicit, but the idea behind voting was that it would encourage a reasonably large number of people to play and discuss a game together, even if they wouldn’t necessarily play it otherwise. And we had some success with that, at least initially, but I don’t think we’ve really done a great job on that metric. In particular, the mental model implicit in that view is that people’s preferences in what to play are relatively flexible; but there are important ways in which that’s not the case, the biggest of which is that not everybody has access to every relevant game platform.
So we’re experimenting with stepping away with the model that we want as many people to play a given game as possible: instead, we’re switching to a model that we’ll work with people’s pre-existing desires to play a given game, and we’re trying to make as welcoming a space as possible for different groups of people to play older games together. This way, even a small group of people who want to find a home for discussing a game will be able to do it at the VGC.
The selection mechanism isn’t the only change: in particular, our change to requiring champions will also, I hope, help directly with all three of the pain points above.
Incidentally, I do hope that, even with these changes, we’ll still have occasional games that get a broad spectrum of participation—the BioShock playthrough was a reminder of how well that can work. I think that is a valuable model, but I no longer think that it should be our only model for a successful playthrough.
caching, take two
April 18th, 2010
It turns out that yesterday’s attempt at setting up caching for the blog didn’t work: my feed was broken. (Or rather, one out of the three feed formats.) Sheer luck that I discovered it so quickly—I’d e-mailed the Akismet folks about a reader whose comments were regularly getting flagged as spam, and as part of their (delightfully quick) response they pointed me at ismyblogworking, which told me that, in fact, my blog wasn’t working.
So I’ve tured off hyper-cache, and am now trying W3 Total Cache. Hopefully things will work better this time…
turned on caching for the blog
April 17th, 2010
I’ve turned on caching for the blog: it gets little enough traffic that 99.9% of the time I don’t need it, but I had one incident a month or so ago where traffic overnight overwhelmed the machine a couple of days in a row, requiring a reboot both times. So, since I want the blog to work and since I depend on the machine for other purposes, I figured I should turn on caching.
Please let me know if you see anything strange.
I’m using hyper-cache; another plugin I considered was w3-total-cache. Here’s a useful-sounding page on the topic.
Update: hyper-cache didn’t work so well.
habitable software
April 13th, 2010
There’s been lots of discussion recently about the fact that certain computing platforms are less open than some people would prefer, with many people being up in arms about this fact. Once, I would have been one of those people; these days, I’m not (though seeing the reduction in openness does make me sad), and I’m trying to tease out why.
The key concept here is that freedom to use software or hardware in ways that you choose isn’t just another feature that a piece of software or hardware may or may not have: it’s a separate and parallel class of good. And, for many people, it is a very strong class of good: there are a lot of people in my social circles who, given the presence of a free tool for a job, don’t seriously consider using a non-free tool at all. I never considered using non-free programming tools for years, for example, or using Windows instead of Linux.
That above example is for a particularly strong version of openness, namely freedom as used by the Free Software Foundation: the ability to not only use the software to produce whatever you want but to be able to modify it so you can expand its range of use. But openness is a continuum, and there are less extreme but still valuable positions along it: I remember when growing up reading about a compiler whose developer charged people for distributing software built by it, and this felt wrong to me at the time even though I never thought twice about the fact that I couldn’t get source code to the compiler. And I would also prefer to use a compression codec with a publicly available standard over one with a closed standard, even though the former might be just as expensive to use (e.g. because of patent licenses).
But I use non-free software a lot more than I used to; my use of non-free software got a big boost as my volume of video game playing increased, but I also use non-free software in many other areas as well. Video games give one example where free software loses so badly on the feature comparison as to not be worth considering, but that doesn’t apply to all the software I use: e.g. why do I use Tweetie as my Twitter client and Things as my list manager in the presence of many open source alternatives?
I think what’s going on for me is this: yes, features and freedom are both separate and important goods to me. But, where you have two dimensions for evaluation, you have the possibility of more than two dimensions, and a third dimension has started to come to the fore for me. I’m not sure exactly what to call it: at first I was thinking I’d use the term ‘beauty’, but that’s a bit stronger than what I mean. ‘Aesthetics’ isn’t a bad term, so maybe I’ll end up going with that, but for now, I’m leaning towards the term ‘habitability’. (Inspired by Richard Gabriel’s term ‘habitable code’, though he uses that to refer to the source code itself rather than the software or hardware involved; while I’m borrowing the adjective, I don’t claim that I am (or am not) using it in an analogous way.)
Basically, there is software that I feel happy to be sitting down and using, and there’s software that grates at me (sometimes only barely, sometimes quite violently) when I have to interact with it. I might be happy about the software because it does a particularly good job of meeting and even anticipating my needs; I might be happy about using the software because of a strong, well-thought-out vision that motivates it (even though that vision may entail removing features that, in the abstract, I’d want); I might be happy using the software because it’s a pleasure to look at. But, in all instances, the thought of using the software makes me happy; whereas there’s a bunch of software out there that I shy away from using, that runs the gamut from actively pissing me off to just not feeling right. I’m using the word ‘software’ here, but everything in this paragraph applies equally well to hardware. (And, in many prominent recent instances, to a mixture of software and hardware working well together.)
So this notion of habitable software is very important to me right now, equally so to functional software and open software. And, unfortunately, right now I’m having a particularly hard time right now finding instances where all three of these meet; this makes me sad.
Is this a new feeling for me? At first, I thought it was, but now I’m not so sure. I first started seriously programming doing non-application software from, say, 1987 to 1994. And, in that time period, open software was actually pretty awesome in terms of habitability: Unix was a great platform to be programming on, Emacs was a great editor, the GNU toolchain was very solid, Unix’s networkability was so much better than anything available for normal desktop use as to be beyond compare, and even X Windows was just fine, given the other alternatives. So you really could get all three of that trio at once; I’m no historian, but I think you could probably make a pretty good case that openness (and even freeness in the FSF sense) contributed actively to functionality and habitability in that case.
It’s a couple of decades later now, though; unfortunately, a lot of that world has stagnated in the interim. Unix is still a good foundation to build on (my favorite general-purpose computing platforms are all Unix-based), and its networking has flourished in ways that would have been hard to imagine at the time; Emacs and GCC and X Windows have all improved, but not nearly as much as I would have liked, however. If I were doing certain kinds of server development, I would find it acceptable (though still grating at times); otherwise, not so much. (Though I’m pretty sure I’ll always have a soft spot for Emacs!)
So the needs for a computing ecosystem has changed; I’ve changed too, though. Certainly playing video games has had a lot to do with my shift in viewpoint, both because they give examples where open alternatives aren’t at all competitive and because they give aesthetics a more central role. And not being on a student income means that it’s a lot easier for me to buy software and hardware than it once was.
But agile has played at least an important role in my shift as those factors. One reason is its emphasis on the ease and pleasure of working with the code itself (so I guess that habitable code analogy isn’t too far off): I value that in my programming, shouldn’t I value that in my programming environment more broadly? Also, the programming techniques that it suggests have also pulled me out of my old Emacs / C habitat: I want to use different programming languages (many of which Emacs supports badly), I want automated refactoring (good luck doing that in Emacs). (Though I should point out that much of what I want here is supported by open tools; they’re just different ones, and ones that come with their own set of habitability problems.) And, finally, agile insists on putting business and external design considerations at an equally important level to technical considerations when developing software; it’s no accident that the golden age I mentioned above was a golden age exactly for a community where the same people could judge both of those considerations well.
I could go further afield, too. I seem to be unable to go more than four or five blog posts in a row these days without mentioning Christopher Alexander; he’s convinced me that, to build spaces that you feel good living in, you need to take account of your environment as a whole, instead of using freedom as an excuse to do whatever the hell you want. And then there’s global warming: while I think that my house will remain habitable for the next several decades, untrammeled freedoms are putting habitability at risk in a very literal way.
So, at least in the computing arena, I’ll propose functionality, openness, and habitability as a trio of goods, the absence of any of which leaves me with a system that doesn’t feel right. I suspect I could get that trio to help me analyze other contexts, too.
I’d hoped that writing this would lead to my feeling more at ease. And, to some extent, it has: I’m happy enough with choices that I’ve made that involve selecting two out of those three criteria, in the absence of solutions that fit all three. But, having said that, I’m still not thrilled: it still doesn’t feel right for me to say that solutions that aren’t open are fine. What I would really like is for people working on open solutions, on free solutions (in computing arenas or more broadly) to have habitability front and center in their vision of the world they’re trying to build.
Freedom is great, but how we use that freedom is a choice: let’s choose to build something beautiful.
ghibli music for piano
April 12th, 2010
If any of you love the music in Studio Ghibli movies and would like to play said music on the piano, allow me to recommend スタジオジブリ作品集 to you. It’s got music from all of their movies, including ones that haven’t been released in the United States (incidentally, I recommend おもひでぽろぽろ, and the English subtitles on that edition are fine though you will need an all-region DVD player to watch it), and it’s a joy to play. I knew I would enjoy playing some of it, e.g. bits from Totoro and Pom Poko, but I hadn’t realized just how much some of that music had sunk into me: e.g. playing the music from Castle in the Air just felt right, and I’d forgotten how beautiful the song from Spirited Away is.
It’s possible that other people might prefer different editions of this music: for example, it’s probably not the right edition for somebody new to the instrument, and certainly there were areas that I had to pick my way through somewhat gingerly. But the selection of pieces in the volume is really top-notch. If you’re interested but don’t feel like figuring out how to deal with a web site in Japanese, you can also find it here or here. (I haven’t used either of those sites, though.) Though if you do decide to order from Amazon Japan, I recommend filling up your cart with Nikoli volumes (here’s one to get you started)—Amazon’s initial shipping charges are enough to give one pause (though the good news is that items arrive quite quickly), but charges for additional items are pretty reasonable, and Nikoli volumes themselves are a great value for the price.
random links: april 11, 2010
April 11th, 2010
- What core gamers should know about social games.
- Ian Bogost’s GDC 2010 microtalk.
- Roger Travis’s latest teaching experiment.
- This is not a spiral.
- A cool platformer twist. (Via @SimonParkin.)
-
Jane McGonigal’s 2010 TED talk.
A useful counterpoint to the discussion that Jesse Schell’s talk led to.
- The FarmVille diaries. (Via @SimonParkin.)
- Functional programming, OO programming, constructors, partial application. (Via @KentBeck.)
- Ponyo bread. (Via @SimonParkin.)
- Infect yourself with hookworms to cure allergies and asthma!
- I’m sure I must have seen this proof that the area of the circle is πr2 before, but I didn’t remember it. (Via Ben Abraham.)
- Conway’s Life as a shoot-em-up. (Via @JoeOsborn.)












Posts