What's New in Rust's "Friday Devblog 20" Update
August 2014's Devblog 20 was almost entirely a building week: conditional corner models, an art pass on walls and foundations, and a dedicated test level. Alongside it came RCon and moderator permissions, better terrain generation, and a big terrain-shader performance win.
Devblog 20 landed in August 2014, back when the "experimental" branch of Rust was still a rough sketch of the game we know today. This one was almost entirely about the building system - the team had finally got the underlying prefab framework stable enough to hand over to the artists, and a lot of the week went into making walls and foundations actually look like something. Around that, there was a batch of server-side plumbing, terrain generation work, and the first real pass at rendering fixes.
The building system gets its art pass
The big story was that the building system was ready for art, so the team started dressing it. Garry wrote up documentation on the building prefab system specifically so artists could implement their own work in-game rather than handing models back and forth through a programmer. The reasoning was straightforward: a programmer drops in a placeholder, the artist makes the model and iterates on it live, and nobody ends up guessing at proportions or colours and getting it wrong.
Bill handled skinning the existing components, and the team openly admitted the result looked a lot like The Forest at that stage - not deliberately, just where the aesthetic landed.
Conditional skins
The most interesting technical piece was conditional skins. The original plan had been to make players place corner pieces manually, on the logic that a messy build was the player's own fault. But the number of edge-case components that approach would eventually need was going to be enormous.
Instead, the system looks at the placed building components and, if two edges intersect at 90 degrees, decides it must be a corner and places the appropriate model. Foundations are the clearest example: the stones around all four sides are conditional models that only appear when there's no connecting piece attached. The rules are simple enough for an artist to configure alone, but the system is modular enough that custom checks can be layered on top.
A test level for buildings
Repeatedly starting a game and building something just to test a change had become a chore, so a dedicated test level went in. It works by hosting a game in the editor, saving it, and rejoining - the test level simply loads a pre-made save. A side effect noted at the time: when other developers loaded it, they'd see Garry's sleeping body lying there. Beyond convenience, it made performance testing possible without joining a live server and hunting for a fully built base, and the plan was to expand it to cover whole towns of buildings.
Deployables and items
- The sleeping bag became craftable - it had been implemented, but nobody had made a blueprint for it.
- The wooden storage box was craftable and deployable again.
- Dan had the Thompson essentially finished and textured.
Footsteps and animation
Footstep sounds returned, with the sound varying by the surface you're standing on - though not every surface had its own set yet, so a generic concrete sound usually meant that material hadn't been done. The important difference from legacy Rust was that the new footstep effects are synced to the animation, so they fire when the character's foot actually hits the ground rather than on a timer. They also spawn particles, kicking up dust on dusty ground, all still heavily work-in-progress.
On the animation side, the team worked out how to use Mecanim properly and Goosey started reworking how hold types are handled. The old approach masked off the top of the torso and overrode that layer with weapon hold animations, which looked odd. Discovering the sync option meant they could do it correctly instead.
Server and serverlist work
The experimental server had opened to the public the week before, so this blog carried a batch of hosting improvements:
- A Linux server build exists - untested and unsupported, with known Steam library issues and probably no console input or output, since the command-line handling was hacked together for Windows rather than being a Unity feature.
- Documentation went up for anyone wanting to host their own server.
- The
findcommand was re-added so server owners could discover what convars and concommands exist. - RCon works again, but only through an external client - you can't run it from inside the game any more. It uses the Source Engine's RCon protocol with a few exceptions, notably that it continually feeds console output back via
SERVERDATA_CONSOLE_LOG. Boback, who made Rusty, was working on compatibility. - Owner and moderator permissions replaced legacy's single shared RCon password. Owners can add other owners and moderators and close the server; moderators are the day-to-day admins. You add them with
ownerid <64bit steamid>andmoderatorid <64bit steamid>.
With more than two servers now live, the serverlist got attention too: servers default to being ordered by ping, the other sort buttons all work, official Facepunch-run servers show up under their own category again (to guarantee a populated place to test), and the bug that duplicated servers on refresh was fixed.
Terrain, rendering and performance
Andre kept working on terrain generation. The older generator tended to produce one mountain in the middle of the island with progressively flatter, less interesting land toward the edges - a real problem once biomes arrived, since the northern biome in particular wanted cliffs down to the ocean and serious mountains. The new version puts interesting landscape everywhere. Forests remained the outstanding issue: Unity 4's physics engine capped how many trees could be placed, so the plan was to find the ideal density, cut it back to what Unity 4 could survive, and go all-in once Unity 5 arrived.
Dynamic ZNear, ported over from legacy by Helk, addressed the flickering shadows and z-fighting on the landscape. The cause was z-buffer precision: an extremely close near plane is needed because weapon viewmodels are drawn with a single camera, which is in turn the only performance-friendly way to get them accepting world shadows. The fix pushes the near plane forward when nothing is in front of the player - up to 1.0 with no viewmodel present, dropping to 0.05 when something is close. Better alternatives existed but would have taken weeks and probably felt heavy-handed.
Procedural Virtual Texturing was Diogo's project. The terrain shader was slow because it had too many texture reads and was hitting a hard limit - reading a splatmap, then one to four textures and one to four normal maps, then blending everything. PVT instead generates the textures and streams them in. The result was a dramatic performance gain, the return of normal maps, and the groundwork for parallax mapping later. Players were asked to report anything odd, like pink terrain.
Damage fix and chat
A bug where you'd be killed, respawn, and then immediately die again from damage carried over from your previous life was fixed. A notification was also added for voice chat, on the reasonable assumption that most players didn't know it existed - the default key is V.
Concept work and what came next
Concept Corner covered clothing sketches from Meg - the team was keen to get real clothes in, since the hoody was technically just a placeholder proving clothes worked at all. Meg also drew options for a redesigned bow that would work better with ironsights, while Paul concepted an improved furnace and a set of stone hatchets.
Looking forward, the plan was to give Bill room to experiment with building meshes before committing, including separate inside and outside wall models - tricky, since the openness of the building system makes "outside" hard to determine. Frame and lerp models were next, leading toward wall upgrades from wood to stone to metal. Most notably for anyone who follows Rust's economy today, this was the blog where Garry floated using the Steam Workshop for clothes, in a similar vein to how CS:GO handled weapon skins - describing it as a fun and harmless way to let the community mod the game, with drops possibly working like TF2's. The one firm commitment was avoiding in-app purchases at all costs. That idea eventually grew into the full skin marketplace you can browse through our skin tracker.