Jump to content

New Performance Patch in Testing - 369994


Recommended Posts

  • Developer

Hello friends!

I'm pretty excited about this patch: We've done a big performance pass and removed a lot of spikes, leading to a smoother experience in every colony we tested. We've been working on some new internal performance profiling tools, and they've given us some great insights into new areas of the code that have been causing slowdowns and stutters. The trickiest part of optimization is that there's rarely ‘One Big Fat Slow Thing’ that we get to make faster. Instead, there are usually dozens of small, unrelated algorithms that only cause problems in certain situations, and whose problems aren't visible until other systems access them, and so forth. Because of this, the new tools have allowed us to track down a lot of nonoptimal code that we weren't able to find before.

We've also fixed a number of other bugs and crashes, as well as taking a serious pass on the organization and presentation of the codex.

Because these changes are made across a wide range of systems throughout the game, we're going to run a one-week testing branch on Steam to ensure the changes are stable before we push these out on all platforms. (Instructions on joining the test branch are at the bottom of this post.) Please hop on to the testing branch and let us know if your colony behaves strangely! Bug reports and save files are appreciated!

We will continue working on performance and bugs for the live release even while we're busy crafting the next phase of Oxygen Not Included. Thank you so much--as always--for taking the time to bring issues and concerns to our attention, and for being part of this game.


Optimization

  • Improve performance updating the Build menu
  • Improve performance updating which categories and buildings have been unlocked by research
  • Pokeshells don't check every pickupable to find an egg to guard.
  • Don't update animations when the game is paused. This also fixes a bug which greatly improves framerate right after loading a map.
  • Remove unused Animators from various UI elements which were processing every frame.
  • Use simplified animation for UI elements.
  • Improved performance updating world navigation data.
  • Improved performance for updating animation render groups.
  • Avoid needless calculations when an animation is removed from the scene.
  • Pips looking for seeds search among Plantable Seeds, not all pickupables
  • Fix math error causing many animations to believe they needed updating every frame when they did not.
  • Conveyors now use the same optimized and multithreaded algorithm that the Liquid and Gas pipes do.
  • Improved performance when many items are marked for sweep and drawing their sweep icon.
  • Improved performance when animations are rendered with offset positions. This has an especially big impact on rocket launches, which are now much smoother.
  • Large optimization to the way textures are loaded and freed, improves many colonies.
  • Cost of calculating whether materials are available for delivery is spread out over multiple frames, to prevent a spike every second.
  • Ore which is not marked for sweep no longer tries updating its status text every frame.
  • Also, ore which _is_ marked for sweep no longer tries updating its status text every frame.
  • Pressure vulnerable plants and critters no longer triggering "safe" messages continually.
  • Pressure vulnerable checks are spread across multiple frames, instead of spiking once every second.
  • Optimized the way achievements track stats on buildings, e.g. temperature, building type, and so on. Removes significant performance spikes across frames.
  • Prevent achievement tracker from performing excess calculations when the framerate starts dropping.
  • Many status items are faster to add and remove.
  • Drowning checks are spread across multiple frames instead of spiking once every second.
  • Temperature vulnerable checks are spread across multiple frames instead of spiking once every second.
  • Changed how "building uptime" data is calculated and stored, this should cut down on the size of data stored drastically.
  • Autosave will wait until the mouse button is released before triggering, so no more crazy pipe constructions.

Visuals

  • UI image for various ores is no longer blurry.
  • Reduced the red/green saturation of the various sensors and switches.
  • Improved linework on hats with logos.
  • Added missing hats to some animations.
  • Made the arrows on Transformers more visible.
  • The logo on the Power Station matches the other electrician logos.
  • Fixed the position of the Grilled Pacu artwork.

Database and UI

  • Tips and Information renamed to Lessons
  • Lessons page moved into a grid of imaged buttons
  • Tutorial Videos are pulled out of the big list of Tips, into their own section of the Lessons page
  • Big list of links to Tips has been compiled into one big article so you don't have to constantly tab back and forth to read the tips.
  • “Plumbing and Ventilation” tutorial video is renamed to “Connecting Pipes”, and is triggered by placing a building that has either a piped input or output.
  • “Morale” tutorial video is now triggered by applying your first Skill Point, or when a Duplicant dips into negative Morale.
  • Hitting "Reset Tutorial Messages" repopulates the list of possible tutorial messages, not just restores messages the player has intentionally hidden.
  • “Digging For Resources” tutorial video is delivered the first time a building is requesting a material that the colony has not yet discovered, OR 7 minutes into the game otherwise if it hasn't happened yet.
  • If a Tutorial Message contains a video, its message gets a Video icon.
  • Rename “Morale” tutorial video to “Duplicant Morale” for consistent spacing.
  • Database search bar can now search for sub-entries like critter morphs, etc.
  • Database entries with only one SubEntry no longer show a table of contents of SubEntries.
  • Reformatting to Critter Database pages to be more readable.
  • Entries (x/y) formatting in the Database is now translatable.
  • Hook up icons for Elements menu in the Database.
  • Building Requirements and Effects in the Database are presented more similarly to how they are displayed elsewhere in the game.
  • Add tooltips to Requirements/Effects for buildings in the Database.
  • Fix build menu recipe details on cooking buildings.
  • Database entries for fabricators display their recipes in a grid.

General

  • Remove research requirement on Royal Flush achievement
  • Duplicants weren't properly dead while in containers. This fixes them causing crashes from getting sick but also being dead (and in a container).  (Still need to figure out what they are doing in containers...)
  • Fix plants showing "Blocked" after a load.
  • Less flickering when there is a rogue bit of gas floating around plants.
  • Clarify that all mods are being disabled due to a single error, not because they're all broken.
  • Fix bug where transformers stop dissipating after a save/load.
  • Finish construction of replacement tile if underlying object is deconstructed first.
  • Updated Korean translation.
  • Tweaks to Chinese translation.
  • Temperature/Disease Sensors no longer become unresponsive when in a vacuum or no element in conduit.
  • Temperature Sensor initializes network to current value immediately.
  • Conduit Sensors update based on the last value measured when no elements is in the conduit.
  • World name is shown on the load screen.
  • Colony coordinate on the new game screen accepts typed/pasted coordinates.
  • Add the full coordinate and a "copy" button to the worldgen seed on the pause menu
  • Tooltip for Lit Area in Light Overlay no longer erroneously says that working in lit areas improves Duplicant Morale.

Worldgen

  • Won't crash if a worldgen has a difficulty value outside of the range of descriptors.
  • Allow spawning worlds that have no start location (new map settings for modders).

 

How to join the testing branch

Spoiler

 

If you want to join us for testing, you can download the testing branch through Steam.

  1. While the game is not running, right-Click on Oxygen Not Included in your Steam library
  2. Click on the "Betas" tab.
  3. Chose the Testing branch from the list.
  4. To ensure the testing version of the game downloads, go to the "Local Files" tab, and choose "Verify Integrity of Game Files".

Please also be aware that once a save is loaded in the Testing branch, it cannot be reopened again in the previous Live branch or previous builds. We recommend you save a copy of you colony for use in the testing branch, or start a new colony.

 

 

 

View full update

 

  • Like 45
  • Thanks 18
Link to comment
Share on other sites

Quick first test: Slightly more FPS, reduced stutter and much faster autosave. 

But also:

My dupes are disinfecting stuff (mostly air-vents) that shows no germs (and has no real way of getting them) every 30 seconds or so.

My steam engine runs at half power and the magma below it is cooling much faster than before. The airlocks I'm using to control the heat transfer are closed most of the time while before installing the update they were almost always open.

  • Like 1
Link to comment
Share on other sites

  • Developer
10 minutes ago, Loraty said:

Quick first test: Slightly more FPS, reduced stutter and much faster autosave. 

But also:

My dupes are disinfecting stuff (mostly air-vents) that shows no germs (and has no real way of getting them) every 30 seconds or so.

My steam engine runs at half power and the magma below it is cooling much faster than before. The airlocks I'm using to control the heat transfer are closed most of the time while before installing the update they were almost always open.

Hi Loraty, could you post your save and we can take a look at the before/after.

  • Thanks 2
Link to comment
Share on other sites

Sounds like a lot of hard work has been going on over there...thank you so much. 

 

Quick question: will the beta branch have the usual background data tools that cause slowdowns? Because that might offset the perceived performance improvements. 
 


 

 

  • Like 1
Link to comment
Share on other sites

6 minutes ago, klei.ruby said:

@Lifegrow Yep!

 

Beautiful thank you. Will do some more tinkering and see how it plays out.

Honestly though, for the last 10 cycles I've ran in my old colony, it feels no different performance wise. 

*Edit* for context - here are a couple of saves to play with, I loaded and played them briefly on both launch release and testing release - i'd argue the testing release actively feels worse.

Brassy Blue Balls With FastSave.sav

Stream Base for Ipsquiggle.sav

Edited by Lifegrow
  • Like 1
Link to comment
Share on other sites

It seems your testing patch broke something.

I´m using Nightinggales Piped-Output mod, and the log states: 

 

[22:17:08.292] [1] [INFO] Error occurred with mods active. Disabling all mods (unless dev mods active).
MissingMethodException: Method not found: 'ConduitFlow.AddConduitUpdater'.
  at KMonoBehaviour.Spawn () [0x00075] in D:\JenkinsWorkspace\Preview_Simgame_Windows\game\Assets\Plugins\Klei\util\KMonoBehaviour.cs:284 
Rethrow as Exception: Error in MethaneGeneratorComplete.PipedDispenser.OnSpawn
  at KMonoBehaviour.Spawn () [0x000bf] in D:\JenkinsWorkspace\Preview_Simgame_Windows\game\Assets\Plugins\Klei\util\KMonoBehaviour.cs:291 
  at KMonoBehaviour.Start () [0x00011] in D:\JenkinsWorkspace\Preview_Simgame_Windows\game\Assets\Plugins\Klei\util\KMonoBehaviour.cs:242 

The log goes on for every building changed by the mod.

Did you removed the used method? Or has it just changed, and the author can update the mod with another call?

Link to comment
Share on other sites

2 hours ago, Ipsquiggle said:

Duplicants weren't properly dead while in containers. This fixes them causing crashes from getting sick but also being dead (and in a container).  (Still need to figure out what they are doing in containers...)

Dupes get into all sorts of trouble, they even get into code where they don't belong! :D

  • Haha 5
Link to comment
Share on other sites

Just now, Cairath said:

Can't really expect Klei to test patches with mods o.o Conduits related mods just need to be updated.

I dont expect Klei to test with mods at all. I just wanted to bring this to attention, and if they removed the call, maybe by accident, they can repair it. If not, the mod just needs updating. Mot author is notified.

Link to comment
Share on other sites

The save loads normally the first time but when you pause the game and reload it it'll crash. Maybe it's just my potato computer, but I attached the save. I reloaded the save because I've encountered the liquid shutoff bug mentioned by Nitroturtle.

Tortuga Clean Start.sav

The save reloads and results in a black screen with NullReferenceException: Object reference not set to an instance of an object.

Edited by PreliatorMax
update
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...