Games Software Tech 1

John Carmack at CES

Game Informer has a pretty lengthy interview with ID Software’s John Carmack (creator of Doom, Quake) and Todd Hollenshead. They voice their opinions on Windows Vista, the Xbox 360 vs. PS3, digital distribution, new PC hardware, and Quakecon. The whole interview is pretty interesting and worth reading. You can find the entire interview here.

GI: At QuakeCon two years ago, you were very adamant during your keynote about not being too thrilled about developing for multi-core systems. Not just specifically with PCs, but also the PlayStation 3 and Xbox 360. Now that you’ve been working with both of them since then, have your thoughts changed at all?

Carmack: Microsoft has made some pretty nice tools that show you what you can make on the Xbox 360. I get a nice multi-frame graph, and I can label everything across six threads and three cores. They are nice tools for doing all of that, but the fundamental problem is that it’s still hard to do. If you want to utilize all of that unused performance, it’s going to become more of a risk to you and bring pain and suffering to the programming side. It already tends to be a long pole in the tent for getting a game out of the door. It’s no help to developers to be adding all of this extra stuff where we can spend more effort on this. We’re going to be incentivized, obviously, to take advantage of the system, because everybody’s going to be doing that. It’s not like anyone’s going to say that it’s impossible to do. People tend to look at it from the up side. It gives you this many more flops and it gives you this much more power to do that. But you have to recognize that there is another edge to that sword, and you will suffer in some ways for dealing with this. I don’t have any expectation that anytime soon, a massive breakthrough will occur that will make parallel programming much easier. It’s been an active research project for many years. Better tools will help and somewhat better programming methodologies will help. One of the big problems with modern game development with C/C++ languages is that your junior programmer who’s supposed to be over there working on how the pistol works can’t have one tiny little race condition that interacts with the background thread doing something. I do sweat about the fragility of what we do with the large-scale software stuff with multiple programmers developing on things, and adding multi-core development makes it much scarier and much worse in that regard.

So we’re dealing with it, but it’s an aspect of the landscape that obviously would have been better if we would have been able to get more gigahertz in a processor core. But life didn’t turn out like that, and we have to just take the best advantage with it.

GI: You talked a lot about the Xbox 360. What are your thoughts on the PlayStation 3 now that you’ve had more time on it?

Carmack: We’ve got our PlayStation 3 dev kits, and we’ve got our code compiling on it. I do intend to do a simultaneous release on it. But the honest truth is that Microsoft dev tools are so much better than Sony’s. We expect to keep in mind the issues of bringing this up on the PlayStation 3. But we’re not going to do much until we’re at the point where we need to bring it up to spec on the PlayStation 3. We’ll probably do that two or three times during the major development schedule. It’s not something we’re going to try and keep in-step with us. None of my opinions have really changed on that. I think the decision to use an asymmetric CPU by Sony was a wrong one. There are aspects that could make it a winning decision, but they’re not helpful to the developers. If they make the developers say that Sony is going to own the main marketplace, let’s make them develop toward this and build it this way, it would somewhat downplay the benefits of the Xbox 360 and play to the PlayStation 3’s strengths. I suspect they’re not going to overwhelmingly crush the marketplace this time, which wasn’t clear a year ago. A lot of people were thinking it’s going to be a rerun of the last generation, and it’s now looking like it might not be. I’ve been pulling for Microsoft, because I think they’ve done a better job for development support, and I think they have made somewhat smarter decisions on the platform. It’s not like the PlayStation 3 is a piece of junk or anything. I was not a fan of the PlayStation 2 and the way its architecture was set up. With the PlayStation 3, it’s not even that it’s ugly–they just took a design decision that wasn’t the best from a development standpoint.