Sunday, July 09, 2006

Workin' for the Weekday

I don't know if this is getting old, getting tired, or getting priorities, but I am no longer enjoying working on specs on the weekends.

Actually, I think it's just that I'm working on a spec that isn't super-fun. It's not discovering something new about a design, or delving into the details of an interesting problem; it's just reporting on decisions we've made.

One of the aspects of this job with which I haven't fully made my peace is how emotional state affects my productivity. There are design tasks that I can't wait to finish writing, and others that I can't wait long enough before I start writing them. Sometimes I'm just waiting for the first idea that lets others start to fall into place. Sometimes I'm just resentful that I've set myself up for weekend work (usually late on Sunday night), when I could have knuckled down sooner and been done days ago.

Sometimes, I think it's a healthy part of the process. If I kind of sneak up on the work sideways, it ends up flowing out of me easily when I finally decide to do it. The first draft of the venue effects doc I discussed earlier was one of those times.

This time, I'm just dragging my heels, and haven't figured out why.

Thursday, July 06, 2006

Puzzles and Pieces: The Review

So, I turned in the venue effects spec I made, and it went over well. I sat down with the project's creative director, and we discussed areas where we might simplify it, and noted some bits that could be added, or that I'd just missed outright. A few minutes of edits and the spec was ready for a forthcoming meeting where a larger group gets to kibitz on it. That will likely result in more changes.

This is pretty much par for the course; when writing a design spec like this, I'm not expecting to nail everything down perfectly. The practical goal for the first draft of a spec is to produce a "straw man" version of the design, so that other team members can review it and suggest changes.

This suits me fine. With a good team, you'll get better ideas from open collaboration than if you throw specs "over the wall" to be implemented as written. (Though it does boost my ego whenever one of "my" ideas survives all the way through implementation.)

Here's one way to think of it: only part of the goal of writing a design document is to answer questions. The other part is to define the questions more clearly, so that others can help find even better answers.

It requires a certain lack of ego -- or "aggressive humility," as I've called it before -- but seems to result in better designs. And it doesn't just apply to working as a designer working under a creative lead. Even if I was leading a project, I'd still be listening closely to my team for ideas that can improve the concepts I originally brought to the table.

Oh craps.

Someone's reading this. Or at least looked at part of this.

Um. Hi.

Tuesday, July 04, 2006

Puzzles and Pieces: Done!

Happily, that didn't take so long. The trickiest part was in deciding what WASN'T needed in the big table. In this case, I built a table centered around what changes based on player performance, and only made notes in specific entries where something was more complicated. For example, in the cells showing how lighting changes for each level of player performance, I noted that it also varies with the verse/chorus structure of a song. This made more sense than adding more columns for the table for "verse/chorus/solo," since most effects aren't affected by song structure.

Once I took that approach, the table sorted itself out fairly quickly; then I decided to color-code it to illustrate patterns in the table that would take too long to explain in text. Colors also make the spec more fun to read, when they're actually informative.

(It's critical when writing specs to find ways to help the reader make it through pages of documentation without their eyes glazing over from boredom. Bullet-points, color-coding, tasteful use of boldface and italics, and lots of whitespace are your friends here.)

Puzzles and Pieces: Game Design Inaction

There are certain types of design tasks that I find really difficult to begin. I usually leap on any other opportunity, work-related or otherwise, to fill the time while I alternately procrastinate and attempt to identify which edge of the problem to address first. This usually ends up dragging out the work into the weekend, or in this case, a holiday. Whee.

In many cases, I usually get unblocked by talking to someone about the problem; during the conversation, I get distracted from the anxieties that are clouding the issue, and the pieces start falling into place by themselves.

One of the benefits I hope for from this blog is that I can use it to have these conversations by myself, and in doing so, find my way through this period of worklessness quickly and without all that dreaded social interaction. I hope this also proves to be an entertaining way to present some of the work I do as a designer.

A little background first. I'm working right now at Harmonix Music Systems, the developers of Guitar Hero and other music games before them. They're an incredibly smart, extremely creative company working on a number of tightly focused projects, and it is definitely a boost to my fluttering ego that they consider me worthy of joining them on a pair of unannounced projects. (And as the projects are unannounced, I'm going to have to be a little vague on specifics.)

The task before me lies on the border between design and art, as do many design specs (short for specifications). For the sake of not getting fired I'll describe the challenge in terms of a game you hopefully already know about: Guitar Hero.

Guitar Hero has a number of venues – stages where your band performs. Each venue uses unique art, animations and sound to create an exciting environment; but in addition to looking cool, those sound and art assets fulfill a design role by reflecting the player's performance. When you do well, the audience gets larger and starts cheering; large stage props might open and animate (like a nuclear reactor that deploys a large mushroom cloud); lighting might become more dramatic, and band members might pose more dramatically. In addition, some assets might be used to change the mood of a stage between the verse and chorus of a song. Others might be used to make the venue look different for different songs.

The task I have right now to list out all the elements of a venue like this, and assign them to all these different "triggers." We already have a list of various assets we might use, and various triggers we might assign them to; the goal here is to turn all these half-baked ideas into a structure that we can use to generate schedules of specific art and scripting tasks.

There's a metaphor I like to use when describing game design: it's like trying to put together a puzzle when you're not sure what the pieces are. When you're done, everything should feel like it all fits together, with no missing or extra pieces lying around; but when you start out, you have a bunch of random stuff that may or may not apply to the task at hand.

Often, there are interconnected issues that twist around each other and make it hard to make decisions. For example:

  • Maybe the most dramatic way to reflect performance is to animate a huge piece of the stage – say, by causing a giant balloon animal to rise out of a hidden container and float above the audience, with searchlights shooting red beams out of his eyes.
  • But these are also the most expensive assets, so for each one of these big-ticket items you do, there might be ten cheaper assets (like, small pyro explosions or a single animating spotlight) you could get done in its place.
  • Now, maybe five of those cheap assets, replicated and scattered around the stage, could have as almost as much impact as the one big item.
  • So, how do you split your time between big and small items?
  • Or, if you don't have time or budget (largely the same thing) to do even one big item, which small items should you choose to create the most impact?

On the project I'm working on, we've sorted out the big items, but need to generate lists of the smaller items, like patterns for the stage lights, or particle effects such as "flame-jets".

These can fulfill various functions:

  • Items that reflect the player's when the player is doing well, poorly
  • Items that reflect different sections of a song (e.g. verse vs. chorus)
  • Items that are deployed to punctuate a specific instant in a song
  • Items that make each song performed on a given venue look different from each other
  • Items to save for the start or end of a song

And these assets come in all different flavors:

  • Sound effects for the audience
  • Sound effects for the interface
  • Triggered Visual effects like pyro, animating banners
  • Cycling Visual effects like stage lighting
  • Rules for making audience members appear, disappear, or change animations
  • Visual effects applied to the entire screen (like motion blur)
  • Visual effects applied to characters on stage (like special lighting, or custom animations)
  • Visual effects applied to the game's interface (instead of the venue itself)
  • Rules for choosing specific cameras or camera movement
  • Rules to deploy specific character animations

-- and probably a bunch more I'm forgetting. (Remember, I'm procrastinating here, not working.)

It's fairly easy to assign broad categories of assets to specific functions (e.g. crowd density reflects performance), and lay them out in a big matrix (i.e. an Excel spreadsheet), but there some bits are trickier. For example, if you are going to get a big bunch of animations for each character on stage, maybe you assign some animations to performance, and some to specific moments in a song? And maybe some of each of those animations are restricted to specific songs as well, so "bad performance-reflecting animation #1" only appears during songs 2 and 4? And when you start subdividing assets like this, how do you communicate that within the table?

All of these are solvable problems, and no one of them is particularly difficult, but taken together, they can get intimidating. Add in the fact that some of these assets haven’t been budgeted yet, so that it's not clear how many if them are reasonable to expect, and it gets trickier still.

So you rattle all the bits together and see which ones are easier to lock in, then once those corners of the carpet is nailed down, you start looking for another batch of decisions that are easier to make now that you've answered some questions. And you keep going through that loop until everything's answered – or until you realize that one of your earlier decisions was flawed, and you pull it apart and start again.

It's exciting to get to the end of one of these specs; even more if the result is legible to anyone other than yourself. We'll see how long it takes to sort this one out.

Boris the Freakasaurus

Update: Fleas are gone, and (after what appears to have been, in my wife's words, a "hairball party" last night) Boris and her sisters are all feeling fine.

Here's the little psychopathette:

Monday, July 03, 2006

Parasiticide

We (my wife and I) have three cats, aged 12 years, 2 years, and 4 months respectively. The youngest, Boris, just went for his (now confirmed to be her) first checkup.

While there, he --

(tangent: I just knew that, after weeks of calling him a her by mistake, once we found out that he was a she, that I'd finally start calling her a him and not be able to stop. Grr.)

-- aaaaaaaaanyway, while there, she got two vaccinations, and a de-worming pill.

(tangent #2: If your cat starts showing signs of having a tapeworm, do not do an image search for "tapeworm" on Google anywhere near your lunch time. And under no circumstances should you click on one of the resulting tapeworm images to see all the other, not-at-all-cat-related tapeworm images that might pop up on said page. I have seen things that I sorely wish I could un-see.)

--- soooooooo, in addition to those medications, the vet gave me de-worming pills for the other cats (what with the sniffing and the licking and the glaven!), and a round of once-a-month flea medication for everyone. This stuff is hellishly powerful, and within a couple hours the fleas start crawling off, usually by the least medicated areas of the body, which apparently are the eyeholes.

So in addition to having a fever thanks to the vaccination and medication -- apparently rare but not unexpected, and now under control thanks to a return visit to the vet -- hundreds or thousands of fleas are crawling across Boris' face to get off before or as they die. Which is making her a drooling, even-more-spastic-than-normal mess.

It sucks to see her suffering, but at least the little bastards are dying and she'll be rid of them soon. (And after much vacuuming and laundering, the same will hopefully be true for the house.) As long as she can keep her food down tonight, she should be back to normal soon enough.

Reason, Need and Hope

Why am I blogging? As usual, I find myself doing something before having a well-considered motivation for doing so, so let me take a moment and think about this.

The inspiration for this came from seeing Wil Wheaton speak -- which I suppose earns me some geek points right there. Not only is his writing and blogging entertaining in and of himself, and not only he is admirable as a decent, sincere and passionate person; but I was inspired by something he said about splitting his efforts between acting and writing.

He quoted another actor who said that acting, writing, painting, music -- all creative efforts -- come from the same well; and that counter-intuitively, the well can run dry if you don't keep drawing from it.

I'd briefly considered blogging in the past, but lacked what felt like a solid reason for doing so; and I've searched (if infrequently and half-heartedly) for an outlet for my creativity. Wil's statement made me realize that I could use the blog to jump start my creativity in other areas, and for that I'm grateful.

That's why I've started this... but that's a separate matter from what I intend to do with it.

I think the reason I'm doing this is because I have a cool job at a very cool place; I design computer and video games. I've been doing it for years and I think the process is challenging, exciting, and probably something a lot of people would enjoy reading about.

At a more fundamental level, I think I need to work through aspects of my job and my life in writing, to sort through what I do and why I do it, and to try and find a healthier outlook on my life. I'm really, really lucky to have the life I do, and I'd like to appreciate it, and the world around me, in as healthy and balanced a manner as I can. Hopefully by sharing things and working through them here, I can experience and understand them more fully.

Also, by writing here, I hope to replenish the well of creativity from which I've only occasionally drawn. I've spent my life dabbling with a number of creative pursuits, only to shy away from each of them in turn. It's only a slight exaggeration to say that my life has contracted to intervals of work, food and sleep, and that when you feel like making time to play video games is an accomplishment, your life probably needs some rehabilitation. I've been told that I have potential as a writer, and I like some of what I've written, so this is a good place to start.

First!

I never understood the desire to be the first to post a comment on a web page.

I wish "I never understood" was my way of saying "I'm not being judgmental, I'm just curious about a behavior that suggests strange impulses at work." But it's more my way of saying "I am judgmental about this, because it seems like a petty attempt to assert dominance over a crowd, or to prove one's self, but I'm uncomfortable with that critical aspect of myself, so I'll express my disdain as indirectly as possible."

Partway through writing that last paragraph, I realized another way to interpret the need to post first: it might be the same impulse that has kids run impromptu races across a playground, just for the fun of it. It could be a form of play.

Hunh. It frustrates me that it takes so long for my brain to come up with a positive spin on a behavior like that. (On the other hand, reading Internet comments is going to make that optimism hard to come by.)

I cast a lot of silent judgments on people -- in general and towards individuals -- and what they do. In so many cases, my first, inner view of others is usually negative, while the opinions I express to all but my closest friends are usually conciliatory, or downright defensive on behalf of those strangers/friends/vague-conceptions-of-imagined-people.

I think it's good to have opinions -- if anything, I wish I could find and express more of them. But the split between "what I feel inside" and "what I end up saying" is substantial.

More to the point -- and I'm fishing around in here looking for a point -- this illustrates how Who I Am Inside gets throttled by Who I Wish I Was, and the tension between the two ends up creating Who I Appear To Be.

Well. This isn't how I expected to start out my blog. I intended to use this place to write about my life and work, and all the bits of them in my present and past, and let bits of myself sneak out through that process. But apparently I needed to throw myself on the couch and start baring my dark and stinky innards before you get to know me. (Whoever "you" are.) I knew doing this would be therapeutic, in part, but maybe I should try to be entertaining as well?

In any case, this is my first post of what (at 12:44 in the a.m.) seems like the place where I'd be putting my writing for a long time. Maybe I'll be back tomorrow.

In the meantime: First!