On May 21st, Facepunch Studios’ astronomically popular survival game Rust is finally making its way to PS4 and Xbox One, courtesy of Double Eleven.
The long-awaited console version has been close to three years in the making, and comes almost eight years after the original game’s launch.
One reason for this long wait is the sheer technical challenge of getting the game to function on last-gen hardware. Rust’s PC version may have been around for quite a while now, but with its huge world, its system specifications are demanding – or at least, much more demanding than the now-previous generation consoles can handle.
On top of that, Rust’s popularity, particularly on Twitch, means that fans are unlikely to accept a hugely pared-back version of the game. Many console players may be playing the game for the first time in May, but will have been experiencing the PC version in its full glory via their favourite Twitch streamers – meaning Double Eleven were under great pressure not only to port the game to significantly less powerful hardware, but also to ensure parity with its PC counterpart.
Which makes the very promising-looking port nothing short of a technical marvel. To find out how the team pulled it off, we spoke to Matt Phillips, lead programmer at Double Eleven.
“Right from the start, we tried to keep the game as close to the PC version as possible,” Phillips confirms, “that’s why it took so long to develop. That’s why we ran into so many headaches.”
That push to keep parity with the original PC version was routinely hampered by the limitations of the hardware, Phillips relates.
“The main issue was memory for the most part,” he says. “We have about four and-a-half gigabytes to play with on the Xbox One and PS4, but the PC version on Steam needs a minimum of 10GB of RAM. To try and squeeze that down has been pretty much the crux of the project.
“The CPUs don’t help either. I mean, they’re the equivalent of 2013 Macbook Pro CPUs. So when you compare that to PC players with their top of the line processors, you have a lot to contend with. And that’s all down to the sheer amount of stuff in the game. It’s a huge, semi open-world title.
“There’s so many things in the game at any one time. All the trees, rocks, bears, players, all the building pieces… One of the biggest issues, you can build things in the game. There’s a lot of object management happening in the background trying to facilitate that.”
Many of the changes made relate to how and when information about the game world is communicated to the player. Given that players can alter and build upon Rust’s landscape, the map can be changing in real-time as you explore the world.
“PCs can just deal with all objects in the world existing at once, but on consoles we can’t afford the memory or processing cost, so we spawn objects in and out based on a radius from the player. We don’t care about a missing falling animation on a tree that has been felled 8 miles away by another player, or that a bear is attacking a deer on the other side of the map, so we only keep the content relevant to the player’s immediate surroundings in memory at any one time and allow the server to keep their states up to date instead.
“This comes with a few complications of its own, because once you do get close to those things, your console needs to both spawn them in and update them to their states at the current time. It’s been a bit of a nightmare trying to coordinate memory usage, the cost of spawning things dynamically, and keeping them in sync.”
Technical limitations aren’t the only concern the team at Double Eleven had to deal with, of course. Adapting a game designed from the start for a mouse and keyboard setup meant that large sections of the game had to be entirely redesigned from scratch.
“Every single UI in the game is redesigned from the ground up to work with controller,” says Phillips. “There’s no way to sugarcoat it, that’s a lot of work. Pretty much anything you can read, or anything you can click on needed redoing.
“There are also some requirements from the platforms themselves. For example, on Xbox, if you can see their Gamertag, you need to be able to push a button to see their Gamercard – that’s one of their requirements. So we had to work around UI design to make that work. Which means finding more real estate on the screen, things like that.
“We had to alter a lot of the aiming stuff, like for the gun recoil. If you’ve ever played Rust on PC, it’s a little bit harsh. Obviously controllers exacerbate that kind of problem, so you have to rework things like recoil, things like aim assist – which itself can be a very polarising feature – and PC didn’t have support for any of that. And of course, PC didn’t have controller support at all, so all of that is our own implementation.”
That controller support (or at least, Double Eleven’s version of it) is unlikely to hit the PC version anytime soon by the way. The sheer amount of changes required to get Rust running on consoles means it’s a “very different beast” to the PC original.
“It would be quite tricky to port that back,” notes Phillips. “We’re open to it, but I’m not sure we can afford the time!”
CROSSING THE STREAMS
The differences between the two builds means that, while Rust supports crossplay between PS4 and Xbox One, console players will be playing separately to their PC cousins.
“We’ve had to maintain a separate release roadmap to Facepunch,” says Phillips, “or we’d just constantly be playing catch up. That’s because every feature we’ve had to implement, we’ve had to adapt for the console version. We’d have to rebuild quite a lot of features, basically.
“So we created our own roadmap in a way that suits our production pipeline, to bring the best features of the game for the core Rust experience, And then we’ll look at the most popular features and look at bringing those in as a priority basis.”
Mercifully, implementing crossplay wasn’t too much of a headache for the team, though extra considerations need to be made to ensure players have a grief and harassment-free time.
“The big issues for crossplay are things like how you handle blocking a player from the other side. The two platforms don’t have access to each other’s user databases. So, if you’re being harassed by a player on Playstation, you can’t really block them in that way on Xbox., So we’ve had to develop our own system for that, if you want to block a player, that information is stored on our servers, and not theirs.”
There’s currently no text chat in the game, with a controller-friendly chat wheel introduced instead, with basic stock phrases such as ‘hello,’ ‘goodbye’ and ‘get off me!’ which will hopefully limit harassment. Plus of course there’s the option to turn off proximity voice chat, a feature supported by the console platforms themselves.
THERE’S NO MAGIC BUTTON
Still, all these headaches really go to explain why the common refrain of “port this to consoles!” is often more complicated than people think. Sure, Unity does have a ‘port button,’ but it’s not quite the magic solution we’d all like it to be.
“I really do wish it was that simple,” Phillips sighs. “If you press that button, it will compile your game for that platform, sure. But that won’t magically optimise it for that machine. It’s not going to take it down from 10GB of RAM to 5GB to get it to run on a PS4, that’s still your job.
“Nor will it automatically make the controller inputs magically work keyboard mapping, that’s a redesign. It’s not going to make the UI changes. Everything on Unity deals with hard disks, so if you want the game to load from a Blu-ray you’ve got to write that system, the button’s not going to do that for you.
“There’s also things like different online networks, dealing with PSN, rather than Steam. You’ve got to deal with their save systems, the cloud systems, the entitlement system for DLC is completely different. I could go on for days explaining the differences between Steam and PSN, and those differences are your problem. Pressing the button isn’t gonna automatically solve all those issues. So even for the smallest game, it’s actually a phenomenal job, there’s so much more to it than getting it to compile.”
In fact, to get just a small taste of the amount of work Double Eleven have done behind the scenes, just compiling the game for console is a good place to start.
“I think the biggest surprise for us is the amount of time it takes to compile the game for console,” says Phillips. “We started working with the PC version early on to get a feel for it, and it was relatively quick on PC. But on console, if you want to make a change and send the build to QA, you’re looking at up to 14 hours.
“That’s just down to the way that consoles inspect the data, it’s a completely different format to PC. So for quite a while we had to down tools completely. We weren’t doing any work on the game, we were only doing work on the build optimization, to try and get that time down. We got it down about an hour and a half to actually making changes to the game and about an hour and a half before QA got to test that change. That’s a hell of a lot better than it used to be.”
Maybe keep that in mind next time you take to Twitter to demand a game to be ported to your platform of choice. While there’s no doubt a huge crowd of players eagerly anticipating Rust’s console debut, they’ll have to ensure they thank the technical wizards at Double Eleven for making it happen.