Halloween is here, with an unholy update of skeletal remains, graves, burning skulls, and network encryptionnnnnn!
26 October 2017 (19 Comments)
In addition, we've replaced the existing resource pickups with Halloween themed ones for Metal, Stone, Sulfur, Wood, and Bones. For the period of Halloween (next patch) they will yield 50% more resources as well.
I'm doing a bit of a test here. I've made it so that loot items all have an equal chance of dropping in their tier. It was bad enough that some tiers had 40 items, to make it so some of those items had a 1/10 chance of dropping was ridiculous. I hope this makes some unattainable items a little easier to get, but just know all of this will be squashed soon when I do what I mentioned last devblog and set up dedicated rarity categories for each drop slot. Either way, let me know!
Even though we're ditching this element soon, I ended up fixing a bug that would cause objects that were parented to another object to sometimes lag behind their parent while it was in motion. This was noticeable in vehicles and when people were running: you'd see the weapon models one frame behind their position. This is now fixed.
The garage door is now in game and works exactly how you'd expect. You'll find it in crates, and though we don't have vehicles yet, I'm sure people will be able to find a use for these in the meantime. Check it out:
I fixed a bug where all autoturrets were always performing their calculations in the same frame. So if you had 400 autoturrets deployed on your server, one frame would take forever and lock up the server because they would all be thinking at the exact same instant. I've changed this so the work is done over many frames instead. Servers should hiccup less because of this.
I tracked down and fixed several server performance issues this week. The main problems were caused by garbage collections, similar to what we've experienced on the client, but there have also been some significant bottlenecks hidden in entity snapshots, networking and logging. Things should be a lot better now.
I spent the better part of this week testing, fixing and improving network encryption in cooperation with EAC. We're confident that it's now in a state where it can go live on the vast majority of servers, which is why it's enabled by default starting today. It does come with some performance overhead, but it should be minor enough for all servers to have it enabled without running into problems - particularly since we improved server performance in other areas quite a bit this week. If you're a server owner and you're having trouble with it on your server you can adjust it using the encryption convar.
- encryption=0 disables network encryption completely
- encryption=1 uses a very basic encryption algorithm
- encryption=2 enables the full network encryption
The default value is 2 and we highly recommend leaving it that way. Changing the convar at runtime via the server console or RCON is supported, but the updated value only applies to players who connected after the convar change.
Besides working on the icebergs I did some tweaks to the launch site this week. As some of you have pointed out, the ladder leading to the top of the launch site roof was pretty dangerous to climb, and you could be easily camped down. So I did a quick rework of this area and added some makeshift walkways to make climbing easier.
In addition, we had some internal discussions about adding additional paths to the rocket factory building and we have some plans to make this area more varied and easier to take cover in. This, however, will come in at a later date as it will require some more work.
This week I finished all of the highpoly icesheets and textures for them. I also made some ice debris decals that will float around the larger, traversable sheets. With all elements complete, I started to put everything together and did some work on the iceberg scenes. The area around the buildable icebergs should be fully traversable on foot, requiring miminal jumping.
Below are some shots of my progress. I'm currently toying with the idea of putting some assets that would contain loot drops, which would make these areas more useful to the players.
This week I have mostly focused on getting the basics of our AI improved. More solid stuck prevention, better spawn locations, improvements to movement, and Navmesh Grid polish.
It's nearly ready for handing over to Goosey to animate. At the time of writing this, I had incurred a bit of discrepancy between the old and new shader that we're opting for. Basically, the model doesn't look as it ought to. So after speaking to the wizard diogo it seems that I will have to convert it from using the specular workflow to the metallic workflow for the new shader to be of use.
In the meantime, enjoy some pictures and spinny things.
I noticed that some of the sprites we're currently using for water effects were a bit low-res, so I used Houdini to create some new water splash sprites. I made some improvements to various effects, such as the splashes around rocks and the water splash that gets created when vehicles drive through water. I also noticed there's no effect for when a player jumps into water, so I added one.
Tom and Taylor brought up an issue regarding the player models elbows/wrists (in 3rd person). It looked really distorted. I investigated further and realized Unity was doing something funky with the bone rotations. Fortunately, I was able to track it down and correct the player animations, so their bones are oriented the way their supposed to be. The elbow and wrist joints should look more natural now, but there's still room for improvement by adding more polygons around those joints and tweaking the vertex skinning.
This week I made a small, albeit visually important change to decals, like footsteps or bullet impacts, when applied on terrain. They always had the same base color, independently of their location. I've now modified the shader to apply color variation according to the biome they're placed at:
As part of a future vegetation aesthetics revamp, I've implemented a new tree shader to roll out support for proper physical-based lighting and specular, using a new two-sided foliage approach, as well as thin subsurface scattering.
This shader will first be tested on a different project (Moss) and rolled out to Rust later in a more robust form. Unfortunately, taking advantage of this shader requires non-trivial artwork, so I'm sparing you from disappointing programmer art.
There have been some complaints regarding performance this week, so I took a couple of days to take care of some low hanging fruit. Some of these might make an immediate difference, some might make a difference only on populated areas, while others may only affect performance on specific player states:
- Added particle collision distance LOD on both Flame Thrower and Turret
- Disabled particle collisions on corpse flies effect
- Disabled particle collisions on plant seed effect
- Reduced Sky Reflection texture resolution
- Optimized bloom post-effect even further; 2x faster on CPU
- Optimized image effects composition engine
- Optimized frost/cold effect; 2x faster
There are still a lot to improve but it's hard to prioritize with so work ahead of us. We'll do our best to keep optimizing any chance we get.
Barbeque can no longer be placed in monuments
Barbeque no longer clip through walls
Fixed client bone follower performance regression
Fixed some visual issues with the halterneck
Fixed permanent Debris Field markers
Fixed BoneFollower 1 frame delay
Fixed AutoTurret server lag
Garage door frame block
Added Scarecrow deployable
Added network encryption (enabled by default)
Added encryption server convar (0-2 for various protection levels)
Added Halloween Collectables
Added Skull Fire Pit
Replaced the ladder leading to LS roof with walkways
Optimized network stream read / write
Optimized network RPC parameter handling
Optimized network queue iteration
Optimized server logging
Optimized server garbage collections
Double shotgun deploys quicker
Wall Netting cheaper + default BP
Item drop chances equalized for each tier
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.