Developers are not the problem
Now here is the thing that is going to really confuse the issue. It is not the guys hammering away on the keyboard late into the night that are the issue here. You see the actual developer knows the need for SMT and SMP support and also knows what can be done with it. The bean counters at the top usually have no idea, but see any time devoted to this as a waste of resources (which is another way to say money); which means that even though the people doing the work understand the issue, they will never be allowed to do anything about it due to a lack of understanding at the corporate level. This is true for just about all types of software and is almost doubly true for games.
Remember in the world of game development, the console is the king. That is not to say that consoles are better than PCs. In fact, the opposite is true. It just means that the console is the bigger money maker. The current consoles on the market all use an old, tried and tested friend; DX9. This means that to make a new game there is no requirement to develop a new engine; they simply recycle the old one and drop in a few tweaks. Distribution companies can charge for upgrades and map packs making the console game the cash cow of the industry.
Since we know that the software industry is all about money, it makes sense that we will see this trend increase. But there is more to this than just map pack sales. You see, because the development companies can use DX9, many are reluctant to use anything newer like DX10 or 11, both of which have better support for offloading instructions to multi-core CPUs. Instead, what we get are a handful of graphical features from the new APIs and that is about it.
We spoke with a couple of developers that told us they wish they could do a ground up redesign of their engine. It would let them improve it in more ways than graphically. When you start a new project you can use lessons learned from past projects and bypass many issues you might have had to patch before. You can end up with a cleaner and more efficient product working this way. You can also start working new features and API support in from the beginning instead of trying to shoehorn it in after the fact.
The down side of this approach is once again, money. Doing a ground up new build is time consuming and costly. Even if you get support from companies like NVIDIA, AMD or Intel, it is still going to cost you. But here is another wrench to throw at the monkey. NVIDIA does not want more information off loaded to the CPU; it would take away from their push to get more information on the GPU. Yes, you heard right, NVIDIA does not want any game engine to be more CPU efficient. NVIDIA probably does not want any application to be more CPU efficient either. Why? The first reason is again money. After all, if games and applications were more CPU efficient then NVIDIA would not be able to sell Tesla and Cuda off on the market. There are others, but they are not as large as the ability to sell GPU based computing. Now, this is not to say that a CPU is as powerful or efficient as a GPU. They are not; but then again, there are reasons for that, too. Still, with a little bit of effort, CPUs could give a much better showing.
The same model is applied to normal software, but on a more aggressive scale. Here the people running the business absolutely do not want to spend the money to develop applications that have multi-thread support. They argue that the consumer does not want this or even know they do not have it. They get away with this type of thinking because of consumer ignorance of the issues at hand. For example; if a new game or application runs poorly, the OS, the CPU, the GPU and everything else but the actual application are blamed. It is hardly ever the fault of the software or its lack of proper support for the environment it is being run in. If more people knew this there would be a greater demand put on ISVs to get to work in providing this support.
The game changes at the bottom level
But what we have touched on so far is not the whole picture. There is a growing movement to give multi-threaded support. This is in the smaller software development houses, the ones that are putting out the transcoding applications and the like. These are becoming more and more SMT aware and very efficient at what they do.
But then again, many of these are run by the same people that are doing the actual coding; they see the benefit of faster and more efficient products at the ground level. This is the opposite of the corporate model we talked about above. Just look at some applications like AVS, AutoGK and even Videora. They are all highly threaded and very efficient at the tasks they perform. They also make use of the latest Codex support like Divx and Xvid; you see upgrades that incorporate new changes in technology on a routine basis, not just bug fixes.
So, the next time you wonder why you do not see any improvement in performance when you drop in a CPU with more cores than the one you have, think about the state of the software industry. It was not until the latter half of 2009 that Windows 7 came out with a more scalable scheduler for the consumer space. Game companies do not want to spend the money to start over from scratch, while ISVs think there is no need because consumers are not directly asking them for it (and also do not want to spend the money), and you may even have some companies working to prevent the move to more thread efficient applications.
Still, it is inevitable that for the near future both Intel and AMD will be pushing more and more cores at you. This may change in 2011-2012 when both AMD and Intel release their next generation of CPUs, but that does not help people now. This is especially true for the entry level and mainstream market. For them the change will not hit them for a few more years; more like 2014-2015 as the next gen CPUs trickle down to them.
Still, there is a ray of hope for the consumer. This is the small development shops; they have the idea right and are working with the changes in technology instead of against them. Maybe one day the ISVs and Game Distribution companies will wake up and start giving the consumer what they need to make the most of the systems they have, but I suppose until there is obvious money in it and until they are shown as the source of the problem (not just dumping the blame on the OS or hardware), we will get the same old business as usual.