What's New in Rust's "Devblog 30" Update
October 2014's Devblog 30 was, by Facepunch's own admission, their lowest content update ever. Most of it went on build tooling and a Unity fight, but it laid out the plan for tradeable Steam Inventory blueprints in detail.
Devblog 30 went out in October 2014, back in the early days of Rust Experimental, and Facepunch called it themselves: "this might be our lowest content update ever." Most of the week went into fighting Unity and build tooling rather than shipping features. What it does contain is a detailed look at the blueprint system they were planning to build around Steam Inventory, plus a handful of sound and building fixes.
Blueprints and Steam Inventory
The plan at this point was for blueprints to live in your Steam Inventory and be tradeable. Facepunch were well aware that "tradeable" makes people immediately think of in-app purchases, and addressed it head on: the intention wasn't to sell blueprints, but to treat them like trading cards. Get a duplicate, give it to a friend or swap it for one you don't have.
The sketch they gave went like this. You start playing and can craft a small number of things. You earn a blueprint and can now craft a shirt. You play more and earn another, so now you can craft trousers. A friend starts playing, you craft him a shirt, he dies, he asks for another - eventually you just Steam trade him the shirt blueprint instead. Later you get a duplicate trousers blueprint and sell it on the Steam Market for $0.03, sell a couple of TF2 hats for $0.12, and use the $0.15 to buy a coat blueprint.
The argument was that nobody loses in that arrangement. Even in the most exploitative case - someone spending hundreds of dollars buying every blueprint - they still have to go into the game and gather the resources to craft anything, and you can still kill them with a rock and take it all.
Valve's inventory service was still in beta at the time, expected to be ready soon, at which point Facepunch planned to switch it on and see what happened. They also acknowledged that not every server wants players bringing 'global' blueprints in with them, so servers would be able to choose between global and local inventories.
Build times and asset bundles
The most instructive part of this devblog is Garry's account of a week lost to build infrastructure. Rust builds used to take around 10 minutes, meaning committed code was on Steam for macOS, Linux and Windows about 15 minutes later - fast enough to tell a bug reporter "try now" and have them see the result immediately. After moving to Unity 5, and especially after switching to SpeedTrees, build times had climbed to an hour, which killed that iteration speed.
The intended fix was asset bundles: put the bulk of the content into bundle files so the seven builds wouldn't each have to include it, dropping each compile to under a minute. It would also allow shipping 1.3GB of textures as its own bundle that servers wouldn't need, and asset bundles are the route to letting people create their own maps in Unity anyway. After a day of work it didn't pan out - asset bundles turned out to be incompatible between OpenGL and DirectX, and between 32-bit and 64-bit, which gutted their usefulness.
So the actual solution was a half day rebuilding the Jenkins pipeline so platforms build simultaneously rather than one after another, bringing build times from an hour down to around 15 minutes. None of it changes the game, and it was included purely to show the day-to-day reality behind the scenes.
Sound work
Gun sounds weren't fading correctly with distance, caused by an internal mixup between sounds and effects created by the viewmodel versus those visible on the third-person model. The quick fix makes a sound 2D if it came from your viewmodel and your viewmodel is visible, and 3D positional otherwise. As a bonus, gunshot pitch is now lowered with distance to imitate the bassy sound of distant gunfire.
Footstep sounds were also added for more ground materials - sand, snow, wood, stone and dirt. They weren't finished (the sand sound was described in blunt terms), but anything beat concrete footsteps everywhere.
Building fixes
- Fixed being able to place a sleeping bag inside walls, which let players spawn their way into someone else's base.
- Fixed not being able to climb through windows.
- Fixed a number of broken materials, particularly on the still-placeholder transition animations.
- Fixed being able to place railings across doorways.
The building system itself was largely untouched because the direction for upgrades hadn't been settled - specifically whether upgrading a block should change its geometry at all, or only its texture and material. Keeping geometry fixed and swapping textures makes life far easier, and that was the likely first approach, with the option to revisit geometry later left open.
Elsewhere
Scott's improved stone hatchet model went in, and Goosey and Xavier were experimenting with a bandage animation where you wrap the bandage around your head.
The week closed with an update held back for a few days while the team chased down a problem they couldn't attribute to the new Unity beta, their own code, or the new build process - preferring to confirm it was harmless rather than ship a patch that stopped everyone from playing. Next week's plan was bug fixes, rewrites and refactoring, plus switching on the Steam Inventory work if Valve released it.