[ Content | Sidebar ]

being on call

July 22nd, 2011

At work, our service has been in a pre-alpha mode for the last month or so. Which has been a fascinating experience, one that I’ve never been so heavily involved in before: in the StreamStar group, we were selling a product rather than running a service, so there wasn’t the same visibility into how well it was working at any given moment, and at Playdom, I joined the team for a game that had been around for more than long enough to be past the scaling issues. Whereas with the product I’m working on now, we’re feeling out those early issues. In general, we’re staying ahead of scaling problems, but we’re also trying to be very heads-up on alerts so we fix things before anybody else notices them.

Which means that people sometimes get woken up in the middle of the night. Initially, it was the same couple of people, but that’s obviously completely unfair (and goes against the Whole Team philosophy that I prefer), so now we’re rotating that job among all the developers. I had the pleasure of being on call a couple of weeks ago, and it was a lot more interesting experience than I expected.

And yes, part of that interesting experience involved staying up later in a couple of evenings than I would have liked, and being woken up a couple of times. The problems there happened to involve a piece of code that I was relatively familiar with; in fact, during that week I’d already been experimenting in test deployments to see where and how it would fall over, I just didn’t manage to get far enough ahead of production scaling to give us quite enough breathing room! But at least it meant that I had some idea of what to look for and what to do, which certainly helped. (And don’t get me wrong, even when I was the primary person on call, a lot of other people were ready and eager to help as necessary, and somebody else implemented the initial stability fix.)

It turned out, though, that being the primary person on call when issues like that come up has an interesting affect on my brain. In the past, when people had talked to me about issues that had come up when they were on call, I was happy to help fix things, but my brain was treating the problem somewhat abstractly and as a distraction to what I’d been planning to do that day. Whereas running into problems when I’m on call rather quickly puts my brain into problem solving mode, with the result that when I showed up at work the next day I knew exactly what I wanted to be working on, what steps I wanted to take, and where I needed to advocate for further work. So the upshot was that I felt a lot more focused for the rest of the week (well, when I wasn’t feeling sleep-deprived!), and it carried over to the next couple of weeks: I can program pretty effectively when I’m trying to answer the question of “what can I do to prevent other people from being woken up for similar reasons?”.

I am, of course, hoping not to always have to keep that motivation in the front of my mind when I’m programming. (And fully expecting that to be the case: we’re doing a very good job of leaping on small problems now and trying to take a systemic approach to solving them instead of a patchwork approach.) But it’s a helpful reminder of the virtues of Whole Team: exposing everybody to problems means that everybody has a chance to really feel their effects and get their brains directly interested in solving those problems.

And, as a side effect, it means that non-bug work can go a lot faster, too: in particular, it’s been great this week to have much faster startup speed for the component involved in the aforementioned issue, because that made it so much easier to run experiments. Goodness all around.

upgrading memory to rails 3.0

July 12th, 2011

I wrote a program to help me memorize stuff a few years, partly for reviewing Japanese vocabulary (and grammar) and partly to give me an excuse to learn Rails. It’s done very well in the former regard; it was somewhat useful in the latter regard, but it’s simple enough (and used by few enough people) that it certainly hasn’t turned me into a Rails expert.

Rails is a moving target, and in particular the release of Rails 3.0 last year brought a fair amount of changes. I didn’t upgrade immediately, partly because I was busy with other things and partly because authlogic took a while to be upgraded to work with Rails 3.0. Eventually, though, authlogic got fixed, and Rails 3.1 release candidates started to appear, so I figured I should upgrade sooner rather than later or I’d be setting myself up for even more pain in the future.

As always, there was a very helpful Railscast. So with the help of it and the rails_upgrade plugin, I created a branch and started working at it.

Getting the basics working wasn’t too hard, so after a couple of hours I had something that passed all of my automated tests without any deprecation warnings. Unfortunately, when I fired it up in a browser, I found that the code to show the answer to a question didn’t work. I wasn’t completely shocked to see that, because I was aware that the move to unobtrusive JavaScript was one of the big changes in Rails 3; I knew some of the things I had to do (make sure that I included rails.js and the csrf_meta_tag), but the exact details of how to handle replacing part of a web page with code from the back end wasn’t entirely clear to me, and I didn’t find a web page that gave a completely braindead cookbook.

Having said that, it didn’t take too long to figure out an answer. And, in case it helps anybody else, here’s what I did: I started with a section of my view that looked like this:

<% form_remote_tag :url => { :action => :answer, :item => ask },
:update => "answer", :html => { :id => "show-answer" } do %>
<%= submit_tag "Answer" %>
<% end %>

and ended up with this:

<%= form_tag url_for(:action => :answer, :item => ask),
:remote => true, :id => "show-answer" do %>
<%= submit_tag "Answer" %>
<% end %>

And in the controller method I removed the render :partial line at the end, and added a view answer.js.erb containing the following:

$('answer').update("<%= escape_javascript(render :partial =>
'answer', :object => @item) %>");

Which is quite straightforward, and certainly the generated HTML is nice. The one thing that I don’t like about it is that I don’t know how to do a good job of testing what the controller method returns: when the controller method rendered HTML, I could use assert_select, but that gets harder when it renders JavaScript. (Update: I figured out a good way to test this.)

The next issue ws that the keyboard shortcut for pressing that button didn’t work. This had actually been an issue when I originally wrote that code, and the method I’d used then (calling the onclick action) no longer worked. The solution I came up with was to modify rails.js to make handleRemote public, and to call it directly, but I’m not thrilled with that, because there’s the danger that the code paths for clicking and for using the keyboard shortcut could diverge. Eventually I’ll probably switch over to using jQuery instead of Prototype, maybe $(...).click() will do the right thing there?

At that point, I pushed the code live, quickly realized that the display for newlines was broken, and reverted back. I’d already converted to using the new automatic HTML escaping mechanisms when they hit Rails 2.x; unfortunately, they changed in Rails 3.0.8 (and stayed changed in Rails 3.0.9), in a way that meant that the result of concatenating html_safe strings was no longer html_safe. I solved it by sticking an html_safe at the end of the entire block, but I don’t like that because it makes it too easy to accidentally introduce HTML-escaping bugs; maybe I’ll file a bug report on the issue.

After that, everything worked, and from start to finish it probably took around five or six hours in total (spread over a week or so), which is a quite reasonable amount of time for a major upgrade. And it feels to me like the code is faster after the upgrade, which was a pleasant bonus! Also, it got me chatting with a friend of mine who also uses memory, resulting in my improving the layout on his Android phone (to match the way it looks on iPhones); always nice to have an excuse to improve software like that. And I’m glad I got this done before Rails 3.1 appeared.

But I also wish I’d been paying a bit more attention to Rails’s evolution, so I would have been a bit more familiar with what I was in for. Honestly, I still feel a little bit conflicted about this—I don’t currently plan to become a Rails expert, and I expect I’ll give Lift a try the next time I want to write a web app—but I like Ruby and Rails enough that I don’t want to lose touch with them. (And I really do depend on this memory program, so I very much want to keep it working!) For now, I’ve subscribed to the Ruby on Rails: Talk mailing list; the signal-to-noise ratio there is, unfortunately, a lot worse than I’d like, but there’s enough signal that I’m sticking with it for the time being. And I’ll try to find time to watch a higher percentage of Railscasts than I had been doing.

out of control

July 5th, 2011

As I’ve mentioned before, we often play Burnout Revenge after lunch at work. Not always—we play board games once a week, we recently got a nice Rock Band setup, and several people have started playing ping pong—but Burnout Revenge continues to be our go-to game.

A month or two ago, we unlocked a Formula 1-style car; it’s faster than any other car we’ve unlocked, it accelerates much faster than the others, and controls surprisingly well given those qualities. So we’ve all switched over to using it: at first, we crashed enough more while driving it that other cars would frequently beat it, but once we put in the time to get used to its handling, it was clearly the way to go.

Its behavior on straightaways (or shallow bends) didn’t require much adjustment. You have to be on your toes a little more, and your ability to avoid cross traffic is reduced, but in general you pick your path and follow it. On curves, though, the car felt rather different: I almost always went wide while turning in the new car, and on right turns in particular I’d end up in dangerous situations.

Slowing down would, of course, be an option, but it’s rarely the recommended option in Burnout: instead, skidding is the best way to deal with high-speed turns. So I decided to work on my skidding skills.

It’s a little odd working on a new technical skill in a game for a few minutes at a time over the course of months. It takes a while for the skill to become ingrained: in fact, I still have to consciously think when approaching curves about how I want to approach them. Otherwise, I would forget to skid at all, going wide instead; and when I started skidding, I would often hold down the skid button too long, with the result that I would turn too far, typically crashing into the near wall.

But when I’m alert, I have an approach that works pretty well. I start skidding, but release the skid button quicker than my instincts would have me do. I’m out of control at this point, so I keep on turning; eventually, though, I regain the ability to steer, and after a bit of fishtailing, I’ll generally end up pointed up where I want to go, maintaining my speed in the process.

I’m not used to intentionally losing control in a video game like this. I’m used to games where I don’t know what good strategy or good tactics is; and I’m used to games where I can’t parse the action quickly enough to respond well. This is different, though: I’m happy with my strategy, and if I’m alert then my ability to parse oncoming traffic is generally acceptable. I’m just consciously making a choice that involves stepping back from detailed control for a bit in the belief that, once I regain control, the range of likely outcomes is one that I’ll be happy with.

And it’s a tactic that cries out for analogization. Take software development, for example. Normally, when developing software, I try to maintain rather tight control of how it’s going: test driven development can be thought of as reifying my constant feeling of control over my software. (And letting me know as soon as possible when that feeling is ill-founded, so I can re-establish my control!) And, of course, when playing Burnout, I normally try to maintain control: if I’m going mostly straight, then I try to plot my course as tightly as possible, I don’t just remove my hands from the controls and let the car meander as it will.

But, in software development as in racing games, there are times when you want to make a sharp turn. And I suspect that, in software development as in racing games, if you try to maintain tight control while doing so, you’ll end up not turning enough, instead going wide and (at best) slowing yourself down or (at worst) being obliterated by oncoming traffic.

Which doesn’t mean that I should relinquish control willy-nilly, even when I’m at a turn. In Burnout, it’s not a good strategy to stay skidding, hoping that you’ll end up in the right place. Instead, I get the best outcomes if I start skidding and then release the skid button as soon as I’ve lost control. If I do that, I’ll start drifting across a range of possible angles to take the turn at; the early angles are too shallow, but my tires wouldn’t stick if I tried to accelerate then anyways. So I sit and watch my car turn more and more; by the time it ends up pointed in a useful direction, it’s willing to respond again (after a bit of fishtailing!) if I try to reassert control.

And the same happens with experiments in software development. If you need to make a sharp turn, then throw yourself into it, and accept that you’ll lose control while doing so. But that doesn’t mean that you have to give up control for a long period of time: instead, make a short, focused experiment, and get ready to zoom off in the correct direction (also with a bit of fishtailing!) once you’ve turned enough to be able to see something promising.

Software development has its straightaways, and it has its curves. Know when you’re in the one, know when you’re in the other, switch your strategy to acknowledge those two situations. But, in either case, leave yourself able to respond to feedback as quickly as possible.

empires & allies

June 23rd, 2011

I’ve been playing Zynga’s latest, Empires & Allies, since it was released, and I’m still trying to figure out what I think about it. My initial impression of it was a lot like CityVille: clearly well done, taking lessons from their prior games (and from others’ games, of course), and adding a couple of new elements. So I figured I’d play it fairly regularly for a week or two and then stop; maybe not even that long, given that I no longer work at a job where playing Facebook games every morning when I arrive at work is a reasonable thing to do.

It’s a couple of weeks later, though, and I don’t seem to be stop playing; so I figure I might as well talk about it now while I have some slight chance of convincing y’all to join me in game and trade with me! (I could particularly use a good source of iron…)

So, what’s in the game? The basis is, of course, familiar since (before) FarmVille: in particular, building on your land to be able to produce is a big theme. There’s a wider range of types of production than in earlier games in the genre: Social City was where I first saw the population => money => happiness => population cycle, and Empires & Allies throws more into the mix. (I’m trying to remember how CityVille was in that regard: my guess is that it falls somewhere between Social City and Empires & Allies, and in particular it’s where I first saw government buildings in the role that they play here.) The relations between buildings are:

  • Farms produce coins.
  • Other production buildings let you convert coins into resources: wood, oil, and one kind of ore.
  • Military buildings let you convert coins, oil, and (frequently) ore into military units.
  • There’s a research building that lets you add powers to your military units.
  • Buildings cost coins and wood to build; once you get to higher levels, they cost ore as well.
  • Production buildings are unlocked through population; population buildings are unlocked through level.
  • Your population is determined by your housing buildings. These also produce coins, but not as much coins as farms.
  • Your production cap is determined by your government buildings. These are neighbor-gated, and also produce (decent) amounts of coins.
  • The market lets you trade for forms of ore that you can’t produce yourself.

That’s a lot of building types! Unlike the Social City example above, it’s also not a cycle: instead, you have a population growth pattern that’s gated by neighbors and a military growth pattern that goes from farms through production buildings to military buildings. And, in both cases, ore plays a role, including ores that can most easily be acquired through trade.

The flip side of the variety of types of buildings: the functional importance of the different types of buildings means that there’s not much scope for personalization. When playing Social City, I really enjoyed designing my city; that level of personalization is completely absent here. (There’s not even the shop naming for personalization that CityVille had.) Which is fine, even good: it’s a different sort of game, with a different focus.

Back to that last building mentioned above: markets. I’ve seen them in other Facebook games before, certainly: Verdonia had them, for example (and I can’t imagine that that game’s implementation of markets was original to it, the game was quite derivative), City of Wonder added them eventually, and so forth. But ores in Empires & Allies give them a different feel: while you can trade lots of different resources in your markets, there’s one specific class of resources that you can get much more easily through markets than through anything else.

So ores are a Treasure Isle-style resource mechanic, but requiring a different kind of action than either simply visiting friends’ towns or having them actively give you gifts. Which turns out to work well for me: I like it more than Treasure Isle‘s mechanism (admittedly, I only played that game a little bit, and did so a long time after launch), and I like it more than unfocused markets. (Not that a game about markets couldn’t be cool; actually, given the employment of economists by Facebook game companies, I’m surprised there aren’t more such games, I was lobbying for more markets ever since the GDC 2010 Habbo Hotel talk…)

Though ores are also much more muted than Treasure Isle style exclusive goods, in that you can buy them for coins. It’s more expensive to do that than to get them from your friends, and it took me a while to discover that option, but it’s there.

In fact, I actually haven’t found anything yet that you need friends or hard cash (i.e. currency that you have to spend real money on) to get, though I’m sure it’s there somewhere. Most building games have used neighbor gating for expansions; in Empires & Allies, however, you buy expansions with coins and through a special item. You can get that special item from your friends, but you also get that special item from battles; so every ten battles that you win lets you get an expansion. (At least as of now, they may of course tweak the balance later; incidentally, the expansions are the CityVille-style “buy a chunk of land adjacent to your current territory” expansions as opposed to the previously popular “your territory expands by 1 on all four sides”.)

Another way in which games like this have used neighbor gating is in population growth. And here, you need to hire friends to run your government buildings. But even there, it’s not so simple: if you leave a post in a government building unstaffed for long enough, eventually an in-game character will fill that post. So yeah, it takes longer to expand if you don’t have friends and don’t spend hard cash, but it’s not prohibitive.

There is some amount of neighbor gating in combat: eventually, you run into battles that you need allies to help you fight in, and the proportion of such battles and the number of allies rises. So it would be difficult to play the game if you didn’t have any friends playing it at all; assuming you have a few, though, you’re as likely to not be able to fight more battles because you’ve run out of energy as because you’ve run out of friends for the day.

Speaking of combat: the style and use of combat in this game is new to me and kind of fun. It shows up on a screen that looks reminiscent of individual Advance Wars battles (though without the surrounding troop movement of that game), with a rock-paper-scissors mechanic underlying it. It turns out to be more simplified than it looks, however: at any give moment only one unit is attacking the other side, so you don’t have as many tactical possibilities as there might seem.

Still, there are definitely some tactical considerations beyond the obvious ones of making sure you’re on top on the rock-paper-scissors chain: figuring out how to weight your units once you’ve picked the overall mix, figuring out whether to put out older, less powerful units as sacrificial lambs or to only use newer units. And then there are power-ups which you can spend hard cash on; I have yet to need them, though, but maybe I’ll have to as the battles go on? (It looks like I’m about a third of the way through the currently available battles.) It ends up being a surprisingly pleasant form of combat, one which I’m enjoying more than in any Facebook RPG that I can think of. (Though, don’t get me wrong, this is clearly still a Facebook game, which I’m totally fine with.)

And, as I mentioned above, more powerful units require ores, bringing that mechanic into play. I also just encountered a different upgrade mechanism, involving blueprints that you can send to your friends; I think that it was just added to the game today, because I didn’t level up or unlock it in any other obvious way? I’m not sure, I’ll need to explore more.

Combat also turns into a friend mechanic in another way: you can both invade your friends and protect your friends from invasion! Which I haven’t done too much, but it sounds like a potentially good idea; my guess is that they also see that as a potentially significant source of revenue.

And there are other Zynga / Facebook standbys, which I think of as coming from FrontierVille. The game is pretty dooberiffic; normally, they annoy me, but for whatever reason I’m finding them fine in this game. Maybe that’s because I’ve found the money bonus for collecting them useful at times (you don’t have to click on them if you don’t want to, but you get a bonus if you click on a long sequence of them); but I think a big part of that is that it works well with the rhythm of combat, where you alternate between attacking enemies and collecting doobers, trying to space your doober collection such that you don’t have long enough gaps to miss out on the bonus.

And, also like FrontierVille, you always have four or five externally-given tasks to work on. (Though they don’t have the same narrative as in FrontierVille.) Which is great, it’s good to have the game pointing out reasonable actions that I could take, and nudging me to keep my economy reasonably level.

I think that’s everything. Well, doubtless not everything, but it’s a lot! Now that I’ve said all of that, I have two questions.

The first is: where is Zynga making their money from this game? (Or hoping to make their money.) It’s newly launched, so it’s possible that they simply aren’t focused on money now, but instead want to bump up the audience. Still, there’s only so much you can do to tweak the economy of a game in a money-making fashion without getting people mad, so I’d be a little surprised if they changed too many of the existing parameters in that regard. (Adding new money-focused mechanics wouldn’t surprise me at all, however.)

And, as I said above, I’ve been very surprised at how little gating there is, whether on neighbors or hard currency. There are lots of situations where other games would require me to pay money or spam my friends or do without where this game seems happy enough to let me progress through my in-game actions, possibly while waiting a bit.

So, of course, that’s part of the answer: as always, if you’re impatient, you’ll need to make money to progress faster. And it’s possible that will hit me at some point: e.g. a couple of minutes ago I took a break from writing and went back to the game to fight a couple of battles, and I would have fought a couple more if I hadn’t run out of friends that I could use as allies today. (And I imagine I’ll need more allies as I get further through the battle sequence.)

My guess is that they’re hoping/expecting combat between friends to be a big driver of currency: people want to level up their units to win battles, and maybe spend money to get special attacks or to revive troops. It’s typically thought that games with lots of player-versus-player combat make money disproportionately to their user base, so I imagine that’s a lot of the thinking here.

And it may be the case that, as I need more upgrades to fight harder battles, it will become harder and harder to earn them strictly through in-game actions. We’ll see.

The other question I have is: how much do I actually like the game? Clearly Zynga (and the industry as a whole, of course) is finding ways to throw more elements into their games in a not unpleasing fashion. I had a good time playing CityVille for a couple of weeks; eventually, though, I’d seen enough of the mechanics and wasn’t finding any hook in the game to make me want to keep on clicking to rehash those mechanics. (Similarly with Ravenwood Fair.)

And I’m sure I’ll hit a wall like that with Empires & Allies, too. Heck, for all I know I’ll hit a wall like that tomorrow: some day I’ll realize that I’ve spent too much time in the evening clicking or thinking about clicking, for no particular gain. In particular, I’m not finding the game to be intrinsically rewarding in the way that building my city in Social City was; and I also don’t like the core game play as much as I like the core game play in, say, Gardens of Time.

But I like the core game play somewhat, at least: the combat is pleasantly soothing in the way an easy puzzle game or form of solitaire can be. And the volume of other mechanics that the game provides adds up to something that is still keeping me going, too.

If you’re curious, give it a try, I’d be interested to see what my non-Facebook-game-playing friends think. And if you have access to iron ore, all the better, I’d like to buy it off of you.

finished pro guitar medium songs

June 8th, 2011

As readers of my other blog are aware, I’ve now finished all the Rock Band 3 songs on medium pro guitar. Which has been a fascinating experience, because while I’m not actually playing music yet, I’m getting close enough that I can see the music just a little ways away!

On easy, I was playing single notes; in chord sections, I had almost no context, and in solo sections I was missing the vast vast majority of the notes. On medium, the solo sections still aren’t particularly satisfying, but the chord sections have much more substance to them: in fact, on songs that have G, D, and C chords, you’re expected to play the full chords. (And it helped that the small amount of guitar learning that I’d done a couple of decades ago left me with some slight familiarity with those chords.) Of course, most of the songs on the disc are instead full of A and E chord shapes (typically barred), and there the game only has you play the two lowest strings of the chord; still, that’s enough to at least reinforce the fact that you’re not playing standalone notes, that chord progressions underpin the notes that you’re playing.

And the chords (and notes) come faster in medium than in easy, enough so that they took a bit of time to learn: once I got past the very easiest pieces, I went through training mode on every song, and I’m glad I did. My left hand had to shift more quickly and over longer distances than I was comfortable with, and even two-note chords required me to be surer in my transitions than the “move your hand and then correct” style that easy allowed me to use. Of course, my hand was generally in an unrealistic shape, because I didn’t try to pretend to play barre chords, and I may end up regretting that a little bit; though even there on some songs I actually found it easier to use a barre chord shape than to hit the two notes precisely.

I’m curious how many other people playing the game are taking my approach of going through everything on medium, versus the approach of focusing on individual songs and learning how to play them on hard (or even expert?) before moving on. I’m (barely) in the top 2% of pro guitar players in terms of total score, which I find ludicrous, and which I assume means that my approach of going through everything on medium isn’t very popular. (I also assume it means that I’m simply putting in more time, though I would imagine the price of the controller selects for people who at least intend to put in some amount of effort?) And if other people are focusing on individual songs to the extent that they actually sound decent playing those songs, more power to them: I’m looking forward to reaching that level myself, but I’m certainly not there yet.

But I’m not having second thoughts about my approach, either. I found the micro goals that playing on medium gives me to be very compelling: I’m not diving head-first into the game or anything, but I’ve put in three or four hours on pro guitar pretty much every weekend since I finished pro keys, and there’s something pleasant about spending twenty minutes with a song (involving training and a couple of playthroughs), feeling that I’ve had to deal with some challenges while doing so, and then moving on to another song. And I have absolutely no question that I’ve learned something over the last couple of months: my hands are much better at leaping between frets and strings than they were when I started this project, so while I’ve got a huge amount of work ahead of me, I don’t want to discount the progress that I’ve made it so far.

Having said that, I’m also very glad that I’m done with medium and about to hit hard, because my best guess is that this is where the game starts to get a whole lot more musical, in the sense that if I were to memorize the songs and play them without the game on, I would be recognizable as actually playing the songs in question. That’s just a guess, though: I haven’t played any songs on hard yet, all I’ve done is dipped into the barre chord lessons, made it through the first few with some difficulty (and some pain!), and ended up with a fair number of questions. (Fortunately, my twitter feed is blessed with a wealth of people named Dan who give great advice!) Because of the difficulties that I had there (including difficulties telling when I was holding down the strings firmly enough), I’ve actually put in a bit of guitar time every evening this week outside of game, with the controller unplugged and unmuted; the fact alone that I’m doing that makes me happy, and it seems to be paying off a bit.

We’ll see how much progress I’ll make this weekend; it would be nice if I could make it through all the barre chord lessons, though I imagine that (unlike all previous lessons in the game) I’ll end up returning to those even after I’ve passed them, in order to get to where I can pass them reliably. And I’ll probably dip into a real song once I’ve done that, though I’ll also give the rest of the hard level lessons a try; who knows what my progression pattern will be like when trying the hard songs. (I certainly don’t have confidence that I’ll be able to make it through all the songs on hard without more work than I’m willing to put in, but who knows.)

And I’m also going to try to actually learn some of the songs. I’m planning to buy a (cheap) amp, so I can hear better what I sound like; any recommendations? My neighbor gives guitar lessons, so I may see if I can sign up for a few one-off sessions with her as well. (Which I imagine will lead to some odd conversations: no, I don’t want to go through your standard lesson plan, I just want focused advice to answer questions X, Y, and Z that I can’t figure out the answer to when playing Rock Band!)

Great game, and to me it looks like a great teaching device. It’s giving me a lot of appreciation for the power of game mechanics in that context: having a set of focused challenges with a game infrastructure (including amplifying your actions to make it feel like you’re doing something much more impressive than you actually are) is working very well for me.

getting (lots of) things done

June 3rd, 2011

As I’ve said before, GTD isn’t actually about getting lots of things done: it’s about doing what you most want to do at any given moment. Having said that, ever since I stopped putting tasks on my Next Action list that are more than two weeks out, I have in fact been Getting Things Done.

In particular, we’ve taken care of a ridiculous amount of house stuff. Earlier this year, we got the only major bit of planned house work taken care of, namely fixing our front door / steps. (And that was before the GTD implementation changes.) But there were a lot of small items to take care of, too, items that had been bugging me for months (some of them for years, actually).

So, when I looked at those items, I decided that yes, they really were high enough priority for me to keep them on my Next Action list. The result was that, within half a week, I’d made a phone call to kick off getting non-plumbing house items taken care of; and as soon as that was done, I made another phone call to start dealing with the plumbing. The upshot:

  • Our dryer is no longer blowing lint into our crawl space.
  • We are no longer being driven crazy by flickering lights in the kitchen.
  • Two towel racks and a rag hook are now firmly attached to the wall.
  • Two sinks have working drain catches.
  • The showers are all regulating their heat properly.
  • The upstairs toilet doesn’t drip. (I can’t take (almost) any credit for that one, though, it was all Liesl’s doing.)

Which is great! And the best thing is: it was really easy. All I had to do was decide that these tasks were important: I actually already had phone numbers for people to call. In one of the cases (the non-plumbing case, I’d already used the plumber in question twice before), I wasn’t sure that he was the right person for the job, but that worked out great. Which means that it will be even easier for us to take care of this sort of thing in the future: in particular, in a couple of years we’re probably going to do some kitchen work, and now we know whom to call when we decide to think seriously about that. Obviously it would have been harder if I hadn’t already had an idea of whom to call, but still, the same principal applies: decide that something’s important, figure out the next step to make progress towards it, and do it.

So, with the house work out of the way, what next? I’m actually working on a few too many things right now: each of Rock Band 3 and Minecraft is taking up rather more time than I’m used to spending on a single video game, I’m going through a book on iOS programming, and I’m reading about CoffeeScript and using it to write a bare-bones game framework for a project that Miranda and I are vaguely working on. And those are all substantial enough that it’s hard to make progress on all of them.

So I should wind them down. Rock Band 3 is far too rewarding for me to want to stop it now—I’m just getting to where I’m actually learning to play guitar!—so I think I’ll keep going with in for the indefinite future. (And, honestly, given that I’ve been playing one Rock Band game or another for three and a half years straight, why stop now?) And the game project with Miranda is the most potentially rewarding of anything on the list, so I’ll keep on going with that.

I don’t have as much active energy to write iOS software now as I did two or three months ago, however; so, while I plan to finish going through that book, I probably won’t actually do anything concrete with that knowledge in the short term. And, as much as I love Minecraft, I may be starting to reach a point of diminishing rewards, so it may be the case that, after finishing my train stations, I’ll give that game a pause, too.

Or maybe not! Who knows, maybe at some point over the summer somebody will come up with a great iPad game proposal to work on with me, and I’ll dive into that; or maybe the Minecraft railroad work will suggest further projects that I have to build. I suppose it’s even possible that I’ll get frustrated with Rock Band Pro Guitar and give up on it in a month or two. All I’m committing to is what I’m doing in the short term, and I’m planning to keep all four of those strands going for the next few weeks; after that, all bets are off.

At any rate: yay for limiting (and being honest about!) work in progress.

podcast appearances

June 2nd, 2011

I had the pleasure of taking part in a couple of podcast appearances recently. Specifically:

I appeared on the CDC podcast talking about GDC. A very pleasant conversation, I quite enjoyed chatting with the other guests, and Eric did a great job editing the audio for this one.

And I appeared on Playable Character, talking about Minecraft. You should subscribe to this podcast whether or not you have any interest in hearing my less-than-dulcet tones, because it’s the most interesting video game podcast that I’m aware of since A Life Well Wasted. It’s run by the First Wall Rebate folks, but rather than taking the conversational format that dominates the genre, they interview people, encouraging them to monologue, and edit down the resulting audio to get at the heart of what the guests were saying. I certainly enjoyed being part of it, and Shane did a great job of taking most of an hour of me blathering away and picking out interesting bits.

braces, revisited

June 1st, 2011

It’s rather odd rereading my prior post on getting braces. Not least because it was written four years ago: I knew it had been a while, but I didn’t realize it had been that long! But also because of the “it should only last about five months” bit. My memory tells me that, even at the time, I’d assumed that was the most optimistic possible estimate, and that it would quite possibly take a bit longer than that; if so, though, that doubt isn’t in the post.

And yes, it took longer than that, and by more than a bit. Part of which turns out to be a matter of definition: it turns out that, when my orthodontist talked about how long it took, it meant how long it would take for me to not have to come to the office regularly. But even after that, there’s a long period when you’re wearing a retainer regularly, and according to him, you should continue to wear your retainer occasionally indefinitely.

Which is, to me, an important distinction: there’s a big difference between “you’ll be done in five months” and “you’ll have to do this for the rest of your life”! I still haven’t figured out to what extent the latter is true: there are lots of people who wore braces as kids who don’t wear a retainer as an adult, but then again kids’ mouths change a lot more than adults’ mouths anyways. So who knows how that will really play out. I’m not mad at my orthodontist for this—I think it’s simply something that’s so much part of his base understanding of the situation that he didn’t think to mention it—but it wasn’t part of my base understanding of the situation.

That wasn’t the only problem, though. As I mentioned in the original post, I only had braces on my lower teeth. And, at the time, I idly wondered if that would be a problem or not; but I couldn’t imagine that my orthodontist wouldn’t be aware of that (and hence veto it as a possibility) if a single set of braces wouldn’t work.

It turns out, however, that it didn’t work at all. I got a set of molds that progressively straightened my lower teeth; and, about halfway through, they started hitting my upper teeth a bit. In retrospect, I should have applied my iterative development skills (or my “reverting to a previous good state” source control skills) and stopped right then, reversing the molds until my teeth felt okay. Instead, we kept on going, trying to alter the molds somewhat to solve the problem, with the result that I ended up with straight lower teeth, a rather uncomfortable bit, and no way to go back.

So I got braces on my upper teeth. Wire braces, not invisalign; my orthodontist charged me only a token amount (which is more than he should have charged, but not enough for me to argue), but still: not at all what I signed up for, in more ways than one.

And I was wearing those for something like three years. Which was a drag; not awful, not actively painful (most of the time), but not at all what I wanted. And it turned out that my orthodontist didn’t have any good way of telling whether or not my lower and upper jaw matched well! When I complained, he could do some amount of figuring out exactly where they were hitting badly and adjust uncomfortably: but he apparently couldn’t tell at all that they were hitting badly in the first place. So it took week after week after week of fiddling to get things right.

The upshot: my teeth feel okay now; I’m having to wear retainers more than I’d like, but at least the braces are off. And the retainer is definitely necessary: for a month after the braces came off, I could tell immediately if I’d had the retainer off for any length of time, and while I now don’t feel too bad if I don’t wear the retainer during the day, it still seems like a better idea than not to keep it on most of the time.

So, clearly a mistake. In retrospect, it was always a mistake: even if things had gone perfectly, it would have only barely been worth it, I think. But there were also a lot more ways that things could go wrong than I realized, starting from the basic understanding of what it meant to be done. I’m sure my dentist office and orthodontist wasn’t acting out of bad faith or anything: but all of us wanted to find a way to deal with my lower front teeth, and I think we were approaching it more from a position of “we want something to work, and this seems plausible” rather than a serious cost-benefit analysis.

And I will say: if you’re an adult and considering getting braces yourself for whatever reason, I would recommend thinking twice about it. Certainly don’t do the weird thing I did of having braces on only half your teeth; but also do a better job than I did of understanding the time commitment involved.


While I’m on the subject of “mistakes I’ve made when paying other people to do work”, I guess I’ll get another cautionary tale out of the way. Earlier this year, we had work done on our front stoop, replacing it and propping up the foundation. Which is great: our front door closes well now!

As part of the work, a sprinkler next to the door had to be moved. Which we’d identified going in, and accounted for. Unfortunately, when the rest of the work was done, the sprinkler was notably askew. Which I didn’t worry about too much: I told the contractor, and he said that he’d look at it.

Which he did; but it took a month and a half, and a half-dozen e-mails and phone calls for that last little bit to be taken care of. In retrospect, again, I was being silly: California law is very clear that you don’t have to pay the final installment of your contracting bill until the work is finished, and I simply shouldn’t have written that last check. I was assuming that the contractor was a straight-up guy, since he’d seemed that way; and I actually still think that he was, but his priorities changed a bit once the main work was over, so while he always intended to take care of the last little bit, it wasn’t top on his list of things to worry about.

Live and learn; fortunately, both lessons came to a reasonable resolution, with more annoyance than actual harm in the process.

on snark

May 27th, 2011

Meandering on from the discussion on forms of responses from a couple of months ago: my tolerance for snark has gone down markedly over the last few years. And it’s not just snark: it’s responses that, in whatever fashion, have as their substance “you are wrong, I am right, and I am going to focus on this”. Which is a frequent symptom of comments that I dislike: the commenter who is motivated to speak because of his or her strong feeling that the article being commented upon is misguided.

But my dislike bothers me, too! Not least because I feel that pull strongly myself at times: I’m getting better at telling when I’m feeling the pull of “someone is WRONG on the internet”, but even so much of the time I don’t manage to resist it, or other similarly negative urges. (And I’m rarely happy about the result the next day.) That’s not the whole reason, though: part of my disquiet is that I don’t understand all of the components of my dislike, that I’m fairly sure that there are positive aspects playing into that dislike, and that I wish I knew better how to tease out those positive aspects.

I'm OK with this

For example, let’s set aside the negative aspect of snark and negative comments, and focus on their self-centered aspects. Replace a negative comment with a positive one that’s similarly self-centered; how would I feel about that?

My first reaction is that I am, in fact, okay with this. Part of that feeling comes from the idea that the web is a customer service medium, motivated by a question of “why wasn’t I consulted?”. This is a motivation that can lead to excess, but in general it points in a direction of more participation rather then less participation, which I feel is to the good.

And part of my happiness with such an approach comes from the self-centered nature of my blogging: this blog is purely about whatever happens to be interesting my brain at any particular moment, what I want to get out of something that I’ve encountered, and I’m pretty happy with that. It means that much of what’s here isn’t particularly likely to be of interest to almost anybody else; that’s fine, and I’m also perfectly happy for other people to write similarly self-centered blogs. In fact, I often find such blogs surprisingly interesting: I’ll find myself reading about a post on something that I would normally not think twice about, and being drawn in by the author’s focus and interest on that topic.

Teasing these apart, I suppose I’m not so thrilled with responses that come from a place of “why wasn’t I consulted?”, after all. I’m generally for a positive response that goes into what the responder cares about and that is oblivious to others’ cares. I’m less for a positive response that does that while actively expecting me to feel that the responders’ cares are important. And when a response is all about the respondent validating the post in question, then my first instinct is to roll my eyes. Yay for participation, but only yay if we’re building something by that participation. (Hopefully together, but separately is fine, too.)

And then there’s the ego-boost factor to positive responses. I don’t think that adds much to my feelings, though: a vapid positive post or one that’s all about the respondent’s feelings isn’t much of an ego boost, while one that ties in to something else the respondent cares about can be interesting enough to sidestep the question of ego boost entirely.

Gated Road

That’s the self-centered aspect of snark; what about the negative aspect? Would I be as unhappy with posts that are negative but not self-centered?

Probably not. Take, for example, “Considered Harmful” Essays Considered Harmful, arguing against a particular kind of negative essay. I agree with much of that article; having said that, I’ve also learned a lot from some “considered harmful” essays, and in fact referred back to Recursive Make Considered Harmful just a couple of months ago.

So I’m okay with a well-thought takedown. But they have to come from a position of understanding, even sympathy for me to enjoy them. Quoting Chesterton:

If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.

So yeah, it really is the combination of self-centeredness (or rather, other-denying) and negativity that bothers me. How should I deal with that when I see it?

Gerald Weinberg recommends an “aikido way to engage blaming”: yield, accepting the other party’s anger, without accepting their blame. Then, once you’ve aligned with their anger, redirect it somewhere more productive. “Dealing with Internet Trolls – the Cognitive Therapy Approach” gives some recommendations that aren’t too dissimilar to that approach. In general, if negativity is coming at me from elsewhere, then responding in a not-directly-opposed manner makes sense to me.

What if it’s coming from me, though? A few years ago, Kent Beck was talking a lot about appreciative inquiry. The idea there is: focus on strengthening the good aspects of a situation, on growing the seeds of good events in your past, and the good will outweigh the bad. Which makes a lot of sense: don’t let bad experiences drive your life.

A pure appreciative approach wouldn’t work for me, though. As GTD teaches us, if something’s in your head, it needs to be acknowledged: in particular, ignoring something bad can cause it to fester and grow. So yeah, stating “this bothers me” is necessary. That’s the first part of the aikido approach: acknowledge the anger, let its energy flow if it needs to. But acknowledging that anger doesn’t mean giving in and letting it control you: if you can interact with that anger with compassion (towards others, towards yourself!) and redirect it, maybe something good will come out of it.


A few notes:

  • Image sources are linked to on the images themselves, except for the troll/fish picture, which is a combination of this troll image and Shlomi Fish’s logo.
  • This post isn’t a sign that I’m feeling particularly bad about anything right now—I’m really quite happy with my life these days! It’s mostly an excuse to do a linkdump of some related articles that I’d come across recently.
  • One link I didn’t manage to fit in: Long Overdue, from Dubious Quality. Bill Harris says that his writing was much stronger when he was funnier and angrier; I wasn’t reading him back then, and I’m sure that writing had its virtues, but I really like what his writing has turned into.

2010 in guided construction games

May 11th, 2011

At the start of 2010, FarmVille was everywhere; at the end of 2010, Minecraft dominated the conversation. The discussion of those two games, at least on the sites I frequent, had a very different tone; I believe, however, that much of those games’ successes stem from the same source, namely their strengths as guided construction games.

I haven’t played enough FarmVille to be able to really back up that claim: my beliefs about that game mostly come from looking at others’ farms, and the impression of care and crafting that they give me. So I’m going to shift focus slightly and instead talk about Social City: it was another quite successful 2010 Facebook game, based on city construction rather than farm construction, and I played it (as well as its successor, City of Wonder) quite a bit last year. My guess is that a lot of what FarmVille players find attractive is similar to what I’m going to talk about in regards to Social City, but I could be off-base.

Social City

Social City is, as the name suggests, a city construction game. You’re given an isometric grid to build on; from the construction tab in the game, you can choose streets to form the networks of your city, buildings (residential, commercial, industrial) to lay along those streets, and decorations (trees, parks, etc.) to place between and behind those buildings.

That’s the “construction” part of “guided construction game”: as to “guided”, the game isn’t a complete sandbox. At a most basic level, the buildings come fully constructed: this isn’t Lego, you can’t create brick by brick. You also don’t begin with a blank slate: instead, the game gives you a starter town with a few streets and buildings already constructed, and while you can choose to tear it down completely if you desire, you’re more likely to use it as a base of your city’s growth, pruning and editing it as necessary. In addition, not all buildings are available at all times: the game has a level-up mechanic, so you start off with access to a relatively small set of buildings, gaining access to more and more as you progress. And you don’t necessarily have access to all the buildings that you have unlocked: industrial buildings become available by growing your town’s population, which you do with a mix of residential and commercial buildings, while residential buildings require money to purchase, which you earn from your industrial buildings. (There are also buildings that are available by spending real money and buildings you receive as gifts from other players.)

And, equally important, the buildings have character: again, Lego bricks they aren’t. The game presents a unified aesthetic, and a rather charming one at that. And it’s not a static city: the buildings come with animations (kids playing in yards, conveyor belts moving in factories), and pedestrians and cars move along your streets.

The result is a game that both Miranda and I thoroughly enjoyed. We started with the default town layout, and at first built out from it somewhat haphazardly. But fairly soon the different areas of our city took on different characters, so we moved buildings and placed buildings to emphasize those roles. We’d generally level up about once per week, so each weekend we’d have a handful of new buildings to consider, deciding where they’d best fit into our city, how they suggested we should evolve our city next. I gave a tour of my city on my other blog; we really enjoyed evolving the city to get it to that point.

Minecraft

That’s Social City; now, to Minecraft. Like Social City, you’re given a relatively coarse mesh to build on, this time made out of large 3D blocks rather than a two-dimensional grid. Like Social City, you have quite a bit of freedom as to what to do with that grid, but you are also presented with a starting layout (albeit a large-scale procedurally generated one) that strongly influences your construction. Like Social City, you have access to a relatively small collection of objects with which to build; furthermore, your choice of construction is influenced not only by aesthetic considerations but also by in-game mechanics (the ability to earn coins in Social City, to defend against mobs in Minecraft), albeit not to an overwhelming degree. And, in both cases, you have to earn your building material through menial tasks (clicking on buildings, mining): they both have a strong component of what Naomi Clark and Eric Zimmerman call “The Fantasy of Labor”.

And, again, the game has its own very strong aesthetic: the blocky pixel art style that forms the world, the (at times stunningly beautiful) landscapes that the game’s algorithm generates, the animals that wander through the world, the sunsets and sunrises, the music. This aesthetic very much influences the choices that I make when building in the game.

So, as with Social City, you end up with a game that both Miranda and I have sunk countless hours into, figuring out how we want to shape our respective worlds, starting from the canvas that the game gives us and putting more and more of our decisions into it. (Incidentally, if you’d like to join us, the VGHVI plays Minecraft together on the last Thursday of every month!)

A Continuum of Construction

I do not want to pretend that Social City and Minecraft are somehow the same game underneath: there are significant and substantial differences in the world-building that the two games enable. (In particular, Minecraft provides a vastly larger canvas to work upon.) There are many many people who enjoy one of those games without having the slightest desire to play the other one, and I would never want to second-guess their decisions. But when I look into why I enjoy both games, my motivations to play each of them have a lot in common.

That’s perhaps clearest when I contrast them to Lego. We have a big vat of Lego blocks sitting in the house; I never have a desire to pick them up and play with them. It’s just too much of a sandbox for me: I need the aesthetic structure that Social City and Minecraft provide to give me something to work with and to base my decisions around, I even prefer the gating effect that both games’ fantasy of labor restrictions provides to having all the building blocks available at hand. (Miranda frequently plays in multiplayer mode with block creation powers available, while I only do that on VGHVI nights; I can imagine eventually switching over to preferring that mode as I get more comfortable with my designs, but I’m not there yet.) We actually have also done quite a bit of Lego construction this year, but that was done entirely within the context of a prebuilt kit of the Taj Mahal: that was fabulous, but perhaps a bit too far in the prescriptive direction for me. (Or perhaps not, I really enjoyed it!)

Returning to FarmVille: video game blogs spent a lot of time bashing it last year, bashing both the game itself and the players who play the game. If you’re tempted to do that, and if you’re a Minecraft fan, though, ask yourself first: are you sure that your motivations are so different from those of FarmVille players? We all love the story of the indie making it big, and Minecraft is a phenomenal accomplishment in many ways; but there are many routes to the pleasures of creation that it affords.


For another take on the guided sandbox that Minecraft provides, I recommend “How Minecraft taught me to dream”, from the blog Reflections.

some recent java experiences

May 7th, 2011

I’m more excited about learning Scala, but some Java experiences I had last week:

  • I was making some changes to a third-party library that was already using mockito in its unit tests, so I decided to give it a try. And, after a half-day of experiences, I will tentatively declare myself to be a fan. My previous mocking experience was with jMock, and while jMock may work as well for code that was written in a GOOS style from the beginning, I really appreciated the fact that mockito didn’t insist on tracing every single application; its willingness to mock classes by default was useful in the context of the work I was doing as well. And I liked not having to go to the extra weight of subclassing Expectations in every single test. So I recommend that anybody programming in Java who is curious about mocking but is worried about what it will involve should give mockito a try: it’s remarkably light-weight and pleasant.
  • I wanted to add a polling thread wrapper around a metrics class that I’d written, and rather than do that by hand, I decided to look into Java’s reflection / dynamic proxies facility. And wow, writing a dynamic proxy in Java is easy! Maybe it’s not quite as trivial as overloading method_missing, but it’s only a little bit more work than that: I had a proxy up and running in a handful of minutes, and it was doing everything I wanted only took an hour or so. (And the vast majority of my code was talking about threads and caching, which is exactly what I wanted it to be talking about.) So score one for Java.

task control gtd

April 30th, 2011

For whatever reason, I’ve been playing a fair amount of Flight Control HD this week, and it’s reminded me of my current attempt to get my next action list under control. In both cases, there are a bunch of items (tasks, planes) that you’d like to take care of, with new ones appearing all the time. In both cases, each individual item doesn’t take very long to deal with (at least once you get good at breaking your real-life projects down into chunks), but there are lots of them, and they get into each other’s way. The result is that, if there are too many buzzing around, I stop being able to guide them to completion and instead they crash into each other, not leaving anybody very happy.

Actually, maybe that’s not the best analogy: the tasks don’t crash into each other, instead it’s like a game of Flight Control HD where more and more planes get added, and where planes don’t actually collide but where you stop being able to guide almost all of them to their landing spots, instead filling up your screen and annoying you / making you feel guilty. Which is kind of what my next action list looked like a month ago: way too many tasks competing for my attention.

So: if I wanted to design Flight Control HD such that I was engaged as frequently as possible without feeling overwhelmed, how would I do it? To avoid feeling overwhelmed, I’d want to limit the number of planes; but to remain engaged, I’d want enough planes to keep me on my toes. If I could find that magic number of planes, I’d have a great time.

Of course, in real life, the planes tasks keep on coming. But GTD has a safety valve in the form of the someday/maybe list: if something seems like a good idea but you’re really not up to dealing with it right now, you put it on the someday/maybe list. Used properly, it keeps you from getting too stressed out about things: if you’ll be happier not doing a task right now than doing it right now, then over to the someday/maybe list it goes.

With that in mind: how many tasks should be in flight (on our next action list) at any given moment? The someday/maybe list takes care of the problem of having too many tasks in flight; the other side of the problem is having too few tasks in flight. If we run out of stuff to do, we’ll either be bored or go through the someday/maybe list; and if we do the latter too often, then the someday/maybe list ends up really being a next action list in disguise. (With all the usual potential for hidden problems, e.g. probably somewhere in your brain you’d be keeping a list of “things that I really want to treat as next actions but are on the wrong list”.) So the answer is: our next action list should be long enough that we don’t have to go to the someday/maybe list more frequently than we’re comfortable with.

And, happily, GTD has some advice for how frequently we should look at our someday/maybe list: you should do so once a week, during your weekly review! So: your next action list should contain a week’s worth of items, plus enough slack to deal with variation. (As a bonus, keeping it at that length should make your weekly review quite a bit more interesting.)

With that in mind, my new rule is: if I don’t expect to do something within the next two weeks, then it’s a someday/maybe item, not a next action item. I’m not quite there yet, but I’m a lot closer than I was a week ago, and it’s been very refreshing. My morning ‘scan the next action list to get some ideas for today’ routine has gotten a lot more focused and productive; and items that I feel are important to me have a much harder time hiding. I’ve moved a ton of stuff off to the indefinite future, and I feel fine about that; I’ve also gotten some things taken care of that I’d been putting off for months, and I feel great about that, too!

Having said that, the new system isn’t working perfectly yet: I’m pretty sure my next action list is still a little long, and I don’t expect to actually start refilling it from my someday/maybe list for at least a couple of weeks, maybe a month. No longer than that, though; and if it takes as long as a month, it will mean that I’ve decided to actually concentrate on longer projects and carry them through instead of working on a bunch of unrelated projects, which is an outcome that I would be perfectly happy with. (My problem before wasn’t just with the length of my next action list, it was with the number of different projects that I pretended I was working on at once.)

Or, alternatively, if it takes me a month to start looking at my someday/maybe list, it may also mean that I’m spending more time consciously deciding not to knock off items, instead just hanging out more. Which I would also be perfectly fine with! GTD isn’t about being “productive”, it’s about doing what you most want to do at any given time, and isn’t at all judgmental about what you should want to do. It does surface tensions concerning what different parts of your brain most want to do, but whatever answer they come up with after duking it out is okay with GTD.

Last week, Rob Myers tweeted that “Why do I assume that someday I will get caught up?” Which is a very healthy point of view, I think. The point is not to make a huge effort to get “caught up”, whatever that might mean, after which mythical moment we’ll somehow be able to relax. I’d much rather instead figure out how to feel relaxed right now, while spending time being engaged on tasks that I both enjoy and find rewarding.

facebook game roundup, april 25, 2011

April 25th, 2011

Now that I don’t work at Playdom, I have rather more freedom to write about Facebook games; I don’t plan to do that a lot, and I’ll certainly be doing so with a Playdom bias (among other things because I get a lot more game invites for Playdom’s games than for other games), but I figure I should at least spend a bit of time talking about games that I’ve been playing recently.

Deep Realms

Deep Realms is Playdom’s most recent RPG. And it’s quite different from the vast majority of Facebook RPGs: most entries in the genre have little to explore and give you almost no control over your actions (other than player-vs-player combat): either you have the items necessary to perform an action or you don’t. Deep Realms, in contrast, is a dungeon crawler where you take more of an active role in exploring the terrain (similar to Treasure Isle in that regard), and where you’ve got some amount of customization in terms of weapons/armor, leveling up, and abilities. (Plus a bit of a plot, too.)

I’m not used to playing a Facebook game where I spend a bit of time calculating probabilities of different chains of attacks, but I sometimes do that when playing Deep Realms. (Don’t get me wrong, you don’t have to, but the option is there.) And there’s an interesting gesture at an asynchronous party system, where you do better if you have friends playing the other four classes who send you gifts regularly; not exactly a rich party system, but better than the gifts in most games, I suppose. Certainly my first play session was rather interesting.

The pacing, however, doesn’t work for me at all. In the first session, they give you enough energy to make it through the first dungeon (which actually was almost too long); I’ve played it several times since then, however, and I haven’t made it to the end of the second dungeon yet. Which would be okay if I were enjoying the dungeon crawling itself a bit more than I am; as is, it’s okay, but, well, I’d rather be writing blog posts or something most of the time when I’m at a computer at home. I’d definitely be playing it more if I could dip into it several times during a day (clearly my former coworkers are playing it a ton, judging from the volume of gift requests I get), but that’s not how my Facebook game usage works now; and, even with that, I wish I made more progress during individual sessions. Also, the pricing is screwed up: I’m all for asking users to pay for your game, but Playdom is asking basically a buck a pop each time you want to extend your play session, and I’m not getting enough out of the play sessions to want to be doing that. (Playdom’s insistence on going through its own in-game currency doesn’t help either.)

I’m glad the game exists, and maybe with tuning I’ll like it more. Though even with that, who knows how many users it will attract: it doesn’t seem to be geared at the mainstream Facebook audience at all. (On which note, I appreciate its flaunting current Facebook convention in not having any space to decorate. Not that it’s avoided all Facebook conventions: it’s quite dooberiffic, and collections are there too.)

Gardens of Time

Gardens of Time is also a Playdom game, a hidden object one. Which I’m actually finding a surprising amount of fun! Hidden object games aren’t exactly the richest of genres; but they’re a perfectly pleasant way to spend a few minutes, this one has nice art, a couple of variants on the core gameplay, and well done hint and scoring systems. Unlike Deep Realms, also, they got the pacing just right: you can do six puzzles in a session, plus a few more if you have lots of friends playing the game, and that’s a perfectly nice bite-size chunk of gameplay. The per-puzzle friend leaderboards work well, and it’s also a game that Miranda and I enjoy playing together.

It does have a decorative space, which I have mixed feelings about. It makes sense in the context of the game to be decorating your own garden with items from those time period; and they use decoration as the gating factor for opening up new levels, which is probably better than having them opened by, say, some sort of direct point value mechanism. Or maybe not: the problem is that you can be in a situation where you like the way your garden looks but don’t have enough points to open up the next puzzle, so you end up stuffing your garden with decorations that you don’t want. So I’m not convinced that they’ve gotten that balance entirely right, but still, it’s not too obtrusive.

Or, of course, you can open up puzzles by paying for them; and one sixth of the puzzles can only be unlocked by paying for them. Which I actually think is great: there’s nothing special about those puzzles, so you’re not losing anything at all by giving them a pass; but if you do decide you want to unlock them, you can do so permanently for around a couple of bucks per puzzle, which seems eminently reasonable. (Or fifty cents for unlocking a puzzle that you don’t want to unlock by decoration, which is also fine.) My only gripe there is, again, Playdom’s insistence on inserting its own in-game currency in the middle: you can’t buy exactly what you want using Facebook credits, you have to instead spend too much money. I would be perfectly happy if Facebook were to prevent companies from doing that: as a game player, I far prefer having as few different layers of currency between myself and things that I want to buy.

In contrast Deep Realms, Gardens of Time is apparently quite popular, and I’m not at all surprised. (Of course, who knows how much ad spend is affecting that, but I’m sure Playdom isn’t spending ad money blindly.) Incidentally, Tami Baribeau wrote a post contrasting the two games as well.

Little Cave Hero

Little Cave Hero is by a company named Atakama Labs that I’d never heard of, and I think it’s totally charming. I like the pixelated art style, I like the way that it takes the same sort of tile-based dungeon exploration that Deep Realms and Treasure Isle have (without the combat of the former) but somehow manages to give it a more puzzle feel instead of a pure clicky grind feel. (And the pacing works better for me than Deep Realms: sessions are short, but you can clear half a dungeon in one, and I’m happy to do without the combat.) And I like the goals that the technology tree gives you, figuring out how to manage your resources to get better tools to let you explore more effectively. And the mayor in the game is mildly amusing, and if you’re feeling creative, there’s even a pixel art tool that you can use to build objects to decorate your own town with!

Right now, it only has a tiny userbase; not sure if they’re not advertising at all or if it’s not to the taste of most of Facebook’s audience or what. Hmm, looking at the developer’s home page, they also did Terranova—I was rather into that one until the crop spoilage got to me. And they did the iPhone version of Today I Die? Clearly I should be paying more attention to these guys. And of the games mentioned here, my guess is that this one is most to the taste of readers of my blog: please do give it a try (and send me a neighbor request in game!), small developers that are doing something a bit different deserve our support!

getting my next action list under control

April 22nd, 2011

One checklist item when starting my new job was setting up a new Things installation. (I have separate work and home installations, with the home one synced to my iPhone.) And, most of a couple of months in, the differences between the two are pretty striking: my Next Action list at work is a lot shorter than my Next Action list at home.

Much of that is due to how new my work setup is: my Playdom Next Action list got to be significantly longer over my time there than my Sumo Logic one currently is. And part of it is the nature of the tasks: at work, I generally have one large project that I’m focusing on at any given time (which I break up into multiple tasks, of course), with only a few side tasks, while at home, there are a bunch of different areas that I want to be working on.

Still, I like the feel of my Next Action list at work much much more than the feel of my home list. And I’m clearly misusing my home Someday/Maybe list: the age of several of my Next Action items strongly suggests that I’m not treating them as next actions, that I’m in fact treating them as someday items, just someday items that I wish I could wave a magic wand at and have them be done. Also, I’m pretty sure that the rarity with which I move something from my Someday/Maybe list onto my Next Action list is another sign that I’m doing things wrong.

Another piece of the puzzle is Kanban. (In its software development form, as developed by David Anderson, not its manufacturing form.) I’ve been following the kanbandev mailing list for the last year or so and read the book earlier this year, and while I need to get more hands-on experience with the methodology (which I hope will happen at work soon), it makes enough sense to me that it’s my default way of thinking about organizing software production. And, viewed in a Kanban light, I’m clearly managing my personal tasks wrong: I don’t have a pretense of Work in Progress limits, and I have no control over my cycle time.

And it’s not like there aren’t new things that I’d like to do but that haven’t made it onto my Next Action list, either: in fact, right now, my brain seems to be particularly good at thinking of new programming projects to undertake! But there’s no point in doing a half-hearted stab at a bunch of projects: that won’t make me feel any better.

Which means I need to get things under control. Part of that means looking at my Next Action list, and moving some of the stuff there to Someday/Maybe. And part of that means recognizing that a lot of the stuff there is things that is genuinely important to do but that I don’t enjoy doing, and I just have to suck it up and do it. For example, I haven’t done a weeding of financial records for more than a two years; the drawers are getting full, that stuff isn’t going to go away if I don’t spend time on it.

So I’m trying to spend more time driving the list down. Once I’ve done that, I’ll consider putting a work in progress limit in place, but right now I’m just trying to remove items more quickly than I add them for a bit. And it’s not that hard to do so once I put my mind to it: for example, I can easily knock off an hour-long item every evening if I just get it out of the way before reading blogs instead of reading blogs and noting that it’s 9:45 and I’ll be getting ready to go to bed in half an hour or so, and putzing away the remaining time.

I would warn that all this means that I may well not end up blogging as much here for the next couple of months. Honestly, though, that seems unlikely: doubtless going through those backlog items will turn into blog posts, too (and, indeed, several of the current backlog items are to write posts on various topics). And I’ve written ten posts here in the last two weeks even though I’ve been nibbling away at my Next Action list, which is noticeably higher than my average. The contents might change somewhat, though: in particular, I’m not planning to start any new video games for a little while. (But I’ll keep on playing Minecraft and Rock Band 3, and both of those will certainly lead to posts on my other blog and probably here as well.)

I don’t blog here nearly as often about organization stuff as I used to, but that’s not a sign that I don’t think it’s a good idea: it’s more a sign that I’ve internalized a lot of the ideas. For the record, then:

  • Agile: still awesome.
  • Lean: still awesome.
  • GTD: still awesome.
  • Inbox Zero: still awesome.
  • Checklists / Standard Work: still awesome.
  • Kanban: looks awesome.
  • Pomodoro Technique: Has a few good ideas that I’ve brought into my practice, and I occasionally turn on my pomodoro timer when I need extra help focusing, but I don’t follow it in general.

But my GTD practice is definitely a bit chipped and tarnished (and should be better informed by Kanban); time to sharpen it up a bit.

planetfall

April 20th, 2011

One thing that I’ve learned from the Vintage Game Club: the mechanics of old games don’t always hold up so well, and old adventure games are certainly no exception to that, generally making me bang my head against the wall (and not in a “proud to have finally figured that out” way) a few times during the course of them. So I was kind of nervous to replay Planetfall: it was my favorite of the Infocom games I played on my Apple ][+ growing up (and I played several of them, maybe a half-dozen or so?), and I was scared that I wouldn’t like it nearly as much this time.

It turns out, however, that Planetfall remains a thoroughly wonderful game, on both a mechanical and a humane level. So: go play it, everybody! (It’s even still available for purchase as part of the misnamed Zork Anthology at Good Old Games, though you’ll probably want to find the .dat file in that distribution and play it on a different interpreter.)

On a mechanical level: I freely admit that my personal history affects how I approach the game. I’ve been playing text adventures since before many of my readers were born (Planetfall in particular is older than some of you), so I’m used to the genre conventions; in particular, pulling out a pencil and paper to draw a map is part of the fun. And I literally can’t imagine approaching this game without that background; to make matters worse, I’ve finished the game a couple of times before (though my most recent playthrough was most of a decade ago, so the puzzle solutions generally weren’t fresh in my head or anything).

Having said that: I also remember thinking that Planetfall was relatively approachable when I first played it. (I did finish it, and this was in the days before walkthroughs being a matter of keystrokes away.) And the puzzle design seemed much less obtuse to me when I played it this time than, say, the puzzles in Grim Fandango. You’re wandering around a deserted research facility, trying to survive and fix broken machines; most of what you have to do makes sense in that context. Unlike more recent adventure games, you do have timers (for food and for health), but the game is generous on both fronts, so while I saved and restored fairly often because of that, I probably actually didn’t have to.

There are also a surprising number of red herrings: quite a few dark or locked rooms that you never manage to explore, several items that you never use. To my surprise, though, that didn’t bother me either. Which probably relates to the previous paragraph: if you’re in a broken down deserted research facility, it makes sense that you won’t be able to get everything working, and the accessible puzzle design means that you’re willing to forgive the presence of red herrings. In particular, I never had to play “guess the item” during the game.

Having said that: there’s one optional puzzle that I distinctly recall missing the key item for when I first played the game decades ago; and there were a couple of instances in this playthrough where I can imagine things going wrong if I didn’t notice/remember certain things. So I’m probably overstating the game’s accessibility. As it was, though, my playthrough went very smoothly; and there were places where the game gave you gentle nudges (e.g. during the fight inside the computer) if you didn’t figure out what to do immediately.


So: very good gameplay. But, of course, Planetfall is more famous for Steve Meretzky’s writing in general and for the character of Floyd in particular. (Incidentally, I had the pleasure of playing many board games with Steve while I was at Playdom: I can attest that he is very nice, very funny, and very tall in person.)

And that holds up great, too. Floyd is totally charming: from his showing up saying “Floyd here now!”, or getting bored and saying “Enough talking! Let’s play Hider-and-Seeker”, to the more idiosyncratic (and Meretzkian) bits of “Floyd chants the death scene from ‘Carmen’.” and (when looking at a bit in the game’s library describing Zork) “Floyd, peering over your shoulder, says ‘Oh, I love that game! Solved
every problem, except couldn’t figure out how to get into white house.'” Also, his comments on saving and restoring games: “Floyd’s eyes light up. ‘Oh boy! Are we gonna try something dangerous now?'” and “Floyd looks disappointed, but understanding. ‘That part of the game was more fun than this part,’ he admits.”

The first of those is foreshadowing, of course: yes, we are going to try something dangerous. I knew Floyd’s sacrifice was coming, and I knew that it would turn out okay in the end, but it still got to me more than any game I can think of recently. The red herrings were very effective in that regard: if you so choose (and I did so choose!), you can spend a fair amount of time banging your head against a few rooms in the complex, hoping that they’ll find a way to protect your unexpectedly brave robot. I’d forgotten the details of what Floyd says there, too, but for posterity, here it is:

Floyd stands on his tiptoes and peers in the window. “Looks dangerous in there,” says Floyd. “I don’t think you should go inside.” He peers in again. “We’ll need card there to fix computer. Hmmm… I know! Floyd will get card. Robots are tough. Nothing can hurt robots. You open the door, then Floyd will rush in. Then you close door. When Floyd knocks, open door again. Okay? Go!” Floyd’s voice trembles slightly as he waits for you to open the door.

I love the false bravado there, the fake insouciance of the “Hmmm… I know!”: none of the noble world-saving heroics (and occasional theatrically grand sacrifices) that today’s games give you.

Steve Meretzky wrote an article about the creation of Floyd; short and worth reading, in particular its final paragraph:

Perhaps the most amazing thing about the creation of Floyd was how easy it was. The entire code and text for the character, if printed out, would perhaps run to ten pages. What’s amazing is not that I was able to create a computer game character that touched people so deeply, but how infrequently the same thing has been accomplished in the intervening two decades.

In retrospect, there are a lot of ways that computer games could have evolved differently out of what I played as a teenager on my Apple ][+, a lot of threads that I wish had been followed up better. And games could still evolve differently: like Steve says, the creation of Floyd was amazingly easy even back then, and tools have only gotten better. Heck, maybe there are games out there today taking the best ideas from back then and improving on them: it’s not like I spend much time actually exploring independent games. Something to think about; and I should dive back into Infocom’s catalog sooner rather than later.

seeking windows advice

April 19th, 2011

When we bought our most recent computer, my plan was always to install Windows on it eventually. And now, with the VGHVI’s LOTRO symposia on the first week of every month, I’m thinking it might be time.

But I could use some advice from people who have done this before. Some context: I’m only planning to use this for games, and I have no intention of playing the latest and greatest Windows games on this machine: LOTRO aside, the most likely candidates are older games and indie games. And, frankly, I don’t expect to use it all that frequently even for those! With that in mind, some questions I have:

  • What’s the recommended approach? Pure Boot Camp, pure virtual machine, or Boot Camp accessible via a virtual machine?
  • What’s the current recommended virtual machine vendor for 3D graphics performance / stability? Last I was following this, Parallels seemed to be in the lead, but that sort of thing can change fast.
  • Am I correct in assuming Windows 7 Home Premium is the way to go?
  • Am I correct in thinking that having an XP license key alone isn’t good enough to qualify for upgrade pricing, I’d need an actual XP installation?
  • Am I correct in assuming 64 bit is the way to go?
  • Any mouse recommendations? For that matter, is a trackball a reasonable approach for FPSes? Not that I plan to dive into competitive multiplayer or anything, but I’m guessing that Apple’s mouse/trackpad won’t cut it for even basic Windows games…
  • How big a partition should I give it?
  • Any tips on finding a good price? Paying $280 for Windows + Parallels doesn’t exactly excite me… I see OEM links that claim to knock $100 off the price of Windows, but I’m worried that there are hidden gotchas there. (Hmm, digging around, sounds like drivers are harder to come by with OEM versions, but I guess Boot Camp and virtual machine solutions would each come with all the drivers they need?)
  • Anything else?

Thanks in advance for any guidance you can provide.

burnout revenge and risk management

April 17th, 2011

At work, we frequently play a few rounds of Burnout Revenge after lunch. (Video games seem to be a general startup thing, not just a game startup thing.) Which is a lot of fun; the only Burnout game I’d previously played was Burnout Paradise, and while I think that game is a masterpiece, I’m also under the impression that it’s quite different from its predecessors, so I was happy to have an excuse to try another entry in the series.

It took me several weeks of lunchtime matches to get used to the feel of driving in the game, but I have the basics under my belt now. And now that I’m somewhat competent at the game, I’m finding that the game gives me a rather different feel from other racing games that I’m used to: decisions in it can, in large part, be interpreted as being about risk management.

The distinguishing feature of Burnout Revenge (compared to others in the racing genre) is its use of traffic. There’s a lot of traffic; but you can plow right through cars going in the same direction as you (in fact, it fills up your boost meter, helping you go faster), while if you run into traffic going in the opposite direction (or, more rarely, cross traffic), you’ll crash. And you’ll also crash if you hit very large vehicles (buses, generally) going in the same direction as yourself.

Most of the time, this means that you stay in the correct lane, plowing through cars to fill up your boost. But if I’ve got a fair amount of visibility and not many cars to run into in my direction, I’ll move to the other side of the road, because you also earn boost if you’re going against traffic. (Going against traffic even if the lane isn’t empty is far from a death penalty, but it does increase your risk noticeably.)

It gets interesting, though, when you come to a turn. In a normal racing game, you want to approach a turn from a line designed to let you maintain as high a speed as possible. In Burnout, however, the distinguishing characteristic of turns is that they have a different risk profile. You have traffic approaching the intersection from multiple directions; if you’re making a left turn (or a right turn in the Tokyo/Hong Kong courses), you’ll always be crossing lanes that may contain approaching traffic, and even if you’re making a right turn, if you maintain any sort of decent speed, you’ll almost certainly slide into the left lane after the turn. (And if you approach from the best line from a pure racing perspective, you’d also want to switch over to the left lane before a right turn.) You can mitigate some of that (for right turns, at least) by sliding, but unless you’re better at sliding than I am, you’ll still fishtail enough while doing so to end up in the oncoming lane even while making a right turn. (This also applies when going around switchbacks on mountain courses, even without cross traffic.)

The result is that, when approaching a turn, I don’t think “how can I get through this at as high speed as possible?” Instead, I think “how can I maximize the number of options that I have, in order to react to surprises in traffic conditions?” Assuming it’s a left turn, I’ll rarely want to cut the corner sharply: if I do that, I’ll be in the oncoming lane with absolutely no information about what cars are there, so it’s a roll of the dice as to whether or not I’ll survive. Instead, I want to position myself so that I’ll get a good view of the oncoming traffic as early as possible, so I’ll have a few more tenths of a second to react to the conditions and plot a course to thread through traffic. Though, of course, the traffic as I approach the intersection may make that impossible: if that’s the case, I have to figure out how to avoid the oncoming cars that I can see (or the buses going in my direction) while getting a view of what’s approaching as early as possible.

This also plays into the design of shortcuts. There are a lot of them, and they often have traditional sorts of shortcut dangers: there might be jumps that are hard to make, or pillars to thread your way through. So their presence puts a premium on both course knowledge and driving skill.

What the shortcuts don’t have is traffic. Which can actually be a bit of a bummer, because if you’re low on boost, you may wish that you had more cars to run into, or oncoming lanes to cross into! But it gives the risk profile a quite different feel.

Except: occasionally they do have traffic. Some of the shortcuts lead you through alleys in the middle of blocks: so no traffic most of the time, but then you’ll blow through a street and be exposed to cross traffic. Even in the best such situations, you have very little time to react, and if a bus shows up at the wrong time, you’ll almost certainly crash no matter how good a driver you are.

The ends of shortcuts are also quite dangerous. They’ll dump you on a road, but they’ll frequently drop you on the wrong side of the road, without much time to react to oncoming traffic. That’s not as dangerous as cross traffic, but it’s still significantly more dangerous than a normal turn is. And it certainly puts a premium on your ability to parse a situation quickly: my improvement in that regard has been a bigger help in my recent increased competitiveness than my learning about the track layout.

So the upshot: shortcuts are generally shorter (duh) but tricker to navigate (which is normal in a racing game), but they also lead to riskier interactions with traffic at their ends and in street crossings in their middle (which is less common in a racing game). They’re still generally worth it, but you’re trading off better average returns for increased variance. Which makes the game more fun from a multiplayer point of view: your preferred amount of risk will change depending on your position in the race, and increasing randomness (within reasonable bounds) lets the best player win most of the time while increasing the chance of close races and upsets.

Fun game.

controls and the illusion of multitasking

April 16th, 2011

When Apple released a version of iOS with a limited form of multitasking, they also added a way to switch directly between apps by double-tapping the home screen. I almost never used that feature, however—I don’t have so many apps on my phone that it’s hard for me to get to the one I want through the home screens, and in particular the ones that are on my first screen are there exactly because I use them so often! (The main time that I drop into the “view recent apps” mode is to kill Mail to force it to resync my mailbox, which I have to do surprisingly often.)

A few weeks ago, though, I tried using double-tapping to switch between applications; and, to my surprise, I found that I rather liked it. In fact, I found that, when I’m switching applications that way, it feels like the machine really is multitasking: going to the home screen triggers an “exiting an app” feeling in my brain, while double-tapping to switch triggers a “switching between active apps” feeling in my brain.

Which is, I realize, kind of ridiculous: I am quite aware that there’s nothing different going on in those two scenarios. Brains are funny things, though, and it behooves us to design interfaces with that funniness in mind!

(Incidentally, this change in habits makes me wish that I had a case that didn’t cover the home button, because the case makes the button mushy enough that I can’t reliably double-tap. Definitely something to avoid next time; I may well go without a case at all next time, both because of this and to better appreciate Apple’s industrial design.)

focused practice in tiny wings

April 15th, 2011

Another way to look at what I was saying yesterday about Tiny Wings: the game says that your actions matter (even if those “actions” consist solely of deciding when to touch the screen!), that they’re worth focusing on and honing, and the game goes to quite some length to actively support you in that journey. In fact, Tiny Wings, despite its single-button controls, rather reminds me of Rock Band 3 in that regard: as I’ve said before, Rock Band 3 concentrates wonderfully on small segments of gameplay, saying that getting them right is worth striving towards, and helping you do just that.

I also want to use this as an excuse to plug Pippin Barr’s blog inininoutoutout. He talks about learning a lot: most recently in his extolling GIRP, but also in his advocacy of Skate 3. I really have to play that game at some point: the only thing that’s holding me back is that I’m still immersed in Minecraft and Rock Band 3, and if I were to add Skate 3 to that list, I probably wouldn’t be able to find time to play another video game for all of 2011…

tiny wings

April 14th, 2011

Some things that I found interesting about Tiny Wings:

  • It’s a one-button game, using a mechanism that works well and that I haven’t seen before. Which makes me happy for the medium: if there’s valuable novelty there, there’s valuable novelty everywhere.
  • It has a procedurally generated world, but each world persists for a day. (Rather than giving you a new world every time you play or having the world persist indefinitely.) I’ve never seen that before, but it works well in this context. Incidentally, Jason Rohrer has some interesting things to say about different possible benefits of procedurally generation worlds on the latest Experience Points podcast, starting around 25 minutes in.
  • The game’s achievements do a better job of serving a mentoring function than those in any other game that I’ve seen.

Actually, I think I have a fair amount to say about that last topic, so let me break out of bullet points for a bit:

At any given point in the game, there are at most three achievements available to earn. You start off with an initial nest, and with three tasks to accomplish: once you’ve accomplished all three, you get a new nest and a new set of tasks, and repeat. Which is already pretty foreign to the traditional notion of achievements; in fact, the game uses the term ‘objectives’ instead of ‘achievements’, so I guess I’ll go with that.

Some of the objectives are strictly about showing off your mad skillz: reach the Nth island. And some of them are gimmicky: the one that sticks out the most to me in that regard is the one where you have to turn your phone upside down and reach the 5th island.

But most of them don’t fall into either of those categories. Or at least they didn’t to me. To me, the metric that “really” mattered was: how far did I get? (For the record: I’m no stranger to the 7th island, though I don’t reach it most of the time; I’ve reached the 8th island exactly once.) But there are a ton of other metrics that the game provides, should you chose to pay attention to them: score is the most prominent, but there’s also the number of coins, the number of cloud touches, time spent in fever mode, the number of great slides, and probably others.

Most of the objectives center around one or another of these metrics: collect 200 points, do 5 great slides on the third island, etc. And the truth is: without the nudge given by the objectives, I wouldn’t have spent as much time on those metrics: I wouldn’t have spent several hours over the course of a couple of days trying to stay in fever mode for 34 seconds, for example. (And, in retrospect, I’m still kind of amazed that I succeeded at that one…)

But another truth is: I’m glad I followed that nudge and did so. It added texture to my experience: without these varying goals, I would have just been touching the screen over and over trying to get as far as possible, and I would have gotten bored and frustrated fairly soon. But with the different goals given by the objectives, I had to think differently about my approach to the game: how would I play it if I really want to get a lot of cloud touches? What causes me to drop out of fever mode? The difficulty curve set by the objectives was also very well done, which was a big help in keeping me interested.

And, it turns out, pursuing those alternate goals helped me make progress towards my main goal of going as far as possible. Take fever mode as an example: if you want to make it to the later islands, you can’t come to a crashing stop very often, at least once you’re past the first three or so islands. So staying in fever mode is very useful; and barely missing great jumps, while not as useful, is generally better than completely botching a jump.

In fact, to my surprise, I actually learned quite a bit about how to play the game from some of the objectives that seemed like gimmicks at first blush. For example, one (late) objective asks you to do a great slide directly after an island jump five times in a single game. That is hard to do; until then, I was happy when I got great slides in those situations but also kind of surprised. But that objective made me think about exactly what I needed to do to maximize the chance of that happening (generally, you want to go for the second depression, and start diving quite a bit earlier than normal), with the result that I could make it farther even when I wasn’t trying for that objective.

Or, a more dramatic example of this: another objective asks you to reach the fourth island without doing a single great slide. Which was difficult both because it’s hard to avoid doing great slides and because it’s hard to make enough progress while doing that to make it to the fourth island. I eventually figured out a technique for the latter (ask me in the comments if you’re curious), but the former was more interesting to me. In particular, once or twice I got frustrated because the game credited me with a great slide when I hadn’t touched the screen at all: I hadn’t slid, let alone done a great job of sliding! But once I’d gotten over that frustration, I realized that I’d learned something potentially useful about the range of possible approaches to great slides: and while I never tried consciously to earn great slides without touching the screen at all, I did switch my approach towards earning great slides. Before, I’d always held onto the screen until I’d hit the ground and started, well, sliding; these days, though, I only hold onto the screen until it becomes clear that I will earn a great slide, and then I release the screen even if my bird hasn’t hit the ground. And I’m sure it would have taken me longer to realize the benefits of that approach if I hadn’t had that objective.

The objectives also work well in tandem with the daily procedurally generated islands. It turns out that some sets of islands are better suited towards some objectives than others: for example, the first time I saw the objective that asked me to reach the fifth island without any speed coins, I had islands with several pairs of adjacent speed coins (and, I believe, one trio of adjacent speed coins), making that exceedingly difficult. So I was glad that, the next day, I’d have a fresh set of islands to play with. But the flip side is: frequently I’d get a set of islands that seemed reasonably well suited to my objectives, but where I’d want to practice on those islands to improve my skills to meet them. (For example, the islands might have approachable enough beginnings to make great slides after island jumps plausible, but even so, I’d need to practice on them a lot before I could hit those great slides at all reliably.) So I very much appreciated the stability of having a set of islands last for a day, while also enjoying the novelty of having a different set of islands each day.

So: yay achievements! And there’s a lot here that other games can learn from. For what it’s worth, the objective that did me in was reaching 175,000 points: I only came close to that once (my top score is 163,707 points, but it’s 20,000 more than my second best score, and my 8th score is under 130,000 points), but I enjoyed my attempts at reaching that bar.

(By the way, I’m ‘davidcarlton’ on Game Center, if anybody wants to add me.)