It’s something of a miracle that Rust: Console Edition even exists on PS4. With its complicated world that can be shaped and moulded by the many players that traipse across it in search of survival or domination, many doubted whether the long time PC sandbox classic would ever make it to Sony’s last generation console and yet, here we are. So naturally, in an effort to divine the black magic that was employed to make this happen, we had a chinwag with lead programmer Matt Phillips at Double Eleven to get a read on just how many goats were sacrificed to get the job done (spoiler – no goats were sacrificed).PSU: Rust on console looks simply incredible. Certainly then, porting Rust to console is quite the feat, what made you think you were able to not only do it, but make it approximate to the long-running PC version of the game?Matt Phillips: Thank you! Rust will forever be the brainchild of Facepunch but we’re really grateful to be able to take what they’ve done and bring it to PlayStation players. The journey has been long, and at points arduous, to get to where we are today, we were under no impression that it would be an easy feat and we took the time we needed to reach the conclusion that it would be possible to essentially create a version of the game that was Rust as people know it, but would run optimally for console players.We knew early on that the PC and console versions would ultimately be in separate universes due to the diverse needs of the hardware concerned. The PC version could ultimately expand as needed and performance would be maintained as long as people upgrade their hardware but consoles have finite resources that need to be more closely managed. Our biggest challenge was creating an experience that was faithful to the expected Rust experience within the technical confines of the consoles, we’ve seen it not done well before and were determined to do right by Rust and its players, and given the challenges that we were facing, we knew we would have to take a different strategy to PC moving forward.In a nutshell, we had to reengineer how the entire game worked and the starting point was picking a point in time of Facepunch’s code base where we felt safest, building on what would be the foundations of the console code base. It made sense for us to revert to Rust‘s core experience and then rebuild some of the more advanced features once we had a solid base on which to build. We’re really pleased with the progress we’ve made over the last three years and though Rust has now launched into the wild, the journey continues with content updates planned for the foreseeable future to enhance the existing player experience.PSU: How long has Rust been in development for PlayStation 4 and how did you overcome the memory limitations of Sony’s now last-gen console?Matt Phillips: Talks began back in 2016 and development didn’t start until June 2018; there was a lot to evaluate before any tangible development work started. The greatest sacrifices made on our side were related to the resolution, map size and content in order to ensure the game ran well, factoring in the limitations we faced if you think back to the early PS4s.Further Reading:That said, we’re really pleased with our progress and achievements on some 8 year old hardware and by no means is launching the end of what we’re bringing to Rust Console Edition. We have plans for post-launch content updates every 5-8 weeks depending on the complexity and size of the updates and players who buy either the Deluxe or Ultimate editions of the game will be able to test out features on the Public Testing Branch before they’re actually added in-game. The dev team is already working on a selection of monuments and content for the first update post-launch and we’re working hard on a content roadmap so we can show players more of what’s going to be added in the future, along with when we’re looking to add it in.PSU: In terms of performance – how were you able to make the PlayStation 4 version of Rust run along at a decent clip?Matt Phillips: Performance was actually the team’s biggest and most demanding challenge. The Steam page for Rust boasts a requirement of 10 gigabytes of RAM, and recommends 16 for an optimal experience. The target consoles—after taking into account OS memory and shared graphics—demand that we squeeze the game into just 4.5. In addition to the memory challenge, the CPU’s of early models of PS4 are comparable with that of a 2013 Macbook Pro (which is well below the minimum requirements for Rust), and chugged under the game’s weight.To accommodate the game on these systems, some light optimisations wouldn’t cut it. The team needed to rip apart and rewrite major engine subsystems within Unity. Some of the systems we designed and refactored include a new LOD implementation, a mesh streaming and eviction system, an additional thread job system, shader constant cache, shader stripping, as well as a whole host of optimisations to Unity’s C# compiler.PSU: Just how much of the Unity engine needed to be torn down and re-written to accommodate Rust on PlayStation 4?Matt Phillips: A considerable amount. The bulk of the work was wrangling Unity’s HDRP implementation to work properly on PS4. There were a lot of rendering optimisations performed, mainly how shaders are loaded and invoked, plus improvements to the scriptable render pipeline. We made heavy modifications to the mesh and texture LOD systems, threaded job system, animation compression, and memory management.A lot of work was put into removing superfluous game objects born from Unity’s heavily hierarchically-driven design ethos – a typical game map comprised 1.2 million objects, most of which were just placeholder skeleton objects that contained no logic or reason for existence other than to maintain a structure or hold a LOD renderer. We’ve managed to halve that count.Additionally, we put a lot of work into refactoring Unity’s asset pipeline to bring down the import and build times. At the beginning of the project, a full asset import and build for PS4 was verging on 8 hours, and we managed to bring it down to 45 minutes.PSU: When it comes to PlayStation 4 Pro, what sorts of enhancements will those users be able to enjoy with Rust? Did the extra headroom provided by the console over the base unit help to alleviate some of the issues you were facing?Matt Phillips: The big one is the improved framerate; the base console is locked at 30fps. The Pro also has improved texture quality for objects in the distance, since we were able to increase the texture memory budget and increase the LOD distances.PSU: Though Rust doesn’t have a native PS5 version announced at the time of writing, have you implemented some forward thinking ‘backwards compatibility plus’ features, such as unlocked framerates, higher detail presets or anything like that?Matt Phillips: Rust Console Edition runs in backwards compatibility mode on the PS5 – and players can expect higher framerates as a result – but the majority of our time so far has been spent ensuring the best possible player experience on PS4, so we haven’t yet been able to properly optimise the experience for current gen players yet. That said, we’ll be putting more time into this now we’re post-launch and will update through our social channels and website when we’re able to talk about it in more detail.PSU: Given the previous question, a potential PS5 version of Rust would surely not only benefit from the efficiencies you’ve engineered for the PS4 version, but also the sheer horsepower overhead enabled by Sony’s latest console. Do you foresee Rust landing on PS5 in native form?Matt Phillips: It has been a long journey getting to where we are with previous gen consoles and launch is by no means the end of the road for the PlayStation 4 version; we’re planning content updates post-launch for the foreseeable future. It’s a big achievement for us to be where we are today with Rust Console Edition and players on PS5 will be able to play through backwards compatibility, but we haven’t yet spent the time optimising the game for next gen consoles due to our heavy focus on getting it right for PS4, so we can’t guarantee stability just yet.Native is something we’d like to consider in the future but not something we can commit to right now.Further Reading:Beyond the visual side of things, what strides have you made in regards to tightening up Rust‘s netcode for the consoles? Were there any special considerations here?A lot of the net code was refactored to properly support dynamic loading of objects. We spawn objects in and out of existence by proximity, to save memory and processing on the consoles, but this needed a lot of work to ensure the objects’ states are properly synced with the server when they disappear and reappear client-side. We’ve made a lot of optimisations to reduce network traffic, including a threaded approach to message queue management, plus our own custom voice chat protocol.Speaking of special considerations, will crossplay feature in the console versions of the game?Absolutely, there is crossplay between PS4 and Xbox versions of the game.Thank you so much for taking the time to answer our questions!Rust: Console Edition is out now on PS4. You can catch our review of Rust: Console Edition right here.
Source link