What's New in Rust's "Friday Devblog" Update
March 2014, and the very first Friday Devblog. Rust's first Steam trading card set, a ground-up inventory rewrite, a deliberately UI-agnostic redesign ahead of the Unity 5 move, and a candid explanation of why the updates had gone quiet.
The very first Friday Devblog went up in March 2014, and it exists because players were complaining. Facepunch weren't posting enough about Rust's development, so the suggestion came back to start writing something weekly - and Garry agreed, even if some weeks that meant nothing more than "replaced 6000 lines of terrible code with 1000 lines of not so terrible code." It's less a patch note than a founding document for the devblog series that ran for years afterwards.
Trading cards, and getting ahead of the comments
Rust's first set of Steam trading cards had released the day before, and the blog opened by heading off the obvious reaction. The programmers didn't make the cards, and no updates were delayed to produce them. The intent was to capture the game during its early alpha, with the hope of releasing a new set roughly every six months documenting the state of the game, the community, and whatever was going on around it at the time. Meg and Rob got the credit for the card art and backgrounds.
The new inventory system
The technical centrepiece was a total replacement of the inventory system. The existing code was described in unusually frank terms: files where the code doesn't explain itself, ambiguous variable names, "shit, unmaintainable code." It was also welded tightly to NGUI, the old GUI system, which was being swapped out for DFGUI in the next update - and which Garry openly expected to be replaced again by Unity's new GUI system when the project eventually moved to Unity 5 a few months later. That churn was the exact reason the new inventory code was written to be UI-agnostic.
The blog was clear that rewriting code for its own sake would be a waste of everyone's time, so the rebuild came with real changes. An early prototype of the new menu showed off what the old system couldn't do:
- Scalable UI, so it stays readable at large resolutions or on a TV
- Queueing and cancelling crafted items
- Unicode text labels throughout, opening the door to translations
Underneath all of it was the biggest change: the new item system, driven by a new item editor that was itself still work-in-progress.
"NO UPDATE?!?!?"
The rest of the blog answered the question in its own section heading. Players wanted weekly updates stuffed with new content, and Facepunch's position was that delivering that required changing the foundations first. When Rust launched it was, in their words, still pretty much a prototype, and most - if not all - of the code was terrible. Garry reckoned anyone who'd decompiled Rust probably assumed their decompiler was broken; it wasn't.
Replacing it wasn't about programmer pride. The old code was hard to understand, there was too much of it, and it was limiting what could be built. Trying to add features on top of it first would only tangle things further. So the work of that period was exactly what it sounded like: swapping complicated legacy systems for clean, future-proof ones.
Where the team was at
The closing note was personal. The previous couple of weeks had been disrupted - Garry had business matters on his mind and Helk was dealing with significant family health problems, though he was recovering and returning to work. The ask was simply for reasonable expectations: selling a million copies didn't mean hiring a thousand people, because more cooks don't make a better game. They were hiring, just selectively.
Everything in this post - the inventory rewrite, the item system, the UI-agnostic approach - fed directly into the experimental branch that would replace legacy Rust entirely later that year.