A smaller blog than usual this week, but we have cheaper clothes, slower airdrops, the harbour is coming together, and more.
Shadowfrax looks into the new update:
I went through and reduced all the costs of the burlap clothing, making it more accessible to everyone. I also lowered the costs of the Miner and Candle Hats, and fixed a bug where the hide skirt/haltertop was using the wrong armor type and was actually as good as the hoodie/urban pants. Nice!
The airdrop falls a bit slower now. This means even more people will be around its drop position by the time it lands, so yikes! I’ve also lowered the chance of getting ammo in it, which in turn increases the chances of finding everything else.
I’ve been sick as hell this week so I didn’t get much done. I did, however, start investigating a culling option known as “Hierarchical Z-Buffer Occlusion”. Basically how it works is we render occluders (walls/rocks/terrain) into a render target storing their depth, and then check the position of potential ocludees (players/deployables/whatever) against the depth at that position and if they are technically farther away, we can disable them from rendering. I’ve ran into a few setbacks in Unity (very slow to get data from the GPU to the CPU), but I’ve got Diogo Texiera on the case. More on this later!
Interior Culling System
I’ve started working on a low-overhead and high-performance culling system specifically for the interior environments of dungeons and caves. Some of you may remember the impact dungeons had on performance when we first added them, and we’re trying not to repeat this with caves. Unity’s occlusion culling only really works for static, relatively small worlds, so we need to do things the hard way and write the solutions ourselves. The idea for caves is to determine the visibility of all cave pieces from their surrounding environment and completely disable them when they can’t be seen from the player’s perspective. Limiting the system to interior environments allows you to make a bunch of simplifications, like ignoring shadow casting from the sun and not having to deal with moving objects. This helps speed up the system enormously compared to more generic culling algorithms. In theory this can also be extended with something like an adaptive resolution voxel grid such that it can be used for more complex or even semi dynamic environments like our player-built structures, but there are other algorithms that might be better suited for those.
Material Changes and Optimization
These past few weeks we’ve been dealing with texture bandwidth issues mostly due to the fact that we’re using way more textures than is absolutely necessary. This is costing us time and memory on both CPU and GPU for various reasons. This is becoming more and more problematic as more custom/community items are added into the mix.
In order to address this, I’ve been working on some changes to our shaders to enforce stricter physical-based rendering rules, allowing us to save texture memory, in the near future, by packing more information into fewer textures. I also took the opportunity to add support for anisotropic (e.g. brushed metal, carbon fiber, hair/fur) and translucent materials (e.g. rubber, wax, marble) compatible with our deferred rendering path. Here’s brushed metal:
These changes have little gameplay impact but, hopefully, they will translate into into better runtime performance and more material options for item customization.
As I mentioned last week I’ve now moved to smaller props tasks. The big structures of the harbor are dealt with and we can focus on the details, like this forklift:
The incoming work on props will end up enriching all environments in the game, as we will revisit previous monuments and push visual quality there as well.
Similarly to Vincent, I’ve been working on some of the smaller assets. This week I managed to complete a set of portacabins that you will be able to explore as part of the harboor. They come in variety of sizes and surface types so they should add more visual variety to environments.
In addition I’ve began working on fuel tank assets.
Beretta Viewmodel Animations
I rigged up, animated, and added sound FX for the Beretta viewmodel.
Water Bottle Viewmodel
After some feedback from Helk, I updated the waterbottle viewmodel animations. The drinking pose was important to get right amongst other things.
Here’s what Rust would look like if we were using Unreal and you had to survive in an office in Bloxwich.
Satchel Charge and C4 Viewmodel
Helk felt the Satchel Charge viewmodel was too cartoony, so I’ve edited this now, and also set up a viewmodel for C4. Just the survey charge viewmodel left to do now and all three can be committed to main (as they use the same updated code). Apologies for the camera clipping, it’s a known issue.
Item UI Sounds
I finished off and added a bunch of new item UI sounds this week. Almost everything has a suitable sound now, although I do think I still need to do a medium-sized wood sound for things like the bow and spears, and a medium-sized slightly rattly metal sound for things like the bear trap.
Fixed object deploy sounds not changing volume with game volume Added a bunch of new item UI sounds updated positioning of world water bottle & bota bag updated jog right anim to work better with bottles updated water bottle vm anims Halved cost of burlap clothing Reduced cost of candle/miner hat Airdrop no longer spawns ammo Airdrop falls slower