Tech Analysis: The Witcher 3: Wild Hunt
Digital Foundry on CDPR's stunning new engine, and its plans to treat PC and console owners equally.
Ranking among the cream of the crop of PC developers working today, CD Projekt RED has shown a no-compromise approach to every project it's set its mind to. Case in point: the sublime Xbox 360 edition of The Witcher 2 didn't simply cut back the original PC code, but instead had code rewritten from scratch to push the console aesthetic in a new, arguably improved direction. But with The Witcher 3 being developed on Xbox One and PlayStation 4, can we once again expect an off-shoot of the PC experience, or something closer to parity? And indeed, how is the team looking to get the most out of PC development?
At the centre of the studio's first next-gen title is, of course, a brand new technological underpinning: the home-built REDengine 3. Also set for use in its upcoming Cyberpunk 2077 project, major bullet-points for the engine include support for 64-bit precision high dynamic range, fully tessellated environments, and a streaming algorithm to permit a completely open-world game design. The Witcher 3's game world counts in at over 25 times the size of its predecessor's, and this freedom to roam in any direction is a series first. Now it's possible to scale mountains via an added jump move, swim underwater, travel by boat and also horse-ride from one end of the map to the other. Expectedly, such advances rule out the game's development on PS3 and 360.
The limits of last-gen consoles won't be missed, however. Despite the forward-thinking revisions in lighting, materials and shaders for The Witcher 2: Enhanced Edition, sacrifices were inevitably made to suit the 360's hardware. This ranged from reductions in texture map quality, reined in draw distances, and half-resolution effects - plus a native frame-buffer of 1280x672. Even so, for a developer this au fait with PC development (going as far as including an ubersampling option that still manages to stress today's top-end rigs), the end result stands as an incredible accomplishment given the 360's limits.
With The Witcher 3, we're in next-gen territory. Having analysed the console gameplay shown at Microsoft's E3 2014 conference, it's clear the Xbox One version is set to fall much closer to the PC experience. Opening with a Griffin hunt that has Geralt charging through the No Man's Land marshes, we're shown the REDengine 3's open-world design at play with little compromise. Likewise for the PC build shown behind-doors, a longer journey starting at Novigrad city, during which our hero searches for an ashen-haired girl. There are no scripted boss encounters in either, nor chapter divisions or loading screens; instead we get a seamless field to explore, with the city of Novigrad serving as a sprawling central hub.
Michał Krzemiński, senior art producer on the game, confirms Sony and Microsoft's new platforms are set to carry the same core experience as PC. "Super-powerful PCs will be able to achieve higher resolutions, and they might run the game a bit faster," he explains, "but the plan is to make the experience the same for all gamers and treat everyone equally."
The world design is intended to be consistent across all platforms, then, with no radical abstractions in the vein of The Witcher 2's console outing, with its altered lighting model and re-designed shaders. But speaking with executive producer John Mamais earlier at E3, an ultra setting is still on the cards for PC owners, which should embellish the game in subtle ways over the high grade settings intended for Xbox One and PS4. Among the tweaks cited here include improved tessellation, physics, extra post-processing effects and more realistic fur for the game's creatures.
Speaking on optimising the experience across all three formats, Mamais also describes some key stress points on console that had to be overcome. "Dynamic shadows are really costly, post-processing effects are really costly," he says "so it's just a matter of optimisation and using the architecture in a really smart way."
"The stuff we're using that's really cool for next-gen is dynamic IBL," he continues, referring to image-based lighting. "We're using PBR (physically-based rendering), and water simulation's really interesting. It basically reacts to the weather conditions so you'll get choppier waves in wind." [UPDATE 14/6/14 18:13: A previous version referred to 'IDL' middleware management - this was a mistake in the audio transcription and has been corrected.]
When asked about the differences in approach when developing for either PS4 or Xbox One, the team's experience with the DirectX API on PC stands out as an advantage in developing for the latter. "The fact that we can use DX11 on Xbox One and the PC makes some things easier," Michał Krzemiński says. "We do have to put a little extra effort into developing on the PlayStation 4, but it's nothing we can't handle and that would make development problematic."
The fluid conversion to Microsoft's platform in particular means top-end features make the cut, despite the Xbox One's hardware deficit compared to PS4. "At least for PC and Xbox [One], we're using DX11 terrain so everything's really highly tessellated," John Mamais says. With the Umbra 3 plugin added to the engine too, rendering of geometry on each platform is managed based on visibility. Details such as buildings or forestry are culled dynamically if obscured by another object. It's an efficient way to manage detail across such a vast fantasy landscape, and as a result, pop-in is kept to a minimum throughout the Xbox One demo.
To explore this terrain, a rebooted animation system is also in place for the Xbox One, PS4 and PC versions. Jumping, vaulting, grabbing and diving animations are added to Geralt's repertoire, allowing him to navigate the world in more flexible ways. Motion is no longer rigidly scripted as it was in the previous game. "We use animation IK (inverse kinematics)," says Mamais, "that's so you can grab things realistically, and movement on terrain is realistic and so forth."
Inverse kinematics - as also seen in God of War: Ascension - allows each foot-step and ledge-grab to land dynamically, based on the characteristics of the terrain. Given The Witcher 3's push for a landscape with a greater sense of verticality, ranging from fjords and swampy marshlands to medieval cities, the new animation system proves a necessary move to avoid uncanny scripted movements.
Also improved is the team's approach to character design. For Geralt and other major NPCs, we see the use of tone-mapping and skin shaders boosting the realism of each face in motion. Other details stand out: from the way hair bounces as Geralt travels on horse-back, to the way cloth is simulated on flowing dresses.
Tying it all together is the lighting. The Witcher 3 adds weather systems (albeit unseen in action so far) and a rolling day-night cycle expected of a massive world - where transitions from dusk to dawn affect the occurrence of certain monsters. During the hunt for the griffin on Xbox One, for example, we see a low-cast sun producing light shafts through gaps in trees, with bloom diffusing each blade of light across the screen. It's a far more photographic approach that blends beautifully with the game's soft shadows - now matching the higher grade, consistent look of the PC build on show.
As for the matter of resolution, the Xbox One version on show at E3 is confirmed by John Mamais to be running at 900p, with hopes to push it higher come release as part of the larger optimisation drive. It's also confirmed that in addition to post-processing effects, temporal anti-aliasing is in use for the current build - an approach that blends the current and previous frames together to cut down visual noise during camera movement. It's a step beyond similar techniques on the last-gen, where obvious ghosting was in evidence. As for the as-yet unseen PS4 version, meanwhile, Mamais concedes that "being able to do 1080p on PS4 a little bit easier than on Xbox One." Given the divide in pixel count between multi-platform releases for the two platforms so far, this seems a realistic target.
On that note, performance of the E3 Xbox One build is very encouraging, having been designed with a 30fps target in mind. Unlike The Witcher 2 on 360, we're pleased to see a permanent v-sync in place to avoid tearing. A potential stress-point for the engine is in combat, where we detect stutters down to the mid-20fps range - the additional development time CDPR gave itself should hopefully see optimisation efforts implemented to level out the frame-rate.
Our outlook on The Witcher 3 so far is hugely positive, then. With a non-linear approach to questing and no loading screens to speak of, the world streaming aspect of REDengine 3 is already tightly optimised on Xbox One at 900p - a point which bodes well for the PS4 version. The PC version may be set for a few extra visual tricks come the 24th February 2015 release, and we're intrigued to see whether CD Projekt RED can indeed deliver on its promise to treat all players equally, handing in an equivalent slice of gameplay to all platforms.