The Desktop CPU Isn’t Dead, It Just Needs A Swift Kick In The Butt

Desktop PC`s today are overkill for pretty much anything thrown at them , start making applications/games that use ALL cores.

What the desktop cpu needs is less lazy devs that don't use all cores.

Oh I'm sure they can use all the cores if they wanted to. But do you really want a program that maxes out a 5820k for just playing music and take up GBs of RAM, or would you prefer a music player that uses less than 5% of a core and MBs of RAM? Not every program has to be written to utilize all of the resources, programs should be written to use as little resources as possible to achieve their goal.

No, the reason I still have people at the office using 5 year old laptops, is because the new laptops where only 5-10% faster.
There is no reason to spend $1,500 for a CPU that is only 5% faster.

I highly doubt most of those people would notice a 100% faster CPU assuming everything else is equal.

There it is " its enough for me so it mus be enough for everyone"

Brute force compression optimizing
Scientific research
Data pattern recognition.
All things that can take much more CPU power.

The market for that in the consumer space is small. Demand for that in commercial and enterprise is much higher, hence the existence of Xeon processors that are 2-3 times the price of consumer processors.
 
I mean the problem isn't really hardware right now..

The enthusiast in me "Wants" more cores if I could afford it. The other part of me realizes nothing I have even comes close to maxing out what I currently run and I'm just running a lowly i5.
 
How many people do you think do some kind of content creation? Lets say Photoshop, video editing, and digital art & design. These aren't CAD users, they're not running simulations. But there are literally millions of them, and even the latest high end PC is going to struggle with PS filters, chugging 4K video streams, and laggy pen response from art programs.

I think millions is a good ballpark number but that isn't enough for a CPU manufacturer to cover their bills, because it's not enough of a core market. Intel does make some highly-threaded CPUs and the high costs reflect the fact that those products target a smaller market. So they have to make up the lack of volume with higher prices.

I'll probably get killed for saying this, but some of the image editing and filters should probably be done on a GPU.
 
Try paying $600 for a PII-450Mhz back in the day. And you think $330 is expensive?

I paid $1200 for a Pentium Pro + Motherboard.
That Hurt!

And true to Intel nature, they turned around and dropped the Pentium Pro Socket 8 format (after a single iteration ffs!!) in favor of those kludgy Pentium II slot processors which had me removing the casings to mount aftermarket coolers. :-/
 
There is a simple truth when it comes to game design. Most game companies don't have engine programmers. They are using engines like Cry/Unreal/source ect. Most game development comes down to art guys and programmers who are more on par with web programmers then low level assembly language number crunching super geniuses.

The point Zarathustra made is very valid. You can't multi thread everything... and games are one type of software where things really can't be split all that well. Graphics sure you can split frames farm out work per pixel or frame.. but the GPU does the majority of that work. Sound can be divided somewhat with channels being split over cores... but that doesn't really find you much performance, and old things built into the CPUS like MMX do a good job of that already. Physics can only be multi threaded a small amount and see any gains for the reasons Zarathustra mentioned.

The bottom line is good game developers don't really = coders. Its why game engines have become their own business. There simply isn't that many people in the world with the skill to create modern game engines. Most of the sloppy games we have seen the last few years are not due to bad optimization as much as its simply bad testing. Memory leaks in big AAA games and such isn't because there is an issue with the Unreal or Cry engine they are using its because someone hasn't caught a variable somewhere that is loading more then it should... or is loading textures 10x larger then required because some art guy loaded it to paint a small part of a scene that could have been done with a smaller version of the asset. Those types of bone headed things don't get fixed by threading the engine more. :)

ID software is an exception and always has been. JC makes that company special because clearly he isn't an average programmer. I would counter that their games are pretty one note and boring. Its like saying Jerry Bruckheimer has shown the industry how to make things splod right on screen... that may well be but his movies still suck. lol :)


My point was that back in the day, more companies were like ID - they weren't always the exception; they were the rule, and if you don't remember that, then maybe you haven't been gaming as long as I have (or maybe you are and simply forgot how things used to be).

When I got into PC gaming in the mid to late 90s, the software was always pushing the hardware, and upgrades were immediately noticeable.

Maybe that isn't the case any further, and I think you are in part right about the engines - which is why since engines have become a business, it makes even MORE sense, NOT less, for them to be better optimized than they are.

I don't think you are 100% correct though in terms of engines - sure, there are main engines that are leased out to gaming companies, but there are plenty of stories about those gaming companies then further modifying those engines on their own end to support their needs. SW:TOR famously licensed a pre-alpha version of the hero engine, only to heavily modify it to the point where the makers of the hero engine can no longer even support it.

The main issue here is group-think. If an idea sounds plausible that it begins to get traction, well, as I said before, truth doesn't matter - perception is reality, and it takes a bit to break from a false perception believed on that magnitude. For instance, there still is the BS about the human eye not being able to see past 60 FPS, even though anyone who has gamed with a higher framerate than that notices the difference.

What I am getting at is maybe you THINK that is how gaming companies are (and you are in part, correct about how badly they treat their employees), but perhaps you don't have the whole picture because of assumptions made based on limited (if true) information...
 
My point was that back in the day, more companies were like ID - they weren't always the exception; they were the rule, and if you don't remember that, then maybe you haven't been gaming as long as I have (or maybe you are and simply forgot how things used to be).

When I got into PC gaming in the mid to late 90s, the software was always pushing the hardware, and upgrades were immediately noticeable.

Maybe that isn't the case any further, and I think you are in part right about the engines - which is why since engines have become a business, it makes even MORE sense, NOT less, for them to be better optimized than they are.

I don't think you are 100% correct though in terms of engines - sure, there are main engines that are leased out to gaming companies, but there are plenty of stories about those gaming companies then further modifying those engines on their own end to support their needs. SW:TOR famously licensed a pre-alpha version of the hero engine, only to heavily modify it to the point where the makers of the hero engine can no longer even support it.

The main issue here is group-think. If an idea sounds plausible that it begins to get traction, well, as I said before, truth doesn't matter - perception is reality, and it takes a bit to break from a false perception believed on that magnitude. For instance, there still is the BS about the human eye not being able to see past 60 FPS, even though anyone who has gamed with a higher framerate than that notices the difference.

What I am getting at is maybe you THINK that is how gaming companies are (and you are in part, correct about how badly they treat their employees), but perhaps you don't have the whole picture because of assumptions made based on limited (if true) information...

I do remember early gaming and your not wrong... but thing have gotten far more complicated then they where in the early 90s. 10 years before that Atari was releasing games made by ONE person. In the early 90s companies like ID where making games with less then 5 people. Things have progressed. Simple sprites... to basic C+ module style engines like the ones ID used to make Commander Keen... to basic 3d engines that used very simple don't need to be an artist textures to render.. to more complicated engines that required actual Artists (not coders) to create textures for... to the engines of today that not only require those texture artists but also coding artists capable of programming shaders ect, many engines pretty much have their own scripting languages at this point.

With Bioware and TOR I do know the story somewhat I went to school with a few guys that worked for Bioware Canada. Yes they felt they made a big of a mistake going with the hero engine, its saved them some time hitting early mile stones required of them... but it as you suggest with all their modding. It cost them lots of money in the stretch. Part of the reason that games budget ballooned as it did wasn't all to do with recording voice over lines, a lot of that had to do with hiring lots of expensive engineer type programmers to make that unfinished engine do what they needed.

You aren't wrong of course that what people believe will be held against things. Sure people believe that somehow Engines are to blame... but that simply isn't at all true. You can have something like the batman game that runs like a dog... and you can have a game like bioshock that doesn't. They are both running on the exact same engine. Neither of those developers are hacking up the engine code... they are running stock Unreal 3 engine. The issue is the coding they do is really scripting more then coding. You can think of the modern engines as a web type platforms... where it compiles much simpler calls for the developer. They are scripting shaders like a web programmer would create some HTML 5 or Java Code... they build UIs in the same way a web programmer would use Style sheets, and the content is all added in much the same way web programmers these days use CMS systems. Very few companies ever touch the actual engine code... it is simply to much work which costs way to much money and when they do touch the code that is when you actually get the type of bugs that make people think its not optimized.

Wolfenstien 3d consisted of 6746 lines of code
Quake 3 had 310,000 lines of code
Cryis had 1 million lines of code
Unreal 3 has 2 million lines of code
Unreal 4 I am not sure exactly but I would have to guess they have likely added another million or so lines at least

Modern engines with the level of realism people want in games today aren't going to be touched by game studios. Games with poor optimization of course are out there we have all played them. The thing is they are not programmed in the same way we where used to thinking of back in the 90s when a few guys build games like Doom in a garage. Games these days are done exactly the same way large web sites are developed, just on a larger scale. If you go to a website that runs like junk... most people know enough to understand its not the fault of HTML 5 or Drupal ect. (ok lets not include java :))

With that in mind I think you can understand why its a simple fact that the vast majority of game studios don't treat their programmers like rockstars anymore. For the most part games aren't produced by the genius level programmers like Carmak who recreated Super Mario Borthers 3 in a few thousand lines of code in a way where he was really building one of the first multi game capable engines. Most game programmers these days are not programming in assembler or even C anymore they are pretty much in charge of building variable calls and loops in script languages for the major engines. In many ways game development really is on par with web development these days in terms of skill level required.
 
His solution is the opposite of what would get people excited. Desktop PCs already have way more power than what most software needs; and what most people, present company excluded ;) , get excited about is what they can do with a machine, not the machine itself.

Your phone has more than enough hardware power to web browse, e-mail, video, basic gaming, and tablets and laptops scale that up for those that want more.

What desktops need is more compelling software that makes it worth dedicating the space in your home and the money to get one. Clearly, I and we think it does, but I don't think that sector is growing much. Hopefully, VR is that "killer app" that can breathe some life into the PC market, and even more hopefully, that has good downstream effects into non-VR game development with more powerful desktops out there.

Now get off my lawn and leave me in my rocking chair with my rose colored glasses alone.
 
I do remember early gaming and your not wrong... but thing have gotten far more complicated then they where in the early 90s. 10 years before that Atari was releasing games made by ONE person. In the early 90s companies like ID where making games with less then 5 people. Things have progressed. Simple sprites... to basic C+ module style engines like the ones ID used to make Commander Keen... to basic 3d engines that used very simple don't need to be an artist textures to render.. to more complicated engines that required actual Artists (not coders) to create textures for... to the engines of today that not only require those texture artists but also coding artists capable of programming shaders ect, many engines pretty much have their own scripting languages at this point.

With Bioware and TOR I do know the story somewhat I went to school with a few guys that worked for Bioware Canada. Yes they felt they made a big of a mistake going with the hero engine, its saved them some time hitting early mile stones required of them... but it as you suggest with all their modding. It cost them lots of money in the stretch. Part of the reason that games budget ballooned as it did wasn't all to do with recording voice over lines, a lot of that had to do with hiring lots of expensive engineer type programmers to make that unfinished engine do what they needed.

You aren't wrong of course that what people believe will be held against things. Sure people believe that somehow Engines are to blame... but that simply isn't at all true. You can have something like the batman game that runs like a dog... and you can have a game like bioshock that doesn't. They are both running on the exact same engine. Neither of those developers are hacking up the engine code... they are running stock Unreal 3 engine. The issue is the coding they do is really scripting more then coding. You can think of the modern engines as a web type platforms... where it compiles much simpler calls for the developer. They are scripting shaders like a web programmer would create some HTML 5 or Java Code... they build UIs in the same way a web programmer would use Style sheets, and the content is all added in much the same way web programmers these days use CMS systems. Very few companies ever touch the actual engine code... it is simply to much work which costs way to much money and when they do touch the code that is when you actually get the type of bugs that make people think its not optimized.

Wolfenstien 3d consisted of 6746 lines of code
Quake 3 had 310,000 lines of code
Cryis had 1 million lines of code
Unreal 3 has 2 million lines of code
Unreal 4 I am not sure exactly but I would have to guess they have likely added another million or so lines at least

Modern engines with the level of realism people want in games today aren't going to be touched by game studios. Games with poor optimization of course are out there we have all played them. The thing is they are not programmed in the same way we where used to thinking of back in the 90s when a few guys build games like Doom in a garage. Games these days are done exactly the same way large web sites are developed, just on a larger scale. If you go to a website that runs like junk... most people know enough to understand its not the fault of HTML 5 or Drupal ect. (ok lets not include java :))

With that in mind I think you can understand why its a simple fact that the vast majority of game studios don't treat their programmers like rockstars anymore. For the most part games aren't produced by the genius level programmers like Carmak who recreated Super Mario Borthers 3 in a few thousand lines of code in a way where he was really building one of the first multi game capable engines. Most game programmers these days are not programming in assembler or even C anymore they are pretty much in charge of building variable calls and loops in script languages for the major engines. In many ways game development really is on par with web development these days in terms of skill level required.

It definitely is food for thought, but then it does beg the question: SOMEONE is making these game engines. Why aren't the people making the engines treating it with more care, and trying to optimize the shit out of them, knowing that this will affect sales on all the games the engine is used for, and a more optimized engine can result in more sales, which means more royalty for the game engine designers?

And that's the rub - you may be right in how the landscape has shifted, but somewhere there are people who work on those engines, and they do a pretty piss poor job of optimization of them, which frankly is bad business given that a better optimized engine will result in more revenue - especially if you get the jump on your engine competitors to do it.
 
  • Like
Reactions: ChadD
like this
It definitely is food for thought, but then it does beg the question: SOMEONE is making these game engines. Why aren't the people making the engines treating it with more care, and trying to optimize the shit out of them, knowing that this will affect sales on all the games the engine is used for, and a more optimized engine can result in more sales, which means more royalty for the game engine designers?

And that's the rub - you may be right in how the landscape has shifted, but somewhere there are people who work on those engines, and they do a pretty piss poor job of optimization of them, which frankly is bad business given that a better optimized engine will result in more revenue - especially if you get the jump on your engine competitors to do it.

I think the engines are very optimized for the most part. Unreal 3 and 4 run very smooth. I haven't heard anyone accuse Crysis games of being shoddy so the engine is clearly well optimized.

The thing is its just an engine. What slows them down is badly scripted games. The same is true of any platform which is the way to think about the major engines. You can have a well coded Java game and a terribly coded one... the terribly coded one isn't the fault of the programming language.

Games with issues have the following things happening that slows them down in almost all cases. This is my top 5.

1) badly programmed / unnecessary layered shaders and particle effects
Some game designers just do more with less... some designers are simply better. They can add a few shaders that look great and give you max visual effect with out going nuts on the required GPU / CPU cycles. Others don't take end users into account and layer shaders that may perhaps look better or not but require tons of extra horsepower. (most games have GFX options to select number of lights on screen ect... and some don't forcing your GPU to perhaps display a lot more then it is capable of)

2) Bad use of Large Textures
Since the dawn of 3D engines this has been a problem. As soon as companies started hiring people that where artists and not coders this became a problem for some projects. People making choices to load very large textures for little pay off. You will not find ID software loading a massive textures for a small part of a scene like a heros boot, or the underside of a stair case or some other small part of a scene that players will whip by. Again most games have texture size settings... some don't and some steps that are two large going from terrible looking to 99% of cards will have to cache like crazy territory. Still all the settings in the world in the menu won't fix the issue if one art guy insisted on using 4k textures on small elements in the game.

3) inelegant meshes / models
This is an art issues. Some artists get the most our of their polygons. Just like any other art... some artists don't need to hide under a ton of brush / pencil whatever strokes. Some games have great looking models using nice tight models and some have thousands of points on something stupid simple like a torch handle. Choices the artists make on something like that can have a massive negative impact on game speeds.

4) poor scripting
In all the major game engines these days games are scripted within the engine software. This video should give you an idea of how it works. This is type of tool used in the making of 99% of games out there. (even in companies that use their own in house engines build tools that look just like the unreal ones). You can see it doesn't take much to create a variable check or some other branch that could possibly slow things down if its not done right. Its also possible for entire routines to accidently get repeated causing extra cycles to leak or strange bugs to happen. (it happens in all software consider Apples recent battery issues where the issue was with a specific setting switched icons where loading on a loop) Most developers note things very well and that isn't an issue... still it has happened even in big titles. It is what is behind lots of bugs where X or Y feature (like a stamina bar) crashes or doesn't work properly in X area ect. In the worst cases it doesn't crash anything or do anything anyone noticed other then burning extra CPU cycles.

5) using the wrong engine
There is two sides to this issue. One is choosing the wrong engine completely, some engines are just not well designed for some types of games. Unreal 4 is fantastic and you can publish Android games with it... but you wouldn't use it to make a checkers game. Another issue is development time, for a lot of larger games they start development on one engine and before their games launch new versions of the same engine are already out. Developers are still releasing Unreal 3 games... it can lead to developers sometimes trying to push the older engines to their extremes rather then spending a fortune trying to port everything they have done already at great expense.

Here is a great list of things for artists to do to speed up their games in unreal.
Reading through that should give you a good idea about what I am talking about. The engine ALLOWS designers to go nuts and add all sorts of really really great looking stuff. The issue is if you throw it all on screen at once its going to run like a dog. Its not because the engine isn't optimized... designers have to make choices. If you want a really great looking NPC up close... best not light them with a ton of area lights and paint the door knobs on a glass door in the room they are in with a fantastic 4k bronze colour texture and highlight it with its own area light. There are game developers out there that make choices just like that and when their games run poorly its their design choices that are the issue not the 4 million lines of code that are the unreal engine itself. :)
 
Last edited:
It definitely is food for thought, but then it does beg the question: SOMEONE is making these game engines. Why aren't the people making the engines treating it with more care, and trying to optimize the shit out of them, knowing that this will affect sales on all the games the engine is used for, and a more optimized engine can result in more sales, which means more royalty for the game engine designers?

And that's the rub - you may be right in how the landscape has shifted, but somewhere there are people who work on those engines, and they do a pretty piss poor job of optimization of them, which frankly is bad business given that a better optimized engine will result in more revenue - especially if you get the jump on your engine competitors to do it.

Because when you try to make one size fits all, you have to compromise. In addition to everything else ChadD says.

Case in point, DX11 vs DX12. DX11 is a one size fits all, shoehorning everyone into the same thing. The end result is that developers cannot really optimize outside the scope of DX11, but within the framework it is relatively easy. DX12 gives developers flexibility, with the tradeoff being that it takes significantly more work to get it done right.
 
Because when you try to make one size fits all, you have to compromise. In addition to everything else ChadD says.

Case in point, DX11 vs DX12. DX11 is a one size fits all, shoehorning everyone into the same thing. The end result is that developers cannot really optimize outside the scope of DX11, but within the framework it is relatively easy. DX12 gives developers flexibility, with the tradeoff being that it takes significantly more work to get it done right.


Here's the thing - I don't believe the engines are as of yet optimized for DX12 well. There may be some truth to what Chad has said, as it would explain why some games run better than others in DX 12.

However, and here's where I know Chad's opinion isn't 100% correct or absolute - you have in interviews in other companies the developers themselves (you know, the ones Chad said don't really work with the engine and that its all scripting) telling the publication about optimizations they are trying WITH THE ENGINE. Things like Async implementation, or some shader feature, etc. Now, of course, Chad may be correct in that the level of programming is inferior, and since I don't know what he does personally, he may have a very informed opinion - hell, he might be a developer.

But even if he was, how his company does things may not be how they all do it, and there is enough evidence out there to believe that.

Ultimately I appreciate what Chad has to say, and think he raises some keen insights, but no matter how well-informed and convincing his argument appears to be, there just simply is data out there that refutes some of what he is saying, by separate developers themselves, whenever they talk about working with the engine.

I'm no slouch in how long I've followed the gaming industry either, and frankly, some of what Chad is saying is the first time I've heard of anyone saying gaming companies don't really modify the engines much beyond what is offered by the engine developers. In most cases, from what I've seen and read about, companies do indeed license out engines - and then proceed to have a team that can modify them to optimize the experience for the user based on what they do in the game.

I do agree that there is a lot of poor scripting in games that can make things run like crap, and also that the gaming industry is a hole and the people are abused (in fact, I have felt for a long time that while Unions are obsolete for most of America nowadays given the laws in place that protect workers, the gaming industry is a place where a true union is needed - they need better hours, benefits and pay, and more guarantees and better quality of life.

But in terms of the quality of product put out, at the end of the day we are the consumer, and as a financial decision, at least in terms of the game engine, there should be some pride in putting the best possible product out there, if for no other reason than to make your engine more attractive to other developers.
 
Back
Top