How can Skyrim be so unoptimized? Modders do better job than

Post » Sun May 27, 2012 10:01 pm

Also, FWIW, let's compare a game with so-so technical prowess like Skyrim vs a game with best of breed talent like Rage. Which one are you playing more? BGS does a great job with content. And it's not like top devs such as Carmack never make idiotic mistakes. We all do that sometimes, even the best.

Indeed - though your point is undermined somewhat when you consider that both Rage & Skyrim are ultimately owned by Bethesda Softworks.

Maybe Carmack should give a few lessons in optimisation to the Beth. Game Studios devs ;)
User avatar
Natalie Taylor
 
Posts: 3301
Joined: Mon Sep 11, 2006 7:54 pm

Post » Sun May 27, 2012 11:29 pm

...http://en.wikipedia.org/wiki/IBM's and http://en.wikipedia.org/wiki/Freescale's (formerly http://en.wikipedia.org/wiki/Motorola SPS) http://en.wikipedia.org/wiki/Power_Architecture, used in all of IBM's supercomputers, midrange servers and workstations, in http://en.wikipedia.org/wiki/Apple_Inc.'s http://en.wikipedia.org/wiki/PowerPC-based http://en.wikipedia.org/wiki/Macintosh computers (discontinued), in http://en.wikipedia.org/wiki/Nintendo's http://en.wikipedia.org/wiki/Nintendo_Gamecube and http://en.wikipedia.org/wiki/Wii, http://en.wikipedia.org/wiki/Microsoft's http://en.wikipedia.org/wiki/Xbox_360 and http://en.wikipedia.org/wiki/Sony's http://en.wikipedia.org/wiki/PlayStation_3 game consoles, http://en.wikipedia.org/wiki/EMC_Corporation's DMX range of the http://en.wikipedia.org/wiki/Symmetrix http://en.wikipedia.org/wiki/Storage_area_network, and in many embedded applications like printers and cars....

Taken from Wiki.

But yeah, all the consoles usually use RISC architecture.

XBOX I think was an exception, it used a CISC architecture.

Edit: Ninjaed.
User avatar
Susan
 
Posts: 3536
Joined: Sun Jun 25, 2006 2:46 am

Post » Sun May 27, 2012 11:54 pm

any hope that Bethesda could rebuild the exe using the optimization flags? since they did the LAA patch, why not?
We all hope so.... but I think they are more concerned about DLCs right now :lol:


BTW to the people that keep defending the coders/developers at Bethesda: you're right, we don't know how things went during development so it's not fair to attack them like we're doing since 11/11..... BUT the "all new creation Engine" is still the good, old gamebryo with some subtle changes, so it's safe to say that they are working with the same engine since 2006 and this is the fourth game to use it, so they had all the time to fix the bad coding... especially now, because it's clear that skyrim is pushing the engine to its limits causing a lot of problems (fps drops/ctd on pc and a sluggish gameplay on ps3...)

I'm sure that devs have done the best they could with the budget and resources they had (at least on xbox :D) and after all they are just employees, just like I am BTW, but this is not enough for me to just get over it...
User avatar
Eire Charlotta
 
Posts: 3394
Joined: Thu Nov 09, 2006 6:00 pm

Post » Mon May 28, 2012 6:44 am

Thanks for explaining (and of course for making the awesome mod). Interesting to read. Do you think you will be able to do more optimization fixes like this?

Theoretically, yes, of course. I'd currently estimate that an additional +10% could be achieved in the game executable itself using the same procedure as before. However, to fix a problematic function using only a normal person's tools, it has to be detected and isolated from the call graph, then its assembly code has to be reverse engineered, rewritten and tested until it can be replaced by a better performing variant.

Now that many of the biggest CPU hogs have been softened, there still is a lot of potential gains ahead, but acquiring them would require multiple times the work already invested for a smaller amount of additional performance. It all has to be hand-crafted - there are no tools to automate this. Worse yet, some of the work has to be redone when porting the changes to a different game version. This way, only very simple optimizations are even possible at all, due to the sheer amount of places where a call must be inlined. Most function calls suitable for inlining have a varying amount of setup and cleanup code for that function call and I just can't go through each of the (tens of!) thousands of references to figure out the optimal replacement at each point. A compiler does all this for free, within seconds - and not only for the first dozen of hottest targets, but for the whole game, which consists of millions of lines of assembly code.

My true hope is therefore that this little demo will create a demand that Bethesda must answer. Much like what happened with the LAA patch. This would be the best outcome for all and also the best base for any further optimizations that can only be hand-crafted.

And did I understood you right that you said that if an optimization compiler would have been used by Bethesda from the start, we would have experienced over 100% better performance?

Yeah, pretty sure about that. The current patch doesn't modify even nearly 1% of the code, but still manages to cut the cycles per frame by 30-40%. The whole binary is full of redundant code, it's just way too much to ever do manually, but sums up quickly when eliminated by an optimizing compiler.
User avatar
Anna Watts
 
Posts: 3476
Joined: Sat Jun 17, 2006 8:31 pm

Post » Sun May 27, 2012 11:22 pm

Theoretically, yes, of course. I'd currently estimate that an additional +10% could be achieved in the game executable itself using the same procedure as before. However, to fix a problematic function using only a normal person's tools, it has to be detected and isolated from the call graph, then its assembly code has to be reverse engineered, rewritten and tested until it can be replaced by a better performing variant.

Now that many of the biggest CPU hogs have been softened, there still is a lot of potential gains ahead, but acquiring them would require multiple times the work already invested for a smaller amount of additional performance. It all has to be hand-crafted - there are no tools to automate this. Worse yet, some of the work has to be redone when porting the changes to a different game version. This way, only very simple optimizations are even possible at all, due to the sheer amount of places where a call must be inlined. Most function calls suitable for inlining have a varying amount of setup and cleanup code for that function call and I just can't go through each of the (tens of!) thousands of references to figure out the optimal replacement at each point. A compiler does all this for free, within seconds - and not only for the first dozen of hottest targets, but for the whole game, which consists of millions of lines of assembly code.

My true hope is therefore that this little demo will create a demand that Bethesda must answer. Much like what happened with the LAA patch. This would be the best outcome for all and also the best base for any further optimizations that can only be hand-crafted.



Yeah, pretty sure about that. The current patch doesn't modify even nearly 1% of the code, but still manages to cut the cycles per frame by 30-40%. The whole binary is full of redundant code, it's just way too much to ever do manually, but sums up quickly when eliminated by an optimizing compiler.
Damn... I hope Bethesda realizes this as you said and make an optimization compiler. I've seen many anonymous users now today so I guess they're aware of it. Now let's hope they actually does something about this, or at least have the decency to explain why they want our Skyrim to run much slower.
User avatar
Naughty not Nice
 
Posts: 3527
Joined: Sat Nov 04, 2006 6:14 am

Post » Mon May 28, 2012 5:22 am

BTW to the people that keep defending the coders/developers at Bethesda:
What makes you think Bethesda has coders ?

They certainly have their own content-developers. But that does not mean they also have highly technical coders who work on the engine. If I had to guess, I'd guess that most of the changes in the engine where done by NDL many years ago. If Bethesda had their own coders working on the internals of the engine, that might have been years ago. They might have moved on to other projects years ago. Or left the company.

That's what I think, based on how I see Bethesda handle stuff over the last 2 months.

http://www.gamesas.com/topic/1321695-do-you-think-bethesda-has-their-own-technical-programmers-for-the-engine/
User avatar
Alan Cutler
 
Posts: 3163
Joined: Sun Jul 01, 2007 9:59 am

Post » Sun May 27, 2012 5:23 pm

Hey look! Another 'Bash Bethesda' thread! They f'ed up hard, on a number of levels. Do you want a cookie for starting a thread about it? What do you want them to do, now that the game has already been launched?

Why do people think conversations about 'should haves' are useful? Start documenting bugs, if you want to do something that isn't a distracting waste of time for the developers.



I'd currently estimate that an additional +10% could be achieved in the game executable itself using the same procedure as before. However, to fix a problematic function using only a normal person's tools, it has to be detected and isolated from the call graph, then its assembly code has to be reverse engineered, rewritten and tested until it can be replaced by a better performing variant.

Now that many of the biggest CPU hogs have been softened, there still is a lot of potential gains ahead, but acquiring them would require multiple times the work already invested for a smaller amount of additional performance. It all has to be hand-crafted - there are no tools to automate this. Worse yet, some of the work has to be redone when porting the changes to a different game version. This way, only very simple optimizations are even possible at all, due to the sheer amount of places where a call must be inlined. Most function calls suitable for inlining have a varying amount of setup and cleanup code for that function call and I just can't go through each of the (tens of!) thousands of references to figure out the optimal replacement at each point. A compiler does all this for free, within seconds - and not only for the first dozen of hottest targets, but for the whole game, which consists of millions of lines of assembly code.

My true hope is therefore that this little demo will create a demand that Bethesda must answer. Much like what happened with the LAA patch. This would be the best outcome for all and also the best base for any further optimizations that can only be hand-crafted.
THIS is useful.
User avatar
Scarlet Devil
 
Posts: 3410
Joined: Wed Aug 16, 2006 6:31 pm

Post » Mon May 28, 2012 1:05 am

Hey look! Another 'Bash Bethesda' thread! They f'ed up hard, on a number of levels. Do you want a cookie for starting a thread about it? What do you want them to do, now that the game has already been launched?

Why do people think conversations about 'should haves' are useful? Start documenting bugs, if you want to do something that isn't a distracting waste of time for the developers.

When poor coding practice results in an engine being hamstrung and tripping over itself to accomplish basic tasks because the coders didn't clean up their work? This isn't a should have, this is a must have. Bad practice is bad practice.

What do we want them to do? How about patch it? Not hard.
User avatar
Sheila Esmailka
 
Posts: 3404
Joined: Wed Aug 22, 2007 2:31 am

Post » Mon May 28, 2012 12:22 am

What makes you think Bethesda has coders ?

The certainly have their own content-developers. But that does not mean they also have highly technical coders who work on the engine. If I had to guess, I'd guess that most of the changes in the engine where done by NDL many years ago. If Bethesda had their own coders working on the internals of the engine, that might have been years ago. They might have moved on to other projects years ago. Or left the company.

That's what I think, based on how I see Bethesda handle stuff over the last 2 months.

http://www.gamesas.com/topic/1321695-do-you-think-bethesda-has-their-own-technical-programmers-for-the-engine/
Bethesda has stated several times that the "new" Creation engine is an internally built one.
User avatar
JLG
 
Posts: 3364
Joined: Fri Oct 19, 2007 7:42 pm

Post » Mon May 28, 2012 3:34 am

It all comes down very clear to me: Bethesda is really bad at technology.
This is news? Did you ever play Daggerfall?
User avatar
Yvonne Gruening
 
Posts: 3503
Joined: Mon Apr 23, 2007 7:31 pm

Post » Sun May 27, 2012 2:58 pm

Damn... I hope Bethesda realizes this as you said and make an optimization compiler.

Just to be clear: "Optimizing compiler" is just something like a name. Pretty much every compiler still alive supports more or less extensive optimizations for the code it generates. It is mostly a term from older days, when this wasn't taken for granted. Basically the whole thing means they just have to click on a check box in the compiler settings to enable certain classes of optimization techniques and usually, they are already enabled by default. Therefore most commercial software is always built this way, which makes it an interesting question why this isn't also the case for Skyrim.
User avatar
des lynam
 
Posts: 3444
Joined: Thu Jul 19, 2007 4:07 pm

Post » Sun May 27, 2012 4:09 pm

When poor coding practice results in an engine being hamstrung and tripping over itself to accomplish basic tasks because the coders didn't clean up their work? This isn't a should have, this is a must have. Bad practice is bad practice.

What do we want them to do? How about patch it? Not hard.
I'm not making excuses for them. They screwed up. But identifying things for them to patch, like the creater of this plugin, and a few of the posts in this thread, is actually useful content. The OP of the thread started with a Bethesda Bashing tone. I'm glad some people took it and ran in the proper direction. Sorry for flying off the handle.
User avatar
Marine Arrègle
 
Posts: 3423
Joined: Sat Mar 24, 2007 5:19 am

Post » Sun May 27, 2012 9:49 pm

What makes you think Bethesda has coders ?

The certainly have their own content-developers. But that does not mean they also have highly technical coders who work on the engine. If I had to guess, I'd guess that most of the changes in the engine where done by NDL many years ago. If Bethesda had their own coders working on the internals of the engine, that might have been years ago. They might have moved on to other projects years ago. Or left the company.

That's what I think, based on how I see Bethesda handle stuff over the last 2 months.

http://www.gamesas.com/topic/1321695-do-you-think-bethesda-has-their-own-technical-programmers-for-the-engine/
That's interesting... yeah it's true that the internal coders might already left the company, but IMHO it's impossible to think it has been years ago, the engine has been constantly updated since oblivion, and especially now with skyrim... maybe now just a few coders are still working full time, but I bet that a couple of months ago there were much more...
User avatar
m Gardner
 
Posts: 3510
Joined: Sun Jun 03, 2007 8:08 pm

Post » Sun May 27, 2012 10:15 pm

I'm not making excuses for them. They screwed up. But identifying things for them to patch, like the creater of this plugin, and a few of the posts in this thread, is actually useful content. The OP of the thread started with a Bethesda Bashing tone. I'm glad some people took it and ran in the proper direction. Sorry for flying off the handle.

Sorry, I misjudged your post.

I will not defend Beth-Bashing, but I do think it is very necessary to let them know that we know they got lazy with the compilers. So I guess we'll just have to agree to agree here. :teehee:
User avatar
Ashley Tamen
 
Posts: 3477
Joined: Sun Apr 08, 2007 6:17 am

Post » Mon May 28, 2012 3:47 am

..... which makes it an interesting question why this isn't also the case for Skyrim.
Debugging purposes ? Usually you can compile code with a lot of different debugging options. Which will make it easier to troubleshoot crashes, performance problems, etc. This is what you want during development. But for the executable you are going to ship to your customers, you probably want the max-performance binary.

This of course assumes you have an engineer on your team who actually understands this stuff. And who knows which flags and options to use for the final build. If you don't have someone who can recompile your code, then you have no choice but to ship the same binary you have been using for internal development and testing.
User avatar
Rachel Hall
 
Posts: 3396
Joined: Thu Jun 22, 2006 3:41 pm

Post » Sun May 27, 2012 11:05 pm

Just to be clear: "Optimizing compiler" is just something like a name. Pretty much every compiler still alive supports more or less extensive optimizations for the code it generates. It is mostly a term from older days, when this wasn't taken for granted. Basically the whole thing means they just have to click on a check box in the compiler settings to enable certain classes of optimization techniques and usually, they are already enabled by default. Therefore most commercial software is always built this way, which makes it an interesting question why this isn't also the case for Skyrim.
Can an optimization compiler be applied afterwards (the game release)? I mean, could Bethesda do it right now, as a patch, theoretically?
User avatar
Baylea Isaacs
 
Posts: 3436
Joined: Mon Dec 25, 2006 11:58 am

Post » Mon May 28, 2012 2:18 am

Edit: Nevermind :biggrin:
User avatar
Code Affinity
 
Posts: 3325
Joined: Wed Jun 13, 2007 11:11 am

Post » Mon May 28, 2012 2:01 am

Can an optimization compiler be applied afterwards (the game release)?
No.

I mean, could Bethesda do it right now, as a patch, theoretically?
Bethesda could recompile. Because they have the source code. Your compiler does the optimizations "at compile time". To compile, you need the source code. If you have the source code, and a tree that builds, it will be a few minutes work.

But if you don't have the source code, you need to do reverse engineering. And reverse engineering is an unbelievable amount of work. Very tricky. Very time consuming. That's why it is really so amazing what these guys have done. I am impressed ! Kudos, Arisu !
User avatar
Tai Scott
 
Posts: 3446
Joined: Sat Jan 20, 2007 6:58 pm

Post » Mon May 28, 2012 1:10 am

Can an optimization compiler be applied afterwards (the game release)? I mean, could Bethesda do it right now, as a patch, theoretically?

Bethesda could definitely do this, they have the source code. They just need to run it through a compiler with optimization flags set.
User avatar
elliot mudd
 
Posts: 3426
Joined: Wed May 09, 2007 8:56 am

Post » Sun May 27, 2012 6:35 pm

First dude you are to caught up in FPS. At the end of the day the FPS rate is meaningless, does the game play smooth or not. The so called problem areas you mentioned have not had a stutter for me at Ultra-Settings. Frame rates do not matter because the game plays smooth.

Also comparing BF3 to Skyrim is nuts because they are using two different areas for their performance. BF3 is much more heavy into the GPU and Skyrim the CPU.

At the end of the day could the code stand some optimizing, of course it could. I have not heard of a single game that could not enjoy some optimizing. As for the 30% or higher boost, that claim is a little high, the truth is the boost is closer to 10-15% from my own testing. Still a nice boost and would love to see Bethseda incorporate these into the next patch.
User avatar
Lalla Vu
 
Posts: 3411
Joined: Wed Jul 19, 2006 9:40 am

Post » Mon May 28, 2012 7:05 am


No. You just need to stop defending laziness. The game should have been optimized for pc. Not just lazily ported. People like you need to stop blindly defending Bethesda everytime someone has a valid complaint.

Ah yes, another armchair CEO to tell us how they should run their multi million dollar business.

Like most things in life, I'm sure there were legitimate reasons why Bethesda didn't improve their engine in time for Skyrims release.
User avatar
Emma Louise Adams
 
Posts: 3527
Joined: Wed Jun 28, 2006 4:15 pm

Post » Sun May 27, 2012 11:41 pm

Sorry, I misjudged your post.

I will not defend Beth-Bashing, but I do think it is very necessary to let them know that we know they got lazy with the compilers. So I guess we'll just have to agree to agree here. :teehee:
I overreacted anyway, so your response was understandable. I'm a developer myself, so I understand how some of these things can slip through the cracks, especially with black-box deadlines and new developer talent. I also know what is generally useful dialogue in situations where things go wrong. The OP was baiting the community into a bashing session, and I snapped.

Yes, Bethesda needs to clean up their act a bit. They released a game with more bugs than usual, and now most of their best developers should be on their first vacation in 3+ years, during the holiday season no less. Instead, many of them are likely debugging the game across 3 platforms while simultaneously trying to get the CK out the door. It's been a rough 6 weeks since launch.

They'll fix it. They'll fix it faster if we keep pointing out flaws like this is a constructive, useful manner. They'll start ignoring us and put more weight in their internal QA team if we tear into them too often. We should try not to cross that line.
User avatar
josie treuberg
 
Posts: 3572
Joined: Wed Feb 07, 2007 7:56 am

Post » Sun May 27, 2012 6:07 pm

Debugging purposes ? Usually you can compile code with a lot of different debugging options. Which will make it easier to troubleshoot crashes, performance problems, etc. This is what you want during development. But for the executable you are going to ship to your customers, you probably want the max-performance binary.
Everything correct so far, that's usually the case. However, it's interesting to note that accurate debug symbols can also be built for fully-optimized binaries.
Furthermore, Skyrim is not optimized, but has no debug symbols either. This way, it's impossible to debug crashes with the standard tools or even reliably unwind the stack to produce a crash dump for further anolysis. Might be the reason why Bethesda asked players to send their save games instead...
User avatar
Annick Charron
 
Posts: 3367
Joined: Fri Dec 29, 2006 3:03 pm

Post » Mon May 28, 2012 3:49 am

I overreacted anyway, so your response was understandable. I'm a developer myself, so I understand how some of these things can slip through the cracks, especially with black-box deadlines and new developer talent. I also know what is generally useful dialogue in situations where things go wrong. The OP was baiting the community into a bashing session, and I snapped.

Yes, Bethesda needs to clean up their act a bit. They released a game with more bugs than usual, and now most of their best developers should be on their first vacation in 3+ years, during the holiday season no less. Instead, many of them are likely debugging the game across 3 platforms while simultaneously trying to get the CK out the door. It's been a rough 6 weeks since launch.

They'll fix it. They'll fix it faster if we keep pointing out flaws like this is a constructive, useful manner. They'll start ignoring us and put more weight in their internal QA team if we tear into them too often. We should try not to cross that line.
You're right. I did sound like I was bashing Bethesda, but I was angry and upset. So, so so many people have been complaining since the game release about really bad FPS in towns. Those with the best rigs money can buy even had low FPS in towns. And for what? This apparently is something Bethesda could do themselves very easily and with very little time wasted, and there is even much more room for improvement as well in this area as the modder suggests. I think it's a valid reason to be upset.

I edited the OP to sound less bashy. After all, the developers are human. We all can make mistakes, that is natural and understandable. What I care most about now is though that Bethesda steps up and take action - work themselves in this area and improve further what the modder just did.
User avatar
TWITTER.COM
 
Posts: 3355
Joined: Tue Nov 27, 2007 3:15 pm

Post » Mon May 28, 2012 4:48 am

Like most things in life, I'm sure there were legitimate reasons why Bethesda didn't improve their engine in time for Skyrims release.
Are you a programmer ? Do you understand what happened here ? If not, then no, you can't say comment on the issue. But if you are a programmer, then you understand that Bethesda has been very very sloppy when preparing the final version of Skyrim that they shipped off. It was a matter of very little work. A few hours or a few days at maximum. That would have given 10-25% higher framerates on PCs.

First dude you are to caught up in FPS. At the end of the day the FPS rate is meaningless, does the game play smooth or not.
I agree that some people stare too much at raw framerates. But at the end of the day, framerates are strongly linked to how smooth a game plays.

Also comparing BF3 to Skyrim is nuts because they are using two different areas for their performance. BF3 is much more heavy into the GPU and Skyrim the CPU.
And what do you think is the cause of that ?
Skyrim works the CPU a lot harder, *BECAUSE* of the issue that Arisu (and friend?) have discovered ! If Bethesda had shipped an executable that had been compiled properly, the game would have depened less on your CPU. And therefor relatively more on you GPU.

At the end of the day could the code stand some optimizing, of course it could
Where not talking about optimizing here like rewriting large parts of the code. We're talking about recompiling with different flags and options. Not much work, if you know what you're doing. Not doing this is somewhat of a blunder, imho. It's like missing something very obvious. It's like driving out of the pitslane with your $1m car, while your front tires were off. And then you started wondering during the race why your car doesn't drive as fast as the other cars .....
User avatar
Gill Mackin
 
Posts: 3384
Joined: Sat Dec 16, 2006 9:58 pm

PreviousNext

Return to V - Skyrim