Devblog 198

We're back, and this time we're bringing chainsaws, the SPAS-12 shotgun, new foliage, the first look at the new helicopter, and lots more. This patch wipes the maps, but your blueprints will carry over.

1 March 2018 (39 Comments)

The Chainsaw by Tom Butters has had its art finished and I've implemented it in the game. It requires Low Grade Fuel to run, and when equipped must be started via right mouse (which only has a 40% success rate, so multiple tries can be required). It will absolutely destroy trees and people, but that's about it. It's also a little loud, so please understand it will draw attention during use. I've decided not to allow this to be a raiding tool as of yet, but we'll see what we can do for the next patch. We really didn't want to add an item whose only purpose is to screw over new players who can't afford a metal door yet (ahem, Flamethrower).

You'll find this rarely in the red tool chests found by vehicle based junk piles. Enjoy!

The SPAS-12 Shotgun is in game. It is uncraftable, and can be found in airdrops and Bradley/heli crates. It is a semi-automatic shotgun, so it'll fire almost as fast as you can pull the trigger and let you aim down the sight while doing it. It has a 50% DPS bonus versus the Pump Shotgun, and is the close quarters weapon of choice for the scientists.

I did a bunch of work on the CH47, and it should be ready for release next patch. I've decided to make a base helicopter class which extends from our base vehicle class, and I'm going to make it physically based. This means we'll get much better physics, and it'll also be pilotable (but only on modded servers). When the time comes, I'll also make the patrol helicopter based on this system, so we'll get much better movement there too. The downside of this is that it takes slightly longer and the AI ends up being a little more complicated as it effectively has to figure out what it wants and translate that into button presses to be simulated by the vehicle as if it were a player. It'll be worth it in the end though.

Here's a video of a human pilot controlling the vehicle:

And here's a video of the AI system forwarding inputs to chase a waypoint:

As you can see there is some work to be done. But because we're doing everything correctly, we'll be able to mount a crew of scientists to the vehicle as if they were players, and it should make for some very interesting radtown encounters, especially when it starts delivering supplies.

A new type of ammunition has been added to the game which evens out the special ammo types. Incendiary Shotgun Shells, aka Dragon’s Breath.

These shells contain much larger projectiles, making it easier to hit your target as well as producing a magnesium flame on contact, slowing movement and dealing damage over time. Great for area denial. You can find them in airdrops as well as military crates.

Item repair has had a balance pass, making it much cheaper. Firstly, the repair bench itself no longer has any Wood cost associated with it. Secondly, the cost of repairing an item is now 20% of the items crafting cost instead of 50%. Too many people were just discarding items entirely and crafting a new one, and I found it pretty annoying myself. Enjoy!

I know everyone thinks you should be able to craft something from the get-go that takes out a geared guy with an AK, but that is obviously ridiculous. One of the reasons I added the Nailgun was to give people a shot at PvP against firearms without having to find a blueprint. I think the Nailgun was pretty close to where it was supposed to be. It sucks somewhat, but it's supposed to.

However there was an element of it that I found slightly frustrating: the fire rate. Something about it felt as though it were lagging behind my clicks, even though it was intended. And due to the number of projectiles it takes to take someone down, it felt frustrating to be killed before you could fully unload on someone. To this end I've slightly increased the fire rate, which will make the nailgun a little bit easier to use, but shouldn't upset the balance too greatly. Let me know what you guys think of this change!

Instead of scientists dropping random barrel junk they've been given their own loot tables. You'll find things like med syringes and scrap, all the way up to full weapons, albeit rarely. I don't want to give a comprehensive listing here, as it will spoil the fun, but just know that killing scientists will actually yield some decent loot from now on.

This patch the Scientists have invaded the Military Tunnels and don't like being disturbed.

They've seen a lot of work over the past month. They no longer walk through fences. They are better at switching weapons and reloading at times it makes more sense. They can no longer find their way out of the military tunnels and roam the land indefinitely. They are better at cover selection. They no longer gun each other down, and will step to the side in order to get a clear shot at their victims.

Scientists now have an alertness, and players have a chance to go undetected. Light sources, movement speed, whether standing or crouched, the distance between you, and generally making noise will all affect their ability to realize you're there.

When scientists walk about, they now relax their pose rather than constantly aiming ahead. Patrolling caused NPCs to end up in zerg clusters, that's now fixed and they will spread out more to patrol more ground. A lot of small optimizations here and there were also made. The frequency with which they spawn at the Military Tunnels has also been tweaked, and how many will spawn in at a time.

Scientists now also spawn at some vehicle junkpiles. These are less aggressive than those in the Military Tunnels. They are researching the junkpiles using the new Geiger Counter by day, and by night they sport a flashlight, so that players know they are there. Oh, and they wield an M92, just in case you get too close or attack them.

The convars npcplayerapex.npc_junkpile_a_spawn_chance and npcplayerapex.npc_junkpile_g_spawn_chance can be set to a value between 0 and 1 to set the chance of a Scientist spawning at vehicle junkpiles. Their spawn chance is set to 0 by default, but their convar can be adjusted at any time by a server admin.

Scientists will expand their research to new locations on the island in the future.

If you played on the staging branch, you might have noticed that we added some new bushes to the game. There are currently two new types of new bushes that are native to North American climate: the Glaucous Willow and the Spicebush. These bushes are taller than the player, which means you should be able to use them as cover and hide within the canopy.

In addition to new bushes, I've been hard at work on adding some new deciduous trees. Oak trees are the first on my list, and while they are not available in today's patch, they should appear sometime next month. These trees are much larger than the ones we currently have and they will be spawned rather sparsely on fields and in tundra biomes. Below are some screenshots of the leafy and dead variants.

I started the month by working on our interior lighting. Rust has been suffering from extremely inaccurate interior lighting due to the lack of sky light occlusion and object reflections. To address this I added a new "World Reflections" slider to the graphics options.

Quality 0 already looks better inside player buildings than what you're used to since we no longer include the directional sky scattering in the object reflection pass. This means, while light from the sky is still bleeding through into the building interiors and forests, the directional sunlight no longer does. At the same time it's much faster than the old reflection pass. So the new baseline is both better looking and faster.

Quality 1 then improves upon this by including the terrain in the reflection pass. This has already been the case since last month, but the lack of directional sky scattering occlusion kind of ruined the advantages of this in a lot of situations. You can clearly see the difference between quality 0 and quality 1 under the research table and along the edges of the storage boxes. This is still faster than the old reflection pass and I made this the new default setting.

Quality 2 then goes even further by including proxy meshes of buildings in the reflection pass. These meshes have an extremely low vertex and triangle count and are very fast to render. This correctly occludes the sky inside buildings and objects no longer show the distinct blue glow when inside. You can easily spot the improvement under the research table and on top of the storage boxes in the background. Performance wise this should be nearly identical to the old reflection pass.

Diogo is currently working on a new reflection probe system that will improve the performance of all three quality settings even more.

The new tree imposter system allowed us make some improvements to the tree view distance. If "Tree Quality" in the performance settings is above 50 we now render trees on the entire map.

This makes a huge difference visually and should barely have any effect on performance for most people. If it does negatively affect performance for you, reduce the tree quality to 50 or below and file a report with us so we can see your hardware.

I also adjusted the distance at which trees switch from the lowest LOD to the imposter if the tree quality is reduced below 100. This means people on super low end hardware who play on the lowest settings possible should see a decent performance improvement with this update.

So it sucks when you log in and your entire base is gone because someone destroyed your tool cupboard. This has been a major ongoing complaint about the upkeep system, and I can definitely see why. Griefing has always been a part of Rust to a certain degree, but the upkeep system has put it on steroids. To counteract this and bring griefing back to the old levels we know and love I added upkeep grief protection. This means when a cupboard with resources in it is destroyed, it uses part or all of those resources to purchase up to 24 hours of decay protection on all building blocks that are currently connected to the building. This requires resources to be in the cupboard, so make sure to put a code lock on it. Doing this multiple times will not increase the time beyond 24 hours. Building blocks that are added after the cupboard was destroyed will decay normally.

Many of you came across a workshop item skin bug that prevented a lot of skins from loading altogether due to items with a corrupt skin ID. This stalled the skin download in Steam and made our skin loading system wait indefinitely. This has now been addressed in a number of ways. First of all, the bug that could cause the corrupt skin IDs on items has been fixed. Then secondly, the skin loading system will now immediately skip skins if Steam fails to initiate the download. Lastly, even if Steam does not detect a problem we will time out a skin if Steam it does not download it within 60 seconds and move on to the next one.

We've been tossing around plans to add more complex conditional models, like wall corner pieces, to buildings for quite some time. The limiting factor in this was that the client had to evaluate the conditions of the models itself, which was relatively slow. I rewrote this so the server sends the model state of each building block to the client, so even thousands of conditional models won't slow down the client at all. The server can load balance these calculations and only needs to do them when people are building their bases. The model state is transferred as a bitmask so the traffic overhead is also extremely minimal.

To summarize, building blocks and conditional models can now be created much faster on the client which immediately benefits client performance and will allow us to add much more interesting and complex conditional model variations in the near future.

There's been an issue with paintable signs that could clear their texture whenever the server restarted. This didn't affect all signs, which is why we missed it in the testing leading up to last month's update. We tracked down and fixed the bug, so your art will now last for a full wipe as intended.

When we converted the sign texture file cache to a database last month we kind of dropped the ball and configured the database to wait until everything was written to disk whenever a new file was added, which is the default configuration. This could cause significant stuttering, particularly if the game wasn't running on an SSD. This is now fixed and the files will be written to disk in asynchronously.

Until now, most of our monuments were blended on procedural map using a constant radius. While this worked it created a lot of wasted transition space between the procedural and the monument parts. If the monument is one of a rectangular or irregular shape, then using a custom transition map for gradient offers best results, and overall the map looks more natural.

Since the last graphics overhaul we've been working to go one step further to improve overall lighting and shading. Getting more accurate light interactions will empower artists to make more realistic assets and make their life easier. Our environment reflections are now updated based on the player location, so we can get more accurate indirect lighting throughout, especially in interiors.

This change, however, meant we could no longer use the global environment reflections for water. Rendering global reflections just for water, in Unity, is also prohibitively expensive for some reason. In this patch we are introducing an analytical approximation to solve global water reflections - atmospheric scattering, sun and moon. This approach is, unfortunately, far heavier perf-wise and is meant to be only temporary, while we roll out our own highly optimized environment reflection renderer.

You'll note that, for the time being, both the Sun and Moon's reflections look slightly different and lose some of the detail:

These past few weeks, Damian and Vince have been improving foliage and found some problems and limitations with our foliage shader. I spent some time fixing a number of issues in order to match their needs:

  • Fixed Translucency not matching direct lighting in tone due to not being tinted according to biome
  • Fixed random variation tinting not matching the old legacy foliage shader resulting in duller shading, especially on grass
  • Disabled Translucency coming from indirect lighting, causing them to be too lit when in shadow, due to the lack of indirect shadowing
  • Globally enabled vegetation specularity and reflections

We are building a custom environment reflection probe system in order to be able to have multiple probes for different purposes. For those of you who don't know, a Lighting Probe is effectively a 360 degree snapshot of the surrounding area at a certain location, used during the shading computations of any surface to simulate reflections and/or indirect lighting.

A very obvious case already discussed in other sections is, for example, one probe relative to the player position (low resolution) and one global probe (high resolution) for water reflections. Unfortunately, Unity adds a massive overhead when rendering probes, I'm guessing due to a combination of having to get accurate results across all potential usage cases, some underlying inefficiencies in their implementation and lack of quality/performance options.

In Rust, on the other hand, we have a lot of margin to reduce surface and shader quality, exclude shadows from multiple lights, use lower resolution textures and tradeoff a bunch of other features without any significant changes to the final result. Because of this we decided to roll our own solution. The results so far are extremely promising and we will be rolling it out next month, after a few weeks of intensive testing.

In the image above, you can take a peek at the performance boost (lower is better) that we get from our new custom/optimized HDR probe at a resolution of 512.

Not only is it more than twice as fast, it's also more accurate and allows complete control over quality tradeoffs:

I've continued to work with Diogo on improving hair. It started out trying solve the problem of how to get hair to look good (or even just not look plain bad) when not using TSSAA anti-aliasing and has ended up with a complete rework of the system. Thankfully now that system is alllmost done, just a few behind the scenes code changes are needed before the changes make their way on to Staging early next week.

As mentioned in an earlier blog post, I've tried several methods to get the hair caps to have a decent level of transparency to them and we've settled on the solution of having them overlay on to the skin material. Because of this though you lose all the fake depth the old hair caps provided, so I had to rebuild the hair to compensate for this. Also, I took the opportunity to improve the look overall and make them work a lot better with hair colours and in different lighting conditions.

Here we can see a non TSSAA screenshot that highlights the diffence the new hair caps make around the transition from hair to skin. There actually is a transition now. It's probably more obvious here though:

In this non TSSAA screenshot I've hidden the hair strands to show just the caps underneath. With the new system we're going to be able to give you stubble, shaved heads and all that stuff. It also looks way better on the pubic regions but I'll spare you the screenshot for that.

As mentioned before, colours look a lot more natural now, here it is on the rebuilt current shorter hairstyle.

We need something for the new heli to drop for all you lootmongers out there. When it finally arrives, it'll have two versions: the padlock and code locked version. Have a look below!

I've finished my initial finalization pass over all of our sounds at the individual sound level, and have started working on our mix from a higher level now. This involves making decisions like balancing levels between all the footsteps and ambient background loops and EQing background loops as a whole to make sure footsteps come through clearly. Overall I'm just trying to get things to sound a little more cohesive and full and fit together a little more nicely. We're not terrible in this department, particularly after some of the volume consistency stuff I took care of during the individual pass, but I think we can do a bit better.

I'm also working on some additional functionality for the sound system so we can be more intelligent about handling groups of similar sounds when it comes time to make dynamic mix changes or voice limiting decisions. Right now we have voice limiting on individual sounds which works decently, but no way to say "only 10 gunshots can play at once". I'm also looking in to adjusting voice limits dynamically so we can do things like set the maximum number of ambient stings really low if there's a lot of other more important sounds playing.

This stuff wasn't quite ready in time for the update this month but should be good to go next month.

198 March 01 2018
  • new

    Added Chainsaw

  • new

    Added Incendiary Shotgun Shells

  • new

    Added Spas-12 Shotgun

  • new

    Terrain Blend Maps for better monuments transition

  • new

    Added upkeep grief protection

  • new

    Added glaucous willow and spicebush plants

  • new

    Added world reflection graphics setting

  • fixed

    Fixed painted signs sometimes resetting on server restart

  • fixed

    Fixed workshop skin corruption issue

  • fixed

    Fixed dark lighting at the gates of Military Tunnels

  • fixed

    Fixed incorrect star positions relative to sun and moon

  • fixed

    Fixed foundation rotation exploit

  • fixed

    Fixed workshop skin loading issue

  • fixed

    Fixed S11 Cave having no build block volumes (Hapis)

  • fixed

    Fixed locker, bed, workbench floating slightly after construction placed on no longer exists

  • fixed

    Bandages and syringes now show their healing information

  • fixed

    Searchlight no longer accessible without TC access

  • fixed

    Fixed weird sprint+aim exploit

  • updated

    Optimized conditional model performance

  • updated

    Vastly improved interior lighting

  • updated

    Upgraded to Unity 2017.1.3

  • updated

    Improved cliff mesh placement next to monuments

  • updated

    Moved our grass and overgrowrth to new foliage shader

  • updated

    Optimized client file cache performance

  • updated

    Increased tree view distance at high tree quality settings

  • updated

    Optimized tree performance at low tree quality settings

  • updated

    Slightly harder to wall off southern convoy (Hapis)

  • updated

    Reduced forest size in areas for performance reasons (Hapis)

  • updated

    Xmas tree no longer craftable

  • updated

    Mailbox repairable

  • updated

    Water purifier can no longer be placed on barbecue and fireplace

  • updated

    All signs, banners and frames are now repairable

  • updated

    Bed can be repaired

  • updated

    Bed can be picked up with hammer + building privilege

  • updated

    Repair bench wood cost removal

  • updated

    Repairing items now costs 20% instead of 50% of their total cost

  • updated

    Scientists have slightly more health

  • updated

    Scientists have proper loot tables

  • removed

    Stripped unused tree assets (disk space usage)

Mailing List

If you want to follow this project you can sign up to the mailing list.

We'll only update you about this project, we won't spam you about other stuff or sell your email address.

* By subscribing you agree to the Terms Of Service and Privacy Policy