Home

shunji
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.
You're looking at the latest 20 entries.
Missed some entries? Then simply jump back 20 entries

Subject:Immersion is a stupid word.
Time:07:03 pm
Every time I hear another game developer talk about "immersion" I want to vomit. Many horrible game decisions have been made in the name of "immersion." Things like un-interruptive cutscenes, slow and unresponsive UI, annoying player character chatter, Game Over screens, etc.

I think if you really want immersion, you should ask the players, "What made the game inconsistent for you?" People are extremely good at using the same control mechanism to experience things; we use keyboards and typing to chat over the internet much in the same we we try to converse in real life. We are masters of experience through abstraction. No one argues that the written word is an outmoded form of expression or experience communication, yet there is a certain level of arrogance amongst developers that we need "innovation" in control schemes to make more immersive games. I would rather that games just be more fun to play with existing controllers.

No point, just ire.
comments: 11 comments or Leave a comment Add to Memories Tell a Friend

Subject:"It's a ceremony!" "It's psychotic!"
Time:02:10 pm
One potentially fun aspect of GDC is how easy it can be to get into arguments between those who know what they are talking about and those who think they know what they're talking about. (That's a bit of an oversimplification; it's actually arguing between different levels of insight.) Actually, you can do that on the Internet anyway. It's just more fun in person.

I didn't get into any arguments, but I did come close after my presentation. It was something to do with why we're using C++ and our tag system vs. C# or something like that. The argument against the Bungie Way (TM) had to do with automatic language support for object persistence vs. rolling your own. I remarked that if I had to do it on my own, I'd probably use C#. But that isn't strictly true.

The main impetus for rolling your own over using an external package is flexibility; if there is software that can not only meet your current needs but your future needs as well (assuming you have the budget), it makes more sense to buy it than roll your own. If, however, nothing exists on the market that meets your future (most likely unknown) needs, then it behooves you to roll your own.

As far as I know, there is no commercial or MS friendly open source package out there that would provide the same level of functionality or flexibility that our tag system give us. And because what ultimately drives our games is content, i.e. stuff that we have to store on disk, a solution that does not scale to our needs is insufficient and cannot be used. In other words, it makes sense for us to roll our own.

Another notable aspect of GDC I discovered since I hung out with Marty and Jay a lot more was how much more fun the Audio track is vs. the rest of the conference. Maybe it's because Marty and Jay's marketing of me as an audio programming god has finally gotten to my head, or because the field of gaming audio is so much smaller in terms of people vs. the rest of the industry, but there is a very big sense of camraderie across all levels of gaming audio, from the one-man sound and music shops to the celebrities like Nobuo Uematsu and Marty. There is a distinct lack of one-upsmanship or arrogance that pervades the programming and design side of GDC. Then again, maybe people just don't do that as much around the Bungie sound guys.
comments: 10 comments or Leave a comment Add to Memories Tell a Friend

Subject:Two week update
Time:01:12 pm
By now, I'm sure you have all heard about the new content we (Bungie) are releasing as both DLC on XBL and as a separate DVD. I'm not going to step much into the debate other than to point out the main reason for the DVD: get the update and new content into the hands of the other 80% or so of people who have bought Halo 2 without a subscription to Xbox Live. I think attempting to reach out to the other 5 million or so Halo 2 players isn't such a bad motivation for an add-on DVD.

Obviously I can't get into specifics, but be sure to watch bungie.net for updates on future content.

Anyway, enough on that.

Went to GDC two weeks ago and had the most fun I never expected to have. I had the opportunity to meet the sound designer for MGS3 and the audio guy (I was a little confused as to his official title, but it sounded like he did the sound programming and some content work as well) for RE4 and DMC3, all thanks to Dolby. I also got a cool Dolby bag.

(I also learned that if the last time you went on an all night bender was in college, you probably shouldn't attempt that again without a little bit of warming up 5 years later.)

Apparently my talk went well; I happened to be so incredibly nervous that I ran through the slides in 30 minutes, leaving the rest of the hour for Q/A. Fortunately, there were enough questions from the audience to fill the rest of the time. The slides will eventually be available to the public; as to when, I don't really know.

(I also went to Spain. But I'll talk about that at a later time.)

Not much mind-wrangling stuff. Maybe later.
comments: 3 comments or Leave a comment Add to Memories Tell a Friend

Subject:Because... you listen
Time:02:09 am
Thoughts that I've had over the past three months:

1. Is there a mechanism that can replace raw ability and talent with education?

2. If a poorly designed game is fun, does it make sense to analyze the game design?

3. Is the intent of methodology to replace or supplement experience?

These are all basically the same question: is there a fundamental difference between what can be taught and what must be learned? I hope there isn't, but experience has taught me otherwise.

When Resident Evil 4 came out, I went out a bought a copy and didn't stop playing for about 2 weeks. It's a tremendously fun game, if you get past the control scheme. Now, one would think that I would immediately explode at the slightly revised but still the same tank control scheme; however, there are two factors that make this game not entirely disruptive:

1. The camera moves as you rotate around; this gives you a much better sense of orientation and location compared to having a fixed camera direction and watching your character rotate on screen. That's probably what annoyed me the most with the traditional Resident Evil camera system.

2. Blowing the crap out of zombies is fun. And the guns kick ass.

I hope they sell well; I hope that third-person games adopt a similar camera style. It works extremely well.

When good games come out, there is always an article that attempts to capture the development process for that game: with Metal Gear Solid 2 we heard all about the programmers writing down every crazy idea they had, and Kojima looking at all of them every week to add something new to the game. We heard about Valve's Cabal process for all their games. You probably saw the shotgun/machete approach we took for Halo 2. And Oddworld has their own unique process that basically amounts to making sure no one developer or artist can break their game.

My point is that all these studies of process and development culture don't really tell you anything about anything except how the game was made. From what I can tell, 90% of process is accidental. And the 10% that's intentional doesn't really help or hinder.

I think that some of that 90% is defined by the overall quality of the people you work with. I've had the fortune of working with a large group of highly capable and intelligent people; I don't think you can replace that quantitiy with something else. I think that if you do not acknowledge the importance of individual people, you are one step closer to not shipping a game.

What does this have to do with anything? I'm not sure. I don't even think the first part of this post has anything to do with the second part.

Ah well. Maybe my next post will help me codify the swarm of thoughts and reflections I've had for the past few months of not updaing this blog.
comments: 6 comments or Leave a comment Add to Memories Tell a Friend

Time:11:11 pm
Current Mood:[mood icon] accomplished
Two interesting things happened at work today:

1. Everyone was surprised when I answered a phone and politely told the person he had the wrong number.
2. I get to give a talk at GDC next year.

Hmm... well, they were interesting to me.
comments: 12 comments or Leave a comment Add to Memories Tell a Friend

Subject:F-cking rank whores
Time:06:02 pm
If you're going to play in the Head to Head hopper, don't be a dick and try to ruin the game if you're losing. That measn you, PIDB17. Unless you just happened to have a shitty connection. Which you didn't.

Besides, one loss isn't going to have a tremendous effect on your rank.

F-cking rank whores.
comments: 27 comments or Leave a comment Add to Memories Tell a Friend

Subject:And then, "Fun With Dirt!"
Time:08:04 pm
I've always had trouble figuring out how to respond to detractors of Halo (and now Halo 2). On the one hand, it's sold a crapload of copies. On the other hand, it's hard to find a post on any forum about Halo that does not have its share of anti-fans.

Anti-halo folk tend to have a PC gaming background, usually hardcore. Debating the value of Halo is akin to arguing about the validity of Wicca to an evangelical Christian. There's just no common frame of reference to have a meaningful discussion.

One thing Halo does better than most PC games is optimize the user experience for the average player: the kind of player that has a limited in-game lifetime (i.e., they die every so often). Hey, that's just like me!

Firstly, the checkpoint system encourages all levels of skill to keep playing. It takes only 4-6 seconds to restore the last checkpoint;.5-1.5 if you invoke the pause screen and restore explicitly. That means you do not have to switch mental modes in order to continue playing after dying; it just happens. Even if you die every 5 seconds, you're still always back in action right away. (Personally, I'd much rather play a game than manage a game; that's just me.)

Secondly, we made sure to optimize the single player experience for a straight playthrough. If you play Halo 2 all the way through, you should never see a long interruptive loading screen. (You will see the Loading... done text, but that's unavoidable for the size and complexity of levels.) Even Halo 1 only had 9 significant loading screens, and those were at appropriate points in the game (i.e., at the end of a level), not in the midst of gameplay. That directly translates into a minimal amount of dead time waiting for the game to start, and a maximal amount of time available to play the game. If you happen to die a lot, who cares? You'll never have to wait for the game to reload your checkpoint; you can get right back into the game.

The immediacy of gameplay is one aspect many just don't understand. Or rather, many that disagree with the success of Halo don't understand. (In my opinion.) My theory is the combination of PC gamer and hardcore gamer results in a type of gamer that doesn't experience what I consider to be the least polished areas of most games: player death. And as such, they don't experience the excruciating experience of restarting gameplay.

Then again, maybe it's all the marketing hype. No, probably not. :)
comments: 33 comments or Leave a comment Add to Memories Tell a Friend

Subject:I didn't know you cared...
Time:11:34 pm
Current Mood:[mood icon] amused
http://bungie.net/Forums/posts.aspx?postID=816618

I didn't realize my desk of entropy would evoke such a profound reaction.
comments: 17 comments or Leave a comment Add to Memories Tell a Friend

Subject:It's not the fall that kills you...
Time:12:34 am
Current Mood:[mood icon] exanimate
Holy crap, I haven't updated in more than two months? What the hell have I been doing?

Oh, right. That.

It's really interesting to go from three months of crunch, seven days a week, 12-16 hours a day, back to a "normal" schedule of weekday only, 9-5 workdays. And by interesting, I mean relieving. I do have problems going to sleep before midnight, but a month away from work should fix that.

I have to admit, I've been feeling pretty lazy as of Monday, but that's just because I haven't been doing anything. Except occasionally freaking out when there's a random bug or two that might have something to do with the sound code. (That turned out to be a headphone problem.)

I want to apologize for the lack of recent updates. The content on this blog wanes with the waxing of challenging work; that probably means I'll be posting more often in the near future.

And now, a random bit of trivia to end with:

Legendary is hard. Really really really hard. Adamantium hard.
comments: 12 comments or Leave a comment Add to Memories Tell a Friend

Subject:Halo 2: Bigger, Badder, Uncut.
Time:10:19 am
Current Mood:[mood icon] excited
http://www.xbox.com/en-US/press/0705/halo2.htm?level1=enushome&level2=newsticker&level3=xboxsolution

One thing they didn't mention was the 5 days and 40 GB of raw data I had to render out at least three separate times. Plus the tools I had to write to handle movies bigger than 2 GB.

Random trivia for the hardcore: I rendered the movies at 1280x960, 30 fps. This is the best you will ever see Halo in motion.

GO TO A LOEWS THEATRE NOW! SEE I, ROBOT!
comments: 11 comments or Leave a comment Add to Memories Tell a Friend

Subject:On your marks...
Time:11:04 am
Current Mood:[mood icon] busy
And so the month long work marathon begins. My wife is out of town until August, so that means I get to stay at work 16 hours a day. Hooray :P
comments: 8 comments or Leave a comment Add to Memories Tell a Friend

Subject:H2 Whoa....
Time:06:00 pm
Current Mood:[mood icon] crazy
Water is your friend.

If you happen to feel so weary that a bucket of coffee doesn't help, try drinking a bucket of water. You're probably dehydrated.

An easier way to tell is to check the color of your urine when you pee. If it's not clear, drink more water.

This message brought to you from your cranky neighborhood Bungie programmer.
comments: 7 comments or Leave a comment Add to Memories Tell a Friend

Subject:Size DOES matter
Time:04:37 pm
Current Mood:[mood icon] crazy
Especially when trying to shove a six foot ____ into a three inch ____.

The blanks are left as an exercise for the reader.
comments: 1 comment or Leave a comment Add to Memories Tell a Friend

Subject:Bloody eyes has officially returned!
Time:05:11 pm
Current Mood:[mood icon] crazy
Whee! No sleep and no fun make Matthew something something.

I'm sure I'll remember what a good night sleep feels like one of these days.
comments: 2 comments or Leave a comment Add to Memories Tell a Friend

Subject:Grrr....
Time:11:02 am
Current Mood:[mood icon] angry
Someone took or misplaced my coffee maker.

MAT SMASH!!!!!
comments: 3 comments or Leave a comment Add to Memories Tell a Friend

Subject:Testing the land-speed record of information desemination of the Internet
Time:04:20 pm
And... bam.

MSN
comments: 8 comments or Leave a comment Add to Memories Tell a Friend

Subject:More Halo2-ness
Time:11:11 pm
Current Mood:[mood icon] amused
Go shakycam!

Linky
comments: 3 comments or Leave a comment Add to Memories Tell a Friend

Subject:Random Halo2-ness from slashdot
Time:10:59 pm
I should stop reading this site so often, but I found this (and the first response) funny.

It's like reading bash.org sometimes :)
comments: Leave a comment Add to Memories Tell a Friend

Subject:A little bit of history repeating
Time:09:59 pm
Current Mood:[mood icon] nostalgic
So I think it's now quite obvious why I haven't updated in a month or so.

Linky

Since I'd probably get severely disciplined by the Bungie Webmaster if I scooped bungie.net, I thought I might reminisce a little bit today. Gearbox finally released the HEK (Halo Editing Kit for my parents), so now you all get to see what I got hired by Bungie to do three years ago. I've read some of the comments people have had over the quality and breadth of the tools in the HEK, and I thought I'd answer a few of them.

Firstly, if you have issues with the learnability of Sapien, you should understand that it was developed with the intent of always having a programmer (namely, me) on call to handle support issues. So, most of what is in Sapien is not documented anywhere. It also does not have any loading progress visualization, so if you see Sapien load up and then just sit there, it's (probably) not hung, it's just loading.

Secondly, if you're wondering why Sapien doesn't support more mapmaking features that you'd find in other game modding packages, namely, map creation, it's because the primary goal of Sapien was to be what 3dsmax and Maya are to artists for designers. That, and it's much more cost effective to buy an off the shelf 3d art package and write an exporter than to create a 3d modelling tool from scratch. It's unfortunate that currently you need to own MAX 4.x-5.x, but as I understand that, Gearbox is working on a solution to expand the range of apps that will support exporting Halo models.

As for the overall quality of Sapien, I'm surprised that it is still working almost three years after we shipped Halo 1. Ah well; I'm looking forward to seeing what the Halo mod community creates with the HEK. I might even post one or two tips and tricks to using Sapien in the future.
comments: 5 comments or Leave a comment Add to Memories Tell a Friend

Subject:The Joy of Me
Time:03:35 pm
Current Mood:[mood icon] amused
One of the great things about being me is that every once in a while I get to say "John Carmack is wrong."

[I actually said something more colorful at work.]

In the programming GDC keynote this year, Carmack mentioned that (game) audio could be solved today given total dedication of processing power, and that in two years it will be solved altogether. While technically true (we can simulate a lot with DSP), such a statement ignores the growing trend of data as the limiting factor in games. And while graphics may be the sexiest thing in gaming right now, audio is, and will continue to be the biggest part. At least in good games.

Here a little scary fact about game audio. Let's assume that a game will play up to 256 mono-channel sounds simultaneously. Given the current standard of games today, let's also assume the sample rate is 44.1kHz, slightly above the Nyquist limit for human hearing, and the sample size is 16 bits (2 bytes).

One second of audio using 256 unique sounds will require (channel count) x (sample rate) x (sample size) = 256*44100*2 bytes = 22.5 megabytes per second.

Of course, the worst case doesn't really apply to the general case, so lets say an average gameplay second will have 40 unique sounds playing at once. Now the bandwidth drops from 22.5 MB/s to 3.5 MB/s. Current hardware supported compression schemes appropriate for games can drop that to about 1 MB/s.

Seems pretty reasonable. Unfortunately, if we want to play more than 40 seconds worth of sound, we're going to need a bit more data. A lot more data, in fact. Halo had a total of 2.5 GB of data, uncompressed, with a mixture of 22kHz and 44kHz of data. Compressed, that's about 700 MB total, which works out to about 150-200 MB per level.

200 MB doesn't sound so bad. But since no one really budgets that well for sound memory, we'll need to be able to stream that data in from disk. And unless we can perfectly predict what sounds will play when (which we can't, given a dynamicly satisfying environment), we'll need to have either a rather large sound memory cache or a really good random access disk transfer rate. Unfortunately, most storage devices optimize for sequential access, and no one ever wants to give memory to sound, so that kind of makes us SOL. I'm overstating the problem a bit, but the common way of solving this problem (reducing the amount of sound data) isn't that satisfying.

Even if the content/data problem is solved, a convincing sound environment has computational expenses that are an order of magnitude more complex than graphics. To do that, we need reverberation, or as I put it, the echo problem.

Reverberation describes the reaction of an acoustic environment to sound. A good example is how different it sounds when you sing in the bathroom versus when you sing in the car. A more complete explanation of sound propagation can be found here.

To determine the reverberation effects of a single sound we need to determine all the paths between a sound source and the listener. This includes the direct path plus all audible reflected paths from the sound to the listener. If you really want to be accurate, you'll need to do this separately for different frequency spectrums of the sound. (Lower frequencies can travel farther due to reflections than higher frequencies.) The equivalent problem in graphics is global illumination, which current games pre-calculate for static lighting in some fashion due to the sheer complexity of the problem. Neither of these can be determined in real-time even with the entirety of processing power available. Hardly something that is "basically solved."

[That's not to say that we don't have a good enough approximation. The current generation of sound hardware conforms to the I3DL2 spec, so we can have at least some modicum of auditory goodness without drastically impacting performance.]

This is why I like being the sound programmer :)
comments: 30 comments or Leave a comment Add to Memories Tell a Friend

Advertisement

shunji
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.
You're looking at the latest 20 entries.
Missed some entries? Then simply jump back 20 entries