What's New in Rust's "Devblog 95" Update
Devblog 95 added the 4x zoom scope and the first batch of wall frame building blocks, fixed the sluggish player movement that turned out to be camera smoothing, capped immortal pumpkin plants, and gave the first real look at Rust's planned XP and blueprint tech tree.
Devblog 95 shipped at the end of January 2016 and is a big one. The 4x zoom scope went in, the new wall frame building blocks arrived so you can build prisons, shops and cages, a movement bug that had been making Rust feel sluggish for years was traced and fixed, and Garry gave the first substantial preview of the XP and levelling system that would eventually reshape the whole progression game.
The 4x zoom scope
Requested since more or less the beginning, the scope takes the same slot as the holosight and gives roughly 4x zoom plus some recoil reduction. The model shipped was a placeholder until the final art was finished. Helk was candid that this was probably a game changer and probably overpowered, and said he'd be watching feedback and adjusting over the following weeks.
Attachment fixes
Last week's attachments had a few problems. The best one: the laser sight gave its bonuses even when switched off. Fixed - and the fix also opens the door to applying bonuses or penalties depending on whether a scope is zoomed in or out. An exploit where players could swap weapons in a way that showed them their own laser or flashlight while it stayed invisible to everyone else was also fixed. Finally, the holosight's projection code, which always positioned the dot over where bullets would land, was removed - it was responsible for a lot of the red dot jitter. Still not perfect, but much better. Plans mentioned but not yet done: bringing the holosight closer to the camera for a wider field of view, and standardizing zoom levels across weapons without sights.
New wall and floor building blocks
The wall frame blocks previewed the week before are implemented and working, letting you build prison cells, shop fronts and cages. A known bug at launch: the fence and prison wall incorrectly display an Open/Close option.
Floor frames and floor blocks were also in progress, including a grill floor block and - the one likely to get most attention - the ladder hatch. It works like a door and accepts a lock, and because of how lock placement currently works, the lock is easy to reach from underneath the hatch and harder to reach from above. It's a three-part mechanism of hinges and sliding pieces with a lot of potential in base design. The floor blocks stayed on prerelease for another week of testing.
Sluggish player movement, solved
That feeling of Rust movement being delayed, indirect or heavy? It wasn't the movement code. It was the post-physics camera position smoothing being incorrectly applied to horizontal player movement. Removing it means 60 FPS finally feels like 60 FPS - a small change with an outsized effect on how the game feels to play.
Interaction priority fix
The sphere cast added the previous week had an obvious flaw: if you were looking directly at something, you'd sometimes still interact with a different object slightly closer but off to the side. With a row of crates that meant fighting to open the right one. Now, if you're looking directly at an interactive object, that's always the one you interact with, and the radius fudging only kicks in when you're not looking straight at anything.
Pumpkin plants stop being immortal
One official server had 400,000 entities, and over 100,000 of them were pumpkin plants. They kept producing seeds and never died. The long-term answer is proper farming with watering and upkeep, but as an immediate fix, plants now live for up to seven seasons or three harvests, whichever comes first. Their LODs were optimized more aggressively as well.
Crash reporting gets teeth
Garry hooked up a crash reporter and analyzer that not only collects client crashes but symbolicates and groups them, so they can be ranked by frequency and prioritized. The top report was inside an Nvidia driver DLL - which is either an Nvidia problem, an out-of-memory problem or a Unity problem, and a support ticket went to Unity. The second was in steam_api, used by the 32-bit Windows build, where the frequency and stack trace suggested the wrong version of the DLL had been shipping; all Steam DLLs were updated to matching versions with the expectation of a big drop in those reports. Steamworks was updated to fix a win32 problem, and Rust moved to Unity 5.3.2.p1.
Performance work
The dungeon greybox models got an optimization pass, including LODs. Normally you wouldn't LOD temporary models, but as an early access title with months to go before the greybox is replaced, better framerates now beat purity. Rock LOD distances had been kept close to those of the previous rock generation; because the new rocks pop far less, the switching distances could be cut drastically with little visual cost, saving a couple of hundred thousand triangles per frame on procmap.
New batching controls came with it - refresh_renderers to refresh client renderer batches, refresh_colliders for server collider batches, and various convars to customize batching. Batching was added to the static quarry and pumpjack, server collider batches now split when their vertex count gets too high, low vertex compression was enabled on all models, and RPC cache plus network and save cache memory were optimized. Spectating admins are no longer networked, and RCON now starts immediately on server startup.
Conditional Models 2.0
Conditional models are the pieces that appear or disappear depending on surrounding building blocks - wall corner pieces, roof sides and the like. Andre started a rewrite with a clear specification: run on the server so colliders can change, use no physics queries, be fast enough to run on all building blocks at view distance, remove building mesh pieces that can never be seen (like the inside of foundations), tie in cleanly with batching without constant batch refreshes, and be reliable enough that incorrect wall corners stop happening. The immediate motivation is performance around huge player-made structures, with more complex conditional checks possible later.
XP, levelling and the blueprint tech tree
This is the section that mattered most long term. The XP-earning systems were mostly built, with the remaining work being to sprinkle gain points through the code - still around a month from public testing at that point.
The model: every item has a limited amount of XP available with diminishing returns. Chopping wood with a rock gives a lot of XP at first, then progressively less - but by then you'll have earned enough to start gaining XP from chopping wood with a hatchet. Gathering is only one source; essentially every survival action grants XP the first times you do it. The one thing deliberately excluded is killing other players, on the grounds that it's already rewarded plenty.
The bigger change is the blueprint system. Found-and-researched blueprints have real charm - looting is exciting, and passing them to friends is fun - but they're also unpredictable, inconsistent, grindy and unfriendly. The plan was for blueprints to unlock as you level, paid for with earned XP, arranged in a tech tree so that, for example, you can't unlock a stone spear without the wooden one first. A day or two went into building an editor for the tech tree, since being able to see and edit all the level data together beats setting items one by one and trying to remember their relative positions. Facepunch acknowledged people were worried about the change, but believed it would make Rust more enjoyable and easier to understand once players adjusted.
Art and audio
Work on the flamethrower progressed well with only a few fixes flagged, and a proper scope model was produced now that attachments are in the game. A crashed submarine concept was finished, intended as another high-quality loot location made especially hard to reach by the equipment required to get there. Audio began on the new building blocks - open and close sounds for doors and hatches, plus impact sounds for chain link fences and the concept-stage glass windows. Clothing skinning was reworked, particularly around the shoulder where most pieces were deforming badly, cutting the stretched artifacting noticeably.
More fixes
- Fixed missing or incorrect animal footsteps on a number of surfaces - the footstep folder was a mess, so you can hear bears coming again
- Fixed occasional single-frame UI text corruption and some misaligned UI elements
- Fixed
bindso the second argument no longer needs quotes - Fixed transparent surface and particle atmospheric scattering, plus ambient lighting for particles and low quality speedtree fallbacks
- Fixed being able to put a code lock on airdrops
- Item icons and info are now dumped into
Bundles/items/