What's New in Rust's "Devblog 178" Update
September 2017's Devblog 178 shipped mountable chairs, then used that same foundation to build an admin-only test vehicle - complete with Helk's full pitch for how a car would be balanced. It also added penumbra shadows, grass shadow casting, and fixed the new player faces.
Devblog 178 landed on 21 September 2017, and it's the one where a week of work on chairs turned into a driveable car. Helk finished the mountable system he'd started the week before, shipped sittable chairs, and then — because the pieces were all sitting there — built an admin-only test vehicle and laid out exactly how he'd balance it if it ever went live. Elsewhere: penumbra shadows, grass shadow casting, a player model damage-control pass, and an entity parenting overhaul Andre had been putting off for over a year.
Chairs, and the mountable foundation
After being pulled from the previous week's update, chairs shipped properly. All the kinks and exploits were sorted, and you can now sit in one and look around. Sitting provides 100% comfort, and Helk noted it looks genuinely good with a group of people sat around a table.
He admitted the work ran away with him — adding a chair sounds ridiculous to spend a week on, but it's built on the foundation of a mountable object, and that foundation reached near-completion in the process. Which led directly to the next section.
The test vehicle
Helk was emphatic up front: it is not available in vanilla Rust, he didn't know when it would be, and if it ever shipped it'd be balanced. It went in as an admin-only test. With the mountable pieces falling into place he couldn't resist checking how feasible a vehicle was, testing first with the chair and then moving to an actual vehicle.
His sketch for how it might work if implemented is the interesting part:
- You'd find a broken down car at a radtown, missing many components — possibly including an engine part with a server-limited finite population, e.g. only 15 active in-game at any time.
- Driving uses a lot of fuel, perhaps not even low grade fuel.
- It has a lot of storage and multiple players can mount it.
- The driver can't use all weapons while driving — either nothing, or maybe just pistols.
- While driving it constantly calculates a break probability based on distance traveled. When it breaks, max speed drops and you repair it with components. The more you force it to drive, the more broken it gets and the more it costs to keep going, so constant maintenance is optimal.
- Driving off a designated road drastically increases the break chance, pushing players to stick to roads unless they're crawling.
He closed by asking for feedback and setting expectations: proper vehicle plans existed for 2018, he wasn't going to sink more time into this unless demand was off the charts, and there was still plenty on the roadmap to finish before December.
Roadmap granularity
Helk reshuffled the roadmap, increasing the granularity of each task so items can be crossed off piece by piece instead of being binary. The point is visible progress rather than four things suddenly flipping to done at the end of a month. He set the target at completing at least three items per month to stay on track.
Fixes: turrets, helicopters and a server-killing map exploit
While recording a demo, Helk noticed that at low timescales the autoturret and the helicopter kept shooting at the same fire rate, and that if the server hiccuped they'd unload a burst of shots like a shotgun. Both are fixed.
More consequential for server owners: an exploit involving the map entity that caused servers to suffer low framerates was fixed.
Icebergs and the expanding ocean
With the first ice lake complete, Damian moved to revamping the icebergs and expanding the playable area into the ocean. The new icebergs are much more angular, with some featuring large flat tops that allow building. The ocean around them will be covered in large floating ice sheets, so you can reach the icebergs on foot.
Player models: de-uglifying the faces
Staging players had been vocal about their new faces, and Taylor Reynolds addressed it directly. His design position stands: not everyone is going to look like a supermodel, and people in Rust should look like a sample of normal people — how you look is a genetic lottery, no different to gender or ethnicity in the game's terms.
But he drew a line between unattractive and straight up deformed. The team rated every face under identical lighting conditions, and the Asian heads came out worst — unsurprising, since they shared materials with the Caucasian heads. The first fix was baking out their own texture set and giving them a dedicated material; he'd hoped the two would share enough features for that not to matter, and clearly they didn't.
He also introduced a little ambient lighting into the diffuse. That's normally a sin in game art, but in a world as open and procedural as Rust, ambient lighting is always going to be a problem. Facial shapes were reworked a little, though the geometry mostly saw only small changes. The rest of the heads were queued for attention, targeting the worst offenders in the rankings — with the honest caveat that FOV, lighting and quality settings like contact shadows will always make you look different from what was intended.
matt.i meanwhile worked on getting player hair working with the new models, while trying to future-proof the system for possible features like facial expressions. The last major hurdle for facial hair is morphing it to fit all the different head shapes while still looking good — he had a facial hair style morphing across the male face types, with each animation frame representing a different face shape, so the next step is applying the correct frame to the correct face. After that: the first female hair style on the new face shapes, body hair, and eyebrow hair. Performance around the facial morph system still needed monitoring, and might force a different approach entirely.
Grass shadows and penumbra shadows
Diogo started the week fixing a shadow casting bug with the weapon flashlight attachment, then added shadow casting to grass batches. It's a toggle in the graphics menu, off by default. He described the difference as huge and the cost as not demanding — though it can look jittery in low quality modes like Potato, so it's aimed at mid-to-high end machines.
The bigger addition is penumbra shadows, something Diogo had always wanted in Rust. It's an approximation technique that makes shadows appear softer the further they are from their occluders — an old idea that had only recently become practical thanks to graphics hardware advances. It's not excessive performance-wise and should run reasonably from an NVIDIA GTX 970 or AMD R9 380 upward. Enable it by setting Shadow Quality to 2 (highest) in the graphics menu, and it applies to all light types including torches, flashlights and sun/moon shadows. Combined with the grass changes, it makes night time noticeably smoother and gives interiors a real facelift.
Under the hood: parenting, memory and EAC
Andre finally did the entity parenting overhaul that had sat on his list for over a year. He'd kept postponing it because it's a dangerous change with no visible benefit, but the existing handling was, in his words, a massive mess — and both elevators and future mountable entities benefit immensely from untangling it. It also unblocks optimizing the bone follower code, a current source of garbage collections. His success criterion was blunt: if it works, you see no difference at all; if it doesn't, arrows, throwable weapons, code locks and weapon attachments go haywire.
He also chased down why managed memory usage had climbed by at least 100MB over the preceding months: the world serialization cache wasn't being fully freed after spawning the world. Freeing it properly brings managed memory back to previous levels. He noted this doesn't touch asset memory usage, which is the bulk of overall usage — the best lever there remains lowering texture quality in the options.
A nastier Unity 2017.1 regression also got fixed: some players had their world file invalidated on every server connect, forcing a slow map generation every single time. Andre tracked it down and fixed it in a non-wiping update.
On anti-cheat, EAC asked Facepunch to switch to their new super minimal launcher — the process that initializes EAC and starts Rust. It makes future problems easier for EAC to debug and takes launcher maintenance off Facepunch's hands. Anyone who'd been hitting .NET framework errors before launch should now get in fine.
Viewmodel rebuild
Alex Webster surfaced with the result of months of work. Rust's viewmodels were in a state, with some on a legacy rig and others on a newer one. It worked, but clothed arm viewmodels require every viewmodel to share the same rig. There are 53 viewmodels, each with numerous separate animation files, all needing individual updates — and exporting with updated rigs broke Unity's prefabs. He ended up rebuilding the majority from scratch while accounting for all the existing code that makes guns work and aim. It was set to merge to main the following week, mostly invisibly, though it would bring Taylor's new arm model and material updates along with it.
The rest of the changelist
Grass mesh sizes were made more realistic, server-side eye verification improved with fewer false positives, and NPCs should freeze less when transitioning between navmesh grid patches — ptrefall spent the week on navigation and steering, finding ways for NPCs to move temporarily without navmesh guidance when generation lags behind. Those same techniques turn out to apply to flocking and group movement, following a leader, and pursuit or evasion with path prediction, along with separation rules to stop NPCs occupying the same space. None of it was ready for release yet.