over 2 years
ago -
Rocket
-
Direct link
We have been working hard over the last eight months, building a new team and adopting a new approach based on lessons learned with our other studio projects, such as ICARUS. As part of our review of the project, and where it was at, we identified major changes that needed to occur in the project, in order to progress the game to where we all want it to be.
This rework would require us to touch nearly every system in the game, reworking from the ground up systems such as Multiplayer and how our memory was managed in the game. This was a huge effort, and very daunting - taking us away from the regular update cadence we have been providing. Finally, all this hard work has bought us here: the start of a great process of discovering what Stationeers can really be.
Optimization
Much of our work has been devoted to redoing entire systems so that they work well at scale. Our teams on our other projects provided input and advise, bringing knowledge from some very senior staff with decades of experience to help the project. This has allowed us to provide massive improvements in performance and stability for both singleplayer and mutliplayer.
This video from a community member demonstrates some of the optimizations we were able to achieve:
https://www.youtube.com/watch?v=XlO1sBk7JqU
Where to from here
Pushing the work to "main" is really just the first step. During this period of refactoring the foundations we have been sketching out what we want the game to be, and with this work done, we can begin updates like we were before. However, there will be one big difference: we won't be restricted by the performance and systemic issues like we were before.
Our focus for the next few weeks will be continuing to bugfix and improve this build, while we work on our additional content to come.
How you can help
We are immensely proud of the efforts of our team, and grateful for the assistance of the other teams at the studio - who have been able to bring experience and advice to the team to get us here. Please do consider leave a positive review for our efforts so far, and help us spread the word about the reboot of the project!
Additionally, please consider supporting us by buying the DLC we put together as a form of "supporters edition" for the game.
https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/
https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/
Dedicated Servers
Running the game with the parameter -batchmode will run it in dedicated server mode. We haven't yet got this build deploying in the Stationeers dedicated server branch. This is a completely different approach, much more optimized and robust. We will be releasing these as soon as we can, but the upside is they provide a tremendous step up from the server offering we had before. This will give server hosters the ability to run true public servers, with good player numbers. This was totally impossible before.
Accessing the old version
The previous version is available on the "previous" branch on steam, and will remain there indefinitely for those who have any issues with this new version. However this will be unsupported, as we can't apply any fixes to it.
Join us on Discord
Join the crew on discord and let us know your thoughts and any bugs or issues you have. This update would not have been possible without the tremendous support of the community over the last eight months, and since the start of the project.
Checkout our other teams projects!
These other projects have been able to help us with assistance and advice, please check them out to see if you'd enjoy them.
https://store.steampowered.com/app/1286190/Art_of_the_Rail/
https://store.steampowered.com/app/1149460/ICARUS/
Changelog There are so many fixes, optimizations and changes (+900 changes, across +10000 files in the project), that steam won't accept that much text in a post!
TOO MANY CHARACTERS FOR STEAM, SEE FULL LOG ON PASTEBIN[pastebin.com]!
This rework would require us to touch nearly every system in the game, reworking from the ground up systems such as Multiplayer and how our memory was managed in the game. This was a huge effort, and very daunting - taking us away from the regular update cadence we have been providing. Finally, all this hard work has bought us here: the start of a great process of discovering what Stationeers can really be.
Optimization
Much of our work has been devoted to redoing entire systems so that they work well at scale. Our teams on our other projects provided input and advise, bringing knowledge from some very senior staff with decades of experience to help the project. This has allowed us to provide massive improvements in performance and stability for both singleplayer and mutliplayer.
This video from a community member demonstrates some of the optimizations we were able to achieve:
https://www.youtube.com/watch?v=XlO1sBk7JqU
Where to from here
Pushing the work to "main" is really just the first step. During this period of refactoring the foundations we have been sketching out what we want the game to be, and with this work done, we can begin updates like we were before. However, there will be one big difference: we won't be restricted by the performance and systemic issues like we were before.
Our focus for the next few weeks will be continuing to bugfix and improve this build, while we work on our additional content to come.
How you can help
We are immensely proud of the efforts of our team, and grateful for the assistance of the other teams at the studio - who have been able to bring experience and advice to the team to get us here. Please do consider leave a positive review for our efforts so far, and help us spread the word about the reboot of the project!
Additionally, please consider supporting us by buying the DLC we put together as a form of "supporters edition" for the game.
https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/
https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/
Dedicated Servers
Running the game with the parameter -batchmode will run it in dedicated server mode. We haven't yet got this build deploying in the Stationeers dedicated server branch. This is a completely different approach, much more optimized and robust. We will be releasing these as soon as we can, but the upside is they provide a tremendous step up from the server offering we had before. This will give server hosters the ability to run true public servers, with good player numbers. This was totally impossible before.
Accessing the old version
The previous version is available on the "previous" branch on steam, and will remain there indefinitely for those who have any issues with this new version. However this will be unsupported, as we can't apply any fixes to it.
Join us on Discord
Join the crew on discord and let us know your thoughts and any bugs or issues you have. This update would not have been possible without the tremendous support of the community over the last eight months, and since the start of the project.
Checkout our other teams projects!
These other projects have been able to help us with assistance and advice, please check them out to see if you'd enjoy them.
https://store.steampowered.com/app/1286190/Art_of_the_Rail/
https://store.steampowered.com/app/1149460/ICARUS/
Changelog There are so many fixes, optimizations and changes (+900 changes, across +10000 files in the project), that steam won't accept that much text in a post!
TOO MANY CHARACTERS FOR STEAM, SEE FULL LOG ON PASTEBIN[pastebin.com]!
- Another fix for helmet offset bug
- Fixed NRE when requesting network data and a client is null
- Fixed missing script editor error when selecting game controllers
- Fixed two rovers being created when building a rover.
- Fixed BuildStates being set twice on server.
- Fixed Plants and seeds throw error spam when destroyed by lava.
- Fixed On Loading game tanks/portable machines attached to connectors would be halfway in the floor.
- Added server settings changes support
- Fixed NREs when trying to join a server from the list
- Fixed Error spam thrown by chickens
- Fixed Can't drag dead players.
- Fixed Can't drop your old body if you pick it up after respawning.
- Fixed Key bindings not being reset after respawning.
- Fixed Gasping breath on starting a game with a new character.
- Fixed player animations not being synced to clients when the is occluding them
- Fixed advertise server setting not working
- Changed Slot rotation of canned food.
- Fixed Double clicking on a server in the server browser doesn't work.
- Fixed layering issue with GasMask when removing/add to head slot
- Fixed Items in Lockers incorrectly rotated.
- Added client side terrain generation to significantly reduce the amount of data sent over the network
- Made ore generation actually deterministic to allow for client side terrain generation
- Optimized ore vein generation
- Fixed loading screen from being disabled to early for joining clients
- Added destination IP for meta server
- Potential fix for when suit becomes invisible to some players after client joining
- Fixed gameObject layering issue for backpack and helmet when entering non-human slots
- Fixed bed's missing material.
- Fixed Objects in Right hand are rotated backwards on Load and Join.
- Fixed When using ParrelSync in editor additional clones do not get assigned a unique client ID when a clientId is assigned to the primary instance.
- Fixed issue with reagent mixer switch not showing error state
- Fixed animation curves not being deserialized correctly on clients
- Fixed New elevators Starting with a speed of 0.
- Fixed Gas Canisters bought from Gas Traders were Empty.
- Refactored TraderContacts to iReference-able system.
- Fixed Trader Contacts not syncing to Clients.
- Fixed Trading on clients not synced to server.
- Fixed Electronics thread error message when un-loading world.
- Fixed Computers sometimes unable to to see devices on their network (i.e Computer with CommsMotherboard not receiving updates from satellite dish).
- Fixed Unable to buy more than 1x of a non-stackable item from a trader in a single transaction.
- Fixed respawn conditions not loading when app starts
- Fixed and improved respawning system where respawn conditions weren't assigned properly
- Removed embedded TMP package in favour of registry version
- Removed embedded TMP package in favour of registry version
- Changed some min/max and default settings values
- Fixed wrong material assigned.
- Fixed refresh rate setting showing "resolution"
- Removed more settings from menus
- Added RefreshRate as a new dropdown in settings menu
- Fixed NRE when trying to print to console before buffer is initialised
- Fixed compiler error in AtmosphericScattering. #endif in wrong place.
- Removed old console panel and moved remaining logs to be output through the new console
- Removed most instances of <color=...> from logs
- Fixed autosave not working until the setting was toggled off and on again
- re applied custom world fix
- Fixed Building new Sequencer music machine prevented game from saving.
- Fixed Error spam when looking at input screws of a new sequencer machine.
- Fixed Clients unable to interact with Logic Math Chips: Compare, Math, MathUnary, MinMax & Select.
- Added Stationeers can now set the speed of an elevator by writing to the ElevatorSpeed Logic Variable on any of the shafts (speed value written will propagate throughout the Shaft network).
- Fixed Error on Server when clients body decomposes.
- Fixed Error Thrown by suit when a body decomposes.
- Fixed custom worlds in multiplayer
- Fixed world setting data not being set to clients
- Fixed ReagentProcessor not turning on when Bench is on
- Fixed Elevator Speed Slow down. Have increased speed over original by 50%.
- Fixed a bunch of errors thrown when clients die.
- Fixed Stun Damage not healing over time when in a safe breathing environment.
- Fixed throw time. Back to 1 sec (was accidently increased when throw power was increased)
- Changed Ragdoll stops after a period of time on death.
- Fixed humans eyes being opened when sleeping
- Fixed humans eyes being opened when dead
- Fixed sensor lens graphic not disappearing after ore is mined
- Fixed Glitchy timing for Music machines clients.
- Tightened up timings of rhythmic playback on music machines for host/single player.
- Fixed SawLead patch not working on Leads cartridge.
- Added trigger zone to computers to turn off screen when outside bounds to save on CPU costs for world UI
- Fixed dropdown issues on Sorter and Fabricator PC screen
- Improved scrolling with up/down buttons on computer screens.
- Fixed Error spam on Opening Server browser.
- Fixed music machines not working on client.
- Another Fix for Crash on client when merging Networks.
- Added support for joining from server list (upcoming feature)
- Fixed New Elevators built in Beta not working. You can fix any bugged elevators in your save by either: disassembling them and rebuilding them OR using a logic writer to set all the elevator Shafts On Variable to 1.
- Updated Elevator carriage tooltip to show when an elevator is not working because the shaft its trying to move through is turned off.
- Fixed Hard crash on clients that could happen occasionally when networks were merged.
- Added better syncing of Filter enum on comms motherboard
- Removed batch mode check for a series of initialisation calls when app start
- Added an overload to process one cmd line for CLI commands
- Changed Increased Throw power by 50%.
- Fixed Velocity of client players now effects the velocity of thrown items. (previously only worked for host)
- Fixed Items dropped by clients drifting to the start drop position.
- Fixed Items precision placed by clients drifting slowly to target position (they now snap).
- Fixed Throwing sound not playing.
- Fixed client not being able to depart a trader
- Fixed client side filtering for comms computer
- Fixed render distance on modular rocket itemkits.
- Fixed SmartGasCanister not updating visualizer on clients.
- Fixed instances where tablet (and other tootips) were not showing fractional values.
- Removed some extra logging in dedicated. not needed
- fixed NRE for internal atmosphere on dedicated server
- Fixed Internal Atmosphere is not initialised on Dynamic Gas Canister when starting new game in Dedicated server.
- Removed more DEDICATED_SERVER defines
- fixed manual saves on dedicated server
- Fixed Removing a pipe,cable or chute from a network would cause adjacent network elements to disconnect from their connected devices.
- Fixed items in slots having the wrong position/rotation
- Fixed issues with changing appearance within a game
- Fixed Dynamic items stuttering when rotating on clients.
- Fixed ToggleLogBps command.
- Removed unnecessary error logs
- Fixed syncing issues with player cosmetic data
- Removed half precision for rotation and position on dynamic thing update messages
- Fixed Error where server send bad new network data on join "Error: Clients should not be assigning a new Reference. Client is trying to assign a new reference for CableNetwork: 0".
- Disabled Some network logging.
- Potential fix for items on characters being incorrectly rotated/positioned on join.
- Removed some debuging code
- Fixed client having local authority over everything until they take control of a character
- Fixed AngleGrinder spin-down sound plays when saving game.
- Fixed AudioEventUpdates being added to queue for things that didn't have sounds.
- Fixed Signs sync correctly to clients.
- Fixed LightOnOff Sounds play when suit battery is empty.
- Changed Halved the size of the terrain clutter
- Fixed stuttering movement on physics items when piled on top of each other.
- Fixed error thrown on client when body decays.
- added support for spaces for arguments surrounded with quotations in console window. Use case: 'loadgame' command for paths or filenames.
- added 'leave' or 'exit' command to exit a game session
- Changed exiting client side message to a lower level to handle all IExitable implementations
- Fixed Client not receiving the last atmosphere update when an atmosphere is evacuated.
- Fixed console input not working by disabling in world debugging until solution can be found
- Fixed Rover tire sound playing in vacuum.
- Fixed Rover movement is stuttering in single player.
- Fixed client getting out of Sleeper
- fixed issue where join message was OK but didn't break loop resending if failed.
- added log command
- Added save commands to ingame CLI
- Improved text wrapping in ConsoleWindow
- Fixed Build Error.
- Fixed Some devices get disconnected from a cable network when it was merged with another network in certain configurations.
- Fixed Devices labelled by clients or server do not have the custom name set on other clients.
- Fixed Pipe label is invisible when placed on server. (now shows default text).
- Fixed Playing FX on fire Extinguisher when in batch mode.
- Modified Sentry Config
- Added some verbose logging to join queue process
- Fixed Steel frame not blocking sound.
- Fixed Exception thrown by suit on join: UnityEngine.Renderer.set_enabled(UnityEngine.Renderer,bool).
- Fixed Exception thrown by battery when disconnecting.
- Added batch mode checks to sound playback in audio manager.
- Fixed spawning things through CLI
- First pass on trade transactions on clients (Trading now work on clients but with some bugs)
- Improved CommandLine code for future proofing scaling
- Fixed Clients not seeing Global Atmosphere Temperature correctly (bug Introduced rev.16267).
- Fixed Incorrect interaction tool-tip on plants in Dynamic Hydroponics planter for clients.
- Fixed Clients not seeing plants at correct growth state on join.
- Fixed Seed packets throwing an index out of range exception.
- Fixed mismatch in read/write type in client trade request message
- Fixed NRE thrown by suit.
- Fixed Index out of range error caused by suit.
- Second iteration on fixing traders
- Added the ability to re-smelt advanced alloys in the advanced furnace, as the inability to do so was confusing to players.
- fixed Constantan only having a upper smelting temperature of 9999, instead of the 99999 all others hav
- Fixed Case where server could send an internal atmosphere update with an unassigned parent ReferenceId. It caused error spam on clients when connecting to a Dedicated server.
- Fixed Atmospherics exception caused by changing the DeregisteredAtmospheres collection on the thread during NetworkUpdate Write function.
- Fixed Gas Displays not showing the correct Mode on clients when joining.
- Fixed Errors thrown on client and server when joining during a storm.
- Fixed Advanced composter creating 120x too much gas at super cold temperatures.
- added error log when client is receiving atmosphere.parentId as 0.
- fixed issue with trying to get steam avatar when steam sdk not intialised
- Fixed Atmospheres undergoing changes in Pressure would have their Temperature flipflop between incorrect values on client.
- Fixed Error on client when player decomposes.
- Fixed Clients now run their atmospherics tick immediately after receiving the atmospherics network update. (previously it was running on a fixed timer which could result in multiple or no client side ticks between updates).
- Fixed Clients sometimes seeing a vacuumed out atmosphere as having a small amount of gas remaining.
- Changed Atmosphere message now sends Temperature rather than energy. Small variances in molar Quantity or Energy Quantity at the extremely small ends of either scale could result in wildly inaccurate pressure and Temperature readings on the client. Client now infers total energy based on the Temperature (not the other was around as was handled previously).
- Fixed exception where client is trying to create an internal atmosphere on a structure in batched mode
- Fixed Human spawning in batched mode. You can join a dedicated server now but its not spawning in the correct player model yet, it will create a new one.
- Removed placeholder auto launch arguments
- Fixed -new launch command
- added -load launch command
- Added GameManager.IsBatchMode static property to replace DEDICATED_SERVER preprocessor
- Fixed Wireless power transmitter causing error on load.
- Fixed case where cables could become invisible.
- Fixed clients mining causing critical error on server
- Disabled Position message updates for items hidden in slots.
- Optimised Dynamic item network message by order of magnitude. Bandwidth reduced from 200KB/s to 20KB/s on test case.
- Fixed Clients Destroying items that are out of bounds (only server should do this)
- Reduced Initial Judder of item when throwing on client.
- Fixed Quaternion must be unit length error on Client.
- Removed bandaid fix for items being offset (pos/rot) in slots
- Fixed Helmet being rotated incorrectly on clients when they join
- Fixed server error when clients connect to saves with a trader landing pad
- Fixed IC Code on computers getting wiped when client joins.
- Fixed Clients don't get correct IC message errors.
- Fixed build error
- Fixed WirelessPower not working on Clients.
- Changed Config Cartridge to run on logic thread.
- Fixed IC source code not getting sent to clients in certain cases.
- First pass on fixing traders for clients
- Added console command 'steam' to check if Steam is initialised and if DLC is valid for user.
- Fixed NRE Error thrown by Jetpack on respawn as client.
- More NRE checks when leaving game.
- Fixed Hash display values being inconsistent on client.
- Added null/destroyed checks in CameraController. Causes a lot of NREs when leaving game
- Fixed Several edge cases where Atmospherics thread could break on load (Thanks @GamersCircle).
- Removed null checks on string binary writer
- Fixed client side error when a null string is passed over the NetworkUpdateType
- Fixed NRE when building on client with empty off-hand slot.
- Fixed Logic displays, dials and a number of other logic devices animating based on the previous setting rather than the current setting on Client.
- Fixed build error
- fixed debug overlays
- fixed font/spacing on the console
- Fixed ModularRockets not loading in correctly.
- Fixed ProgrammableChip not syncing.
- Fixed syncing ProgrammableChipMotherboard device dropdown
- Fixed cables and pipes doubling up when clients place them
- Fixed syncing of ProgrammableChipMotherboard
- Fixed Error on Client when stacking items using mouse control.
- Fixed placing advanced furnace kit causing NREs with InternalAtmosphere
- Fixed Occasionally Global atmosphere would be created when mining out sealed rooms underground.
- Fixed Clients not being sent atmosphere updates when the number of moles of gas in a pipe or tank was very low.
- Disabled Sentry
- Fixed an instance were clients were creating atmospheres they weren't supposed to.
- Optimised Network message for rotatable things (reduced rotation precision on client from doubles to FP16).
- Fixed a number of issues with clients interacting with logic chips in multiplayer.
- Fixed Gas Displays and Advanced airlock not working on clients.
- Fixed Numerous issues with circuitBoards not working correctly for clients in multiplayer.
- Fixed OnFinishedLoad and OnFinishedThingSync not being called on clients.
- Fixed InitAllDevices not being called on clients.
- Added All LogicChip synced variables to byte array message.
- Fixed items in slots being at wrong rotation when rejoining game as a client
- Fixed editor issue when playing game without SteamId assigned in inspector
- Fixed NRE for InternalAtmosphere on Jetpack and Canister
- Removed redundant IsOutgoingQueueFull check (Thanks Baughn)
- Fixed issue where GameMetaData wasn't reaching new joining client as current joining client is processing.
- Increased the acks and max sent message queue size values
- Added unreliable network channel for handshake messages
- Fixed Atmosphere error caused by client's room manager creating atmospheres.
- Re-organised Bitflags for network update types.
- Fixed MusicMachines, CircuitHousing, Logic BatchReader not syncing to clients.
- Fixed ores being able to have negative stack values
- Fixed BitArray de-sync edge case that would cause "Error: Thing is null during network update. ReferenceId:0".
- Fixed damage states not syncing on client join
- Removed intialising steam sdk in unity editor.
- Fixed LogicMotherboard syncing on join
- Added missing null check
- Fixed data cable not syncing to client on computers
- Fixed Log spam on clients when client deconstructs pipe and splits a network.
- Fixed Sanitised pipe network atmosphere messages to exclude some bad data.
- Stopped clients from processing network updates for objects they have authority over
- Fixed Adding a pipe onto a pipe network using wrench tool deletes all gas in the network.
- Improved atmosphere network message to only send delta states. Reduced atmosphere message size by 70%.
- Fixed client -> server interactions syncing properly. (still a little more work to do in this area)
- WIP commit for shifting atmospheres to only sending delta states over network update.
- Moved Atmosphere classes into their own files.
- Refactored FilterGas functions.
- Optimised Atmosphere network message from 76 to 50 bytes per atmosphere.
- Fixed welding torch flame stays on when gas runs out.
- Added HalfToFloat operation to RocketMath. returns max or min value when and the value is out of bounds rather than float.infinity.
- Changed BurnedPropaneQuantity to burned propane ratio. (used to display flame visualizers).
- Refactored previous weeks work on LogicMotherboard significantly improving how data was syncing
- Fixed Case where solar panels could throw NRE "Error: Thing is null during NetworkUpdate. ReferenceId:0".
- Changed AudioSequencer and Landing pad to use Setting/Processing update types instead of interactable update type for auxiliary interactions.
- Removed old network messages from logic units.
- Fixed Case where damage update could cause Error: "thing is null during NetworkUpdate refId:0".
- Changed Damage state to use a static read/write functions to allow the message to be read even when DamageState is null.
- Fixed Items that are queued for destroy no longer send network updates.
- Fixed computer scene dropdown contents layering issue in Logic Motherboard
- Fixed Water bottles being created 66% full and water bottles spawned in creative mode being 166% full.
- Fixed ChuteNetworks causing clients to fail joining.
- Aligned ChuteNetwork merging logic with other network types.
- Fixed Some solarPanels had OnOff and Open interactions added in error. This could cause them to be disabled.
- Fixed build error.
- Fixed Bug where devices would not connect to cable and pipe networks if the cable or pipe was placed AFTER the device.
- Fixed Several cases during network message preparation that could cause the following Null Reference Exception "Error: thing is null during network update. ReferenceId: 0".
- Fixed Things not un-dirtying their Interactables after sending a network update causing them to send the same update message forever after.
- Fixed DamageUpdate type not being cleared following sending a damage update causing damage updates to be send continuously for damaged items.
- Fixed A number of items that has animators added to the prefabs in error.
- Added ConsoleCommand TestByteArray (Editor Only) This will run the read and write method on each thing locally to confirm that the methods are parallel. You can enter a referenceId if you wish to test just one thing and not them all
- Fixed server breaking when the message pool is filled
- Fixed syncing issues with LogicMotherboard. Still a bit of work left on this though. Dropdown values aren't updating on client and Dropdown content UI sorting orders are all whacked.
- Fixed Logic Readers with no assigned device will cause server to throw an error.
- Fixed Joining a save game as client getting stuck because some pipe/cable networks were being cleaned-up in error.
- Fixed PipeNetworks not splitting their atmosphere correctly when split (bug introduced in previous build).
- Fixed Error thrown on clients when constructing portable gas tank.
- Changed Sentry configuration
- Fixed Issue where Clients pipe networks would become de-synced from Server when pipe-networks were joined or merged or when pipe were merged.
- Improved network performance by optimizing data types (created vector/quaternion half precision variants) for dynamic thing physics updates
- Fixed Issue where Clients cable networks would become de-synced from Server when cable-networks were joined or merged or when cables when were merged.
- Fixed Server sending update messages for things that are in the process of being destroyed. Should help to fix some cases of the "Thing is null during update" error.
- Reduced time taken to write network messages by a factor of 10
- Fixed NullReferenceException that could be thrown when receiving internal atmosphere updates on client.
- Made "Thing Transform is Null" error more verbose for tracking
- Fixed Visual bug where terrain would appear to be fully lit (even at night) this could happen when a certain grouping of objects were all visible that the same time.
- Changed Moved Terrain Mesh colliders onto child game-object on terrain layer. Asteroid parent (which contains the mesh) is now on the default layer.
- Fixed Fridge powered atmosphere not loading in correctly.
- Refactored Cable, Pipe and Chute networks to use the new referencing system.
- Fixed a number of string generation allocations.
- Fixed AirConditioner initialisation error preventing save from loading.
- Second pass on batch mode (dedicated server). Important console commands have not been added yet (save, load, kick, etc.)
- Fixed issues with logic boards settings not syncing properly over network
- Fixed Unable to read Internal atmospheres with Tablet on games saved on or after revision 16126. (You are fine to continue playing on any saves made after rev.16126, the tablet will work in them now)
- Restored Threshold for world atmospheres to be removed to original value. Was potentially causing some strange behaviour.
- Fixed Smaller volume internal atmospheres not interacting with global atmosphere for thermodynamics. e.g. players suit atmosphere was not being heated by Venus global atmosphere.
- Fixed Bug where a new ActiveVent would not pump gas until its mode switch was toggled.
- Set up framework for running the game in batch mode
- Fixed Placing pipe causes atmospherics error.
- Fixed Possible race condition when registering atmospheres from the thread.
- Fixed Atmospheres not being deregistered from the IReferencable collections.
- Fixed Errors causing saves to fail to load and/or clients fail to join caused by Fridge, VendingMachineRefrigerated and IceCrusher.
- Changed networkUpdateType on Atmosphere to uint.
- Changed All atmospheric Calculations including clean up of atmospheres now handled on Server.
- Added IReferencable to atmosphere. Each atmosphere now has a unique ReferenceId assigned on creation. This will allow us to only send the delta state of the atmospherics sim to clients.
- Changed world atmospheres now exist a bit longer before they are removed. was when within 0.1mols of Global, now 0.01mols.
- Fixed Greatly reduced the number of new WorldAtmospheres being created. Previously atmospheres around atmospheric items/ devices were being created and deleted each tick.
- Fixed items burning in the world would sometimes remove oxygen from (and add energy to) the planets global atmosphere.
- Fixed items sometimes not getting deleted when damage was at max.
- Fixed new debug overlay not displaying
- Fixed terrain and ores not spawning in as you move
- Fixed sun orbit period not being synced to client
- Fixed weather events not syncing to client
- Fixed battery structures not display not syncing when joining
- Fixed grenades not working
- Fixed jetpack syncing issues on client
- Fixed slotted items not being in correct position sometimes.
- Added ThingTransformPosition and ThingTransformLocalPosition properties for easier debugging of transform positions
- Added check for MoveToSlot if its already in a slot.
- Fixed console input not working with new debug overlay
- Fixed in world debug tooling and implemented the existing atmos debug tools from the console
- Added null checks for local human in keybinder. Was causing NRE in start menu
- Fixed respawn modal not showing after giving up when unconscious
- Fixed respawn modal showing when dead body has decayed
- Fixed health damage still decrementing after rehydration
- Changed keybinding stage to be set in KeyManager static way rather than binding to Human.
- Removed removing key binding if not is local human. Instead just ignoring
- Changed OcclusionManager threaded work now runs once per frame.
- Fixed Error where a thing could be created with a referenceId of 0. Things are now added to the AllThings list once they have been registered. (previously added on awake)
- Fixed an error where bad data was being added to the new things list. This is now populated only when an thing gets assigned a new refID and a client is connected.
- Fixed (potentially) for keybinding state issues when Stationpedia/other input windows is used and other areas e.g respawning.
- Added new class in clump all the Human inputs together for easier debugging.
- Removed ConsoleWindow closing when clicking away from it.
- Fixed a number of compiler warnings.
- Changed Thing.PackageJoinData to iterate over the list of things rather than the list of IReferencables, it was causing a strange compiler error.
- Removed INetworkSerializable interface
- Added IReferencable, generic interface for referencing different types
- Fixed pooled chunks causing invisible colliders for clients, as well as floating chunks when loading a game
- Fixed precision placement on client
- Fixed invisible chunks blocking clients after re-joining a server
- ..... + SIX HUNDRED MORE ON PASTEBIN[pastebin.com]!