Head honch of Valve Software, Gabe Newell, has been talking about programming for dual core chips.
Or, more accurately, he's complaining about how difficult they are to work with.
In an interview with Next Gen
) Gabe headlines with the quote that you might as well take 'your existing code... and throw it away'.
The basic problem, he suggests, is that writing threaded code is just a nightmare, and not necessarily one that will be fixed by the time the next-gen systems are even well into their lifespan, let alone at launch.
"If writing in-order code [in terms of difficulty] is a one and writing out-of-order code is a four, then writing multicore code is a 10," cautions Newell. "That's going to have consequences for a lot of people in our industry. People who were marginally productive before, will now be people that you can't afford to have write engine or game code."
We all know what the net result of that will be - more people using middleware like Unreal Engine 3 for their games, rather than developing their own engines.
"Most of the problems of getting these systems running on these multicore processors are not solved. They are doctoral theses, not known implementation problems. So it's not even clear that over the lifespan of these next generation systems that they will be solved problems. The amount of time it takes to get a good multicore engine running, the Xbox 360 might not even be on the market any longer. That should scare the crap out of everybody."
Not a happy coder, then. Whilst Intel and AMD are touting the excellence of their next-gen chips (and the Xbox 3 is triple-core) it seems programmers aren't necessarily singing the same tune. However, with dual-core chips one thing is clear - you can easily run gaming code on one core and do a bunch of other work on another core. Even if we don't get games that use both, the system will be using both to do different things.
With Sony and Microsoft both posturing over their next-gen consoles, what's Gabe's verdict?
"Statements about 'Oh, the PS3 is going to be twice as fast as an Xbox 360' are totally meaningless . It means nothing. It's surprising that game customers don't realize how it treats them like idiots. The assumption is that you're going to swallow that kind of system, when in fact there's no code that has been run on both of those architectures that is anything close to a realistic proxy for game performance. So to make a statement like that, I'm worried for the customers. And that we view customers as complete morons that will never catch on and that we're lying to them all the time. That's a problem because in the long run, it will have an impact on our sales."
Tell us what you really think Gabe!
And tell us what you think too - is Gabe a coding cry-baby, or is he making some valid points about how hard it is to develop for next-gen? Let us know!