Jump to content

Graphical optimization desperately needed!


Recommended Posts

Beware that this is heavy on screenshots, but they serve an important purpose!

Dear @SQUAD here is something that really needs looking into if you are continuing the development of this game and that is graphical performance. This might come of as a bit ranty but bear with me.

Your game looks like something from the early 2000s. It is not very impressive in the looks department at all. Your skybox is an empty blue, your water looks nothing like the real deal. There are no god rays, there is no bloom, no depth of field etc... There is basically nothing going on and still graphical performance is shockingly aweful. I have here a few nice screenshots that ilustrate this very convincingly. Follow me now on a launch of one of my SSTOs to orbit. Note that this savegame is empty, there are no satellites in orbits anywhere, no space stations hanging about, and no debris. There is only this SSTO.

 

My SSTO is idling on the runway and graphic performance is okay at this point but it doesn't reach a full 60 frames. Notice that my GPU is also nearly idling CPUs are about 50 % used.

tdyVU60.jpg

 

My SSTO has taken off and is on ascent. I am fast enough and aerodynamic effects have kicked in. 50 % FRAMEDROP. Is my GPU that busy? No. Are my CPU cores bottlenecking? No.

vjcetDj.jpg

 

My craft is now higher in the atmosphere and the framerate has recovered after the aerodynamic effects are gone. Framerate is even above 60 frames for the first time because nothing but my craft is on the screen

C0jSmUb.jpg

 

Now comes the speed up phase to reach orbital velocity. Aerodynamic and heat effects are visible. OVER 50 % FRAMEDROP. GPU? Nah still bored to tears. CPUs? Like walking to jogging active.

ep7JSxT.jpg

 

The vessel coasts toward the apoapsis, heat and aerodynamic effects are gone so framerate isn't aweful anymore. The GPU is on 1/3 capacity like at all times and the CPUs the same as always.

X4qjo36.jpg

 

To some it up, at no point was my system overly taxed at all quite the contrary. KSP simply doesn't make use of available resources. And neither the aerodynamic effects nor the heat effects warrant a 50 % drop in framerate when the GPU is basically doing a whole lot of nothing. They do not look anywhere near good enough to warrant this happening. An effect that is so poorly optimized that it can murder over 50% of the framerate should not be in the game!

 

This screenshot is now my SSTO on the runway with the Stock Visual Enhancement Mod which includes EVE, Distant Object Enhancement and scatterer. There are now, clouds, cloud shadows, atmospheric scattering etc. Framerate is significantly impacted by this. But is my GPU taxed to capacity? No. KSP leaves 50 % capacity on the table. The CPUs aren't that much more taxed either.

Ca7RmHE.jpg

 

Funnily enough there is ONE scene where my GPU is on full work load and that is in the KSP overview. Squad I don't even know what I should say to this.....

y3q9CjG.jpg

 

Another bizarre thing for performance is the more part mods you have, the more your FPS suffer. What is even happening there? Is KSP rendering all parts including those that are not in use in the background? There must be a way to only bring the parts into the flight scene that are currently in use to circumvent this happening.

 

Maybe you should take a page out of ferram4s book. And I don't mean make his FAR mod stock. As you know FAR makes it so that computation is not happening on all the individual parts but on a voxel model that represents the whole craft. To me that should slim down things quite considerably and help people who build huge crafts not to suffer 4 FPS in Space.

 

I can only stress Squad that I think this should be the next big thing to work on. As totalbiscuit would put it: This is unacceptable opimization work. Please get this sorted out as soon as is viable!

This was on KSP 64Bit latest version. I have an AMD System, maybe Intel fairs better? Here are my system specs:

Item                Details

Windows:            Windows Version 6.2 (Build 9200) (Win 10)
Internet Explorer:  9.11.14393.0
Memory (RAM):       16284 MB
CPU Info:           AMD FX(tm)-8320 Eight-Core Processor
CPU Speed:          4218,3 MHz
Sound Card:         Lautsprecher (Sound Blaster Z) |
SPDIF-Out (Sound Blaster Z) |

Display Adapters:   NVIDIA GeForce GTX 970 | NVIDIA GeForce GTX 970 | NVIDIA GeForce GTX 970 | NVIDIA GeForce GTX 970
Monitors:           1x; Generic PnP Monitor | Generic PnP Monitor | Generic PnP Monitor | Generic PnP Monitor |
Screen Resolution:  1680 X 1050 - 32 bit
 

 

 

Link to comment
Share on other sites

KSP was never a really graphically intensive program. (Though RAM-hungry in that regard.) It is very CPU-limited due to the amount of physics simulating it needs to do on-the-fly in real-time. That said, KSP 1.2.x is leaps ahead in terms of performance optimization over 1.0.x. Could it use more work? Sure, but that takes time to figure out, implement, test, fix, test again, fix some more, refine, then release.

I dislike how KSP handles certain things, but a lot of it seem to be quirks or issues with Unity. (While Unity is great for the indie scene, there's an irony in the engine's name and how homogeneous indie games that use it look and feel.) It'd be nice if SQUAD had access to a dedicated game engine and platform designed for what KSP wants to accomplished, but that takes a lot of resources. (Few companies create their own game engines these days. Those that do tend license the crap out of them to help recoup costs.) I can only dream of a version of KSP ported to something like optimized C/C++.

Link to comment
Share on other sites

Squad are currently looking for developers with HLSL experience, hopefully they can find a shader wizard to carry out an overhaul 

I thought KSP was going to switch to Unity's Standard Shader, I guess it may not have gotten on with KSP's unusual camera hierarchy?

Link to comment
Share on other sites

3 hours ago, StahnAileron said:

KSP was never a really graphically intensive program. (Though RAM-hungry in that regard.) It is very CPU-limited due to the amount of physics simulating it needs to do on-the-fly in real-time. That said, KSP 1.2.x is leaps ahead in terms of performance optimization over 1.0.x. Could it use more work? Sure, but that takes time to figure out, implement, test, fix, test again, fix some more, refine, then release.

I dislike how KSP handles certain things, but a lot of it seem to be quirks or issues with Unity. (While Unity is great for the indie scene, there's an irony in the engine's name and how homogeneous indie games that use it look and feel.) It'd be nice if SQUAD had access to a dedicated game engine and platform designed for what KSP wants to accomplished, but that takes a lot of resources. (Few companies create their own game engines these days. Those that do tend license the crap out of them to help recoup costs.) I can only dream of a version of KSP ported to something like optimized C/C++.

I'd love to see KSP in CryEngine but I guess those are just dreams.

Link to comment
Share on other sites

It's not graphics that's at fault. Plenty of people here have installed tons of graphics mods that make the game far more GPU-intensive with minimal loss of performance.

Reading your post, I get the impression that you're used to games that involve a lot of work by the computer to make everything look awesome and that are well optimized for parallel processing on multiple cores. On the other hand, the individual CPU cores do relatively little calculation as far as game update loops, physics, AI, etc. Consequently most modern gaming rigs have huge souped-up graphics cards and multiple CPU cores which are individually weak.

KSP is completely different on a fundamental level. The "skybox" you mentioned isn't a skybox at all but a 3D surface whose color gradient and transparency are computed in real-time based on the camera's position in space (note that the sky looks different at high altitudes, in outer space, or on other planets). Most significantly, KSP is a physics game - rather than simply emulating the motions of physical objects like vehicles or a few rigid bodies as is the norm in most games, in KSP the game is built around precisely simulating every force and interaction affecting every part in the game. In addition to a physical model, each of them has a collision mesh and a "drag cube" that determine where and how it bumps into other things and what happens when it moves through air at high speeds. KSP additionally adds in transsonic effects that affect the ship's aerodynamics as it approaches and crosses the sound barrier.
When each part is freely moving on its own, it's often possible to move them all to different processing threads on different cores, but when all of them are connected, KSP is more or less forced to treat the entire ship as a compound object with hundreds of internal mechanisms. Every frame, the game has to loop through each part on the ship and perform a series of calculations involving each other part on the ship. Thus the performance ends up tied to the square of the number of parts in the ship, and every additional part exponentially increases the work that needs doing by the CPU core in question. Note that in almost every screenshot you posted, at least one dindividual CPU is working at near full capacity.

There are also computations constantly being done involving changing levels of detail on the terrain, predicting the ship's orbital parameters, animating the Kerbals inside the ship, etc.

I won't claim that there's no further optimization to be done, but a huge amount of optimization has already been done just to get this far, and KSP isn't going to start performing much better unless CPU clock speeds get way above 4 GHz or SQUAD hires a bunch of computer science geniuses to sit down and basically rewrite the game from the ground up.

Link to comment
Share on other sites

About the only thing(s) I have wanted from KSP since ~0.25 is a game engine that doesn't suck. Screw aditional content, make this game a performant platform on which to add mods.
Unity is: Slow, CPU bound, Garbage collector (mono) hobbled, and not particularly nice looking. All in all it's about the worst choice available for this type of game on any criteria except price.

My number one issue is, ATM, not the graphics (which are okay, but certainly not great) but the antiquated version of mono that the game engine runs, and the horrible garbage collection stutter that it induces.
Second to that is the BS resolution roulette that Unity plays on GNU/Linux systems... somehow Unity missed the memo on how to create a window in X11... one that has been valid since ~1986.

Link to comment
Share on other sites

7 minutes ago, evileye.x said:

Just reduce aero fx quality and you'll be surprised.

Agreed, first thing I do is to set that to "minimal"... beats me how a relatively simple graphical effect can be such a CPU hog, but it is.

Seriously, that effect has zero effect on GPU load, but it absolutely tanks my framerate with CPU overhead.

Link to comment
Share on other sites

OP is CPU bound and not realizing it because of how the CPU monitor is reporting. The aero calculations and, especially, high speed aero effects are very CPU-intensive and don't take advantage of more than a couple of cores for a single craft.

Graphical optimization is not really needed much at all, KSP barely makes a modern GPU break a sweat (in stock anyway, VFX mods can change that).

Link to comment
Share on other sites

This is very much a subjective and personal weighting.

But, purdy dun make no game. It's d'ere game dat make d'ere game </southern drawl>

Don't get me wrong graphics are important. liquid poor graphics may break a game with excellent game play. Amazing graphics will not make a game that has liquid poor game play. Adequate graphics on a game with great game play will oddly enough be ignored.  Examples are left as an exercise for the reader.

The thing to remember, on a fixed budget, the balance of gameplay vs graphics is zero sum. You can't improve one without sacrificing the other. Given at this point gameplay can be considered fully developed, for most values of fully developed, resources might be able to be pulled from gameplay to graphics without too much of a cost. But, then _very_ few of us know what the resources available to Squad are; and I do not foresee learning what that amount is any time soon, if at all. So that supposition may be very off.

Graphics improvements needed? Perhaps. Desperately needed? maybe not.

As a historical reference the focus on graphics is a recurring thing in gaming. The best example would be the FMV craze of the 90's when CD-ROM drives finally became cheap, http://tvtropes.org/pmwiki/pmwiki.php/Main/FullMotionVideo, for reference.  

 

 

Link to comment
Share on other sites

6 hours ago, Red Iron Crown said:

OP is CPU bound and not realizing it because of how the CPU monitor is reporting. The aero calculations and, especially, high speed aero effects are very CPU-intensive and don't take advantage of more than a couple of cores for a single craft.

Graphical optimization is not really needed much at all, KSP barely makes a modern GPU break a sweat (in stock anyway, VFX mods can change that).

What are you implying here? That MSI Afterburner reports faulty data? I highly doubt it since it shows me the right data in other games. At no point on that ascend did acivity on any of my CPU cores rise above 76 % usage. If there were one or two cores on 100% usage I would agree with the statement but that never happened. And if not graphical improvements are needed then general performance optimization is definitely required. The way the game looks it should be running absolutely buttery smooth but it isn't and available resources are not utilized effectively. If they were it would probably run at an access of at least 60 FPS constantly.

People also misunderstand me. I am by no means a graphics snob. I gamed on pixely monochrome screens once upon a time. All I am saying is for how this game looks which is in no way in keeping with the times, this games performance isn't up to snuff. And a graphical upgrade with better visuals should not even be attempted until this has been sorted out because it would make things worse.

Link to comment
Share on other sites

29 minutes ago, Flashblade said:

What are you implying here? That MSI Afterburner reports faulty data? I highly doubt it since it shows me the right data in other games. At no point on that ascend did acivity on any of my CPU cores rise above 76 % usage. If there were one or two cores on 100% usage I would agree with the statement but that never happened.

He is implying that you don't understand the readings you are getting because you don't understand that a program that is running continuously on a multi-core machine almost never shows 100% for any core because the OS will switch the program from one core to another, often several times per second.  E.g. the total CPU usage in your first screenshot is 340% which means that there are 3.4 cores being fully utilised.  If you aren't running anything else major then KSP is probably using 3 full cores worth, the fact it is spread over all the cores is irrelevant.

KSP is (generally) CPU bound.  The calculations that it does are not easy to run in parallel so using ~3 full cores worth is actually pretty good going.

31 minutes ago, Flashblade said:

And if not graphical improvements are needed then general performance optimization is definitely required.

There are still areas of the game that could be optimised further, no-one is denying that.  The aero effect shaders (the highest quality ones anyway) are one such area.

31 minutes ago, Flashblade said:

The way the game looks it should be running absolutely buttery smooth but it isn't and available resources are not utilized effectively.

The way the game looks has no bearing on the complexity of the CPU bound calculations it has to do.  No, it doesn't use all 8 cores of your CPU but, as was said, a lot of the work it has to do is not at all easy to do in parallel.

35 minutes ago, Flashblade said:

All I am saying is for how this game looks which is in no way in keeping with the times, this games performance isn't up to snuff.

And all he was saying is that the speed of the game is not (generally) limited by the complexity of the graphics.

37 minutes ago, Flashblade said:

And a graphical upgrade with better visuals should not even be attempted until this has been sorted out because it would make things worse.

[citation needed]  Actually, a citation would be impossible in this case, the graphics rendering quality could (and can with mods) be improved considerably without any major effect on the frame rate.

Link to comment
Share on other sites

16 hours ago, evileye.x said:

Just reduce aero fx quality and you'll be surprised. The way those fx work is not so fast, but I'm not sure is it feasible to make improvements on it

If you're curious: I read that the Aero FX shader used for mach and shock heating effects is based on a modified fur shader. To those who've done any dabbling in 3D animation or writing shaders, the phrase "fur shader" is practically interchangeable with "RIP graphics card, I knew you well."
So by all means turn that Aero FX quality down because it might well be the single most graphics-intensive thing in the entire stock game xD

Link to comment
Share on other sites

When you notice "just' 70% of your cpu used it is still "cpu bound". Or more detailed, your CPU bus pipeline is clogged: KSP uses a lot of data, each physics frame calculation uses more than can be loaded ins the L1 & L2 caches. Most of the time more than can typically loaded in the L4 or L5 caches (This is also mainly due to the abstraction as a managed language). As such your game is not only limited in how fast the CPU can process your calculation, but -more importantly- how fast RAM can be loaded into the L4 & L5 caches.

This depends on your motherboard speed and is typically between 400 MHz and 1 GHz.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...