Thursday, October 25, 2007

PS3 misconceptions and spin

I read various game forums from time to time, and often see gamers complaining about 'lazy ports' to the ps3. They often mention how the ps3 is the most powerful game console and blame developers working on the console for doing a bad job. Sony has all of these people duped by impressive marketing spin, and I'm often amazed at how potent this type of rhetoric proves to be. For those unaware, I'm going to break it down simply and explain exactly why ports to the ps3 will never be as good as their 360 counter parts, and why most ps3 exclusives will likely continue to suck. First, lets debunk a few common misconceptions:

"The PS3 is more graphically advanced than the 360"

Fill rate is one of the primary ways to measure graphics performance - in essence, it's a number describing how many pixel operations you can perform. The fill rate on the PS3 is significantly slower than on the 360, meaning that games either have to run at lower resolution or use simpler shader effects to achieve the same performance. Additionally, the shader processing on the ps3 is significantly slower than on the 360, which means that a normal map takes more fill rate to draw on the ps3 than it does on the 360. And I'm not talking about small differences here, we're talking roughly half the pixel pushing power.

"Ok, fine, but the cell is like, super powerful"

In theory, sure, but in reality it doesn't work out that way. Game code simply doesn't split well across multiple processors. You can probably find a way to split a few things off fairly easily - put the audio on one processor, animation on another; but generally the breakup is always going to leave several of the SPUs idle or underutilized. On top of that, it's usually not CPU speed that restricts the visuals in games - it's fill rate.

"Uh, Blue Ray!"

Great for watching movies, but not so great for games. Getting data off the blue ray drive takes about twice as long as it does to get the same data off the 360's DVD drive. That translates into longer load times, or god forbid if your streaming from disk, tighter constraints on the amount of data you can stream.

"But it's got a lot more space than DVD"

Ok, you got me there - it does have a lot more space, and there is the potential to use that to do something cool, but thats unlikely to be realized in any useful way. There are tons of compression techniques available for data and I'd personally rather be able to get my data faster than have more of it. Most developers who use the entire Blue Ray drive are doing it to work around other problems with the ps3 such as it's slow loading - for instance, in Resistance: Fall of Man, every art asset is stored on disk once for every level that uses it. So rather than storing one copy of a texture, you're storing it 12 times. If you took that entire game and removed all the duplicate data, it would likely fit on a DVD without any problem. They do this to speed up load times, which, as I pointed out before, are painfully slow on the ps3. So in this case, the extra space is completely wasted.

"Once developers figure out the PS3 they'll maximize the hardware and it will be amazing"

I suspect a small number of PS3 only developers will optimize the hardware to do something cool. However, this will be an exception to the rule, and will likely involved game designs that are specifically designed for the hardware and funded by Sony. If those will prove to be fun or not is another question.

Most of the performance centric research into the PS3 has been around making it easier for developers to get the same level of performance you get out of the 360 naturally. For instance, some developers are using those extra SPU's on the cell to prepare data for the rendering pipeline. Basically, they take the data they would normally send to the graphics chip, send it to an SPU which optimizes it in some manner, then send it to the graphics chip. So, once again we see an 'advantage' in hardware being used to make up for a disadvantage in another area - a common theme with the ps3. And this introduces an extra frame of latency into the equation, making controller response slower.

So, the common theme is this; developers must spend significantly more time and resources getting the PS3 to do what the 360 can already do easily and with a lot less code. Lets look at how this translates into practical realities for a moment:

Why the PS3 version often pails in comparison to the 360 version, and why exclusives often suck:

As outlined above, getting equivalent performance out of the PS3 requires a lot of work unique to the platform, and in many cases, even with all these tricks, you still won't see equivalent performance. Thus, many ps3 games have simplified shaders and run at lower native resolutions than the 360 versions. On top of this, there is shrinking incentive to do this work; the PS3 isn't selling.

The code needed to make the PS3 work is most likely only useful to you on the PS3, as the types of tricks you need to do to make the thing perform are very unique to the platform and unlikely to be useful on any other architecture now or in the future. These issues all stem from unbalanced hardware design, and any future hardware that is this unbalanced will likely be unbalanced in a completely unique way.

Finally, there's the problem of resources. Game Development is, at it's heart, a resource management challenge. Given finite resources, do I have these five engineers work on optimizing the PS3 version to look better, or do I use them to make the game play better and fix bugs? Do I change my design to fit with what the PS3 hardware does well, or simply run the game at a slightly lower resolution on the PS3 to make up for it? Developers striving to push the PS3 hardware have often sacrificed their game in the process.

This post might come across as a lot of Sony bashing, but it's just the reality from the trenches. Sony let their hardware be designed by a comity of business interests rather than a well thought out design that would serve the game development community. They are going to loose hard this round because of it, and I hope that in the next round they take lessons from this round and produce a more balanced and usable machine.

Wednesday, August 22, 2007

Off to the next stop..

Well, I might as well make it public, I’ll be leaving Harmonix in a few weeks to join up with Conduit Labs, a newly funded startup filled with long time coworkers of mine. I really loved working at Harmonix, and the games made there are truly amazing, but I just couldn’t pass up the opportunity any longer. Nabeel has been brow beating me into joining for almost a year now, so it’s not like I didn’t put up one hell of a fight. Anyway, I’ll have time to post a lot more on the blog once we finish up Rock Band. I’ll be doing my usual personal post mortem on the project like I did for Guitar Hero, so that should be some interesting reading.

Saturday, April 28, 2007

BruceWeiArt Guitar review

So this is out of the norm for my blog, but might be interesting and useful to the instrument lovers out there. I recently purchased a BruceWeiArt guitar off of ebay. I had never considered purchasing a guitar off of ebay simply because for me, each guitar is totally unique. I worked at PRS guitars for about 2 years, building some of the finest instruments made, and I can tell you that no two guitars, even made from the same tree’s, by the same people, will feel or sound alike. During my time there, I saw low end guitars that absolutely screamed as much as the $10,000 models.

This is why I’ve always looked for guitars in person – you have to play them all and suddenly you’ll find one that just clicks. But I like to browse, and over the years shopping has really gotten boring. Everything is chain stores, so you find the same things in every store – no matter where you are. The hunter gather in me needs more. So sometimes I browse the web looking for something unique.

Bruce Wei, from what I can gather, is a seller in Vietnam who auctions off tons of inlayed guitars and guitar parts. A lot of these guitars sell for very low prices, and are unique in both their form and artwork. I watched some amazing instruments sell for rock bottom prices, and couldn’t help but be interested in a few. I scoured the net, but found very few reviews or information on these guitars. I found a few people reselling them for thousands more than they paid for them, and a few theories on what’s happening in that side of the world. Pete, a co-worker of mine who has in-laws from Vietnam, also filled me in on some of the details.

Apparently, the government there sponsors schools for inlay artwork, among other things. Additionally, back in the 80’s, when Fender and Gibson were outsourcing to Japan for the first times, Japan was outsourcing work to Vietnam and Taiwan. Years later, we have a combination of under utilized guitar factories, government sponsored inlay artists, and an international market via eBay. BruceWeiArt is born – or at least, this is how I figure it went, as most of this information is as much theory as hear say.

Now, the scraps of information I was able to gather on these guitars indicated some common problems – bad fret jobs, finish issues, and in some cases, wood which wasn’t dried correctly and eventually cracks. But everyone seems to love the inlay work. After obsessively watching auctions of these guitars on ebay, I finally decided to take a risk and buy one. I’m a sucker for archtops, and when one surfaced I decided to go for it.

Shipping included, I spent about $500 on the guitar. A lot of these guitars go for a lot less, but this one was particularly nice, being an archtop and not just some strat clone. About 10 days later, it arrived. Upon inspecting the guitar, it was as I had expected from my research; some flaws in the finish and in bad need of a setup. The action was way too high; the nut wasn’t sanded down low enough, and the bridge, even when adjusted all the way down, was still way to high. The fret job was a little scratchy, making the strings stick when bending, but overall the neck was level and the frets were evenly finished. The finish flaws consisted of small pock marks or runs, probably caused from the high humidity environment present in Vietnam. There is also a slight bit of warping in the wood – though nothing to serious – that makes me wonder how the guitar will hold up over time. The inlays are pretty striking though, and really well done, as I’ve done that kind of work myself and it’s not easy.

My first step in making the guitar playable was to cut off all the strings and sand down the nut and bridge bones. This is actually very easy to do – pop off the bridge bone and nut, get a piece of 220 grit sandpaper, lay it on a flag surface, and rub the bottom of the nut or bridge bone back and forth. Keep testing it until it reaches your desired height. I managed to get the action into decent shape in about 20 minutes, though I would prefer to have the bridge low enough that I actually have to adjust it up instead of it being at its lowest point. After re-stringing it, it plays surprisingly well. Not as nice as my ES135 or anything, but pretty nice none the less.

The neck is fairly thick and of the D shape variety. I personally prefer something with a little less meat on it, but those familiar with the beefier of the Gibson necks will feel right at home. The bridge bone is un-grooved, which means the strings will occasionally pop over a bit when you pick too hard. I find this pretty annoying, so tomorrow I’m going to take a file to it and cut some notches into it so they’ll stay in place when I’m getting rowdy.

The sound, unamplified, it fairly even, though a bit mid-range heavy. The guitar has a mic in the bridge and some active electronics, with a 3 band eq, presence, and volume adjustments. When plugged in, it’s almost as if the low E string sounds distant, and lacks the kind of presence that the other strings have. The EQ helps, but that rich bass you get off a pair of humbuckers on a Gibson archtop is just not there. If I was going to play the guitar amplified, I seriously consider changing the bridge mic to something a bit better.

One other issue I’m going to have to remedy is the intonation. While the frets are fine, the feed for the bridge mic is cut directly below the bridge, and the bridge is slightly too far forward in it’s current position. I can’t just scoot it back without having the bridge put pressure on the mic wire. At the 12th fret, the intonation is only a few cents off, but I’m a real stickler for that kind of thing. It’s certainly better than a lot of guitars I’ve played, but I still want to fix it ;)

As for the rest of the hardware, it’s all decent enough. The tailpiece has a ugly etching of the statue of liberty for some reason. It wasn’t really apparent in the pictures, and it certainly isn’t up to the standards of the inlay work. The tuners seem to be of decent quality as well.

Overall, it’s a decent guitar for the money, and looks great on the wall. It’s not going to replace my high end instruments, but with a bit of work it’s certainly a nice enough guitar. When you consider the complexity of the inlay work, and the price that these things are selling for on ebay, it’s actually quite a good buy. The only thing I wonder is if it will fare better than my Martin did in the winter (a hairline crack formed this year due to low humidity. Yeah, yeah, I should have known better that to leave it out. Now I have to do an ugly splint job on it).


Labels:

Monday, April 02, 2007

Cats outa the bag..

And we're finally live with what I've been working on for the past year..

Rock Band

Sunday, February 11, 2007

Procedural Content

Danc recently blogged on Procedural Content, sparked by an article from Introversion on why ‘Content is Bad’. While I am a big fan of procedural techniques, I have to point out that I’ve seen them used incorrectly more times than not.

Procedural Techniques are hard to get correct – and the less human intervention required by the process, the harder they are to mold to a desired result. As such, I’ve come to look at them in a slightly different light than they are normally discussed:

Procedural technique is another name for tool


Photoshop provides us with a huge array of tools to work with. We have brushes, layers and selections. We don’t think of these as procedural content generation, but in fact, that’s exactly what they are. When we paint with a brush, we’re modifying many pixels at once using a procedure defined by the program code and a small piece of content; in this case, the data for the brush.

Through many operations, an artist can create a masterpiece that would be impossible to generate entirely using procedural techniques. This would be technically feasible to do one pixel at a time, but by providing a higher level of abstraction (brushes), we reduce the difficulty curve of reaching that level of mastery immensely.
As such, it’s important to think of your procedural technique as a way to augment your creative process, either by creating a useful and understandable abstraction in the way a brush does for an artist – or by replacing large sections of ‘busy work’ with a procedure that fills out that data.

If your artist is afraid, so should you be…

Programmers love procedural techniques – artists (or designers) generally fear them. If a procedural technique is integrated correctly into your design, an artist will not see it as a thing that replaces their work, but rather helps them achieve their goals faster. In essence, a good procedural system is viewed as a tool instead of a procedural system.

The reason for this is quite simple; a tool has an understandable need, use, result, and a process which can be directed to solve a problem. If you can’t identify all of these for your procedural system, should you be building it?

Don’t over-solve the problem

Often when I hear people talk about procedural techniques, it’s as a way to ‘generate infinite content’; as if that is going to make your game last forever. But people are incredibly adept at seeing past the algorithm and sensing the underlying possibility space, and tiring of its parameters. As such, there is no such thing as infinite content.

Procedural techniques, and tools in general, should be designed to allow their users to create the right amount of content. If a tool is hard to use, people will avoid it and you won’t have enough of that type of content. However, the converse can be just as bad. If a tool is too easy to use, you will see too much of the type of content it creates, and users will tire of its output quickly.

For instance, when we designed the landscape system for Asheron’s Call 1, we designed it to allow an artist to quickly create large areas of terrain, and populate them with monsters, scenery, and ambient sounds. As such, we ended up with a huge world filled with this data. However, our process for placing hand crafted content was not nearly as refined. So while there were huge areas of procedural content for users to explore, there was a lack of the artists touch in many areas.

Your content is usually not, actually, procedurally generated

Often people talk about the procedurally generated dungeons of Diablo as content; but in reality, they aren’t actually content from the perspective of the design. You don’t actually explore dungeons in Diablo – what you’re really exploring is the treasure system. And while the treasure system does employ some procedural techniques, the real rewards of that system were entirely hand crafted.

In fact, the true success of Diablo’s procedural systems is that they managed to acceptably scale out a small amount of custom created content over a large amount of procedural noise. Thus, the ratio of hours played to custom content created is very high.

Use procedures to augment artist input, and stretch your content further

Guitar Hero uses a procedural animation system to animate the characters playing their instruments. It was written in about 2 weeks, and requires a very small amount of unique authoring input to work. It pulls most of its animation from data that’s already there for game play reasons, mainly the note gems. A small amount of data is required by the person authoring the song, and they have various hints they can give to the system to adjust the results.

We’ve improved that system over the last few years, and the data mining is becoming quite complex, as are the modifications to the animations and other data it’s outputting. But for the most part, we’ve avoided authoring extra data, because the carefully crafted note charts and meta-data are a goldmine for information about what the music is doing.

Reach your quality bar first

Before building a procedural technique, it’s important to understand all the nuances of what you’re trying to do. As such, it’s best to create a quality result before trying to break that down into some type of procedural system. Looking at the data, be it animation or content, will help you spot the patterns which can be replicated and varied, or the busy work involved which can be automated or abstracted. Attempt to solve the problem as a tools issue until it has been proven to be one that has to be solved in a generative way.

Sunday, February 04, 2007

The Slip

As some of you may know, I've been working with various local bands in one fashion or another for years now. The band I've been working with the longest is The Slip, who are also the soundtrack to my life. Thier latest album is really amazing, and I managed to get one of thier tracks into the first Guitar Hero, which was something that made that game a little more special for me.

The Slip's music is hard to nail down. They arn't really one band, but several in a constant battle for the amplification. They seemlessly blend many different styles together with a level of musicianship rarely seen, and smoothly move from jazz, to rock, to reggae, to blues, to bluegrass, to indi-rock, and back again. As such, they're a really hard sell despite thier obvious talent. Sometimes it almost seemed like they were fighting against it - I remember having to convince them to put the band logo on thier first T-shirt.

Through a concerted effort of many, the mainstream press finally seems to noticing them. Last months Rolling Stone featured a small article on them, and Episode 12 of this months Grey's Anatomy used one of thier songs in the closing montage. Tommorow night, monday the 5th, they'll be playing on Conan Obrien. I can't help but feeling a little giddy about it. I love the user created videos for thier music as well.

Friday, January 26, 2007

Guitar Hero Backlash?

When ever something becomes popular, there is an inevitable backlash. But the backlash against Guitar Hero is really cracking me up. Fox news, in their usual attempt to make this culture afraid of everything, tried to report a blistering story on the dangers of Guitar Hero – yes, friends, the evil tinnitus. Apparently they didn’t understand that repeating one motion for hours on end can cause stress on the body, something I was sure they learned in puberty.

Newsweek has recently posted a story (repackaged from the UK version with 'extra scarry stuff' for the US audience by the author of the oh-so-technically-accurate ‘Hackers’ movie) about how the joys of playing Guitar Hero will lead to a planet where no one knows how to play the guitar. Yes, apparently, while GTA will turn this world into one non-stop carjacking hooker fest, Guitar Hero will do the exact opposite, and guarantee that no one ever learns to play a musical instrument again.

Too funny.

Google