John Carmack Discusses 360's Edge, Considers DS
Via a Gamasutra post, John Carmack's comments on upcoming id choices. Game|Life has a few quick comments on Carmack's hope to bring Orcs and Elves to the DS. This would be id's first game on a Nintendo platform in some time. Likewise, he makes it clear that he considers the 360 the dev platform of choice due to the ease of development on the console. From the article: "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."
At least no one can say that he doesn't know what he's talking about. It's kind of hard to disprove that man's intellect when it comes to software development.
I think you're wrong about id's dedication to writing good 3D engines for the hardware of the times, regardless of complexity. Quake3's engine, for instance, allowed for multithreaded rendering when nobody else was even considering multiple CPUs.
It wasn't completely stable -- and I wonder how many people actually turned the feature on -- but it was multithreading *way* ahead of its time on the gaming front.
C
The Sun is proof that we can't even do fire properly.
Indeed, considering all the amount of critism he had for Direct X many years ago.
Speaking of which, can anyone point me to a link or other resource that talk about, or actually has the so-called debates between Carmack and Bill Gates of OpenGL and Direct X? Last time I tried Google with this, I couldn't find too much useful information.
The trend towards and away from specialized processors comes and goes.
I think Carmack's view of the PS3 is a lot more realistic than yours. He's talking from the perspective of someone who has to ship a product or his friends don't eat. You're talking about what would be nice if programmer time were free.
FWIW, I have a PS3, which I am using to do Cell development. It really is very impressive... And it also really is a lot more work than a more traditional multicore system. The decision to specialize an extra time here reflects Sony's PS2 design (crappy CPU with two very impressive and non-interchangeable vector processors to make up for it), and I think it also reflects Sony's arrogance; they simply assume that, of course, people will be willing to spend twice as long developing software on their system to get a noticeable but not earth-shattering improvement in performance.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
I don't think you quite follow the essence of the complaint.
With the absolute best tools conceivable, even with tools that we don't even have the technology to build, Cell will still be harder to develop for than a more conventional processor.
Yes, it's more powerful; probably a LOT more powerful. It's still mork work to get anything done.
Your claim tht it will be "easier" as it allows "better division of code and work" is just plain nonsense. Any division of code and work I can do on a multi-core system, I can do on a single-core system, too. That division is already available to me. The extra work Cell imposes is that I have to divide it asymmetrically; I can't just partition the task in whatever chunks the task makes sense in, I have to partition a lot of it in terms of the very specific requirements of the SPEs.
That work won't go away, even with perfect tools. It's harder, and it will always be harder.
I think it's probably worth it for supercomputing. I'm less sure that it's worth it for consoles, because game development costs are a plague upon the industry, and making them worse won't help.
Will it get easier than it is now? Yes, but the underlying fact that it is "harder to program and takes a little more time" won't. What might change is that, right now, it takes a lot more time; that might be plausibly reduced. But, in the end, making Cell just as easy as a multicore SMP system is in the same bin as lossless compression that is guaranteed to compress ALL possible inputs.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
Once you start thinking parallel you actually see that it is easier than not as it allows better division of code and work.
It's not just thinking in parallel, Cell requires that you think in terms of what the SPEs are good at, which is streaming data processing with no branches. The transition to parallel thinking is much easier with the Xbox360 because you can parallelize along any task boundary since each processor is the same and capable of the same general processor functions.
As a Software Engineer I grow more an more disgusted with the x86, and to a lesser extent Power, architecture every day.
Which has fuck-all to do with parallel programming. x86 actually has a memory consistency model that is friendlier to parallel programming than many other modern ISAs. If you aren't writing assembly I can't fathom why a software engineer would be bothered by x86.
The enemies of Democracy are
True, however that was many years ago, when Carmack still had some ambition and imagination. I'm not saying Doom III was bad, but... ... but you're still going to imply that Carmack is a luddite who can't adopt to new technology. What-fucking-ever, he is still what he's always been -- a pusher of new technology, and a great determiner of what technology actually works in practice and what is theoretical pie-in-the-sky wishfull thinking. Just because he is no longer the only man on earth who is serious about pushing the envelope on 3D technology doesn't mean he has lost his ambition or imagination.
The problem is people viewing it as a hurdle rather than an opportunity.
It's a hurdle and an opportunity. Practical people see this, theorists don't. Hell, even IBM admitted that it was a hurdle for programmers in an architecture talk about Cell that I attended at UT.
It's a safe bet that the XBox 1080 (or whatever) will have multi cores, and of course the PC industry is full-steam ahead on that front.
Are you mental? The 360 is already multi-processor, and multi-core is just a performance optimization to reduce communication overhead between processors (while making DRAM access more expensive). It already requires multi-processor programming which Carmack is an early adopter of. You think he doesn't know how to write a multi-threaded application? Please. His point, and a very good one at that, is that it is harder to write multi-threaded code when some of your processors have drastically different capabilities than others. Like I said even IBM, the creator of Cell, agrees with this assesment, so it is nothing but bald-faced denial of reality to pretend otherwise.
The enemies of Democracy are
Dude, Carmack is hot stuff. He makes hardware do things it was never intended to do, something which any console programmer should have the utmost respect for. A game developer not having respect for Carmack is like an inventor not having respect for da Vinci. Basically either jealousy or idiocy and in neither case healthy.
The enemies of Democracy are
The 360 has a triple core CPU, you have to use multithreading on that as well. The difference is that Sony has one main core and seven helper cores which means you have pretty much single-threaded main code (not necessary but probably more efficient) that's starting many short-lived helper threads.
Also MS was known for providing very good development tools for quite some time. They used those for earlier games, too. Doesn't mean they can't make them cross-platform.
Justice is the sheep getting arrested while an impartial judge declares the vote void.
Basically what I am saying is if you have an specific example of where SPE programing differ from PPC programming that IBM or a third party has not already supplied a solution to then I would like to hear it. Otherwise I have yet to see any reason to acknowledge Carmack's apparently uneducated statement (which I'm starting to think was taken out of context and wasn't really meant to mean what it has been interpreted to mean). Not only that, if it's the tools he doesn't like then he ought to be the first one to write better tools since those would be useful, and he has the skills, while another 1st person shooter might not be so.
And I will appease you by saying that I do not have a cell processor or emulator to test any of this out on, and am going on my knowledge of software engineering (in may different architectures) and the information I get form IBM and other Cell developers.
> At any rate, it's trendy to bash the PS3 lately. It really is a leap in console capabilities (and I don't even like/buy/use consoles period), but all the negative comments about developers avoiding the PS3 are creating a self-fulfilling prophecy. The problem is people viewing it as a hurdle rather than an opportunity.
I'm a PS2 programmer; as "bad" as the PS2 is to program for, the PS3 is FAR worse; getting any sort of decent performance out of the PS2 involves utilizing each processor, and now our job is (at least) 7 times harder on the PS3?! Only a masochist would want to program on that thing. Give me ram, lots of it, and not fragmented into tiny little pieces. And few, but faster processors, then many, and slower. There are only so many tasks that can be parallized.
Even on the XBox, MS's tools were miles ahead of Sony's. Most of Sony's PS2 tools haven't been updated in ~4 years, and you wonder why developers are avoiding the PS3?!
And you have the gall to tell me and others it's a self-fulfilling prophecy, when people, like me, are saying the PS3 is "hard, dam hard" _based on past experience_, when you've never even programmed the PS2? Boy, are you naive!
Maybe _you_ want the "opportunity" of staying up late chasing down DMA bugs, trying to figure out why the hell your streaming engine isn't loading some data fast enough (guess what -- streaming is even MORE troublesome 'cuz we have 4 times the memory to fill, but yet the DVD transfer rate has only increased by 2 on next-gen consoles), trying to debug VU code when one of your models isn't skinning properly, trying to figure out where you're going to fit all the game assets in memory, etc, but I've jumped through enough hurdles, that I don't want or need any more then necessary, because I have better things to do (such as implementing the game), then fighting broken, and limited hardware. The principles are indeed the same, but the devil is in the details, and frankly, we're getting tired of having to spend such insane amounts of time on them.
And yes, I do actually love programming the PS2. The risk/reward ratio is very fulfulling. The XBox (1 or 360) even more so. But people aren't bitching when they are stating facts -- "Programming the PS3 is hard. Period." The risk/reward ratio is out of line compared to other consoles -- and we have to ask "Why? Why does it have to be so difficult?"
Maybe Sony will wise up, and realize that "when you make it -easy- to develop on your system, people will -want- to, and be are more then happy to spend the time expirementing. It's all about minimizing the cycle: code new feature - compile - link - export assets - convert to native format. Make it easier on the developers and we will love you -- make it harder and we will hate it. It's not rocket science, only computer, and social science.
Anyways, I've rambled on long enough.
Cheers
Those so called "API"'s are quite vendor specific and very flexible.
If you only programmed directly for the API, you would get something like Civ 4, a game with average graphics, but that needs a top graphics card.
You're the first developer I've heard indicate that programming the PS3 is harder than programming the PS2. With PS3, you at least have a fairly straight-forward PPE and the use of OpenGL for the graphics.. it's got to be easier to bring up a game with that than on PS2, right?
- jon
Ganymede, a GPL'ed metadirectory for UNIX
It just pains me to see possible innovation being killed because it's difficult!!! Is the PS2 tough to develop for, heck yes...PS3...even harder...remember when this was a good thing? The 360 is great, easy, straight forward and BORING!!!!!! Don't get me wrong, I like writing code for the thing, because it makes my job darn easy and I pretty much know what I am going to get on the back end.
...
You're an idiot!!!
I developed games for years before I 'burnt out' on the deadlines and schedule
The fact is no one wants to program for hardware that is 'interesting and challenging' they want to produce software which is 'interesting and challenging'. It is very difficult to produce an advanced 3d engine on a piece of hardware when you're fighting for adequate performance and as you add complexity you're constantly fighting with the hardware to get stable performance.
Essentially, an architecture which is 'difficult' to program for make creating high performance applications like building a sand castle in the rain.
You're a fool if you think developers only want "the most powerful box". There's a lot more to the industry, heck software programming in general, than power. Also, you completely ignore the fact that if you were right, then you'd have developers flocking to the Xbox, since it was the most powerful console last generation.
-- jchenx