Jump to content

Game performance tips


Recommended Posts

My setup is a windows 10 pro x64 running on i7 4770K with 16 GB of DDR3 - It's not especially beefy but should outperform most laptops (SODIMM is much slower than DIMM)  680 GTX so CPU is not competing with Intel GPU for memory access. So these tips are based on an already with-in spec machine. My map reference is 2400 cycles in, all parts discovered (but lots still not dug out). The map runs smooth at 24+fps on second speed [>>] and about 15 fps+ smooth at third speed [>>>], but without these tips the game would jerk constantly.

DISCLAIMER:  YMMV - Your Mileage May Vary - I don't care to explain why it works - Some of you might have a different understanding of how everything works, but some of these things might surprise you! What might make a huge difference on your computer might not make much on mine and opposite 

Pathfinding will troll you. If you see most maps on that YouTubers have running, they are open with multiple ways to reach a destination. Lots of symmetrical ladder/sections. This is the opposite of what you really want. This affects performance a lot. Design your paths so that there is only one possible way for the dupes to take -- even if it's a bit longer. All you need is to block something off, remove a few steps off a ladder to test this. But the worst offenders is probably the large alternate routes spanning a quarter of the map.

Animal path-finding counts too, but i believe they are recalculated less often. Having tons of drecko's in their little caverns, like they start out, is not a big deal. It becomes a big deal when they can roam the entire map. Keep your critters confined is good. Fish tanks should not be too big. (maximum of 40x40?)

Shipping can be a cause of game becoming super slow/laggy. It's often very useful to test by disabling. I've only assumed that any container sources within their operating area (square) are reachable - assumption is that blocked containers are still consulted. Using automation tricks to make auto-sweepers drop the material is found to very often cause synchronization issues (and lag).

Cold biomes that are melting, i don't know if it's the constant phase changing that does it, but that's my assumption. Hollow them out or cool them down. It really works.

Now for the settings that might really surprise you (it has surprised many when I've mentioned it before). This game might require a priority boost on lower end machines, where it competes for resources, but this priority boosting is also a big cause of laggy/jerky motion in game. Try it and hopefully you'll see what i mean. If it doesn't work for you, you can always undo it.

 My Windows speaks English, you will have to translate for your language. 

If you have Windows 10 then doing the below step won't be effective until you turn off "Windows 10 Game Mode". This feature also boosts priority and overrides "Choose how to allocate system resources". Reboot should be afterwards (unless you reboot after the next step)

Changing how processes are being prioritized. 

Enter (  Control-Panel ) -> ( System ) -> (Advanced System Settings) 

Under the tab "Advanced" click Settings under "Performance". 

(in the new window) Under the tab "Advanced" you'll see something like "Choose how to allocate system resources". "Adjust the performance of:" and here you have two choices. The default is "Programs", but choose "Background Services". That's right, giving the game less priority is making it run smoother.  You need to reboot between changes to make it take effect (it doesn't notify, i am basing this on that you need to do this in older windows).

Again, YMMV, i may have saved the best for last :)

Link to comment
Share on other sites

Oh and one thing i almost forgot. I was very rudely reminded, as my sealed up base ran out of oxygen, how large pools of gases tank your FPS. Even when it's only one type of gas. When my base ran completely out of oxygen, creating a vacuum, the FPS shot up by 50% immediately. So large gas filled areas is definitely taking it's toll.

Link to comment
Share on other sites

1 hour ago, nets said:

Oh and one thing i almost forgot. I was very rudely reminded, as my sealed up base ran out of oxygen, how large pools of gases tank your FPS. Even when it's only one type of gas. When my base ran completely out of oxygen, creating a vacuum, the FPS shot up by 50% immediately. So large gas filled areas is definitely taking it's toll.

I wonder if that's because of the way gases are rendered visually?  It's always amusing to me how the graphics make it look like they are computing Navier-Stokes for fluids, but the actual gameplay makes it obvious that there's very simple low-resolution grid-based mechanic going on.  Anyway, thin gases are barely visible and rarely have much graphical variety, whereas concentrated gases have all kinds of swirls and color gradients and cloud effects that look cool but may be more computationally intensive than it's worth.  Perhaps we should request a low-detail graphics setting that tunes down these effects?

Link to comment
Share on other sites

On 1/19/2019 at 10:34 AM, Lawnmower Man said:

I wonder if that's because of the way gases are rendered visually?  It's always amusing to me how the graphics make it look like they are computing Navier-Stokes for fluids, but the actual gameplay makes it obvious that there's very simple low-resolution grid-based mechanic going on.  Anyway, thin gases are barely visible and rarely have much graphical variety, whereas concentrated gases have all kinds of swirls and color gradients and cloud effects that look cool but may be more computationally intensive than it's worth.  Perhaps we should request a low-detail graphics setting that tunes down these effects?

I don't think it's the graphics causing the slowdown. Much of that is computed GPU side, which frankly is under utilized in this game due to sprite heavy display. 

I commented the other day that there is a ton of calculations regarding gasses. All tiles do computation as far as heat transfer. Gasses have a computation above liquids as far as I can tell. When you have mixed gasses, you have randomized movement of single tiled gasses. You also have constant movement from high density to low density until equalization. After everything is equalized, the computation may still happen, or hopefully there is an early out. 

 

So I would think that worst case would be 90% of your map as gas, best case would be vacuum. Either way, GPU limited or CPU limited, vacuum should help your base run faster.

Link to comment
Share on other sites

1 hour ago, ishakaru said:

So I would think that worst case would be 90% of your map as gas, best case would be vacuum. Either way, GPU limited or CPU limited, vacuum should help your base run faster.

I currently have probably 40% of my map filled with tiles.  I've been doing it just to see if it impacts performance, and it's been something to keep me busy building stuff and also cleans up all my loose materials.  Now I'm wondering if I should break into them and deconstruct everything to create large vacuum rooms.  You're probably right that it would take less resources.  I'll report back later, this is going to take awhile. :D

Link to comment
Share on other sites

1 hour ago, Nitroturtle said:

I currently have probably 40% of my map filled with tiles.  I've been doing it just to see if it impacts performance, and it's been something to keep me busy building stuff and also cleans up all my loose materials.  Now I'm wondering if I should break into them and deconstruct everything to create large vacuum rooms.  You're probably right that it would take less resources.  I'll report back later, this is going to take awhile. :D

Should be pretty straightforward for someone to open up debug mode and paint a whole map with randomly mixed gases and a small test base vs. same test base and vacuum almost everywhere.  I'm too lazy to do that test myself. ;)

Link to comment
Share on other sites

3 hours ago, Lawnmower Man said:

Should be pretty straightforward for someone to open up debug mode and paint a whole map with randomly mixed gases and a small test base vs. same test base and vacuum almost everywhere.  I'm too lazy to do that test myself. ;)

While I'm not against testing in debug, I've actually made it my goal in my survival game to try to see how well I can get the base performing.  I do think vacuum is more likely to do the trick over my huge blocks of tiles.  With that said, I've switched over on about half the map, and I haven't seen a whole lot of difference so far.

The biggest thing I've seen so far that impacts performance is either pathing, or material availability.  If I lock all my dupes in the main base, I get significantly better performance.  So this means it shouldn't have anything to do with things like automation, gas/liquid pipes, gas/liquid calculations, etc.  I've gone so far as to eliminate any duplicate pathing options and while that did seem to improve things, performance is still never as good as when the dupes are all locked in the base.  After I finish the vacuum switch, I think I'm going to try putting all my material somewhere and locking it away to see how much difference that makes.  Probably in one of these huge vacuum rooms I have now. :D

Link to comment
Share on other sites

7 hours ago, Nitroturtle said:

Performance does seem a bit better, especially scrolling around the map near the vacuum areas.

 

That would imply I was wrong, that you were indeed GPU limited. The shaders applied to gasses would be the cause. 

 

As for the performance increase from limiting the pathing of the dupes. I'm disappointed, but not surprised. 

Link to comment
Share on other sites

1 hour ago, ishakaru said:

That would imply I was wrong, that you were indeed GPU limited. The shaders applied to gasses would be the cause. 

 

As for the performance increase from limiting the pathing of the dupes. I'm disappointed, but not surprised. 

I'd say it's probably more likely that I was wrong about it increasing performance.  I doubt my gtx 1060 is bottlenecked by ONI.

Link to comment
Share on other sites

24 minutes ago, Nitroturtle said:

I doubt my gtx 1060 is bottlenecked by ONI.

It depends really. I say GPU but I really mean the whole graphics pipeline. When you scroll over vacuum and FPS increases then something isn't happening. First guess would be shaders, but when talking gasses we also have to know what/where/how much. Which is all calculated CPU side and sent over the buffer. So it's entirely possible to have a case where both CPU and GPU are not pegging out, but still be GPU limited due to the volume of data being sent.

 

Best practice is to do a one time dump of data on the GPU then only send small chunks of info stating small changes. Say like toss the model/texture/animations on the GPU then send a number indicating which animation and time stamp in that animation each frame along with xyz.

 

The pathing on the other hand is entirely on the CPU side(or should be). The largest bottle neck isn't the calculations, but  the access to memory. In short, the less available to look at the better. If I had to guess I would say they are not using some easy optimizations(would love to be told I'm wrong). Off the top of my head would be combining dupes on same pathnode subsystems, and only validating areas of change.

Link to comment
Share on other sites

What isn't happening in vacuum areas is heat transfer. What are the odds the heat transfer "engine" is skipping those parts because it doesn't need recalculating? Also there is no gases competing for space, no compression... Come to think of it, might be a whole lot not done in areas of vacuum -- that which in turn will affect performance directly.

Link to comment
Share on other sites

On 1/21/2019 at 9:13 PM, badgamer123 said:

Could you show me how to do it ?very interesting:shock:

There's not much to it : as long as they don't get the confined/cramped debuff, each pacu should lay an egg before dying. They need a room with 8 tiles for each critters and eggs if I remember correctly.

Pacu-1x1-tank.thumb.jpg.358c1f8f6859eeeac57b3b87b95e48e7.jpg

Link to comment
Share on other sites

omg this fish pool work???? my ranching skill is so bad lol

4 hours ago, Mariilyn said:

There's not much to it : as long as they don't get the confined/cramped debuff, each pacu should lay an egg before dying. They need a room with 8 tiles for each critters and eggs if I remember correctly.

Pacu-1x1-tank.thumb.jpg.358c1f8f6859eeeac57b3b87b95e48e7.jpg

 

Link to comment
Share on other sites

3 minutes ago, Lawnmower Man said:

There was another thread that said Pacus need to see 8 tiles of water, but perhaps that is obsolete?

They need a large water tank to be happy; otherwise they get the overcrowded debuff which slows down their metabolism by 80%. However, the cramped debuff (which prevents reproduction completely) is based on the number of tiles in the room. It has been like this for a while but its most probably a bug.

Link to comment
Share on other sites

1 hour ago, Mariilyn said:

They need a large water tank to be happy; otherwise they get the overcrowded debuff which slows down their metabolism by 80%. However, the cramped debuff (which prevents reproduction completely) is based on the number of tiles in the room. It has been like this for a while but its most probably a bug.

I thought they should get the confined debuff, because they need at least 8 tiles of movement.  The fact that they don't in your build is what really surprises me.  You have multiple Pacus, which is why they are overcrowded.  But even with just 1, I would expect him to be very unhappy.

Link to comment
Share on other sites

10 minutes ago, Lawnmower Man said:

I thought they should get the confined debuff, because they need at least 8 tiles of movement.

I wish the overcrowded/confined/cramped debuffs were based on critter navigation. As for now they are based on room sizes and water pool size for the pacu. Basing it on navigation would make logical sense but brak some designs crowding multiple hatches in the range of a single sweeper as well as allow us to fit unreasonable amounts of dreckos in an 96 tile room if we make a labirinth.

Link to comment
Share on other sites

1 hour ago, Sasza22 said:

[...]

As for now they are based on room sizes and water pool size for the pacu.

[...]

That's what I thought, but he shows a pacu in 1 tile of water and no "confined" debuff.  Which is weird, because I was draining PWater ponds and consolidating pacus and I'm pretty sure I remember one getting left in a very small pond with maybe 3-4 tiles of water, and seeing the "confined" debuff.  Maybe there's a difference between wild vs. tamed?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...