Carmack again on PS3-360

All one really needs is a highly parallel solution that is better than an equivalent serial one. They do exist in many places. It may not be optimal, but if it is better than the alternative, what else can you do?
I'm not suggesting that one needs to find an optimal solution. If anything, I'd say that is an unreachable goal. I'm just saying that, given time and resources, your dev team will not necessarily come up with a good multithreaded engine.

It's hard enough to get developers to think like a CPU. It's much harder to get them to think like multiple CPUs operating independently.
 
I know that he is correct in his cautioning that there are fundamental difficulties in parallell processing, but so what - any change will bring with it pitfalls and possibilities.

Carmack said:
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.

This quote demonstrate both his points and attitude in one sentence.
Becuase it is also possible to see the new architectures as an exciting new path to explore, a path that not only promises to be the future, but also rewards the curious mind and the learning of some new skills, both intellectually and in terms of achieved results.

I think you are missing a key word in his sentance, namely "risk" i.e. trying to tap the last percentages of performance involves risk and pain and reward. e.g. Adding an extra year to development to get more out of the hardware, to absolutely utilize it, has some huge risks. Especially when you have a lot of peoples' hands on the code to get these results, because

Carmack said:
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.

In the past he has said he thought that MS and Sony jumped on multicore systems a generation too soon. Tools and experience hadn't seemed to have developed enough and that the single core solutions offered more immediate power and performance return for developers. To a degree I think he is right, and to a degree I think some level of parallelism was necessary this gen.

Anyhow, old debate. I find it most annoying that those who wish to criticize him about his PS3 comments leave out stuff like "tons of power" and a lot better than the PS2 and stuff like, "It's not a bad console; it's certainly far better than everything else except maybe the Xbox 360". He has also stated in the past that neither was a bad console. For a PC developer this is not necessarily a bad compliment. Does he love the 360 tools? Yes. Absolutely. As a developer tools that expose the hardware so they can spend more time working on the game itself is a good thing. That is why he gets excited and says things like "graphics programming is a blast. Microsoft has done a great job with all of their developer-support tools" and

GI: Since you’re moving ahead with the new technology within the Doom 3 engine, you’re not worried about adopting that for DX10?

Carmack: No, because the DX9 stuff—actually, DX9 is really quite a good API [application programming interface] level. Even with the D3D [Direct3D] side of things, where I know I have a long history of people thinking I’m antagonistic against it. Microsoft has done a very, very good job of sensibly evolving it at each step--they’re not worried about breaking backwards compatibility--and it’s a pretty clean API. I especially like the work I’m doing on the 360, and it’s probably the best graphics API as far as a sensibly designed thing that I’ve worked with.

When reading Carmack you also need to read him as a business owner--something very few developers and game programmers are. Carmack has done multithreaded software and left to his own devices he could create some killer software. But he doesn't create games on his own, he has a team who is largely familiar with the PC, and anything that detracts from the end result of his software. So when he says

Carmack said:
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.

His reality is that a) he enjoys working on smaller teams and b) he already is pressed with deadlines and delays. Adding a level of complexity, that he doesn't feel is quite necessary at this time in addition to NOT providing the tools to adequately to get the best out of the platform, he is hesitant. As Gabe Newell put it, it only takes 1 junior programmer to totally screw things up.

It is like a sport like football--you are only as good as the weak link. If your left tackle is horrible, it doesn't matter if your QB and WR are all pros.

So in the simplified mud slinging ****** forum world it is easy to take pot shots at Carmack, but there have been quite a few developers who have made similar comments about the struggles developers are facing. Anyone who knows John knows that he would be more than adequate to face the challenges himself, but that isn't how the development world is shaping up, especially for middle sized independant developer studios. It is just tit for tat (just like when a developer talks up Cell because of the big performance gains it gave for a problem or whatnot). But calling Carmack lazy and such is ignorant of him and the industry dilemmas and really doesn't pay much respect to a guy who has helped start up a lot of smaller development studios by himself and been a major player in bringing a lot of benefits to the industry.
 
I think you are missing a key word in his sentance, namely "risk" i.e. trying to tap the last percentages of performance involves risk and pain and reward. e.g. Adding an extra year to development to get more out of the hardware, to absolutely utilize it, has some huge risks. Especially when you have a lot of peoples' hands on the code to get these results, because

I don't really agree with John's attitude towards next-gen consoles in general and multiprocessing. To me his argument seems very close to "Unstable requirements are scary and risky, we want stable requirements". This is true in an ideal world, where we want stable requirements and very fast single-core CPUs. But in the real world of next-gen consoles and game programming we have unstable requirements, mult-core CPUs, and deadlines: the alternative is not having next-gen consoles or not making games.

I think the solution is for the industry to evolve its methodologies to tame the complexity required by games nowadays and reduce the cost of writing software, better tools, better organisation. It's more a mentality shift, in my opinion, rather than a technical problem.

Fran/Fable
 
I think it is pretty clear that Carmack made his statements from the perspective of someone who has responsibility for project coordination/completion.

And in that context his comments makes sense. However that is not the only perspective to take, and additionally, if you take the broader view still, as a professional would you want your environment to be the same four decades out even if it was an option (which it isn't)?
Even for someone in Carmacks position or similar, there are aspects of these developments that are decidedly positive as well, and it does seem that he focuses exclusively on the problems. They are more immediate I guess.

There are fundamental problems in parallell computation. In scientific computation we usually have the luxury of having relatively small parts of that total code base that does the lions share of the computational work, making hand tuning to the platform and straightening out the kinks relatively manageable. Still, even if you don't reach ideal utilization, is this a problem as long as you can wring enough performance out of the design to get the job at hand done? Your utilization of the platform will obviously improve as you gain experience, can reuse in-house and externally sourced libraries and so on.

What I like about the Cell is that it has a strategy for handling the difficulties that is scaleable for the future whereas UMA SMP doesn't scale too well for well-known reasons. On the other hand it is more demanding in terms of software restructuring. From my armchair perspective this makes the Cell a whole lot more interesting. The guys in the trenches may have another opinion however. :)
 
I would say that one obvious reason for Cormacks praise of Microsofts tools and downplay of Sonys hardware efforts is that he don´t want to bite the hand that has fed him through out the years. Remember he was on the advisory board for the original Xbox as well.
Microsoft has supplied the vehicle(mainly windows) for his games and he wants it to continue to be that way. Microsft will supply similar APIs for the 360 and PC, very convenient for him. If the 360 becomes the winner in the "console war", that means good business for him.

Judging from his comments he is not giving the PS3 version of his new game much TLC. I bet he is only doing a PS3 version because his publisher required it for funding his game.

I am not saying this to diminish his work or comments, I just think his comments should be seen from an economical point of view as well. You'll find more playstation centric developers praising or complaining about different aspects of the latest generation of consoles and their comments should be viewed in a similar way.

BTW John Cormack is a very vocal and outspoken person, a bit of a Henry Rollins of the game developer community, but that does not mean his opinions should carry more weight than others who carry similar achievements in their luggage but are less outspoken. That luggage may some time work against you as well. You get the less susceptible to change the older you get, sad but true.

I expect that some of the coming ground-breaking titles will be coming from a younger generation of game designers and programmers that embrace this paradigm shift in the console architecture. :)
 
I would say that one obvious reason for Cormacks praise of Microsofts tools and downplay of Sonys hardware efforts is that he don´t want to bite the hand that has fed him through out the years. Remember he was on the advisory board for the original Xbox as well.
Microsoft has supplied the vehicle(mainly windows) for his games and he wants it to continue to be that way. Microsft will supply similar APIs for the 360 and PC, very convenient for him. If the 360 becomes the winner in the "console war", that means good business for him.

Judging from his comments he is not giving the PS3 version of his new game much TLC. I bet he is only doing a PS3 version because his publisher required it for funding his game.

did you read the article, or know any of Id's history. He has pretty much used every api except directx up until now, and Id's games are on Mac, Windows, and even Linux, the only thing that is true was that he was on the xbox advisory board.

and Id is self funded so if the game is coming to PS3 it's because they wanted to make a game for the PS3 not because the publisher told them to
 
I bet he is only doing a PS3 version because his publisher required it for funding his game.
Id is their own publisher. At least do your research before launching specious attacks on someone's credibility.
 
Last edited by a moderator:
Maybe. But didn't we all think the same back when we made our first recursive routines, or when we first started proper modular programming, using classes and headers, and so on?
Some problems are never cracked, in that they're eliminated or substantially reduced. Writing a novel is hard. If you just sit down and type, chances are high that you'll create a work of tripe, with no proper plot, inconsistent, one dimensional characters, logistical holes, grammatical errors, etc. You have to spent a bit of effort learning the ropes. Once you 'crack' those, once you've learned the ins and outs of proper plot structure, development, characters etc., it's a still hard job! It's just now you know how to go about putting yourself to work writing a novel, rather than working on something that's no good as a novel. Understanding mutlithreaded code is needed to be able to write it, but that knowledge won't make it easy. It'll only make it possible.

I'm actually envisaging mutli-threaded code, particularly in the future, like a school class of 6 year olds with the developer as the teacher. The complexity of the threads is such that their interactions become difficult to manage with unexpected interactions cuasing problems. No matter how seasoned and experienced a treacher you are, it's never easy. The difference is a rookie who's worked in private tutoring (single threaded education) will enter the class and be eaten alive, with the kids running amuck. The teacher will expend work managing the class and keeping things mostly on track. The rookie programmer will throw threads and data structures at the cores trying to get the wretched machine to process something. The expert will spend a lot of effort writing multithreaded code, but at least they'll be able to. That's not going to make the job of writing multithreaded applications as easy as writing serial single-threaded ones, any more than experience of classroom teaching is going to make classroom teaching as easy as tutoring one kid.

At the moment I guess you have devs without much clue of large-scale multithreading who are in the 'I can't do this! It's hideous! Arrrrggghhhhhh!' shocked frame of mind. Once they 'crack' it, all that'll enable them to do is burn many hours struggling to work their programs onto computer, where before-hand they couldn't even manage that!
 
Id is their own publisher. At least do your research before launching specious attacks on someone's credibility.


Well ,Activision published most of ID games.Id did only publish doom 1 on his own.
 
Last edited by a moderator:
I would say that one obvious reason for Cormacks praise of Microsofts tools and downplay of Sonys hardware efforts is that he don´t want to bite the hand that has fed him through out the years. Remember he was on the advisory board for the original Xbox as well.
Microsoft has supplied the vehicle(mainly windows) for his games and he wants it to continue to be that way. Microsft will supply similar APIs for the 360 and PC, very convenient for him. If the 360 becomes the winner in the "console war", that means good business for him.

Judging from his comments he is not giving the PS3 version of his new game much TLC. I bet he is only doing a PS3 version because his publisher required it for funding his game.

I am not saying this to diminish his work or comments, I just think his comments should be seen from an economical point of view as well. You'll find more playstation centric developers praising or complaining about different aspects of the latest generation of consoles and their comments should be viewed in a similar way.

BTW John Cormack is a very vocal and outspoken person, a bit of a Henry Rollins of the game developer community, but that does not mean his opinions should carry more weight than others who carry similar achievements in their luggage but are less outspoken. That luggage may some time work against you as well. You get the less susceptible to change the older you get, sad but true.

I expect that some of the coming ground-breaking titles will be coming from a younger generation of game designers and programmers that embrace this paradigm shift in the console architecture. :)

When did Ad Hominen become a regular tactic in B3D when addressing the opinions of well known, respected and knowledgeable people in the industry? Its obvious that its difficult to formulate an convincing argument against a well known and highly experienced person in a field where most of us are mainly ethusiasts, but why resort to inference of bias or terms such as "whiny" and "lazy".

While the argument over single thread vs. multi-thread is mostly dead, there still the argument on how the industry should move forward from here, so I think Carmack comments still has some relevancy. Should MS and Sony focus more on adding performance of future generation of consoles through core additions or core complexity/speed?

I believe increasing performance by adding more cores places more burden on developers to produce greater visual quality expected by consumers, so Carmack's take is understandable. Everytime you add a core you add another level of complexity yet still have to deal with diminishing of returns in relation to performance scalability.
 
Last edited by a moderator:
His points seem to be split between 2 halves. The techincal half and the business half. So really, he has to compromise between the two for the welfare of his company.

You don't want to go for "perfection" and end up with Prey, Duke Nukem: Forever and Stalker like scenarios. Clearly that's not very productive.

At some point you draw the line. The dev tools simply help him push that line further as the project can still be completed within a certain timeframe based on the quality of the tools at his disposal. An architect can be great and knowledgable but if he doesn't have the proper tools at his disposal, he can only do so much, in the given amount of time.
 
Should MS and Sony focus more on adding performance of future generation of consoles through core additions or core complexity/speed?

Focusing on adding performance via increasing complexity/speed was not working. The decision to go multi core was forced on them.

One other point to remeber is that Carmack does not like gimmicky features. He likes good overall solutions and does not like to put any significant effort on "gimmicks". Like for example I'm sure he considers the SPU ray traced clouds in WarkHawk a gimmick and would never care to implement something like that himself. Similarly if you were spending a whole SPU just to animate your main characters hair.

Gimmicks like that are an easy way to make use of avaiable resources now, and look cool, but he probably thinks it's silly. His technology decisions seem to be based on not "is this going to be cool in a game" but more "is this going to improve the engine overall".

On the downside, his games tend to turn out pretty generic. And usually when I play them I like what I am seeing overall, but nothing really stands out as fresh or different. He choses to improve the overall scene and not select aspects of it.
 
Nesh said:
So Carmacks statements should be a little biased right?
Most people are biased to some degree. ;)

pegisys said:
He has pretty much used every api except directx up until now, and Id's games are on Mac, Windows, and even Linux, the only thing that is true was that he was on the xbox advisory board.
He should definitely have credits for giving some support to Macintosh and Linux up until Doom3. Anyway from a strictly business point of view he earned his money on Microsofts platform and that was my point.
pegisys said:
and Id is self funded so if the game is coming to PS3 it's because they wanted to make a game for the PS3 not because the publisher told them to.
That sounds great if it is true. Do you have some links that support they are completely self funded on this particular project?

dobwal said:
but why resort to inference of bias or terms such as "whiny" and "lazy".
Where did I write that? I really tried to keep it balanced by adding stuff like "You'll find more playstation centric developers praising or complaining about different aspects of the latest generation of consoles and their comments should be viewed in a similar way". I am not sure I can comment on the view of any person without it being "ad hominem" attacks by your standards.

dobwal said:
Everytime you add a core you add another level of complexity yet still have to deal with diminishing of returns in relation to performance scalability.
This does not really make sense to me. Once you've gone beyond 3-4 cores the level of added complexity does not change that much with each new core, but it may let you add one more fully animated close-up character with a complex AI to your scene.

Shifty Geezer said:
At the moment I guess you have devs without much clue of large-scale multithreading who are in the 'I can't do this! It's hideous! Arrrrggghhhhhh!' shocked frame of mind. Once they 'crack' it, all that'll enable them to do is burn many hours struggling to work their programs onto computer, where before-hand they couldn't even manage that!

You are probably right about this. The hard part is to synchronise the inputs and ouputs of different cores in order to make the most efficient use of them, you do not want them to be stalling when waiting for some particular data. When you have all jobs being done on one core you never have this problem. I think Ninja Theory had an elegant solution, where they distributed jobs of a well known size (cpu cycles) over the cores by some kind of job manager according to DeanoC over here. They obviously do not have one particular SPU set a side for hair animation as some interviews have indicated earlier.

That kind of job manager does still not give the most efficient use of the cores, but it will achieve an even distribution of the job load over the cores and thereby achieve a high degree of utilisation and that is a good thing. It neither solves all problems with synchronisation of inputs and outputs, but it helps in some cases where you have dependencies, as indicated by DeanoCs comment about one job triggering several other jobs.
 
Last edited by a moderator:
What I took from the article was that Carmack is concerned about being able to release quality titles on time and on budget. You can call him "whiny," but he's trying to keep his company, in which he's heavily invested, afloat. He doesn't think the theoretical "power" of the PS3 outweighs the benefits of the Xbox360s better tools. Multi-threading is complex, and it creates an extra burden on his team. The 360 tools will help them get the job done on time and on budget, so that's the route he picked. In his view, Microsoft values developers as customers more so than Sony. I'm not sure what is so outrageous about this. In an ideal world, where software companies don't have to worry about financial risk and deadlines, you could create an infinitely powerful and complex machine, and everyone would race to work on it, because there would be no reason not to. In reality, that is not the case and he just doesn't think, from a business point of view, that the extra complexity is worth it. I've worked with multi-threading. The concept is not difficult, but debugging can be much more difficult.

Maybe people are just mad that he's not focusing on the Playstation3. Console makers have many customers and two of them are the people that play the games and the people that make the games. Maybe Microsoft does a better job of recognizing the latter and delivered a product that would be more suitable for them to work with. It's not an unrealistic suggestion.
 
Last edited by a moderator:
You can call him "whiny," but he's trying to keep his company, in which he's heavily invested, afloat.
I agree and it is nothing wrong about that. Microsoft has a more software centric view of the console business and Sony has a more hardware centric view. If you are coming from the PC world one of them will probably be more appealing than the other.
 
Last edited by a moderator:
When did Ad Hominen become a regular tactic in B3D when addressing the opinions of well known, respected and knowledgeable people in the industry? Its obvious that its difficult to formulate an convincing argument against a well known and highly experienced person in a field where most of us are mainly ethusiasts, but why resort to inference of bias or terms such as "whiny" and "lazy".

Ad Hominem arguments should always be avoided in any serious discussion. Carmack's (and anyone's) opinion should be taken as it is and discussed only on the basis of what it's stating and nothing else. Said that, I don't think that multithreaded programming is even close to be the main reason why games cost more today than yesterday: producing art assets, organizing 100+ people teams, putting processes in place is impacting the budget more in my opinion.

Fran/Fable
 
I'm not suggesting that one needs to find an optimal solution. If anything, I'd say that is an unreachable goal. I'm just saying that, given time and resources, your dev team will not necessarily come up with a good multithreaded engine.

It's hard enough to get developers to think like a CPU. It's much harder to get them to think like multiple CPUs operating independently.

(Sorry Inane, I hope you don't think i'm picking on u.. :D )

I don't agree with that statement.. When developing video games on either consoles or PC, one doesn't "have" to get the dev's to "think like a CPU" since you could quite easily allow them to work in the layer of the game engine you (or someone else) has built which abstracts totally over the hardware (which could be either single or multicore).. And even if you did, it's not that hard to "think like a CPU" for anyone whose used to working with them at the low-level since they aren't as complex in execution as they are in physical design.. Not to mention the fact that the kinds of people who will be working with at this level in terms of putting together your engine code, optimising etc, are going to be "highly trained, highly intelligent" individuals who have had years of experience dealing with getting CPUs to run your code faster.. And I'm sure many, if not all of tyhem have had some kind of experience dealing with multi-threading systems either practically (at work) or having the theoretical background knowledge provided by almost all academic qualifications in the field of computer science and the like..

To be honest I think all those people who are saying "multi-threading is hard" aren't giving the professional developers who work would be building such systems, enough credit.. John Carmack is by far not the only technical genius in the software industry (he's just passionate about technical creativity and lucky because he's been given the opportunity to be technically creative/inventive for a living..) When you've worked with some of the kinds of people that I have you'll soon realise that everything a programmer does from an external perspective is difficult, but the sheer depth of experience and knowledge most have mean that if you put any team of programmers on such a task, given enough time and resources they are bound to come up with a solution which is both practical (e.g. an engine fast enough to run the kind of games intended), elegant in design and provide the developers enough further knowledge of problem that, should they be given the opportunity again to build a more optimal solution, I've no doubt that they would..

Multi-threading is "hard" when your new to the practical challenges your going to face when developing an implementation of it (the point is most professional programmers aren't new to it)..

But with experience comes the knowledge and ability to highlight known pitfalls and errors to you beforehand so that in developing new systems you don't make the same mistakes twice, hence making the ability to derive a "good" solution to the problem much "easier" than it initially would have been..

EDIT: I'm not trying to undermine the image of JC or trying say he's "a dinosaur" or "cranky old man" like some.. I'm merely opposed to his arguements because I feel that, if a developer like myself who probably hasn't had even half the experience in the field of multi-threaded systems as JC, can say that multi-threading (in theory & with the practical experience I have in developing small-scale multi-threaded apps) isn't as difficult (in general I mean.. On an individual level some may find it more challenging than others) as people around here seem to think, then it's a bit worrying to me when someone like JC is saying otherwise?
 
Last edited by a moderator:
Back
Top