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.
- 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.
- 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.
- 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.
- 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
If you want to join us for testing, you can download the testing branch through Steam.
- While the game is not running, right-Click on Oxygen Not Included in your Steam library
- Click on the "Betas" tab.
- Chose the Testing branch from the list.
- 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.
You can join in the Discussion Topic here.
If you run into a bug, please visit the Klei Bug Tracker.