Minicopters, RF Communications, Performance tweaks and more.
Electricity is no longer limited to wires! you can now send information between circuits wirelessly. To facilitate this system we have added some new items
The RF Broadcaster will emit a signal on the chosen channel (1-9999) when it receives power.
The RF Receiver, which will allow passthrough when it detects the selected channel.
The RF Transmitter will emit a signal on the chosen channel while equipped with the fire button held down.
The RF Pager will emit a sound when it picks up a signal on the chosen channel.
We're excited to see what kind of contraptions people come up with using these items.
We've added some new electrical components to help notify you or to simply spruce up your circuits
Simply provide power to these electrical components and they will automatically begin emitting light or sound.
Oilrig Monuments Delayed
While the Oilrig monument is almost ready to release, some things remain to be ironed out on the gameplay side. We didn't want to release as another static monument, so in order to make this one extra special, we will postpone its release to next month.
The minicopter has arrived in rust.
You will find this new method of air transportation on runways and roads and can be mounted by two players at a time. A pilot, and a passenger. The pilot is restricted from looking around or using weapons but the passenger is free to use whatever items they wish.
As with other vehicles it requires Low Grade Fuel. Simply enter the driver seat and press "W" to start the engine. Here are the default controls :
- W = Throttle up (climb)
- S = Throttle down (descend)
- A = Rotate left
- D = Rotate right
- Mouse left/right = Roll
- Mouse Up/down = Pitch
- Crouch = Drive mode
A fair bit of warning, this is NOT a forgiving vehicle to pilot. It is extremely fragile and even minor bumps into objects will result in the total destruction of the airframe and/or your death. However, those who master its controls will gain a significant advantage over everyone else.
Maybe people will buy sam sites now.
Holding crouch while the vehicle is touching the ground will engage its driving mode, allowing you to use ASDW to maneuver the vehicle into the hangar you just constructed for it. Keeping it indoors will prevent it from decaying.
P.s. Regarding SAM sites: They are now more accurate, faster, and deal more damage. there's also plenty more at launch site so don't get any ideas.
Trap & Turret Performance
So it looked like the Flame Turret, Gun Trap, and AutoTurret were all major CPU hogs on really populated servers. This was due to how targets were acquired. How we used to do things was to search for players in a radius every 1 second for each autoturret but only do a few autoturrets per frame. This was not only not working but extremely expensive in large bases due to all the visibility checks. I've changed them all to use a physics trigger so that it only uses up CPU when a player is actively walking inside its range. This should help framerates on larger servers tremendously.
This will probably be the most widely used detector in the game., the HBHF Sensor (or player sensor) will detect any player in its radius of about 10m and allow a passthrough amount equal to the number of players detected. This means you can hook up a counter to it and it will tell you how many players are being detected. It only detects players that it has line of sight to and it can be configured to detect both building authorized players and outsiders, or exclude either. Combined with the wireless controls you can easily set up a circuit to page you when it detects one or more players near your door. You could combine this with a timer so that you were only paged if they hung around for more than 60 seconds to prevent false positives from people just passing by. There are so many possiblities I'm excited to see what you guys come up with.
I've added a new electrical component - the RAND switch. Basically it functions like a blocker, except each time it receives power from it's toggle input it will randomly roll if it will allow passthrough or not. This should be very helpful for anyone making gambling games or non linear circuits.
I've also added a 'Toggle' input to the memory cell. each time power is received through this input, the memory cell will flip to it's opposite state. This is very useful for in applications which require their state to alternate with each subsequent power input. Such as a button that opens a door with one press, and closes it with the second.
New Vegetation Art
This month some new art makes its way into the game in the form of new palm trees in the arid biome and the hemp plant refresh Damian teased back in September has been implemented.
Military Tunnels Balance
I reworked the Military Tunnels exit route. Previously the only way out was the chimney past the lab. You can now use the mine tunnel that was previously a way in, as a way out. The surface also has covers for an easier retreat if you are being camped.
Iterative Entity Networking
The single biggest reason for frame rate drops in the game were entities being created and destroyed as you were moving around the world. We have long been optimizing this part of the game via game object pooling and by load balancing as much work as possible on the client. This long and difficult path has now come to a conclusion by adding the last building block, iterative entity networking from the server.
What this essentially does is intelligently balance the number of entities the server sends to the client to avoid overwhelming it and causing frame rate drops. This is easier said than done since certain packets rely on certain entities being present on the client and cutting back on fundamental guarantees like this can cause all sorts of problems. We managed to find a robust solution by using a higher resolution network grid bundled with convars to throttle the entity update batch size. That's a lot of words to say your frame rate will now no longer drop significantly as you move around the world.
Custom Garbage Collections
The second biggest reason for frame rate drops in the game were garbage collection cycles. These cycles were particularly annoying as they tended to happen during combat or when moving. To counteract this we have now added a custom layer on top of Unity's garbage collector that prevents garbage collection cycles during these high intensity situations and instead tries to find more suitable moments to perform these operations.
If you have a lot of RAM you can help the algorithm by increasing the gc.buffer convar. The default value is 256MB, which means it will perform a collection at suitable moments after 128MB (or 50% of gc.buffer) and it will always perform a collection at any moment after 256MB (or 100% of gc.buffer). We expect the default value to be entirely sufficient for the entity and player counts on official servers.
We haven't been able to upgrade Unity in a long time as every version released after 2018.1.4 had some game breaking bug in it that either completely destroyed performance or flat out broke the entire game. Unity 2018.3.3 has now finally fixed the last remaining physics performance issue that kept us from upgrading, so we pulled the trigger last week. Our impression so far is that it has helped with performance a little bit, particularly physics performance. It also feels a lot more stable.
We now send delta snapshots instead of full snapshots when spawning. This means that respawning in your base after you died nearby is significantly faster.
Preview: Water 4
Our improved water system is making its way for March patch, it will feature deep sea waves and foam, finer water interaction for wave displacement and disturbance effects that work at a global level. The goal is to turn our seas into a more challenging and interactive environment, and also to improve overall water rendering performance via simplification.
We are in the final stages of development and testing the system, so there are still a few details to iron out before we can roll this out to everyone. Thankfully, the timing might be perfect to match the new release date for the Oil Rig monument. I'm confident these water improvements will help make the Oil Rig a more engaging experience.
The new Unity upgrade has allowed us to enable some features which were previously unstable, we're enabling fullscreen exclusive by default which should bring performance benefits to the vast majority of players who play using fullscreen.
If you experience any negative effects while playing fullscreen try using the launch parameter "-window-mode borderless" to revert to the previous fullscreen mode.
Linux and MacOS Update
Our Linux and MacOS builds over the past 8 months have been in a rough state and in constant limbo due to we've been unable to update Unity. The good news is we've finally been able to update Unity which should resolve all the known issues with Linux and MacOS!
If you're still experiencing issues please let us know.
Buoyancy, in this context, refers to any physics code handling objects floating at sea; e.g. boats, corpses. This is one, among many, sources of server performance degradation. We decided to tackle this one for this patch for two reasons: it was taking an unreasonable amount of processing time, and it was relatively straightforward special-case optimization.
At this point, while not completely out of the way, it is definitely less of an issue. It should now be around 2.5x faster. Hopefully this will help take server load down a notch.
Oil Rig sneak-peak
As Vince said earlier, this one has been pushed back to next month, but that doesn't mean we can't have a small look.
Chinese New Year
In addition to the content released this month, you can find some unique items for sale on the rust item store to help celebrate Chinese New Year!
- New Hemp Plant Refresh
- New Palm Trees in Arid Biome
- Iterative entity networking (fixes frame rate drops when moving around the world)
- Custom garbage collections (fixes frame rate drops when moving or in combat)
- Added Mini Helicopter
- Added Flasher Light
- Added Siren Light
- Added Audio Alarm
- Added RF Broadcaster
- Added RF Receiver
- Added RF Transmitter
- Added RF Pager
- Added Player Sensor
- Added RAND Electricity Component
- Added Chinese New Year items
- Fixed chat / player name "rich text" exploits
- Fixed entity not taking damage when explosive was attached to lock
- Fixed deployable rotation via R key when deploying on terrain at an angle
- Fixed being able to see through floors on reconnect
- Fixed sometimes receiving fall damage when respawning
- Fixed toggling censorship option enabling worn light source
- Fixed netgraph not working
- Fixed entities sometimes missing when spectating
- Fixed lens flares flickering in some cases
- Fixed dive site tugboat windows visible over water
- Fixed multiple Hapis out of bounds exploits
- Unity 2018.3.3
- EAC SDK update
- Clear Log.EAC.txt on server start
- Send delta snapshots instead of full snapshots when spawning (faster respawn)
- Optimized memory allocations when applying skins to items on the client
- Optimized rigidbodies on various entities on the client
- Optimized memory allocations when building blocks are spawned on the client
- Optimized client and server relating to buoyancy performance
- Enabled entity pooling on ceiling lights on the client
- Enabled multibox pruning broadphase (client and server physics performance)
- Disabled rigidbody interpolation on HAB and CH47 (server physics performance)
- Strip various client only components from the server (server memory usage)
- Military Tunnels exit route balance
- Enabled Fullscreen Exclusive by default
- Optimized GunTrap/Autoturret/FlameTurret CPU usage
- Increased SAM Site Lethality
- Added 'Toggle' input to Memory cell