Sunday, June 29, 2003

Notes on Silent Hill 2: Restless Dreams



Everyone I talked to told me that Silent Hill 2 was inferior to Silent Hill. They are so wrong. As (Falstein points out) what often happens with videogame sequels, it is much better. I beefed about my main problem with Silent Hill in the previous post. Silent Hill 2, as mentioned in the comments section, has a much better story than Silent Hill. Not only is it less complex and more clear, but it's also personal and human.

I admit I was more creeped out playing the first one, but I think that was just because it was my first experience of the Silent Hill universe, and if I hadn't had it spoiled for me, the second one would have been just as creepy. (Although there is no moment quite as creepy as the ringing telephone from the first one.)

Silent Hill 2 has an option where you can play it with camera relative controls rather than character relative. Character relative controls kill my feeling of immersion: when I'm steering my avatar like a truck and they're swerving drunkenly on the screen it's a painful reminder that I'm just playing a videogame. Konami calls it "2d type" controls, I guess because if you project the scene two-dimensionally you're pointing where the character goes. I think they should have made it the default control scheme, even though that violates the rule of "Don't change interfaces on people": the gaming world is supposedly used to the Resident Evil style of character control, so to change it would have violated all their expectations. We were under a similar restriction for Spider-Man: our improved control scheme was not the default, because all the people who played the previous game were used to something else. I think that was a bad idea, also. I agree you shouldn't change an interface just for the sake of changing it, but if you invent a better interface, make it the default!

One thing that one could complain about with Silent Hill 2 is that the pacing is slower; in Silent Hill they shoot their wad very quickly, introducing you to the full horror of the world early on. But I think 2 actually did it right, trying to save some of the creepier stuff for the end of the game.

Another thing one could complain about is density. To quote Ken Birdwell's theory of experiential density: "The amount of "things" that happen to and are done by the player per unit of time and area of a map. Our goal was that, once active, the player never had to wait too long before the next stimulus, be it monster, special effect, plot point, action sequence, and so on. Since we couldn’t really bring all these experiences to the player (a relentless series of them would just get tedious), all content is distance based, not time based, and no activities are started outside the player’s control. If the players are in the mood for more action, all they need to do is move forward and within a few seconds something will happen." The original Silent Hill had a good level of experiential density, but this one you sometimes have to jog a fair amount of time before anything happens. Certainly more than a few seconds. I'm betting this was an accidental byproduct of the more powerful consoles; we made similar mistakes when we went from Die By The Sword to Draconus and were suddenly capable of holding much larger levels in memory but without the bandwidth to fill those levels with stuff. At the end of Silent Hill 2 they even give you a scorecard where they tell you how many kilometers you ran. "Tell me about it," I thought. Still, I'm willing to forgive them those boring stretches.

This article on Hypnotic buying the rights to Eternal Darkness reminded me maybe I should compare and contrast those two as well. Eternal Darkness has better gameplay. Hands down. Three resources to manage instead of two, orthogonal elements, a spell system that encourages lateral thinking (borrowed from Dungeon Master I now realize after reading some of Ernest Adams' latest book), a wider variety of challenges, a larger gamespace to explore. The hardcore gamer in me respects that a great deal, and Eternal Darkness was one of my favorite games last year, but I have to admit that Eternal Darkness is not as creepy as Silent Hill 2, and its story is not as compelling, and I think that's what really matters for a horror-story game, so I'm going to have to give Silent Hill 2 the honors for best horror game I've ever played.

Certain types of stories are best expressed by certain types of media, by certain forms. Stories with lots of visual opportunities and simple character arcs make for a good movies or comic books. The "novel of ideas" is best as just that, a novel. And I think maybe stories with heavy backstory work best as video games, because then the "reader" becomes so engaged in uncovering the backstory.

Spoiler warning - read no further - play the game - it's only $20!

Although most videogames thrust the character into a situation where they know nothing, and therefore it makes sense that they are trying to learn, Silent Hill 2 is about a guy exploring his own backstory. The story is about denial: about James Sunderland's inability to admit his own guilt, to remember his own past. The hidden backstory becomes a metaphor for that, and as the backstory is uncovered, James overcomes his denial. It's really kind of cool.

Here's a question: was there a horror movie sequel that was better than the original? I'm not counting Aliens, because that was barely a horror movie.

Monday, June 23, 2003

Story Complexity



Been playing Vagrant Story and Silent Hill lately, doing a sort of retro thing, catching up on PS1 games I missed because I was a PC gamer. One thing these two games have in common is a story so complex that I don't understand either of them. But some modern games' stories are complex, also: Metal Gear Solid 2, Splinter Cell. When I play games like these I often don't even know why my character is doing what they're doing; I just follow the next goal on the mission screen or whatever.

My question is, why does this happen? I have a number of theories:

- the people who write the stories for these games are not good writers. They're people who have contacts within the gaming world, and lucked into a writing position on the strength of other talents. They're under the mistaken illusion that complexity and quality are related.

- the stories are made purposely complex to give the player yet another way of interacting with the game. The story is purposely complex so we have to use our imaginations to make sense of things; the story is a mystery that we gradually uncover as we progress, and the more complex the story is, the more story points we have to uncover.

- although gameplay testing is done on these popular titles; "Did the player get stuck?" "Did the player get frustrated?" we don't test the story. "Did the player get it?" "Did the player know what the hell was going on?"

- the stories actually aren't that complex, and the problem is actually that I'm too lazy to pay attention to cutscenes full of exposition. I don't think this theory is particularly likely, because I am be able to follow the somewhat complex Nintendo stories in Zelda, Eternal Darkness, and Metroid Prime.

- maybe complexity is what the people want. I've overheard people say, of MGS2, "Man, that story is tight! It's totally unpredictable! Nothing you think turns out to be true!"

Whether most people like complexity or not, I'll take a game like Out of This World, where they don't even need text or dialog to tell a completly clear and compelling story.

[Note from later:] Too lazy to play the last third of the game again, this time conserving enough resources to beat the final boss, I read the plot on gamefaqs. And I still don't get it. So there.

Tuesday, June 10, 2003

Code Reviews: Over-rated



According to Rapid Development, studies have shown that code reviews are beneficial: in theory, the number of bugs caught early in the development process justify the amount of work put into reviewing the code. So we tried it. We wanted to do it right: I read two books on reviews, one by Weinberg and one by Glib. We reviewed, counted the caught bugs, estimated how much time we saved by finding the bugs early.

Our finding? Although we did find some "bugs" early, most of them were not stop shipment bugs. Readability bugs, guideline violations, sure. Every now and then, maybe every other review, we found an actual stop shipment bug and were like, Yes! Good catch!

But we estimated that the amount of time we would have spent fixing the stop-shipment bugs later was actually less than the amount of time we spent reviewing code.

So why are code reviews so damn popular in these studies and software engineering books? My theory is that, way back when, when our compilers and languages weren't so good at catching bugs at compile time, and common practices such as Steve Maguire's for catching bugs at runtime weren't so common, code reviews were extremely beneficial. But as time went on, they became less and less so, until finally the cost outweighed the benefit.

Sunday, June 01, 2003

Notes on Ratchet And Clank



After reading the post-mortem on Ratchet and Clank I had to play it. The only other original title that got such a high score on game rankings with such a short development cycle was Deus Ex, if you don't count the time Insomniac Studios spent working on the game they decided to kill. In my book, more important than shipping a great game is Bang For Buck: sure, Nintendo can make Zelda great in four years, Half-Life 2 looks awesome after five, but can they do Ratchet and Clank in eighteen months?

Ratchet and Clank is a good illustration of some of the Harvey Smith articles I've been reading lately: somewhat orthogonal elements encourage emergence and the level design (as with most platformers) is systemic. It's also a good illustration of a few Falstein rules: clear short term goals; emphasize exploration and discovery; and provide parallel challenges with mutual assistance.

Some of the gadgets are more orthogonal than others; while there's a series of weapons that do progressively more damage and have longer ranges (all on the same vector), there's also the brilliant Suck Cannon (possibly the single coolest innovation in the game) which allows you to suck up small enemies and then shoot them. When combined with the amoeba creatures that split into smaller parts, a strategy emerges: hack up the amoeba, suck into your cannon, and use it on the next enemy. The game encourages you to switch weapons because you'll run out of ammo, and ammo for the best weapons costs much more than ammo for the weakest. (And ammo for the Suck Cannon is free.) There are also various kinds of mines. I'm not sure if this counts as a different vector when orthogonality is concerned, because the mines still do damage to enemies...but one thing that does not do direct damage is the 'taunter', which both activates mines and encourages the AI to run towards you (and hit the mines.) More truly orthogonal elements include a grappling hook, skateboard and 'grind boots', jet pack, key that lowers and raises water level, and key that gets through doors (this opens a little puzzle mini game that's kind of neat in itself; I'd say it's the best lockpicking mini-game I've ever seen, including the ones in Dead To Rights and Splinter Cell), and I'm forgetting a bunch.

The AI in *Ratchet and Clank* is typical of platformers. Very predictable patterns: more of a game than a sim. It's clear when playing it that the AI is supposed to be dumb, so nobody faults *Insomniac* for not spending manpower on AI. Still, even though they may have saved a man or two on AI programming, it is simply amazing to me how much stuff they got into the game. Even with the rapid turnaround afforded by repeating the same level elements (grappling hook anchors, turrets, trip lasers, platforms, switches, blah blah blah) there's a lot of different systems (rails for grinding, magnetic strips for walking in loops and upside down, water) and sub-games (skateboarding, flying a jet, and a couple of boss fights.) It makes me want to work for them, just to see how they do it.

As for the Falstein rules: the clear short term goals come up in each level screen, a laundry list of missions that need to be accomplished. The exploration and discovery is typical of the latest generation of platformers: like gates connect the worlds in Mario, your spaceship connects the levels of Ratchet. There are secret areas where one can find 'golden bolts' (I never found out what these were for...maybe just bragging rights?) Because you can choose what you do next, and because you earn money as you explore, it satisfies the 'mutual challenges with parallel assistance.' (This really was useful for me; some of the missions were too hard for me until I'd equipped better stuff, although I felt that somebody much better at the game than me could have made it through the whole thing with just the wrench.)

Like Jak & Daxter, gameplay testing is evident. If I were to give out awards for Least Frustrating Console Games, they would go to: Animal Crossing, Halo, Jak & Daxter, Eternal Darkness, The Wind Waker and this. (Both Metroid Prime and Mario Sunshine were much more frustrating...Nintendo is losing the gameplay-testing wars.) Although I didn't manage to beat the final boss...that's kind of a habit of mine, though...I have so little interest in seeing that final flashy prerender, when the final boss is too hard I'm usually content to just get to it.

I don't know how well it's selling; obviously enough to justify a sequel, but I imagine I would have heard if it was breaking any kind of records. Which makes me wonder: does it make sense to combine shooting with platforming? Both Jak and Ratchet are taking this route. It seems to me that it would alienate both audiences: too cute for people who want to kill, too violent for people who want a kid's game.

On the consensus topic, in their post-mortem they said that they do not design by consensus but they do have a process in place for suggesting ideas and making sure that the ideas fit with the game's vision. I tried e-mailing them to ask what that process is but to no avail. If anybody has a friend at Insomniac, could you bug them for me? I'm really intrigued.

Saturday, May 31, 2003

This Post Has Very Little To Do With Games



So I'm pro gun control now. Funny, since I used to think of myself as an anarchist. I'm getting old. It's just that I've been to my third funeral-due-to-firearms in a row, now, and maybe it's just bad luck, but on the basis of that anecdotal evidence, I'm thinking people should not have guns. This will probably alienate me from a lot of my friends, a lot of whom enjoy their guns, but I'm quite happy to sacrifice their gun-owning-pleasure to prevent idiots from having the ability to instantly kill. That's just the kind of guy I am. As for the "they'd just find some other way to kill" argument...whatever. First let's solve this way, and then when they find those other ways we can outlaw them, as well.

And just to keep this blog on track, one thing I really can't stand is people who want to outlaw violent videogames but not guns. Fortunately I've only met a couple of these people in my life, so they must be fairly rare. We should get to shoot as many virtual people as we want. Not because it's "cathartic" and might reduce real-life violence. I'm sure it isn't and doesn't. Just because.

Wednesday, May 28, 2003

Happened across a good article on play balance: http://www.gamedev.net/reference/design/features/balance/default.asp.

Thursday, May 22, 2003

This Is Not A Good Idea


In multiple different games now I've seen this: doing nothing recovers a vital resource. In Diablo 2, you stand still and recover your blue stuff. In The Getaway and Enter The Matrix and Wolverine's Revenge, you stand still and recover health. It actually makes some sense for Wolverine, I suppose. I can imagine why people implement systems like this:

- you can avoid putting those immersion-breaking power-ups into the game

- it makes the game easier and thus should appeal more to the casual gamer

- games where resources stay depleted can be problematic at save-time; if you save a game with depleted resources you may never dig yourself out of the hole you're in

Still, haven't people noticed the problems this creates?

- standing still and watching a resource meter recharge is about as fun as waiting for a level to load

- skill becomes almost irrelevant, both at a tactical and strategic level; if you don't need to conserve resources during an encounter, there's no reason to play that encounter intelligently (except that you'll have to spend less time waiting for your meter to recharge - I suppose if we consider a player's patience as a game resource there's still some motivation to be strategic) - and at the strategic level, you never have that choice of "do I keep going ahead with limited resources" or "do I backtrack and try to find some more resource?"

There must be some solution out there that satisfies all these needs...

[BTW: I'm just talking about single player games here. In multi-player games the amount of time a resource takes to recharge (Kohan) becomes a factor in your strategy.]

Sunday, May 18, 2003

Peter Molyneux



Check this out. Peter Molyneux totally beats himself up over all the games he's made, up until Black & White. I can only assume he's beating himself up now about Black & White: why? Becuase, to quote Jim McCarthy, "Bug Count is a Constant." We never finish our games. We put in as much coolness as we can in until we have to ship. Games aren't finished; they are abandoned. Then we take the wishlist features and bugs we marked "Will Not Fix" on our last iteration and try to put them in on our next. Which is something I should try to keep in mind when I criticize games; I always say things like "Why didn't they do this?" The answer is usually: "We wanted to, but we ran out of time."

Black and White seems like the sort of game where you get out of it what you put into it. Which is a risky sort of thing to make; it optimistically believes in the player, that they are going to come to the game open-minded, that they trust you enough to say, "I bet there's more cool stuff in here to discover." What did Rollins say? "This time, we're not going to leave anything to your imagination. We tried that the last time, and in our opinion, it didn't work." Still: the opportunity this risk affords seems totally worth it, to me.

He also talks about having a 'test-bed', what Cerny calls a prototype, what many companies call proof of concept. I agree that this is totally essential.

I only watched the first half, and then he started plugging B&W, but it was interesting up until then.

Friday, May 16, 2003

E3


The best moment of E3 for me, easily, was meeting Ian Klimon and Adel Chaveleh of Timegate Studios and giving them props. It's good to know that they're part of the Kohan online community; it's good to know that what they're trying to prove with their new game is that they can have the strategic richness of Kohan with the beauty of a WarCraft or Battle Realms; it's good to know that the game is entirely data driven so the mod community can go nuts; it's good to know that they're striving to make the actual Kohans themselves less of an unbalancing, random factor in the game. (My biggest complaint with Kohan is that we actually enjoy it more when we turn that namesake feature off, although the guys online seem to love it.)

The rest of E3 was a drag. No Splinter Cell or Wind Waker to get excited about. If you just look at the stuff on the show floor, it seems that Greg Costikyan is right: innovation is dead. There are supposedly innovative titles out there, such as Half-Life 2 and Fable and The Movies (how can Peter Molyneux work on two games at the same time?), but they weren't on the show floor, and I wasn't about to stand in line to see a movie about a game. And to be honest, after Warren Spector's speech about sequel teams carving out their own space to innovate within, I was expecting more from Thief 3 and Deus Ex 2. Maybe I didn't play them long enough, but I was hoping for at least a Mask of Majora or Wind Waker level of innovation, some kind of Take It To The Next Level sort of thing, or some kind of orthogonal feature that would add a new dimension to the game space. Don't get me wrong; the guys at Ion Storm are still my heroes, and I'll still buy these games and play them and enjoy them. I'll probably get Deus Ex for the PC since you really want that mouse + keyboard action when you screw up and need to blast your way out, and I'll get Thief for the Xbox since it's got that lockpicking mode and doesn't really require those FPS skills.

Speaking of disappointing sequels, saw the Matrix: Load at a crappy theater with blown out speakers near the convention center. I wasn't expecting much, but they somehow got in under my expectations anyway. It wasn't as big a letdown as Phantom Menace, but that's not saying a whole lot. What helped fuck it up (and to keep this blog on topic) were the hooks they added for the videogame to fill in: you have these tangential characters and an epidemic lack of clarity (to quote Jay McInerney) as to how they fit in with the whole picture. To increase my depression the reviews for the game seem to all be saying "Although the gameplay is totally mediocre you should buy this game anyway for the movie footage." If that footage was so important why wasn't it in the movie? Let the game be a game, for Christ's sake.

Tuesday, May 13, 2003

Orthogonal Elements Redux


The bitch about orthogonal elements--to push the metaphor--is one of your elements may be aligned with Winning The Game, whereas the other are orthogonal to it. For example, your fight game has attacks and defenses, but only attacks win the game. Or you've got a medic unit in your RTS, but it's your soldier that wins the game. I bring this up because I was asking myself "How come the game I'm working on has so few orthogonal elements?" and the answer was we couldn't think of a way to make those orthogonal features actually useful to the player. I'm not sure this is something Harvey Smith went into in his article, and I don't seem to have PowerPoint on this machine so I can't check. I still think orthogonal elements are key, but getting them in is hard work.

Sunday, May 11, 2003

Another reason why we play: to learn an actual skill that might have a hint of application in the real world. I've been playing Amplitude during compiles, and telling myself that I've been improving my rhythm. I wonder if regular Amplitude playing could make one a tighter musician during actual jam sessions?

Saturday, May 10, 2003

Actually feels like we're in good shape for E3. For the first time ever--that I was involved, anyway--we're showing some of the actual game instead of proof-of-concept stuff that we're planning on scrapping later. It runs anywhere from a half hour to three hours before it crashes. We worked a lot of overtime the past couple of months, sure, but it's been 50-60 hour weeks, not 24-7. Which makes me think of something I just read in DeMarco and Lister's *Waltzing With Bears*: they say it's more likely for your deathmarch projects to be low-value projects. The logic being that if your project is of high value to the company, they'll do it right and give you the resources you need, but if they're not into the project, they'll shaft you for resources and tell you to work extra hard.

Thursday, May 08, 2003

Experiences



Alex Bortoluzzi was telling us about his most touching moment at E3 two years back; we were demoing Spider-Man and a guy in a wheelchair came up and played the demo over and over again. Alex said the guy was a little misty eyed.

I think that's the most important part of what we do; we give people experiences that they cannot have in real life. This is something novels, movies, and television aspire to do but can not. I've believed this ever since I read Richard Powers' Plowing The Dark, a novel about a team of people creating a virtual reality experience. Powers ties it all in with games and narrative, places it in the context of world history, says it's the new frontier and our future. That book is basically what keeps me going at this job.

But this belief has ramifications: if providing simulated experiences is the most important thing we do, then the game-game-type-game aspect of game development - the point systems, the combos, the rules, the levels, the strategies - is secondary. I think we're seeing the industry start to realize this; GTA3 and Halo represent a gaming future where the simulation (being an unstoppable criminal or being a space marine) is considered more important than the game: I don't know how often people compare their GTA strategies looking for a new insight in how to play the game better; and those giant battles from Halo where you're just one marine among many is not so much a challenge you're trying to win but an experience that thrills you. Metroid Prime, on the other hand, is stuck firmly in the past: with its power ups and color-coded monsters and save-game stations instead of feeling like a space marine you feel like you're playing a game about being a space marine. (If you worked on Metroid Prime, don't hate me: I still thought it was good stuff, definitely got my attention's worth out of it. I just liked Halo better.)

Another ramification of this belief is that those people who only seem to care about good graphics and good audio - those people I've typically snobbishly looked down on as not understanding Games - are on the right track. The graphics and audio are what makes the simulation more immersive, makes it easier to suspend our disbelief, forget that it's just a sim.

And it means that VR, although overhyped in the early nineties, will make a comeback. I think the real reason VR failed as a money-making enterprise back then was the technology just sucked. We were promised that we'd be put in these immersive worlds but we weren't. You'd turn your head and the world would update a half a second later. Give it another decade or two or three. Once the tech is there, it'll be what you want, and if we haven't been burned out already, that's where we'll be working.

Tuesday, May 06, 2003

Interface or Yummy Candy?


There are some things that we can (almost) all agree belong to the realm of Interface. That is, the experience should be as low-profile as possible because no-one wants to interact with that experience itself. It is just a necessary evil we have to go through in order to get to the thing we actually want (the Yummy Candy).


The process of using the mouse and keyboard in tandem in order to get these words on the web site is a good example. If I could make it so, the process of getting my thoughts to the web site would be instantaneous and invisible to me. The Yummy Candy payoff is having expressed my idea.


If you could perfectly determine on a given project what should be Interface, and what should be Yummy Candy, that would vastly clarify many design decisions. Problem is, people differ even on that most fundamental level.


Playing Age of Empires, I thought that having to micromanage the villagers was Yummy Candy. In my mind, a significant parameter of the game competition was managing one's own attention, and keeping track of everything under pressure. Many others thought this was Interface, and so the sequels featured build cues and more intelligent villager behavior.


An even more extreme case is MOO3, where the design comes close to relegating almost every decision to the Interface category, so that it is possible to win just by clicking the "Next Turn" button over and over. I see what they were trying to do. They wanted people to be able to go after whatever Yummy Candy they each individually wanted to go after, and leave the rest to Interface. Maybe it was just the specifics of implementation that made it fall flat.


Is hitting the piƱata just an Interface to the candy inside? For some, yes, and for some, no. Just try your best to assure that you're not making people bang on your Interface over and over before they get any of your game's Yummy Candy to fall out.

Orthogonal Game Elements


A criteria for good game design which seems obvious but is easy to forget in the heat of brainstorming. Fight games forget this all the time, by adding more attacks instead of coming up with ways to multiply the potential of the game. The reason I mention it was I was browsing Ion Storm's web site yesterday and Harvey Smith gave the subject a thorough going over.

Saturday, May 03, 2003

The Jamie Test - Step 11



Build Consensus

Going ahead a few steps. Chris's post - which, incidentally, seems to have doubled our readership (Go Chris! I hope your career will survive being blacklisted by Derek Smart) - got me thinking some of the same old thoughts.

I had an English teacher in high school who told us that nothing good ever came out of a committee. This woman also told us that the human body undergoes a weight loss immediately after death -- no doubt the departure of the soul -- and that she was visited by Jesus in her bathroom. Still, she isn't alone in her thoughts; a lot of people look down their noses at 'design by committee.'

I was reading the same post-mortem that Chris read, which talked about the failure of 'design by committee.' I think the wrong lesson is being learned here; much like when you're playing Texas Hold 'Em and you decide not to draw to the inside straight and, lo and behold, the inside straight comes up, and you rebuke yourself, and you say next time I'm going to draw to the inside straight. Wrong lesson. The project in question had a number of problems and 'design by committee' was not what sunk it. This was a project in which a lot of the team members knew the project was in trouble the whole time. If there was any 'design by committee' going on, either these members of the team weren't on those committees, or the committees were not effectively building consensus.

There's a number of ways committees can fail:

Wrong people making the decisions. (Wrong people in the committees.) Frequently you'll have a group of managers as the only ones making decisions and they forget to include the people who are actually going to do the work and know their jobs. So you're handing out job assignments to people who haven't bought in to those assignments in the first place. (I saw this in action with Minority Report. I happened to be in the room when a programmer didn't want to implement a design his boss was suggesting. The boss said, "The consensus is we should do it this way." I said, "It's not consensus if the programmer doesn't agree." "I meant it's the consensus of the leads," the boss said. This was one minor point that surely was not to blame for Minority Report's failure, but if every single aspect of the project was handled that way it could be a problem.) Another possibility, the client (usually the publisher) is not in on the committees either, and will try to control the project retroactively. And finally, people join the team after decisions have already been made; do you rehash all the decisions up to this point? Or do you just shove the old decisions down their throats?

Fear of hurting each other's feelings. At some point, brainstorming has got to end, and hard decisions have to be made, otherwise you will end up with bloatware, as every single person's pet feature is put into the game. It probably is the real problem that the people were complaining about in that post-mortem I mentioned; it's also a problem that we experienced on the team I work on. Our original design document outlined whole systems of features that were tangential to the focus of the game - not quite toasters for cars but headed in that direction. The only thing that got those features cut was that we ran out of time. If we'd been more vigilant in our design, we could have cut sooner, and the resources that did go into those features could have been spent more usefully.

False consensus. Drucker talks about the social experiment where a group of people, in a circle, are asked if two different lines are the same length. Every member of the group but one is a plant; they agree that the different lines are the same. When it gets to the test subject, he almost always caves and agrees with the rest of the group. This phenomenon is what allows a whole group of people to collectively agree on the same bone-headed decision.

Not the best ideas The ideas that go in are not the best ideas but the pet ideas of the most persuasive people. (Often the most persuasive people will be people in lead positions, granted a sort of unconscious bias.) According to Carnegie, persuasion has little to do with the 'rightness' of your argument, and more to do with how you argue.

Nothing gets done Spending eternity in meetings without doing any actual work. When thesis and antithesis compete, it takes a while to come up with synthesis. At the beginning of our latest project we spent half our time in meetings for the first few months. I think the time was well spent but one could argue that we'd have more to show if we just dove in and started making stuff.

That's quite a list, so you may want to switch to The Boss Decides method of making decisions. What this gets you is a trade-off: you're less likely to be bitten by the "fear of hurting other people's feelings" problem and the "nothing gets done" problem, but you're more likely to be bitten by the "false consensus" problem (a bone-headed consensus of one) and the "wrong people making the decisision" problem and the "ideas are not the best ideas but the ideas of the most persuasive." (In this case, the boss.) In my opinion, the fact that you now have someone Responsible running the show, whom you can fire when he fucks up, doesn't really make up for the fact that you've increased the likelihood of fucking up.

My suggestion is this: if you are in a leadership position, take the risk of abandoning yourself to consensus building. (It's hard. There have definitely been times where everybody except me wanted to do one thing and I insisted on another. I now feel that the correct thing for me to do in those cases was keep hashing it out until we achieved synthesis.) If you're not in a leadership position, make yourself heard and try to encourage others on your team to be heard as well.

How do you build consensus? There's a short guide here that I just found via Google. And if you want it spelled out in excruciating detail, and don't mind wacky space cadet stuff, then take a look at the McCarthy's "Decider Protocol" in their Core system here.

These systems solve items 2 through 4, and make some effort to mitigate item 5. What they do not solve is having the wrong people in the meetings. (Our programmer team rapidly achieved consensus when we proposed that we should all get more RAM. There was nobody from budgeting or purchasing in the meeting.) This is a problem I do not yet know how to solve. Must research.

If you still think 'design by committee' is a bad idea, consider this: like Chris said, the Half-Life guys did it. But they took three years to ship, you point out. Well how about this: the Deus Ex guys did it. In my opinion, Deus Ex is the biggest success story in all of recorded videogame development: quality delivered in a timely manner on a reasonable budget. From their post-mortem:

Should you get to name your character or not? A holy war almost broke out on the Deus Ex team about this. "If you can't name your character, it's not an RPG," said some. "If we don't name the character, how do we write and record compelling conversations and create a cool story?" said others. "Story isn't the point…" "Yes, it is…" and on and on and on. We compromised: we gave the player character a code name and back-story but let the player select his real name, which came into play in various ways (though never in speech).

Not a compromise at all, but synthesis. They practice consensus. And so should we.

Chris would say something like, "You're missing my point, Jamie. I never said design by committee was bad, I just said there has to be someone with whom the buck stops." I would argue that since, the world of business being what it is, buck stopping people are built into the system. Whoever your pimp is, they're going to want to know who the "one in charge" is, and that person is going to be considered responsible for the results of the entire team. What concerns me is this unhealthy fascination we have for the org chart. The system wires us to spend a lot more time thinking about who is in charge than we should. Because the system does this to us, and because at some level we like it (who doesn't want to see a nice fat "Technical Director" credit on the game they shipped?) we need to fight this tendency to actually make a true consensus happen. Don't worry about figuring out who is in charge of whom; worry about figuring out how to get the best ideas into your game.

Thursday, May 01, 2003

Site Name Change May Be In Order


Saw a movie poster for League of Extraordinary Gentlemen yesterday. They're calling it LXG. LXG??? LXG?!?!?!?! What the fuck? What the fucking fuck? Looks like some marketing suit out there thinks they're making an X-Men thing. I guess after From Hell, I shouldn't be surprised by the butchering of Alan Moore's work. But God! Some people just don't Get It. I say to whoever is making that movie: Good job. You've alienated your hardcore fans and probably the casual moviegoing audience as well.

And now our thirty or so loyal readers will be associating this site with a lame movie instead of a cool comic book.

Wednesday, April 30, 2003

No Toaster Cars
Know what your game is trying to deliver, and measure everything against how well it helps deliver that thing. If your game is supposed to deliver a visceral feeling of mayhem, don't work on a realistic driving sim. Yes, driving sims are fun. But that's not the game you're making.

Making an appliance that toasts bread is good. But not if you're supposed to be making a car.

No toaster cars.

Tuesday, April 29, 2003

Conundrums



It seems that every project management platitude out there has its converse out there as well. To wit:

On Offices


People Should Have Their Own Offices
– Steve McConnell

The argument being knowledge workers need long periods of undistracted time in order to accomplish thought-intensive tasks.

People Should All Be In One Big War-Room


The argument being that communication is essential and therefore everyone should be able to always talk to everyone else.

On Scheduling


Optimistic Schedules Are Bad
– Steve McConnell

The argument being that to achieve an overly optimistic schedule you engage in risky and shoddy workmanship, creating a massive bug list that ends up lengthening your schedule beyond what it originally would have been before you got "aggressive."

Optimistic Schedules Are Good
– Steve Maguire, Jim McCarthy

Steve's argument being that tasks take the amount of time allotted for them; to make sure they take as little as possible, create an impossible schedule and rest secure in the knowledge that everyone is getting everything done "as soon as possible."
Jim's argument, from Software For Your Head, is that there are no shortages of resources; only shortages of resourcefulness. I guess we could paraphrase him by saying necessity is the mother of invention.

On Managers Doing Actual Work


The second rule of Bad Management: put yourself in as your own utility infielder
- Tom DeMarco

There are several arguments here: one is management takes time and you should do it. Another is: the people on your team probably know their jobs better than you do, so you shouldn't try to do it for them. Another is: in the role you find yourself in, you're going to be distracted on a regular basis, and therefore not going to be able to focus on doing actual work.

Just Do It or You Pet The Kitty, You Own The Kitty
- Joel Spolsky / Jim McCarthy

I'm paraphrasing here. Joel points out that multitasking is harmful, so if you see a task that needs doing, and everyone on the team is already working on something, it's better to do it yourself than to make somebody task switch. Jim McCarthy says the person who proposes something should implement it, since he's the person who gives a shit.

I'm sure there are more examples of these. In these cases, I think there are solutions where a kind of synergy between both arguments can be developed: for the offices question, we could have a central war room ringed with private offices; "your" computer is in the war-room, but when you need privacy, you can borrow one of the private offices. (I've never heard of anyone actually trying this.) An amusing side note is that on my team we do the exact wrong thing: the people who are actually doing the work are in cubicle farms or share offices, where they get maximum distraction and very little communication, whereas the leads – who should be doing most of the communicating and less actual work – get their own private offices.

And with scheduling, you can use the method from Critical Chain and Slack: schedule deliverables aggressively but have a fat safety buffer at the end of the project. In a way, the industry already does this and calls it 'alpha', although we supposedly do it as a time to fix bugs (which encourages sloppiness, IMO.)

And for that last one, I have no idea. Must think.

Sunday, April 27, 2003

Jamie Test, Step 8, Part 2



Let team members estimate their own schedules

More on the scheduling thing: I thought I'd share some of our experiences working with Joel Spolsky's scheduling system.
There are limitations to his system, and while it's still the best thing I've found out there--it beats the crap out of scheduling on filecards, XP style--you have to be aware of the limitations or you can fall into some traps.

- The "Debugging" pad / buffer can allow you to break the system. Supposing I code up a feature. I use up all the hours I've scheduled for it, and it's "done". One problem: it doesn't work yet. So I keep banging my head against it, and log the time as "Debugging." This isn't a problem for the lucky few who write code correctly the first time; people like me, on the other hand, tend to write a collection of bugs, fix the bugs, and then we have software. If we log the 'bug fixing' phase as "Debugging", then we aren't measuring correctly, and the scheduling tool loses its power. The way to fix this is to make sure everybody on the team is aware of this pitfall, and doesn't call a feature 'done' until they've gotten it to the point where there are no stop-shipment bugs that they are aware of.

- The schedule does not explicitly discourage multitasking; you may find that someone is switching from task to task. This could be because different people are asking them to work on different features, or because they just got sick of working on one thing and decided to work on another. Multitasking is bad. Unless truly higher-priority items come up, let people focus on one thing at a time. It's hard to do; everyone wants everything done at once, and they will be constantly asking, "Isn't someone working on this?" and the easy way out is to say, "They are now!" and switch someone.

- People get confused by the whole 8 hour day thing; on our team, we tell them "they aren't hours, they're eighths of days"; on other teams they go to daily. If you spend a half day on something, then you elapse .5 days. A meeting might be .25 or .15.

- Joel says to keep subtasks under 24 hours. In my experience, if you tell your team this, they will frequently underestimate a task (yep, that'll take 24 hours) rather than take the time to subdivide it correctly. (You could argue that we should fix the real problem rather than hack it.) I'm happy with 40 hour granularity; that may be because our schedules tend to project out for almost a year, and we don't need the finer grain.

- How to get everyone to correctly elapse their time every day? If everyone starts on the same day, then they should all have the same number of hours elapsed at the end of every day. So at the end of the day, a manager can run a pivot table that sums everyone's elapsed hours. (Jem Maza found a clever way to automatically pivot into a different spreadsheet.) Then we e-mail that table to the team and people can see who is off. If someone is particularly bad at remembering to elapse, you break out the whip. This is important; the longer you go without remembering to elapse your schedule, the less accurate it gets.

- When someone runs out of time, and someone else still has slack, we'll move tasks across. Because resources aren't fungible, we erase the previous coder's estimate, so it doesn't bias the estimate of the next coder.

- Have a wishlist page in the schedule doc. When the whole schedule is out of slack, it's time to cut features. I cut them from the main page and paste them on the wishlist page. If some time frees up--that very rarely happens--we can move them back. When people come up with new ideas for features, they go onto the wishlist. You can look at the wishlist at the beginning of your next project.

- At certain stages of the project, if we find that someone is consistently under-estimating, we'll go in and pad their remaining estimates. This is usually followed by a spree of reassigning and cutting features.

There are a few arguments against the system: let me address them.

1) "You say this lets me self-manage but it seems more like self-micromanagement to me!"

Micro-management does not mean to manage something in excruciating detail; it means a manager is telling someone else how to do their job. You should be managing in excruciating detail; you should not be telling someone else how to do their job. The scheduling system puts the responsibility for managing the schedule where it belongs: in the hands of the person who knows the most about the problem.

2) "The time I spend scheduling I'm not actually working!"

This isn't really an argument against this system but an argument against scheduling in general. And it's not completely without validity! Scheduling is only useful up to a point, something I talk about here. But for the most part, scheduling is going to be a fact of life, particularly in the production phase of your project, so you might as well use the best system available.

3) "I can't make a decent estimate on how long something is going to take until I've worked on it some."

Scheduling takes time. We admit this. That's why we have a field on the schedule for the act of scheduling itself. If the way you want to schedule is to start working on a task for a little while, until you have enough of a handle on it to make an estimate, that is totally fine. In general, I've found that programmers are surprised at how accurate they turn out to be at the end of the project. In my experience, once estimates are averaged out over a long period of time, everyone comes in between 90% and 150% of their original estimates.

4) "How can I possibly know with that degree of precision how long my tasks are going to take?"

Precision isn't important; sometimes you're over, sometimes you're under; it all comes out in the wash.

5) "How do I know when I'm supposed to work overtime?"

When your boss tells you "have this done by Friday" and it's Thursday and you're not done you know you need to stay late. When your boss is some kind of Mr. Softie who only expects you to deliver half of your tasks early it's not so clear. I believe that some overtime is important; that no matter how good a game you can make in a forty hour work week, you can make a better one in fifty, and marginally better still in sixty.

We work overtime when there's an unavoidable external deliverable due and we're not sure the game's going to be good enough by then. So we're crunching right now (50-60 hour weeks) for E3, because we're not Sure.

Another reason to crunch is when our bug find rate is higher than our bug fix rate; during this period of time, we're losing ground, and the only way to make it up is with good old overtime.

6) "It doesn't handle dependencies!"

This is the big one, and we've definitely been bitten by it: a version is due, and it's supposed to have feature X, and there's plenty of time for each person working on feature X to get the subtasks done, but the subtasks have to be done in order. Personally, *I* don't care: I'm happy with: when person A gets to their part of feature X, and they discover they're dependent on Person B, we make feature X the highest priority for Person B, and let person A move on to feature Y. Feature X doesn't make it into the rev, and we live with it. It's my belief that, over the cycle of the entire project, the effects of these dependency chains disappear, because these dependency chains are under a month or so: mission requires character which requires animations which require model, for example. As long as we prioritize these things correctly, and push them through the factory, they'll get done before alpha. Of course, the people who evaluate your milestone deliverables may not be as casual about it as I am.