February 2, 2006

Console Hardware Methodology

Recently, I've been trying to figure out the different design approaches used by the three major console manufacturers to see if I could figure out what led each team to make the decisions that they made. I think I finally have a decent idea about it, and it also explains the goals of each first-party developer as well.

Microsoft's Xbox and Xbox 360 are hardware designed by software engineers for software engineers. Both are based off of familiar processors and hardware, have little in the way of limitations as far as what you can do with each piece of hardware (each core has full access to the full memory range in the 360, etc.), and their design has been very evolutionary.

The first Xbox was the console equivalent of Windows 3.1, in that it worked well enough to be a success, but had some severe limitations. So, they added in Xbox Live, which essentially added the equivalent of WinSock and Win32s. Xbox 360 is the equivalent leap from Win3.1/Win32s to Windows 95. A lot of the headaches developers had with the original Xbox (digitally signing saved games, polling Xbox Live, etc.) are just automatically handled for them by the Xbox 360.

Sony's PlayStation 2 and PlayStation 3 are hardware designed by hardware engineers for software engineers. In other words, a severe amount of power, but you have to jump through hoops to get to it. A good analogy would be DOS and a super-powered version of Glide. Each core is very powerful, but the smaller cores only have access to 256Kb of memory each, so the primary core's going to be spending a lot of time DMA'ing memory to/from each core's RAM and scheduling threads. In other words, the hardware guys thought about thread contention issues, etc., and decided to handle that problem in hardware instead of software.

Sony's software engineers look at the hardware, and then an edict from their business people that says that they can't be called a video game system for tax reasons, so they have to find a way to make it be a "computer entertainment system" instead. They quickly say, "You know what? We'll give you basic functionality. Anything else you want, write it yourself." (Hence no online strategy for PS2...)

Nintendo's hardware has been hardware designed by a game designer for a specific subset of games. Basically, the equivalent of a Capcom CPS-style arcade cabinet. Miyamoto-sama comes down from on high and says, "I wish to make a game involving swinging about a wand. Give me hardware to make this vision a reality," and since everything Miyamoto touches turns to gold, Nintendo tasks their design Oompa-Loompa's to create hardware for his vision.

These philosophical differences between the companies also show in how they handle their first-party development houses.

Microsoft aims to treat their first-party studios as third-party studios in an effort to recover additional funds. After all, each sale of a first-party title recovers as much funds as a sale of two third-party titles as far as making up the loss on the console.

Sony aims to create essentially visually-impressive demos with their first-party studios. They want to show off the capabilities of their hardware, so they invest a lot of money making games that they hope will garner critical acclaim but often will not sell a significant amount of units.

Nintendo aims for their first-party developers to support the cost of their hardware. While they'd like third-party developers to write for their console, they know that as long as they provide their internal development staff with the hardware that they want, they'll continue to make money. The moment one of their internal developers stops making them money (Virtual Boy, anyone?), they throw them to the wolves.

Anyway, it's thoughts like this that keep me up at night.

No comments: