What's New in Rust's "Devblog 61" Update
May 2015's Devblog 61 added ladders that deliberately ignore tool cupboard privilege, turned on player-versus-player collisions, and spent most of its effort on performance - converting building parts to a custom LOD grid and deleting a 5000-triangle clover.
Devblog 61 landed in late May 2015 and is mostly a performance update with two genuinely disruptive gameplay changes bolted on: ladders, which don't respect building privilege at all, and player collisions, which mean you can no longer run through other players. Both were shipped explicitly as experiments, with Facepunch making the point that players are the play-testers.
Ladders
Garry's opening line was that nine Reddit threads arguing about a feature is a good sign you're on the right track. The ladder was originally intended for your own base, like stairs — but it's obviously more useful for visiting a friend's rock base.
Critically, ladders don't adhere to building privileges. You can place one inside the radius of someone's tool cupboard, stick it on the side of their house and climb to their roof. Facepunch expected it to change how people design bases, and pre-empted the objection directly: yes, your one-man base is going to get owned by big clans, but their inability to climb a three-metre wall probably wasn't what was stopping them.
Player vs player collisions arrived at the same time. You can no longer run through other players — though you can now jump on their heads.
Load times, Unity 5.1 and DirectX 11
Asset bundles had made load times a problem. The whole point of switching was splitting content into smaller files so Steam uploads and downloads didn't move 1GB+ every update — but the irony is that load times get dramatically worse the more you split things up. Loading items at startup used to take under 100ms; spread across many bundles it took over 10 seconds. The result is a balancing act between bundle size and load time, expected to improve over time.
Rust moved to Unity 5.1, which Garry summarised as an engine version 0.09 higher than the last one that brought more problems than solutions, costing him a day of bug fixing and crash reporting. The benefits were thin: some graphics code was rewritten in 5.1 for probably-unnoticeable performance gains, and Unity implemented the VFACE support Facepunch had asked for, which unblocked Diogo on trees and water.
DirectX 11 was enabled for capable PCs. Garry was upfront that DirectX versions don't really make a difference but people are impressed by bigger numbers. They could have done it months earlier, but wrongly assumed switching would lock out DX9 players — in fact it just falls back to DX9.
Performance work
Both Garry and André spent the week on performance, and flagged it as the theme for several weeks ahead — since it's the biggest difference between old and new Rust for a lot of players.
Two concrete wins from Garry. When you join a long-running server there are sleeping players everywhere, and it's not unusual to spawn with 50 visible sleepers, each of which needs animating and skinning. Sleeping players are now only animated when they're reasonably close to you. Separately, one foliage model — some clovers — was about 5000 triangles with no LOD and spawned constantly. Enabling the foliage renderer in a typical forest scene took the triangle count from 600k to 1.5m. It was removed.
André abandoned his week's plans entirely to optimise:
- Converted all building parts, and various deployables, to the LOD grid
- Optimised detection of conditional building part refreshes and required sign texture refreshes
- Added
graphics.shadowlights— the number of shadow-casting light sources, defaulting to 1 - Added an F2 menu object quality slider, mostly affecting performance around buildings
- Made the F2 shader LOD slider apply to all shaders rather than only terrain, and fixed SpeedTree shader issues at low shader LODs
- Made LOD grid cells smaller for more accurate LOD switches
- Reduced Hapis Island memory usage
- Optimised the refractive heat shader, fixing lag with lots of furnaces and campfires, and the emissive HDR particle shader
His honest framing: performance isn't something you fix in a week and declare done. Still outstanding were the lowest LOD of essentially every building part, static batching to speed up rendering low building LODs, and various CPU-hungry scripts. The hope was that this update would get most players to a decent framerate using the F2 tweaks.
He also brought back fps.graph, now taking the number of frames to track as an argument (fps.graph 100 plots the last 100 frames) and rendering much faster. It sounds like a strange thing to invest in, but being able to spot individual frames that take far longer than their neighbours is exactly how you find the cause of hitches. A dev section was added to the F2 menu letting developers toggle visibility of world elements in release builds on Steam, for future performance analysis.
Combat and balance fixes
- Fixed a reload exploit involving converting ammo types
- The ammo type menu now appears if the ammo in your gun differs from what's in your inventory
- Tracer effects scale by velocity and are destroyed below a threshold — no more "cyber rain" of falling bullets
- Supply signal smoke is more reliable and shows up for new connections and players entering visibility range
- Cloth helmet protection applied to the back of the metal facemask, so the leather part protects like leather and the metal like metal
- View models get lowered more when running
- Server browser filtering added, with improved browser performance
- Anti-cheat bans are announced to the server; the status command can be used by clients
- Fixed audio settings not changing, and supply drop blueprint existence
- Mushrooms no longer collide with player movement; rarely visited or chopped-down forests no longer grow insanely dense; fixed radtown barrel spawners reducing the number of randomly distributed barrels
Hapis Island
Petur added a better-looking ambient occlusion system — an improvement visually, though potentially heavier on some systems. He skipped a patch and wipe that week, but previewed what was coming: the barren north edge of the island fleshed out, more roads, underground road tunnels, a fix for areas becoming overly barren, improvements to the steep noob-killing beach ramps, better ore spawns outside forest regions, less severe bush shortage, better barrel spawns in all radtowns, and less pixellated tree trunks. After the following week's patch, the plan was to turn Hapis into a monthly wiper.
Water and shaders
Diogo spent the week on DX11 and Unity 5.1 compatibility: fixing terrain and custom foliage shaders, PVT on DX11, the lowest quality terrain mode on DX11, and a terrain lighting issue that had been live for a while. He updated the SpeedTree shaders to Unity 5.1.0f1, added a metallic version of the Rust standard shader and optional UV scrolling.
The new water went live on the development branch with very basic optics — the important structural parts done, leaving mostly shader work to make it look good. He also got experimental shoreline wetness working to smooth the terrain-water transition, with foam to follow. Next up were water aesthetics, a lake water type, optimisations to allow more detail on the same budget, several quality modes and another attempt at dynamic reflections.
Animation and art
Gooseman added jump animations for moving sideways and backwards, and separated the bolt-action fire sequence so you can see your target after firing — press to shoot, hold the fire button to prevent the bolt cycling, release to cycle it. He started climbing animations for the new ladder, improved the deer run, and fixed animals appearing to run in place for a few seconds when first approached. Responding to comments that players animated like a crowd at an all-night rave, he went through and adjusted playback speeds on a lot of the player animations.
Xavier fixed skinning on the snow jacket neckline, lowered the polycount on LOD3 of the black jacket, added world models for most clothing items, and split the metal face mask into separate skullcap and face plate pieces — which should make headshots from behind do more damage. The miner's hat was essentially finished pending a final texture pass and LODs.
Vince did first-pass animation on the quarry assets, revisited the water catchers whose visuals didn't match player-built structures, and pushed a first ladder model into the game to sit on top of Garry's work. He outlined a substantial content pipeline over the following months: windmills, water pumps and several tiers of engines.
Paul refined the pistol design with feedback from Garry, Helk and Minh so it functions properly for iron sights, looks right in first person and is actually animatable, and concepted a spiked bone mace. Tom worked up Paul's bone club with normal and bloody variants. Howie settled on a windmill design — the third of his 3D sketches, chosen because it reads iconically from a distance and has the right rusty aesthetic, after Helk pointed out one alternative wouldn't be interesting on the horizon. He also started exploring gas-powered engines to drive the quarry and pump jack.
Megan finished the scrap searchlight brief, polished the scrap ceiling lights with painted lightbulb options, and made the icons for the tall and short ladders.
Sound
Alex finished distinguishing animal footsteps from player footsteps — monotonous work, because each animal needs different sounds for each movement speed and ground type, with multiple versions of every combination to avoid repetition. That set alone now runs to around 320 separate audio files.
He also tuned river sounds so they feel like they come from all around you near a river rather than from a couple of fixed points, with plans to swap sounds based on river slope so steeper sections sound faster-moving, and started polishing melee weapon sounds.
Garry's outstanding list going into the next week included throwing mechanics and streamer mode, finding a use for the large volume of stats being collected, and — as background noise for now — starting work on vehicles.