Lots of changes this week: we’ve added Flame Turrets and Tuna Can Lamps, most ammo now stacks to 128, previously visited servers should load significantly faster, rocks can now spawn with a previously chosen skin, and lots more. This patch will wipe all the servers.
For the next few weeks I’ll be going through Shadowfrax’s Concept Limbooo and implementing what I consider low hanging fruit that was pushed aside for other, more important, reasons. I figure if I spend some time on this everyone will have a bunch of new toys to play with, rather than weeks of bugfixes and minor balance changes.
Pretty self explanatory, and the people over at reddit cried about this a lot for some reason. Either way here you go:
Hopefully they don’t tank your FPS and I won’t have to spend all next week removing them.
I had a lot of fun with this guy. It’s an area denial trap that uses Low Grade Fuel as ammunition. You’re going to want to place it around corners throughout your base to slow down potential raiders. When triggered, they will spray flames for 5 seconds, inhibiting player movement and causing damage. Do not place these inside wooden structures. We’re also doing something a little different with this turret as an experiment: instead of authorizing with it, instead it won’t attack people with Building Privileges. If you really want to let someone into your base just take the fuel out for now. Eventually this should work with pressure pads and stuff like that, but let’s just see how this goes. Check it out:
It’s probably OP; it’s possibly UP; and it probably lags the server to hell. I’ll fix any of these issues if they come up, though.
I had this little bit of code that let a tiny amount of radiation always leak through clothing. This was annoying in practice because even in a Radsuit you had to spam bandages. I think in the future I will just have radiation damage the clothing items instead if we want to limit how long you can spend in a Radtown when fully protected.
Building Privilege Light Restrictions
I know it’s magic, but right now I don’t care: I hated how absolutely no-one designed a base that had a ceiling light or a lantern or anything like outside, because someone would just run up and steal the Low Grade Fuel in 5 seconds. Now you can only access the Ceiling Light, Wall Lamp, and Lantern if you have Building Privileges. This may change in the future, but let’s try it out for now.
Water Filling Changes
You can now only fill up water containers from the tap part of a Water Barrel or Water Catcher. There’s also a really bad particle effect to accompany it!
Ladder Hatch Changes
You can no longer spam rocks at the ‘weak’ side of a Ladder Hatch. Sorry, but this was stupid. A hatch is now completely equivalent to a Sheet Metal Door in all respects, and neither are vulnerable to being broken down by using 347 rocks on them.
I’ve modified things so that plants take damage and can be chopped down. They also stick around a lot longer when they are dead, so that you have a chance to see your shitty dead crop that you neglected instead of an empty planter box. You’ll also require less trips with a bucket to completely saturate the soil of planter boxes. More work needs to be done on planting, but I’ve given it a rest to implement some other things…
Most ammo stacks to 128 now.
Signage Cost Reductions
Wow! A large banner used to cost over 750 Metal Frags, Wood, and Cloth. No wonder I haven’t seen one of these crafted in forever. Virtually all the exotic signs have had their costs reduced to ⅓ or ¼ what they were.
The Arrow trails were using the wrong shader and did not take lighting information into account. This meant that the trails were bright white, even in the dead of night, making stealth operations very difficult. This has since been fixed.
I stripped the ownership code out this week. I know: you liked it, you want it back, it was fun to see the origins of an item; but it was adding unnecessary overhead to the whole item system. We can look at storing an item’s creator at some point — I can see some kind of value in that — but I’ll leave that up to Helk.
Player Model Fixes
The player model’s new angles weren’t updating when the player was standing still. This meant that the player could be looking in completely different direction and you wouldn’t know until they attacked. This is fixed now.
The player’s lower half is now a dead zone, so the top half of the body can rotate within that dead zone and the bottom half will stay still, until the angles get uncomfortable and the legs will start to spin around. This looks a bit less robotic than the whole model spinning around on the spot.
I manipulated the player’s spine slightly, to avoid looking so hunched over when aiming down slightly. When looking up, the player’s upper spine bends more when aiming down the lower spine comes into play.
I changed how we apply skins. The old way was dumb, and I can’t even be bothered to explain it. Long story short: the new way means we can better define which objects are skinnable, and which materials are to be replaced. This means that we can make more items available for skinning.
While I was in the zone, I managed to get a few long requested features done: Quick Craft will now craft items with the last chosen skin. Crafting queue shows items using the chosen skin. Player’s will spawn with a skinned rock if they chose one previously.
If you’re on a 32bit version of Windows, you probably have bigger problems in your life than not being able to play Rust, but this week I investigated and found a problem with our Steamworks implementation when launching on 32bit Windows.
You should now be able to launch properly. There’s not a lot of you guys left, but we’ve got your back.
I’ve been working on a set of modular pipes, electric installations, air ducts, valves, gauges and so on. Some of them were shown in the last week update on the bunkers, but they were just rough grey boxes. The idea is to create a bunch of variations, including straight, curved and broken pipes and place them inside existing interiors to add a bit more depth and interest, meaning you will spend less time staring at empty walls when exploring. The highpoly and bakes are finished, but I’m still working on texturing and setting up all variants.
In addition, I spent some time this week helping Diogo with occluder meshes for construction deployables.
The first iteration of the world serialization system is now live. This means the world is generated and cached the first time you join a server. Consecutive joins can then simply load the world from the cache. This means you should see vastly reduced loading times. Here’s a comparison.
Server Physics Crash
Alistair and I are still investigating the server physics crash. Since all servers wipe today it shouldn’t be a massive problem for at least another week, but so far we haven’t found a definite answer to where this is coming from. We’re essentially seeing a really random low level server crash in Unity’s physics system when there are somewhat many colliders and at least one rigidbody in the world. I’ve also contacted Unity and we’re trying get this solved as soon as possible, either in a Unity update or by finding a workaround on our end.
While investigating the physics crash I found some physics inefficiencies and optimized them as needed. The server is now using vastly fewer rigidbodies as I removed all rigidbodies from ceiling lights and the client does a better job at culling those rigidbodies in the distance.
Server Load Entity Leak
Another thing I found while investigating the crash was a small entity leak that occurred whenever the server loaded a save. This only concerned two entities on every server start, but since many community servers do daily restarts and those entities are networked to the client it’s still good that we found and fixed it.
Combat Log ID
I made the combat log more useful by adding a unique ID for both the attacker and the target. This makes it much easier tell players apart in group engagements.
Building Downgrade Exploit
In the earliest days of the hammer tool, you were allowed to downgrade building blocks while in your own building privilege. This was quickly removed as it opened up exploits when you took over someone’s cupboard. However, only the client side code was updated. Naturally once hackers found out they added the option to downgrade building blocks when inside your own building privilege. This is now fixed.
I added ambience to caves this week. I did a lot of the design for this a while back, but it’s been tweaked a bit and actually implemented now. The ambience system is aware of the environment volumes that we use to darken ambient lighting underground now, so we’re also using those to stop things like birds from playing in the caves.
I also set up a way for us to store reverb settings in a centralized place, and did a pass over the reverb in caves.
Deployable Placement Sounds
I’ve started a polish pass over deployable placement sounds this week, and started working on sounds for some objects that are missing them still (locks, water purifier, etc).
Heavy Plate Armour
I’ve finished up the baking and texturing of the heavy plate armour added a bunch of extra plating in the legs to make it feel a little bulkier. Other than a final texturing pass, I’m ready to get it LODded, rigged and to whip up some world models.
I redid a bunch of third-person animations so they accurately display the direction the player is actually facing. I also made new animations for when the player is aiming down the sights. There is now a noticeable difference between the two states, making it easier to tell if other players are aiming at you or just hip firing. I also redid a bunch of reload and deploy animations to better match their viewmodel counterparts. I managed to do a lot of weapons this week but there’s still a lot more to go, so it’ll probably be another couple weeks before I have all of the weapons animating exactly as they should.
World Model Optimisation
Work continues on the long list of weapons. There’s also been clean-up on the prefab side (strange connections and values) which has made this task a little more time consuming. We’ve settled on budgets that hopefully retain quality but help performance. All models have three LODs, the highest detail being 4-6k triangles, the lowest being 100.
Metal Chestplate Skinning
The chestplate has now been updated to remove the elastic/stretchyness that’s been around for so long.
Fixed player model angles not always being broadcast properly Player models standing rotation have a 80 degree dead zone Added player ladder animations Fixed player model feet slipping on jog/run animations Fixed player model hitching when changing between looking up and down Player models look less hunched Fixed steam startup errors on Win32 Removed redundant ownership system Fixed pumpkin helmet getting culled too early Optimized console system Quickcraft uses last chosen skin Double Barrel Shotgun is skinnable Satchel Charge is skinnable Spawn with rock skinned to previously chosen skin Icons in craft queue use skin icon Steam inventory resources (like cloth) are stacked Hammer guide is blue instead of red Eoka is skinnable Player skulls are named after the player they're from Fixed orientation on several 3rd person animations Ambience system distinguishes between environment types (underground) Added Cave ambience Added a way to store reverb settings in a central place Polished reverb in natural caves Minor mix tweaks Torch world model & prefab optimisation Salvaged sword world model & prefab optimisation Mace world model & prefab optimisation Salvaged icepick world model & prefab optimisation Thompson world model & prefab optimisation Double barrel shotgun world model & prefab optimisation Satchel charge world model & prefab optimisation Salvaged axe world model & prefab optimisation Semi-auto pistol world model & prefab optimisation Metal chestplate skinning updates Fixed weapons culling too early when thrown Optimized client side rigidbody distance culling of ceiling lights Fixed duplicate community and resource deposit entities in saves Removed ceiling light rigidbodies from the server Added timescale and gravity server convars Added corpses, events and dropitems server convars Added respawn_groups and respawn_populations server convars Fixed building block downgrade exploit when inside building privilege Added missing physic materials to various junkpile assets Added unique ID of attacker and target to combat log Added world caching (vastly reduced loading times) Added world.cache convar (toggles caching) Reduced serialization overhead from harbors prefabs Added collider state to dump files Removed 60 second suicide time limitation for admins/developers Disabled shell protection for ladder hatch Ladder hatch now identical to Sheet Metal Door Ladder hatch/sheet metal doors no longer vulnerable to rock spam Thrown water now equally distributed payload between objects Water Planters require less trips to saturate their soil Can only fill buckets/bottles from the tap portion of Water Barrels/Catchers Cleaver does slightly more damage and has a higher attack radius Minor constant Radiation Damage even though fully protected removed Added Wall Lamps Light Sources can only be looted/turned on/off if the player can build in that area Most Ammo stacks to 128 Bone armor cost reduction Can now place lanterns on small boxes Dead plants stay around longer Can chop down plants Drastically reduced cost of exotic signage Added Flame Turret