What's New in Rust's "Devblog 174" Update
August 2017's Devblog 174 dropped the Bradley APC into Launch Site as an admittedly unfinished trial by fire, alongside the biggest garbage collection cleanup yet, a rendering pass worth 8-12 fps on test machines, and a nasty material memory leak fix.
Devblog 174 shipped on 24 August 2017 and it's the one that put the Bradley APC at the launch site. Helk was refreshingly honest that it wasn't finished — no rocket pod, thin loot, guaranteed bugs — but decided it was ready enough for a trial by fire. Alongside it came the third and biggest week of garbage collection work, a broad rendering optimization pass worth real frames, and a significant material memory leak fix.
The Bradley APC arrives at Launch Site
Helk opened with the caveats. The Bradley is not complete by any stretch: it'll have bugs, especially with movement, and it doesn't have the right loot tables, damage or protection values. It'll get stuck, make bad decisions, and players will probably find ways to exploit it. He asked people to actively try to break it and report how, so the AI could be improved — he'd be watching every bug video and reading reports on Reddit and elsewhere.
The loot tables were deliberately kept slim precisely because it was known to be exploitable, and he didn't want a flood of free loot entering the server economy. The weapon systems were likewise partial: the rocket pod and side gun ports were missing, but the main cannon and coaxial machine gun were both active. It prioritizes targets as best it can, and if you run it'll try to search for you.
ptrefall's AI work fed into this indirectly. His week went into a clean-up pass across the AI management and navmesh systems, improving sub-systems along the way such as how many navmesh patches in a bake queue get generated asynchronously at once. The last big navmesh grid piece is linking patches together so NPCs can walk between them — a hassle to get right, but the final blocker before returning to Scientist behaviour. The latest navmesh grid was merged to main but left off by default; with it enabled, Scientists spawn around monuments, though that was purely for testing at this point.
Recoil and combat feel
With the APC eating the week, recoil changes were limited to one: horizontal recoil on the M92 was halved. The stated plan from here was to polish the MP5 to establish a baseline for how SMGs should behave, settle on the best-feeling pattern types for semi-auto weapons, and then roll learnable recoil out to the remaining guns.
Two long-standing annoyances also got fixed. Server gibs — helicopter debris — used to only be harvestable from some arbitrary sweet spot. Now, once the temperature has cooled off (no sizzling sound when you hit it), you can harvest from any position. The same applies to the new APC gibs. And smoke trails no longer vanish the instant a rocket explodes; they persist until they've fully faded, which makes raids and helicopter strafing runs look considerably better.
Garbage collection, part 3
This was the biggest GC week yet. Andre eliminated massive amounts of GC allocations from the networking backend and entity serialization, which had been hitting hard whenever entities streamed in. He then went through dozens of commonly used utility methods one by one, cleared the last remaining allocations from the effect recycling pipeline, and tackled the foliage, renderer and collider batching systems plus the foliage displacement system — all of which were particularly noticeable while moving around the world.
String-related allocations continued to shrink, to the point where he considered the game in decent shape outside of the UI, and the skin application process was reworked to handle its required material updates far more efficiently. The internal memory pool is now prewarmed with common class instances for better cache efficiency and fewer runtime allocations — which helps performance and makes debugging runtime GC allocations easier. Next on the list was paintable sign texture caching, likely requiring parts to move to native code, with at least another week of this kind of work expected.
A material memory leak
While digging around the codebase, Andre found something worse than a slowdown: the game was continuously leaking materials whenever mining quarries, vending machines, flashlights, lasers and planter boxes moved in and out of networking distance. It's fixed, though the fix required disabling certain visuals that were causing the leaks until the underlying code can be rewritten.
Rendering performance
Diogo bookended his week with rendering optimization, some of it long overdue, spanning CPU-side material bottlenecks through to GPU overlay and post effects. Total savings ranged from 2 to 5 ms depending on hardware combination, which translated to an 8 to 12 fps improvement on his local test machines. The biggest gains landed on lower-class CPUs and GPUs, and in situations with multiple effect overlays active — hurt, cold, radiation.
The full list of changes:
- Fixed culling related runtime allocations and culling false positives.
- Fixed a material related performance bottleneck (
SetPassUncached). - Fixed the large furnace's lower LOD looking too dark, and LOD transition popping on the high external wall.
- Packed an additional 70 materials and reduced texture footprint in some materials.
- Eliminated terrain splat texture related dependencies.
- Improved performance in materials using biome tinting.
- Improved overlay effect performance (e.g. water) and performance for Tonemapping, FXAA, Sharpen and Vignette.
Elsewhere on the visual side, Andre trimmed sky brightness slightly — his own words: "big whoop".
Monuments and assets
Damian's supermarket work was mostly technical this week: setting the scene up to appear in the procedural map, creating LOD and collision meshes, and placing loot spawns. He also polished the decor and added more damage to the floors and walls. Remaining were the newspaper stands, cash register and other store props.
Vincent completed the final exterior and interior models for the gas station's main building and dressed the outside with some overgrowth, leaving props and polish. Both monuments were on target for the next wipe cycle.
Pilgrim finished the Geiger Counter materials, with only LODs and Unity prefab setup left before implementation — he singled out the small details like the tags on the side and top as what brings an asset to life.
Alex R had one non-vacation day (he was off watching a total solar eclipse) but continued generating additional engine cycles for RPM ranges with only one or two available, by slightly pitch shifting nearby cycles. It was working well, with the rest of the tank's sound design next. He also tracked down an effect recycling bug that prevented the helicopter explosion sound from playing more than once.
The rest of the changelist
Smaller entries include paper maps now despawning in 5 minutes instead of 20, updated item descriptions, and a fix for ores missing their partially broken stages on lower LODs. The whole patch reads as a week where one huge feature and one huge optimization effort landed simultaneously — the Bradley to shoot at, and a meaningfully smoother game to shoot it in.