Valve's Gabe Newell Speaks on Console Development
DelitaTheFridge writes "Gabe Newell, of Valve fame, criticizes Microsoft and Sony on how difficult it will be for next-gen developers to produce games on their upcoming hardware. He is especially critical of Sony's model, where code written to run on Cell will be very hard to port to other systems, and vice versa. Will this bring upon a new era of PC Game superiority? Only time will tell. In the meantime, Newell says he believes that Steam-like systems will be extremely helpful for developers on the new consoles due to their ability to provide updates and new content."
Steam-like systems
You mean the one that forces you to "update" before you can play its game? This system is making a player's life difficult too.
It's worth noting, however, that Valve is historically a PC games developer and has only made two console games thus far--Counter-Strike and Half-Life 2, both for Xbox.
I think this line says it all - Valve is inexperienced in cross-platform console game development, and it's whinging about it. Kind of reminds me of Alternative Browsers Impede Investigations
Rock that crushes, Paper & Scissors that don't matter.
I don't think systems like Steam are viable in the long run. They'll be successful for a bit while they manage to force them on us, but in the long run they're just too restrictive. The market is (hopefully) going to reject them.
Send email from the afterlife! Write your e-will at Dead Man's Switch.
Will this bring upon a new era of PC Game superiority?
When the day arrives that I can take a brand-new & high-end PC game out of a box, insert it into the CD-ROM and play it immedietally without installation or having to customize 2 dozen settings: Yes. Till then: No.
Gabe was reported saying plyaing his companies games too long could result in a person starting to resemble himself
In other news, Sony criticizes Gabe Newell and Microsoft how difficult it is to have decent security.
Say what you will about Gabe and Valve, he is very correct about both systems. In Microsoft's case, they've made things a pain for developers by having two different models with and without a hard drive.
In the case of the PS3 and Cell, it is different enough in design from "traditional" architecture that cross platform development for it is going to be a nightmare.
You are who you are, let no one tell you different. But, never close your mind to a new point of view.
I bought Doom 3. I bought Half-life, UT 2k, 2k4, DN3D, etc etc ad nauseam. I like FPS games.
I did not buy HL2. Why? Steam.
I might relent when the price is $10. Let's see if the game is still playable by then, given the dependence on an internet connection.
HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
There's the actual video interview.
I spoke to some people at Microsoft, and as I said, I can't point to a single feature in Vista that I care about that solves problems for us.
I can't see a single feature in Vista that solves any problems I've had with Windows on the consumer's side either.
And I totally see why Sony wants people to write code that runs on seven SPEs and a central processing unit, because that code is never going to run well anywhere else
You can say the same about DirectX. You can never run DirectX on anything but Windows. (WINE doesn't count). This is common practice, it happens with proprietary formats, why wouldn't it happen with game consoles?
Apparently the solution to consoles being difficult to program for is to use Valve's proprietary, slightly sucky, extremely annoying Steam content delivery service. I don't get how that works, sorry. And I'm a console developer working on next gen.
To meet some of the other points he's raised doesn't take too much effort either:
Apparently nothing in Vista helps him out at all? What a shame. I fail to see how that is particularly relevant, especially since it really doesn't make anything worse. XNA might change things for Valve, but that's not the same thing. Valve only target one OS. If that OS changes under them, perhaps they should have practiced cross-platform development to cover that eventuality...
I'm not really surprised he says Xbox 360 makes his life worse - a lot of the planned online functionality MS have in store renders Steam somewhat irrelevant.
And I think he's being a touch cynical about the reasons for Sony's Cell architecture (disclaimer - I work for Sony). But I suppose he could be correct. Again, though, there are techniques for cross-platform development which Valve hasn't bothered its ass using.
If you stick with writing games for x86 Windows, I don't feel much sympathy for teething troubles when you start hitting the console hardware. Mainly because (shock) it really isn't all that different for the majority of the coders! Yes, you'll need specialists. But huge chunks of stuff won't need to change at all - game logic, frontend, scripts/scripting. This isn't rocket science, and many companies have been releasing titles near-simultaneously on multiple, drastically different hardware platforms for years.
Sour grapes from a Win32 codeshop. Who'd believe it...
Game dev and music blog
Gabe Newell - the guy who's company has chosen to make their games NOT portable to any thing other than Windows, is criticizing Sony for making their games hard to port?
The same Gabe Newell who took a relatively portable game framework (Quake) and made it NOT portable (Half-Life)?
The same Gabe Newell who chose to use a non-portable graphics framework (Direct-3D) rather than a portable graphics framework (OpenGL) for Half-Life II?
Well, I guess he is an expert in non-portable - we'll allow his testimony.
www.eFax.com are spammers
Will this bring upon a new era of PC Game superiority?
God, this is a sad attempt to revive a tired flamefest.
The answer is no, for two reasons.
First, the PC and the console are two different beasts. The different peripherals and capabilities of each system tend to lend them to different types of games. My favorite PC games have not hit the console, and visa versa.
Second, console games sell a lot more copies (partly due to the greater Joe Sixpack appeal from easier setups and partly because it's a pain in the ass to pirate games on modern consoles, so you don't see two-thirds of the games out there being pirated, as you do on the computer). A lack of compatibility would probably not be a really good thing for the PC, given that there are more development dollars in console games (actually, a lack of compatibility almost always screws over the end user and benefits only the system vendors).
In the silver lining department, this is probably a good thing for Linux -- the large and current commercial game library on Windows is one of its greatest strengths in the college crowd, and whatever college students use is what everyone uses in a couple years.
Any program relying on (nontrivial) preemptive multithreading will be buggy.
From TFA:
Newell was equally harsh, if not more so, on Sony for its design of the PS3 architecture and programming environment. "There are incredibly few programmers who can safely write code in the PlayStation 3 environment. And I totally see why Sony wants people to write code that runs on seven SPEs and a central processing unit, because that code is never going to run well anywhere else," he said.
What he seems to not understand/want to pretend isn't the case is the fact that the architecture of the Cell is a reflection of longstanding trends in computer architecture, not an exotic thing that Sony dreamed up to be troublesome.
In particular, there has been a longstanding disconnect between the growth in the amount of memory bandwidth available to chips versus the amount of computation that can be done on them. Computational capacity is growing much more quickly than memory access. Over enough years, this disconnect makes a big difference! Nowadways, processor architects will tell you that computation is basically free while communication is what is expensive.
Architectures ranging from GPUs to multicore CPUs to Cell take advantage of these trends in various ways, deliving much more computational capacity than standard CPUs. All of these architectures are deeply inherently parallel. There just isn't any other viable way to take advantage of all of this computation.
John Owens has a nice chapter in GPU Gems 2 on this topic.
If Newell (or whoever) doesn't want to program the SPEs on the Cell, he's free to just use the PPC CPU on it. And his game will be much slower than someone who uses it well. But there aren't going to be very many performance gains in the future to be had from single-threaded code running on CPUs. So while Cell is not trivial to program, none of the other choices are any easier. (Note that there are C/C++ compilers for the SPE instruction set, etc, so they're not *that* hard to program.)
(I'd like to hope that Newell actually knows all this and is just posturing in he middle of his Steam pimping and that this doesn't reflect reality in Valve's world!)
-matt
What happens if you want to play it 15 years later?
I can still play Ultima Underworld (the original). Will you be able to say the same about HL2?
Great game btw, UU.
HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
Exactly. To a non-coder it sounds like a walk in the park eh j3rry?. The x360 is, what, a triple core powerpc chip, and the PS3 is a less powerful chip, almost identical to one of the x360 cores, but with 7 SPE's (the S stands for stupid, not synergistic or whatever the fuck their marketroids named em)
These consoles are taking the idea of multithreading to the max, and both are taking very different approaches. Porting between the consoles was hard enough this gen (xbox getting good pc ports as it pretty much was a pc, the gcn being a ppc and the ps2 being made by sony, who can never make anything easy to develop for, and required alot of assembly code and hand vectorization to get a game working well on the already slower hardware) but now we've got not just different architectures to support, but completly and totally different programming models to support.
Maybe I'm just too impressed with Cell's architecture to see things clearly, but here's my opinion...
Generation after generation, developers have been given ever more powerful processors with a corresponding extra cost in hardware. Some of this is really needed to overcome architectural limitations (register renaming to make up for the scarcity of registers in x86 comes to mind) -- indeed I think x86 is too crippled to perform well without lots of hardware assistance.
But the fact is that we've hit a wall of performance. Power increases due to ever more complex chips, plus certain effects like leakage currents (that were disregarded in previous manufacturing processes) are becoming ever more problematic. So the free performance lunch is over, and CPU designers are having to trim the fat of their designs. The result is nice power-efficient architectures like the Pentium M, but there's only so much that power-conscious design can do if you still must have the complexity of out-of-order execution and other modern CPU features.
So there's really no way around. If you need a power-efficient processor, you're going to have to resort to completely new architectural ideas, like extensive use of SIMD and multi-core as Cell does. Programmers are going to pay a price in terms of complexity and cost of software development, yes; but there's no other way, the growth of CPUs we're used to is flattening out, unfortunately, and can only grow again through adoption of these alternative programming models.
Which is why I say these people are spoiled brats. If CPU designers are guilty of anything, it's feeding off this illusion that infinite growth without laying any burdens on programmers was possible. But complaining is no good now; either they're going to adapt or die. It's clear that no ordinary out-of-order design, using the same transistor budget, can reach the peak power of Cell if correctly programmed. So if these guys really want the extra power to make better games, they'll have to learn these new programming models and bear the burden of extra complexity.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
"Newell says he believes that Steam-like systems will be extremely helpful for developers on the new consoles due to their ability to provide updates and new content."
This is to be expected, he has funded the creation of Steam from scratch, of course he is going to sign it's praises and say software like it is the future. The thing that he doesn't have control over is the customers, and they will decide what the future is.
Business Voyeur
With Unreal 3 and Havok already on XBOX360 and PS3, I would be worried about trying to sell Source too.
All I read was:
Blah blah blah, Consoles are hard to develop for, blah blah blah, we can't get our technology to work on them, blah blah blah, buy our product, blah blah blah.
"My cat's breath smells like cat food." - The Tao of Ralph Wiggum.
You've got some sort of evidence to back up this assumed truism, have you?
Before you answer, consider that for example, on a PS2, the sound is handled by a different CPU anyway, so you can't avoid having multi-process code for sound/syncing.
Games do have some difficult problems to solve, to maximise performance, so while you don't mean to belittle the game dev community, you probably are anyway. They usually involve trade-offs - e.g. you want to animate a character's vertices, but due to your parallel architecture, that data is currently being used to render the character. So you have to double buffer the data...but that uses up pretty significant resources...so you might have to come up with some complex interlocking mechanism. Oh, and you're also trying to run the AI at the same time in this parallel world, which probably needs to know the current position/orientation of the character, not what it was for the previous frame, etc. Physics too, maybe. Have fun with that.
That's not to say Gabe's complaints are all that valid though. Technology changes, and you move on, as you say.
It's just a pain when you have a large code base that is hard to port (through no particular fault of your own). Direct3D issues are pretty small compared to re-architecting your system to run on 7 cpus instead of one.
I still remember when a few guys came back from a Sony conference, and said that Sony's advice for performance optimisation was to not use C++, because the EE was piss-poor at running it, due to the tiny I/D caches. Apparently on most PS2 games, the EE was idle/stalling for about 50% of the time due to C++ usage patterns.
Of course, most engineers' reaction to that was, why did they build a console that would run C++ code poorly, when they knew the majority of devs would use C++?
I think Gabe is fearing a similar situation with the PS3. Having experienced Sony's idea of what constituted 'development tools' for the PS2, I'd probably be worried too, if I was in his shoes.
To me, it comes off as the same type of whining that happened when game programmers switched from DOS to Windows/DirectX, and from C to C++. It's like asking "Have you seen any good games that aren't written in DOS? Have you seen any good games that take advantage of principles in OOP? Well, what is the point of then?"
It's pointless criticism. Yes, things actually do change, believe it or not! Besides, Valve will face the same (well, actually worse) problems with PCs, so they really have no room to complain.
The fact that Valve is now ill-prepared and complaining when this was all well foreseen is what's so infantile about their ramblings.
The PS3 architecture is quite odd...
No it's not. It's basically a better-organised and larger version of the PS2's Emotion Engine... Albeit with a different instruction set.
The PS2 developers love it. "256KB of memory per SPE? And we can program it in C? Woot!"
Its a fact that, n parallel processors is less efficient than one n-times-faster processor.
It's a fact that you can't get n-times-faster processors, so tough bickies.
"But what's your response to new content? What's going to happen to things like free levels and, for example, the free ninja gaiden update that was made available."
Sega managed to run new levels off a memory card just fine, for example in the Dreamcast version of Skies Or Arcadia.
"And honestly, what's wrong with FIXING something? I see no problem with updates."
I _do_ see a problem with shoving a broken, disfunctional product out the door. I very much like it that when I buy a game, it actually works. I _do_ see a problem with paying to be a beta-tester for EA's, Vivendi's, etc, buggy unfinished crap.
And especially I _do_ see a problem with patches that screw up my saved games directly (I can thing of a dozen games, starting with Fallout 2, where applying the patch forced me to restart the whole damn game from the start), or indirectly (yay, for some RPG patches where they randomly altered the game balance and made all my character's skills useless, _and_ made a bunch enemies immune to physical damage... when I'm playing a fighter. What am I supposed to use there? Bad language? Time to start a new character again.)
That's what I liked about console games so far: when I buy a game it's a _finished_ product. I can think of only exactly _two_ console games that ever needed a patch, out of the literally _hundreds_ I own. (And out of those two, one had a free replacement from the publisher, and the other "only" had multiplayer exploits, but was otherwise rock-solid and enjoyable as a single-player game.) The rest just worked.
That's it. When I buy a console game, I _know_ it will work. From day one. I can randomly pick any game off the PS2 aisle, take it home, pop it in, and _know_ that it'll never crash, never fall into the void, and generally just work.
You know why? Because the publisher knows it can't be patched, so they'll test the _hell_ out of it before release. And if they're running out of time or budget, they'll cancel a game, but never shove an unfinished piece of crap out the door.
Yes, no software is perfect, but there's a _massive_ difference between having some minor exploit in an obscure sidequest (like being able to claim your reward twice) in a console game, and the utterly broken stuff that gets shipped on the PC on account that it can be patched later.
That's what's wrong with "FIXING something" in the PC world. It's something that sounds _great_ in theory, but in practice it's what caused the deluge of unfinished buggy _crap_ shoved out the door untested. It just caused the "ah, it shows the starting menu, let's ship it. We can patch it later" mentality to run rampant.
It caused such crap as, say, the German version of Victoria which literally could only show the startup menu as released. _Literally_. If you actually tried starting a campaign, the game threw a script _syntax_ error. Yes, a _syntax_ error. Not something even remotely blamable on drivers or hardware. It had a typo in the scripts and couldn't run on _any_ hardware.
A polar bear is a cartesian bear after a coordinate transform.