But just seems annoying and inefficient and arbitrary and weird in a single player game.Now, modulo the grammar and incomplete sentences, this quote exposes something big about Angus: he considers "inefficient" a negative trait of the same Badness Magnitude as "annoying" and "arbitrary" and "weird".
Think about that for a second. He's saying that something being inefficient is as bad as that thing being annoying and arbitrary and weird. I'd argue that there's a relatively narrow segment of the population for which that sentence is true, and that most of those people grew up in the past 20-30 years with computers. (Most, not all; I'm sure there are some machine-shop geeks whose engines (to borrow a quote from Stephenson) don't waste any fucking energy making noise.)
Anyway. Efficiency as a Good per se. I think that there's a lot of value, and simultaneously a lot of pitfalls, in optimizing an experience (any experience!) for efficiency over everything else. Optimizing for efficiency leads to metagaming (which is what Angus is complaining about -- his inability not to metagame). Optimizing for efficiency leads to the bash shell and horribly disfigured people who prefer it over a mouse and some hand-eye coordination for basic computer maintenance tasks. Optimizing for efficiency leads to user experiences that are a mile deep and an inch wide. Overspecialized.
OK side rant: I just thought to myself, "you know, that last part there is overoptimization PERIOD (HI RANDS LOL) not just optimizing for efficiency." And that's largely true, but it's more true of optimization for efficiency than for a lot of other things, because the very word "efficiency" implies optimization. So there's an argument to be made that "optimizing for efficiency" and "optimization for its own sake" occupy very similar notional territory. Whoo! side rant complete! Let's pop this off the stack.
What was I talking about? Pitfalls of optimizing for efficiency. Right. But I'd said there was value there too, right? Well yeah. If you do it right, you only have to do that optimization once. How many little scriptlets do I have in ~/bin (the place unixheads put their scriptlets so they can run them from anywhere, if you're not a unixhead) that I wrote Back In The Day to make something easier once and it took 4 hours to get perfect and it would have taken 30 minutes to do the thing the hardway? Lemme go check. 9. So that's basically a work week there, devoted to microtools in my home directory. But I never have to think of them again! I take over someone else's keyboard sometimes, when I'm logged in as them, and try to do something like `dcscope foo foo/bar` and their bash (fuck bash, man. it's all about csh.) says "bash: dcscope: command not found" and I have to go log in as me, because who the hell remembers what dcscope actually does for me?
I'm sure you get my point about optimization not being all bad.
So now that I've said that -- the whole point of this blog entry was to say "we who live at the intersection of professional coding and computer gaming have to be careful that we don't overoptimize, because doing less work in a game isn't necessarily what you want." Consider D2JSP, a JS scripting system for Diablo II. This is an effort that literally *automates* Diablo II. Someone went to the trouble to optimize the play right out of the game, and now you can do endless meph runs all night on closed battlenet if you want to. Or at least you could a year ago, when I last looked at it. So, is it fun to play d2 that way? I guess. But only if you're playing the economic rare-collecting metagame, and not the "battling the denizens of hell as a necromancer" GAME game.
And I think the game's more fun.
(at least I try to tell myself that. I still have to stop myself from overoptimizing, though. Like in DOW. Sorry about that, Atlas.)