Rust Marque Logo

Devblog 155

New animal AI, easier large furnace placement and lots more ...

13 April 2017
Devblog
I have spent the majority of the past two weeks learning Apex AI and messing around with the animals in rust. Building on the foundation laid by Garry I’ve done my best to make the animals behave in a manner slightly better than how they used to. Just so you all know we are aware that they’re still totally screwed. They run through water, they get stuck, they make awful tactical decisions, and their animations are terrible. With all that said though, they won’t run through rocks, or run in circles, or attack you in your base any longer. The important thing is the foundation is now there and we hope to get them to a really good place over the next few weeks. I’ll also be able to do some more interesting things with the helicopter as well as perhaps add some new AI types. Please don’t be shy and share with us any exploits or bugs you encounter with the animals.
I stumbled upon this post on Reddit and it thought it was a pretty good idea so I had the large furnace model adjusted by Vincent, and modified placement to work as suggested. It will be much easier to place large furnaces now and they will always be upright. Enjoy!
Since we're changing a bunch of other stuff, this seems like a good time to make rcon.web the default. If you're still connecting to your servers via the old source engine protocol you can switch back to that mode by adding "+rcon.web 0" to your server's command line. But be aware that this mode will go away at some point, so if you can find time to switch to using the new websocket protocol you definitely should.
Because the navmesh is dynamic, it generates on server startup. This can take a few minutes and uses a ton of CPU while it's doing so. We've been told that this can choke the server up and cause problems with other processes running on that box (like if you're also running 10 other Rust servers on it). We've tried to alleviate this as best we can but we appreciate that it's still going to be an issue that server providers might need to work through. Especially if they have some kind of "locked process" detector that shuts the process down automatically if it hasn't responded in a while.
I saw a couple of requests for a helmet to complete the wooden set, so I've modelled a shoddily put together helmet for some accessible early game head protection.
Rust has been suffering from a relatively high input lag for a long time. I sat down this week and went over the entire input pipeline in order to find and address any causes for this. Input should feel much more responsive and more immediate now, which is particularly noticeable on firearms.
While eliminating input lag I also rewrote the way we update our weapons. Up until now our projectile weapon rate of fire has been limited to around 10 rounds per second because their update rate wasn’t high enough to handle anything faster than that. This is now no longer the case, which also makes full auto fire feel a little smoother during frame rate fluctuations.
Similar to the invoke handler I implemented two weeks ago I now added an update handler that allows us to efficiently update things at varying rates. This for example allows us to update things that are far in the distance at a lower rate than things that are close to the camera with very little overhead per frame, which I used to optimize a couple of client side scripts.
Ladder movement has been client side authoritative with no server side verification in place up until now, which made it very easy for cheat developers to abuse. This is now fixed. It’s likely that it needs some tweaking however so I added a couple of convars for us to play around with on high population servers.
Progress on the core of the launch site is almost complete. The larger structures remain such as the crane holding the rocket. The progress on the rocket facility area has been steady. The greybox layout is finished and we’ve begun to work on the rocket factory interior, which features unfinished rocket parts hanging from the cranes and walkways that allow accessing upper floors of the interior. In addition, we’re currently doing a first texturing pass on buildings in the area, so next week we should be able to share some screenshots.
With the view model animations coming into play now, i’ve had to take a look at the jerry can model to fix a few issues that would plague us if they weren’t taken of. Initially, I modelled the jerry can not knowing it was going to be so closely seen (as a view model) so there was no point in modelling parts of the inside of the cap etc. This is now fixed. The new fixes won’t affect the world model or the current model texture as there was enough space in the UV map to make the adjustments!
The majority of the work is finished with the new workbench, all that is left now is really to optimise where i can and to just to make all the props on the bench feel more grounded like I did with the tier 1 workbench, so it’s more or less adding a few smaller model and texture details to help balance things out and really give it some personality.
I’ve primarily been continuing work on the music system this week. My initial implementation for the stings stuff I talked about the other week felt pretty good but needed to be cleaned up a bit so I’m working on rejigging some of the backend to give us more flexibility moving forward and improving our editor tools for setting up song playback right now. I’m also continuing to go through and polish some of the existing songs.
I finished up sounds for the spinner wheel this week.
I sorted the issues I was having with our source control last week and new footwear footsteps are in! I’m pretty happy with how these turned out. I’m sure I’ll find a few tweaks to make over the next couple weeks since my brains become a bit numb to these, but I think they’re pretty solid all in all haha :) I also tweaked some of the footsteps a little more, fixed up the animal footsteps that got screwed up with the AI updates, and put in new bear footsteps that I’d done a while back and hadn’t added yet.
I polished up our water lapping sounds this week too. They’re a bit less sharp and blend with the rest of the ambience more smoothly now.
The last update I did to distant gunshots pushed them a lot closer to where I want them to be, more poppy and less washed out, but they all sound a bit too similar right now, so I had another go at these this week and they’re sounding a lot better. They’ll still sound somewhat similar to each other because of the way I want them to sit in the mix, but they should be easier to tell apart and sound more like the gun they’re coming from.
I’ve also been going over some of the animal sounds that never really played with the old AI. Sleeping, eating, etc. These are almost done but I didn’t quite finish them in time for the patch, so you’ll get them next week
Previously our localized voice limiting system only worked when a sound was attached to a gameobject, which covers almost everything we use voice limiting on. I’ve made it work for sounds that are played directly in the world this week too which should solve the audio side of the lag you get when lots of items fall out of a box.
This week, I managed to go through the m249, semi-auto rifle, SMG, revolver and a few other weapons making sure to fix any clipping issues I spot as well as tweak the animations to feel more weighty. I also addressed any viewmodels that had particularly poor wrist deformation.
There’s just a couple more viewmodels left to do and once I’ve done them all, I’ll be moving onto improving the animal animations.
add_circle

Features

  • Added footwear specific footstep sounds
  • Added entity.spawn [name]
  • Added entity.spawnitem [name]
  • Added server tag when server restarting
  • Added server tag indicating last wipe time
  • Added Wooden Helmet
  • Added efficient update handler
  • Added ladder movement verification to server
arrow_circle_up

Improvements

  • Updated to Unity 5.6
  • Updated EAC
  • Polished water lapping sound
  • Polished distant gunshots
  • Improved localized voice limiting
  • New sounds for the spinner wheel
  • AI doesn't walk through walls
  • AI sleeps
  • Updated flesh bullet impact effects
  • AI populations are controlled by console variables
  • AI eats corpses
  • AI eats dropped items
  • AI reacts to gun shots
  • AI corpses drop gibs when destroyed (temporary effect)
  • Updated damage effects hud
  • Options screen dropdowns are now side selectors
  • Normalized tree sizes
  • Websocket Rcon is default mode
  • Optimized steam avatar cache lookup
  • Deers give deer meat (instead of chicken)
  • Optimized transform updates when recycling sounds and effects
  • Optimized light intensity and color flickering effects
  • Optimized invoke handler (list overhead, cache hits, hashing)
  • Optimized position lerp and player model lists
  • Eliminated input lag (especially for firearms)
  • Large Furnace has bigger foundation, stays upright & can be placed on slopes
handyman

Fixed

  • Fixed spinner wheel skinnability
  • Fixed Websocket Rcon ignoring rcon.ip
  • Fixed "Your Friends" allocating memory and causing hitches
  • Fixed bear meat cooked using burnt description
  • Fixed revolver describing itself as a 6 shooter