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

13 April 2017

New AI 0.5

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.

Large Furnace Placement

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!

Websocket Rcon

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.

Dynamic Navmesh

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.

Wooden Helmet

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.

Input Lag

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.

Weapon Update Rate

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.

Update Handler

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 Verification

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.

Launch Site

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.

Jerrycan Viewmodel Fix

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!

Tier 2 Workbench

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.

Music

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.

Spinner Wheel Sounds

I finished up sounds for the spinner wheel this week.

Footsteps

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.

Water Lapping Ambience

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.

Distant Gunshots

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.

Animal Sounds

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

Voice Limiting Improvements

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.

Viewmodel Animations

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.

155 April 13 2017
  • new

    Added footwear specific footstep sounds

  • new

    Added entity.spawn [name]

  • new

    Added entity.spawnitem [name]

  • new

    Added server tag when server restarting

  • new

    Added server tag indicating last wipe time

  • new

    Added Wooden Helmet

  • new

    Added efficient update handler

  • new

    Added ladder movement verification to server

  • fixed

    Fixed spinner wheel skinnability

  • fixed

    Fixed Websocket Rcon ignoring rcon.ip

  • fixed

    Fixed "Your Friends" allocating memory and causing hitches

  • fixed

    Fixed bear meat cooked using burnt description

  • fixed

    Fixed revolver describing itself as a 6 shooter

  • updated

    Updated to Unity 5.6

  • updated

    Updated EAC

  • updated

    Polished water lapping sound

  • updated

    Polished distant gunshots

  • updated

    Improved localized voice limiting

  • updated

    New sounds for the spinner wheel

  • updated

    AI doesn't walk through walls

  • updated

    AI sleeps

  • updated

    Updated flesh bullet impact effects

  • updated

    AI populations are controlled by console variables

  • updated

    AI eats corpses

  • updated

    AI eats dropped items

  • updated

    AI reacts to gun shots

  • updated

    AI corpses drop gibs when destroyed (temporary effect)

  • updated

    Updated damage effects hud

  • updated

    Options screen dropdowns are now side selectors

  • updated

    Normalized tree sizes

  • updated

    Websocket Rcon is default mode

  • updated

    Optimized steam avatar cache lookup

  • updated

    Deers give deer meat (instead of chicken)

  • updated

    Optimized transform updates when recycling sounds and effects

  • updated

    Optimized light intensity and color flickering effects

  • updated

    Optimized invoke handler (list overhead, cache hits, hashing)

  • updated

    Optimized position lerp and player model lists

  • updated

    Eliminated input lag (especially for firearms)

  • updated

    Large Furnace has bigger foundation, stays upright & can be placed on slopes

Mailing List

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.