Destiny 2 is out now, and as established by a successful beta test, this is an exceptionally streamlined version of the game. Ticking off virtually every box an enthusiast PC gamer could want from a multi-platform release, the beauty of Destiny 2 on PC is the sheer range of options open to the player. If you want a console-style experience, you can have it - but the point is that PC hardware has the potential to offer so much more. Beyond the expected graphical improvements, field of view adjustments, arbitrary resolution functionality and ultra-wide monitor support, Destiny 2 scales beautifully across high-end kit, making it a great match for high frequency displays. For its return to the PC space, Bungie is clearly on a mission.
"I mean, it couldn't be a port. It was just totally unacceptable for us to issue a port and we were very conscious of that very early on. From the very first day... that you commit to doing a PC version, you very quickly disperse out and you start outlining the things that make a game a port and you vow that day to never do those things," Nate Hawbaker, senior technical artist at Bungie tells us. "Things like only supporting one monitor, you know, not doing true 21:9, not having an unlocked frame-rate or a frame-rate that's attached to the game simulation so it might speed up or slow down. All of those were very, very crucial and we just slowly worked on that list of identifying those things and resolving them, and I think we've ended up in a really, really great spot."
Hawbaker flew over from Seattle last week to join us in the Digital Foundry office to show us final PC code. It looks terrific and the chances are that if you're a PC gamer, you already know just how well the game looks and plays, following last month's beta. Enormously scalable, and super-optimal to the point where a $65 Pentium can run the game at 60fps, it's a multi-platform game that's lavish on PC-specific enhancements - but it's the fundamental make-up of the engine that plays a huge part in how well it runs.
"Nothing comes free by any means, you know, there's certainly not a line of code to uncomment and it works for PC," Hawbaker explains, "but I will say that some of the general philosophy behind developing an engine for multiple platforms - even going back to Destiny 1 - has still really carried over into Destiny 2 and I would say we've actually developed that even further. Which is one of the reasons that you do see so many of your cores occupied in our game... and also pretty well in the graphic side of things... we are a multi-platform engine now and it is truly in a very mature spot. Certainly at least compared to Destiny 1, I think we've made a lot of great advances there."
In our Destiny 2 PC beta analysis, we noted that a Core i7 7700K could run the game at between 130 to 200fps, and Hawbaker expects excellent returns even from many-core processors like AMD's Threadripper, which haven't always shown good gaming results ("I mean if you hand it to us, we will definitely do our best to try to use them," he says), but in final code, even the 200fps cap has been removed.
"There were a couple of bugs that did result in going above 200, related to floating-point precision and various rounding errors, but we've resolved those now and the game will run in unlimited frame-rate," he says. "You will probably run into CPU bottlenecks well before unlimited is hit, but yeah I mean by all means throw your hardware at it, we will render at that - there's no limitations there."
And in turn, this opens up Destiny 2 to an entirely new feel of gameplay. From our perspective, displays with 2560x1440 resolution and 144Hz refresh rates offer the sweetspot for high frequency gaming in terms of price vs performance. But hitting and sustaining 144fps isn't easy and few triple-A titles can sustain that. Destiny 2 offers the scalability on both CPU and GPU to get the job done, and PC owners also benefit from an input system that can leverage super-high frame-rates: keyboard and mouse. Bungie prides itself on the 'feel' of its games, and this very different control system benefits from the same level of care and attention. So what was the approach here?
"Well, the first step, I think, is that you do a lot of soul-searching," Hawbaker replies. "There's a hallmark of a lot of Bungie games... that sort of secret sauce... why does the game feel so smooth? I think even when criticisms are thrown against some of our games, people will always say unequivocably 'yeah, at least the gunplay is really solid'. And here we go into PC where all of those assumptions are going out the window."
Keyboard and mouse support is essentially a reset point for Bungie on what is one of the most crucial elements of the game. "We have years of things like mapping subtle function curves to make sure that the input of a [joypad] thumbstick feels perceptually smooth, because just mapping those inputs linearly... you don't want to actually play that, and years and years and years go into that. You can't have those assumptions on PC when you're doing a mouse and keyboard, and so what we did was basically have an entirely unique set of balancing and tuning - and for everything related to our input.
"Like, what is the sensitivity? What is the sensitivity when you zoom in? How does DPI map to a mouse? Are you going to do mouse acceleration or something like that? How smooth does a sniper feel? Is there auto-aim? How's the recoil? You have to almost start over and handle it entirely uniquely, which we did. Our sandbox team effectively balanced and tuned PC independently."
News that Bungie wouldn't be handling the PC version of Destiny 2 on its own may have caused some initial concerns when the collaboration with Vicarious Visions was announced. Too many key PC versions have been handled by exterior studios, farmed out and lacking in quality. What's clear from our conversation is that Bungie itself remained core to the development throughout the process.
"The way I describe our relationship with Vicarious Visions is though they're in New York, it's sort of like they're sitting next to us. I mean, there is there is nothing different about an engineer in Vicarious Visions versus an engineer at Bungie," Hawbaker says. "They're involved with the same types of the process, they're in all of our meetings. We have conference calls and maybe the iPad sitting awkwardly in the corner with somebody's head floating on it, but they're a part of all of those decisions and they're almost an extension of us."
Vicarious were also instrumental in providing a key feature that's exclusive to the PC version of the game - support for high dynamic range display support. Now, in theory, Destiny 2 already renders everything internally in HDR, but it's not the case that the developer can simply turn off the HDR to SDR conversion process (tone-mapping) and get instant results.
"It is certainly not that simple! HDR was definitely a a passion project of a very talented engineer over at Vicarious Visions named Kevin Todisco," Hawbaker reveals. "You have to define early on 'what is bright?' and that's a very philosophical question, because you have to start answering questions like 'you know a super fireball coming from a Titan's hammer versus the bright pixel in the sky... how much brighter is one related to the other and what should that look like on a TV?' and don't forget some people have OLEDs and their peak brightness at 100 per cent coverage is not quite as good as the LEDs, and also how do you get artists to author this, because they don't have HDR monitors. Maybe they do but those are like $1500, so how do you handle that?
"Man, I think you almost have to revisit every facet of your renderer because it comes down to 'what do you want your final visual image to look like?' and there's a number of decisions that go into that. Things like tone-mapping exposure lighting and shading: how bright is the UI? If there's a white bar for your health bar, how bright is white? It's not as bright as the sun obviously. Or even when you go into various zones or when you're loading up a cinematic or something that like that, you'll see a big white screen in our game, with different class symbols rendering. But that's a white screen and if somebody's playing in a dark room with an HDR TV, you're gonna be burning out cones and rods in people's eyes and so how bright is that?"
But the core renderer utilising HDR internally does at least mean that players running with high dynamic range enabled won't require a GPU upgrade to make up for any performance deficit - any hit to frame-rate is minimal. "The main performance implication is that your render targets are changing," says Hawbaker. "You're changing the actual bit depth. You're rendering it, so there are some bandwidth considerations but otherwise, the performance cost is pretty negligible. It's really just VRAM costs."
As we chat, we're running Destiny 2 at native 4K resolution at 60fps on a system using Intel's new entry-level hexacore processor, the Core i5 8400, paired with Titan X Pascal. With minimal settings tweaks - essentially dropping shadows and depth of field down to high from highest - the game's running smoothly, locked at the refresh rate of our UHD display. On top of that, VRAM usage is a mere 3.4GB, even with the highest texture setting enabled. Destiny 2's optimisation extends to GPU memory utilisation too. In the beta, even a 2GB graphics card could handle 1080p on the highest texture preset. Does this extend to the final game? Or did the beta cut the top-tier assets?
"No, that is still as it was in the beta. The interesting thing is texture quality isn't just across the board changing resolution of all of our textures. It's actually scaling the highest resolution a texture can ever be and it's also scaling the lowest resolution of texture can ever be," Hawbaker explains, "and there's all sorts of reasons that you might be between the lowest and the highest resolution, because we have a dynamic mipping system that is based on the distance from the player, like the size and the screen, and all sorts of fun heuristics to try to make it so that the player never sees it.
"And what that is actually doing is changing the upper and lower bounds of whatever those are, but because we build our shaders in such a way that we don't just input a texture then render a texture, it goes through all sorts of shader math like procedural implementations that are all run in the shader and they're sort of agnostic of the texture itself.
"And what that means is if you lower your texture resolution, it might not actually look like it is lower, because that texture might have been originally have been a mask and then you use that mask to change a colour on a wall or something like that, but in Destiny 2 we use that mask and then we might multiply it by the object space position of it and then remap it based on the world coordinates of it and then take the angle of that surface and then drive some grime on it and stuff like that - but it's all procedural, it's not texture-based and so it can be a little difficult to see the effects of it - but yeah it's really just scaling the upper and lower bounds."
In fact, a lot of Destiny 2's options are built around systems that attempt to show very little difference between one setting and the next. During our beta testing, it was great to see that even a GTX 1050 with judicious settings tweaks stood a good chance of delivering 60fps gaming. And as we go down the settings ladder, the game still holds up. Take Destiny 2's distance sliders, for example. You'd think that adjusting those would result in a huge difference, but that's not always the case.
"What those are actually going to affect - at least on the environment and character - I would say between those two, we effectively have three distances that feed our LOD system and if you set it to low it's going to scale it to about 80 per cent - all of the variable distances that feed lower and higher resolution LODs and then highest will scale them up to about 200 per cent the original distances," Hawbaker says.
"Ironically a lot of our LOD systems are based on the silhouette of the object, and silhouette is usually the thing that you notice LOD actually affecting. Because our LOD system is fundamentally based on the silhouette to begin with, it's actually really difficult to see when our LODs transition in the first place, and so by all means you can set it to high but you may struggle to see the LOD transitions in the first place unless you find something very difficult, like spherical. We have a couple of enemies in our game that are literally spherical in their silhouette and there's no secret recipe to getting those to hide behind great, graceful LOD transitions. But really, these options are about just scaling the distances that those happen."
But of course, the option is there to push your hardware to the limit and Bungie's feature set here is immense. Yes, 21:9 monitors are supported, but on top of that, so are triple-screen surround set-ups. And if you want, you can combine the two, meaning that the game has to support an effective 63:9 aspect ratio. Adjustable field of view is also in mix - a must for enthusiast PC gamers - while the renderer itself has quality presets designed to stretch the most powerful hardware. So if basic high settings are ballpark-equivalent to the console experience, what does the highest preset offer?
"Yeah, going from high to highest, you're going to notice things like post-processing," Hawbaker replies. "We start to increase samples - multiply this by two, multiply that by two. Shadow resolution? [That's] certainly starting to increase and not just the resolution of the shadows but how are you sampling those? How do you make them look really soft and across how many cascades do they look soft and also where do those cascades begin and where do they end? What is the rate at which that are dispersed? All of those start to really just continue to scale up based on their original rates but I would say a lot of the cost goes into post-processing things like SSAO, depth of field certainly."
When we tweaked our GTX 1080 Ti and Titan X set-ups to run Destiny 2 at 4K and 60fps, adjusting shadow quality and depth of field down were the only compromises we needed. The depth of field system in particular can be very taxing but it's an element of the game's visual make-up that Bungie could really dial up significantly since the hardware is out there that can handle it. Hawbaker talks about some of the thinking that went into scaling up some aspects of the game's visual make-up.
"We have cinematic depth of field, we have gameplay depth of field. Wouldn't it be cool if the whole game was cinematic and then we can also increase the samples of the cinematic, so that you get really nice bokeh? Okay! And it was always that philosophy of, I mean, we can write the code and if you have the hardware by all means we'll have an option here waiting for you, and conversely, for the lower end specs as well, if you can just barely run the game, we will allow you to bring that render resolution all the way down to 25 per cent. We just want to scale to wherever somebody wants to play Destiny 2."
And if you're looking to tune the settings on your game, Destiny 2 offers a stress test scenario very early on in the game. The beta included a scene early on where the player(s) defend the falling Tower from a massive enemy attack. We used it for stress-testing the game on a range of PC hardware and the good news is that settings tweaks you settle on there should hold you in good stead for the rest of the duration.
"I think that's a really good benchmark," confirms Hawbaker. "I mean that is truly a case of us almost - internally as well - trying to see what can we get away with. You know, we originally made that mission because it's the beginning of the game, it has to draw in players, and it has to set expectations for the rest of the campaign. At the same time we're very conscious of the fact that this is the thing that's going to be recorded and so you do try to throw everything into those missions. Like, if there's one YouTube video that will get all the views, it's going to be this mission and that fact is not lost on us, and so that is still a very good benchmarking scene."
Destiny 2 supports up to 50 enemy combatants in any given scene, and this initial area aims to overload the player with opposition, which has CPU implications, not to mention stress-testing the graphics side of the equation.
"There's tons of transparency, there's tons of combatants, there's tons of shadows, all the enemies are casting shadows even on the bodies of the enemies piling up after you've taken them out," adds Hawbaker. "I mean you're just accumulating verts, rendering into shadows over and over and over and you're looking into the entire scene. There aren't any clever states, where if you just look in the other direction you don't have to pay into that cost because we're pushing you into the entire scene, the entire time."
Of course, the console versions have their stress points too, but from a GPU perspective at least, they do benefit from the implementation of dynamic resolution - the ability scale the framebuffer on the fly to help keep frame-rate smooth. It's not in the PC version of the game, though, which begs the question: why?
"It definitely wasn't anything philosophical, like 'we're against it'. It's simply that quite a bit of architectural changes are necessary for it," Hawbaker replies.
"On consoles, you have much more predictable memory allocations. When you're trying to decide what resolution that you're rendering everything at, you allocate memory very specifically for it and that's not too bad in console when your memory is highly predictable. When you're on PC, it's bit more of the Wild West and a lot of the assumptions that you get to make when you're building in dynamic resolution on console sort of go out the window. And so, step one is usually to start over and re-implement everything for PC. I mean it's certainly not off the table someday in the future, but just trying to release the game on PC for the first time in so long for Bungie was certainly a higher priority. It's not off the table, but it's expensive."
Looking at the final PC code, there's good news and bad news for those looking to fully optimise their experience. The good news is that the game's frame-rate counter is fixed, after a somewhat inaccurate debut in the beta. The bad news is that third party overlays like Riva Tuner Statistics Server remain fully locked out.
Hawbaker explains that these tools use a system called DLL injection that could potentially compromise the security of the game. The Destiny 2 experience is built on the integrity of its networking and Bungie had to do everything possible to lock down any possible points of attack that hackers may attempt to exploit. Plans are afoot to expand in-game metrics, to give users a better idea of how their hardware is being used, but certainly at launch, that little green number in the corner is all you have. But aside from the removal of MSAA as an anti-aliasing option, what we've seen of the final build of Destiny looks very similar to what we saw in the beta. Getting a great experience there, even on relatively meagre hardware, wasn't difficult.
Bungie also shared some interesting optimisation tips and CVAR tweaks (yes, Destiny 2 also has an easily tweakable .ini file - another enthusiast-friendly option the team were keen to support) so we'll be running a more detailed performance test as soon as we can. Our beta testing showed that 1080p60 is a walk in a park, even on relatively modest hardware - but it's the extremes we're looking forward to pushing. Bearing in mind how optimal the PC version is, just how low can you go? Can Destiny 2 run on integrated graphics? Can high-end rigs truly lock to 144fps at 1440p in even the most demanding scenes? We're really looking forward to finding out.