Rust Devblog 160

Posted on May 19th, 2017 09:54 AM EST

Planner Leak

When AI was merged into main from pre-release it introduced a pretty big bug. We were checking out the dump files from a server and the 2nd highest entity count was invariably the planner entity. This is what is used when you go to deploy anything. How could this be? Well, it turned out that this bug has been in the game forever, but AI uncovered it for us. AI would eat food and seeds - seeds used the planner entity to figure out how they could be deployed. When the AI ate the seed, it just deleted the item which didn't properly clean up after itself, letting an entity leak each time. This also happened anytime two stackable, equippable items were merged in the world (e.g.: throwing bandages on each other), but as this happened so infrequently, we could not detect the bug. This is all fixed now.

Tl;dr entity counts on large servers should drop by about ~50,000, and you’ll see some memory usage reductions (after a wipe).

Shotgun Trap

I’ve added a new trap straight out of Concept Limbooo. This shotgun trap detects motion in front of it, and when it does it starts blasting homemade shells every second until it runs dry. You can place them on walls, ceilings, floors, etc. I’m excited to see how people use this for base defense moving forward. I’d eventually like to have actual pressure pads and stuff, but this should do for now. It’s worth noting that it is only triggered by people who are not authorized on your Tool Cupboard, similar to the flame turret. Enjoy!

Flame Turret Placement

Last wipe I had difficulty placing my flame turret in my airlock, so I changed it so you can make it hug the wall a little easier. Big whoop!

Invoke Optimizations

I moved over nearly all of the remaining Unity invokes to our optimized invoke handler. This generally eliminates overhead and makes our code more robust as I explained when I first added the system to the game. Nothing too exciting, but progress nonetheless.


Pickup Penalty

To prevent the abuse of the extended pickup mechanic on window bars and embrasures for unintended use cases I added a penalty when picking up those building pieces. They now lose half of their health whenever they’re picked up, and need to be repaired with the hammer after placing them again.

Decay Improvements

We want to rework decay to make it more intuitive and much more efficient at solving the problems it’s meant to solve. The first step for this was to optimize the decay computation on the server to lay the foundation for more complex decay behaviour in the future. Once this was done I enabled decay on all twig building blocks such that all parts that are left over from raids decay quickly within two hours, eliminating the need for the base owner to manually clean them up.

Floor Spikes

Floor spikes have been quite useless for a while, especially so after re-enabling twig raiding. I changed them so they now block foundation placement the same way barricades do. They’re still quite easy to destroy with metal tools, but can offer some protection for smaller bases and can be useful to block hiding spots around your base entrance. If they turn out to still be useless after this change we can adjust their health as needed with the next wiping update.

Rocket Factory Building

I continued work on the rocket factory building. I focused on finishing the ground mesh and did a dressing pass on the ground level. In addition, I have created a scaffolding around the rocket, polished the interior geometry, added damage to the walkways and began to playtest the layout. My next step for this area is to finalize all the paths throughout the levels, finish the jumping puzzles and add ladder access to open up different levels of the building.

Water Jug Sounds

I made a bunch of recordings for the water jug this week and have done most of the editing to get the final sounds ready to go in game. Should be finished next week!

Floor Grills

Floor grills have been rarely used since they offered little advantage over the normal building floors. To give them a purpose you can now build them closely above the large furnace as they allow for the needed air ventilation and therefore fulfill a specific purpose in the game.

Music

I continued work on music this week, mostly working on polishing all of this stuff up now. I’ve got the remake of the classic theme set up in game, and although there are a few tweaks to make on the audio side still, it’s sounding pretty good so far. I’m particularly happy with how much smoother intensity changes feel with this one.

I was able to build the song up from much smaller audio clips because of the new playback system, so we’ll be able to save bit of disk space and memory too. The bassline, for example, is built up from 5 different 1 bar long clips now. In the previous system we would have needed 6 different clips and they’d all have to be 8 bars long, which would have been about 10x more audio data.

I’ve also started working on another song that I’m pretty hyped about so far and have spent a little more time fine tuning our other existing songs, particularly looking for spots where I can swap longer clips out for a handful of properly arranged shorter clips.

I’m getting pretty close to having this stuff wrapped up, but I think I want to sneak another new song or two in before I push it out. I’ll have previews of those up soon.

Scrap Pile

This week I finished off the LODs, gibs and prefabs for the revised dropbox that you saw last week. I also created the gibs for the single-shot gun trap, readying it for implementation. Then I moved onto a new asset: the Scrap Pile that Paul concepted. This is what you’ll now see when you break a barrel:

Player Preview Animations

Continuing with player anim feedback ideas. I went back to the player preview animations I concepted a while back. They now all have the required transitions to/from each state, as well as Unity animator states ready for implementation if/when it's desired.

Shading Revamp Progress

This week I went on to test and fix a bunch of integration issues introduced by the new physical-based shading. It's pretty much ready to deploy, but I decided to postpone it until after today's patch, so we can get a week's worth of player testing on Staging.

Below is a video showing off the new skin shader on the viewmodel hands. Please mind that some of the textures were tweaked by me and are still pending on a proper contribution from a real artist. Same goes for the player/worldmodel skins. Regardless, you'll be able to give it a spin tonight on Staging.

I also started building a new hair shader that I plan to unveil next week.

Melee Weapon Impacts

You know what sound I really hate? The salvaged icepick. Holy crap! I started working on polishing up the impact sounds for it this week. I took a piece of pipe from a speaker stand I’m not using and recorded some impacts with it. I ended up doing one set on concrete and another set on some packed down dirt.

The packed dirt kept the metal from ringing out really nicely without adding too much of its own character to the impact. I was careful not to strike at an angle and kick a bunch of dirt up, so there’s not really any debris sound, and it layers really nicely with our existing grass/sand/cloth/etc impacts.

A while back I did soft material impact variations for most of our melee weapons by editing the existing impacts, but the quality improvement from using separate recordings was pretty massive, so I’m having a go at re-recording other melee impacts in the same way.

Changelog

  • add Added Shotgun Trap
  • fix Fixed distant see-through walls when using TSSAA or MB
  • fix Fixed AI “look rotation viewing vector is zero” error
  • fix Fixed Planner leak (50k entities saved on large servers)
  • fix Fixed some older item skins not working
  • upd Optimized building decay processing on the server
  • upd Decay now applies to all twig building blocks
  • upd Moved most remaining invokes to the optimized invoke handler
  • upd Can place floor grills and floor frames above large furnace
  • upd Floor spikes block foundation placement similar to barricades
  • upd Window bars and embrasures now store item condition
  • upd Window bars and embrasures lose half their health when picked up
  • upd Flame turrets can be placed closer to walls (viability in airlocks)
Click here for the source of this article RSS Feed