John Crichton said:I am curious: what should have Sony and Microsoft done? And keep in mind that you only have the release dates to work with. You have to launch the console when they did. What hardware changes should Sony have made for the PS3 that would make the most sense?
The PS3's a really wierd, expensive design that has a lot of hallmarks of something being stuffed on at the last minute -- in this case, the nVidia graphics card -- and of spending a lot of effort to promote something (Blu-Ray) that adds a lot to cost and does nothing for games (for the rare games longer than 9GB, spanning multiple DVDs is cheaper than using a Blu-Ray disc).
Sony, in my opinion, should have
- used a more conventional CPU (optimized for working with one or two threads, not eight)
- used a single type of memory (the original Xbox showed that unifying video memory and system memory was a Good Thing for a console)
- dropped Blu-Ray (2006 is too soon for a Blu-Ray promoting console to be sold at anything resembling a reasonable price) and integrated Wi-Fi
- never made any silly pretentions about 1080p -- the PS3 isn't capable of running complex games at a decent framerate at that resolution
- launched only one package (the Core/Premium system sucked for the 360, and it sucks for the PS3)
Microsoft, in my opinion, should have
- used a more conventional CPU
- ensured more high-profile titles were available at launch, even if it delayed launching until 2006
- launched with only one package
- included a larger hard drive
John Crichton said:That's all well and good but how does that effect games? Make them look crappy? Makes the AI harder to program? I know I sound like I'm just arguing at this point but what does multithreading actually do? How will it makes gaming better? I'm really curious.
A CPU that's designed to run a lot of threads at once rather than run one or two threads fast means that software has to be highly multithreaded to get the most out of the CPU.
Multithreading means you're trying to do multiple things at the same time. So when you're doing stuff that can be easily broken up into independent tasks, that's great. Multi-threading helps a lot in situations like that. But when the tasks all have to talk to each other, then you're spending a lot of time trying to keep in sync rather than doing any real work (you've probably seen why an eight-man team is rarely eight times faster than one guy at anything that can be done by one guy, unless it's something that can be easily broken up into eight independent things -- the same thing applies to computers).
Games historically haven't been very well suited to being multi-threaded, because there's not much going on that isn't reactive to user input (what the guy with the controller is doing). What it means is that AI is harder to program (maybe to the point where what academic computer scientists think of as AI may be useful, rather than the stacks of if/then and case statements that are game AI today), and that if game programmers are going to get any use at all out of the extra CPU cores, they'll have to think of new things to do with them that can be run largely independently of the main thread. No one knows what they will be. What's certain is that using multi-threading to improve games in traditional ways (more complex and better-looking graphics) is going to be extremely difficult, if it can be done at all.