Full transcript of John Carmack's QuakeCon 2005 Keynote

Fact is JC and id have been VERY proactive in bringing up new dev houses and bringing new people into the industry.

No kidding. Releasing the Q3 source already? You can nab it and make your own game without sending a dime to ID. It is all well and good to talk about the development community, but it is impressive to see JC cowboy up like he does, and he really puts his money where his mouth is. He recognizes the daunting environment the market is today, and I respect him for trying to help others break into it. Makes you wonder if JC would have made it into the industry as it is today. That he is sharing all of thier hard work probably gives some insight into what he thinks.

I just don't understand why people are up in arms. He even mentions there are people that will really dig into the complex architectures and do really nice things. He mentions how impressed he is with the consoles and graphics specifically. I found his speech a very good read. Thanks for typing all that up, man. I know your arms were feeling it.
 
BlueTsunami said:
EDIT: Does it matter what OO code looks like? All that matters is it was taylored for OO Cpu's....how could you think that it would magically be efficient? That blows my mind...it would seem pretty obvious that you would get a drop in performance by doing that.

Get a clue people...

there is no such things as OoO code. Its the same damn code that runs on an in-order processor. Thats the advantage of OoO uP, you can take code and binaries that was optimized for an in-order uP design and it will run faster on as equivlent OoO uP.

The drop in performance isn't from some mythical OoO code optimizations being tripped up, but because of the limited performance of the in-order core design. A 2 issue in-order powerpc design is pretty damn craptacular.

Aaron Spink
speaking for myself inc.
 
SanGreal said:
I thought he made his opinion perfectly clear. He would prefer a fast oooe processor rather than multiple in-order processors. Single-core processors are hitting their limits, but he believes that the fastest single-core processors available today are a better choice than the multi-core approach. In the future that won't be the case as desktop processors are also headed down the multi-core road. He isn't saying there is a long-term alternative to multi-core processing, simply that its not necessarily the best solution for this coming generation.

While desktop processors are headed down the multi-core path, they are doing it and not decreasing single thread performance. And certainly no decreasing it on the level of a 3.2 GHz P4 to a 3.5 GHz PPE.

Aaron Spink
speaking for myself inc.
 
BlueTsunami said:
Damn...I got raped...lol..its true that I don't know that much about programming (I know very little...and the little I know comes from me working with *nix) but what my disagreement with JC is that hes bashing something that Intel, AMD and IBM find to be the next step (besides faster CPUs). Him complaining (as he is) shows his reluctance to accept multi-core CPUs and the fact that hes going in with reservations...he going to be left in the dust by people who accept this with open arms (this as in multi-core CPU's).

If either the Xbox360 OR the PS3 had a dual or tri-core K8 or P4 or PM, I'm sure he would be perfectly happy (and most other devs would be a lot happier too), because it would allow them to take advantage of the additional computing resources without first having to fix the massive performance losses caused by the PPE very lackluster single thread performance in comparison to any of the current PC processor designs.

The short of it is: The developers aren't complaining that the X360 and PS3 are multi-core or multi-threaded, or whatever, they are complaining that the ONLY way to get competitive performance from the X360 or PS3 is to radically re-design the game engine using techniques that are still very much not mature.

Aaron Spink
speaking for myself inc.
 
aaronspink said:
If either the Xbox360 OR the PS3 had a dual or tri-core K8 or P4 or PM, I'm sure he would be perfectly happy (and most other devs would be a lot happier too), because it would allow them to take advantage of the additional computing resources without first having to fix the massive performance losses caused by the PPE very lackluster single thread performance in comparison to any of the current PC processor designs.

The short of it is: The developers aren't complaining that the X360 and PS3 are multi-core or multi-threaded, or whatever, they are complaining that the ONLY way to get competitive performance from the X360 or PS3 is to radically re-design the game engine using techniques that are still very much not mature.

Aaron Spink
speaking for myself inc.

Ahhhh ok. I was wondering why he was complaining about all this...when he states himself that he dabbled in this stuff. I was confused on that aspect and I thought the 360 and PS3's CPUs where different to multi-core CPU's only in that there where In order proccesses. I guess that makes more of a difference than I had originally thought....this is one of the reason I want to learn (at least the basics) of programming...so I can effectively participate in these conversations.
 
I have to say that is the best read this year for me on the Internet. Thanks for typing this up, I am sure it will hold up well over time. Now what game has ever used dual processors or multiple processes that remarkably improve performance? I know of none. Maybe a network game type game model could work for dual processor or multicore type cpu's. Since on a network all the different actions being processed by the many different player and cpu's have to be coordinated by the server I wonder if this could carry over to multicore home machines.
 
noko said:
Now what game has ever used dual processors or multiple processes that remarkably improve performance? I know of none.

...Quake 3 supported dual processor acceleration like this off and on throughout the various versions.

It’s actually a pretty good case in point there, where when we released it, certainly on my test system, you could run and get maybe a 40% speed up in some cases...

... :)
 
scooby_dooby said:
lol, I know about 8 or 9 programming languages and I have no damn clue what these guys are talking about half the time.

Knowledge of programming languages can be categorized in many different depth levels. The more important question here is "How good are you" with these programming languages?
 
well when I did the hard stuff I was good, I took 2 years of c++ and was close to the top of my class. got alot of 100% and 110% on my labs. took a year of java as well, and a bunch of other things.

But then I sorta copped out on the programming thing, couldn't see myself doing it 8+ hours/day, and after graduatin got into web design, so very I'm good at what I do, that's PHP, ASP, Visual Basic, Oracle, SQL, Actionscript, Javascript etc etc, but these languages are nothing compared to c++ or even Java, not even close, so it really gives me no insight into game programming or the issues of multi-threading.

I don't think learnign a language can help, you need to have experience programming games specifically IMO.
 
Last edited by a moderator:
Diplo said:
The console manufactures hype up their devices to the max and then release un-realistic pre-rendered videos to further present this misleading picture. Damping down some of this expectation with a dose of realism is long overdue.
Where is this even coming from. I'm sure he didn't mean that the videos and demos that we seen at E3 were misleading and unrealistic. There is just NO way in the world he meant that. That's one thing that I'm sure of. Why should anybody need to damp down any expectations. That person will only look bad in a year.
 
Are people confusing object-oriented (OO) code with out-of-order execution (OoOE)?

As far as I know there are no "optimizations" for out-of-order execution - I can't think of any situation in which it would be advantageous to intentionaly increase logical/data depedencies...why would you ever want to increase the amount of OOE the processor has to do?
 
scooby_dooby said:
well when I did the hard stuff I was good, I took 2 years of c++ and was close to the top of my class. got alot of 100% and 110% on my labs. took a year of java as well, and a bunch of other things.

But then I sorta copped out on the programming thing, couldn't see myself doing it 8+ hours/day, and after graduatin got into web design, so very I'm good at what I do, that's PHP, ASP, Visual Basic, Oracle, SQL, Actionscript, Javascript etc etc, but these languages are nothing compared to c++ or even Java, not even close, so it really gives me no insight into game programming or the issues of multi-threading.

I don't think learnign a language can help, you need to have experience programming games specifically IMO.

It's not the languages, but the type of application that you write. Funny what you say game requires more understanding of multi-threading....because it's actually the multi-usser environment that you really need to understanding threading. Even developing a moderate traffic site in ASP/VB, you still need to understand threading. Even a simple web app can cause deadlocks on the DB, blocking, race condition and etc.

So, when JC talks about the headaches of threading...He knows what he's talking about. Lot of programmers think that by following design pattern they're pretty safe. Yes, that's true but not 100% of the time. For an example doing a double check lock will not be 100% thread safe in C/C++.
 
mckmas, please stop with the inflammatory posts. I already pm'd you in private regarding thise issue. If someone feels the need to "damp down expectations" then they obviously feel there are valid reasons for it. Better to keep expectations down than to keep them high and fall short.
 
aaronspink said:
If either the Xbox360 OR the PS3 had a dual or tri-core K8 or P4 or PM, I'm sure he would be perfectly happy (and most other devs would be a lot happier too), because it would allow them to take advantage of the additional computing resources without first having to fix the massive performance losses caused by the PPE very lackluster single thread performance in comparison to any of the current PC processor designs.
Maybe. Half a beefy P4 is still 2x what the current gen consoles can do, and that's with no changes. And we are talking about consoles, here. Console developers are not necessarily going to look at top of the line PC parts and expect to get that performance out of consoles.
 
pegisys said:
JC said it was just a genaration to early, it is a big jump going from one cpu to 3 of them, or in the ps3 case 8
I'm not sure how true that is. Writing in-order multi-threaded code needs a particular mindset, especially managing the memory access as well, but when you know how to do it, writing for 2 core or 10 cores still works the same way. Like learning to read french to read either a standalone novel or an epic series of books - once you have the skills you apply them the same no matter how big the task. With more cores you need to split in smaller threads, but the way of thinking is still the same. Multithreaded development really needs the devs to look at what they want to do, how to split it into threads, and how to distribute those over whatever cores are available, regardless how many there are.

One key point for Intel/AMD future multiprocessor chips is this legacy support. They HAVE to have powerful OOO execution to manage software not optimized for in-order. The question is, if Intel could start again from scratch would they add OOO and other dev-friednly support hardware, or leave the hardware simpler and get more processing transistors crammed into the die space?

Also, how does thread management occur on Cell? I see what appear to be conflicting ideas. One suggests the PPE manages the SPE's, while another suggest the devs write apulets to the SPE's directly. How does this fit in with scalability? Presumably for Cell devs need to come up with designs that work in 256 kb on a SPE (which is the steep learning curve) but then does the hardware schedule their running or not? If so, multi Cell hardware should be as 'easy' to develop for as the first PS3, as the code design is still based around 256kb Apulets, so whether this hardware appears now or in ten years time it makes no difference. The first time Cell appears it proves difficult to learn, but all subsequent hardwares, scaled up to n hundred Cells, are written to in just the same way. Waiting for Intel to offer their own multiprocessor solution won't help with Cell development from what I can see as it's structured differently, in which case there'd be no benefit for Sony to wait on mainstream multicore solutions.
 
I'm not sure why there's such a doom and gloom atmosphere. Maybe perhaps next gen CPUs won't run code made for other CPUs fast (which is obviously true for any CPU, i mean of course In-Order CPUs are slower than Out-Of-Order when running code written for Out-Of-Order CPUs! Like N64 code was slow to be emulated on any other platform till not too long ago and still today!), and obviously the limited RAM will be a big hurdle for PC developers.
But in the end it comes down to this, consoles cost 300 quid. PCs don't. Expecting the same performance from both is like expecting the same performance from a Ferrari and a BMW.
What consoles have is a closed platform where developers can tweak and fix things to their liking till it runs just fine. On PC that luxury will never exist. So obviously there will be things on consoles that will take a while to be seen on PCs (like it happened with PS2 - the motion blur and insane particles weren't very PC friendly at that time - and later on the other consoles).

So really, you're paying 300 quid and get games that might look on par, sometimes better, sometimes worse, than PCs worth 3 grand. Plus no need to install, change drivers, change this and that.

I think it's a good deal.
 
london-boy said:
I'm not sure why there's such a doom and gloom atmosphere
Because people in the know are being fair and realistic and others who had hoped for miracles can't come to terms with that I think
 
In a way though I think those expecting 'miracles' won't be disappointed. Next-gen may 'only' have the power of a top-end 2005 PC, but ALL that power and those resources are available, and the hardware will be stretched as a PC's never will. In terms of numerical power statistics even if XB360/PS3 = Athlon64+Dual G70 etc., the actual output can put such a PC to shame at a fraction of the price. And I imagine specific games will achieve things on next-gen consoles not possible on PCs for a good while because, even though gaining access to that float performance might need a bit of jiggerypokery, anything that can make efficient use of SPEs is going to have a key advantage in local BW storage and float performance that PCs aren't set to get for a while.
 
It would be nice if people leaving Reputations comments such as "Utter Drivel" for my last post (which to me seemed quite calm and fair but anyway) would show who they are (it's all anonymous), and maybe, don't know, post their reasons why what i said is such utter drivel. That is, if they do have a valid argument, which i guess they do not have.
If not, what's the point of leaving bad reputation comments? Like throwing a stone and running away.
 
Last edited by a moderator:
Back
Top