During their SIGGRAPH 2013 talk, CD Projekt RED’s Balazs Torok and Krzysztof Krzyscin unveiled some new interesting information about RED Engine; the engine powering The Witcher 2 and CDPR’s upcoming RPG, The Witcher 3. According to the developers, this engine was originally meant to be used in The Witcher 3 as the game was planned ahead already, however CDPR decided to take advantage of it with The Witcher 2.
RED Engine was developed to render characters beautifully with support to special shaders, rendering, lighting techniques. The engine also supported multiple appearances per entity, texture skinning with 4 weights per vertex and animated component using Havok animation. Moreover, CDPR used 3 levels of LOD for most of its meshes plus an optional billboard level. Surprisingly enough, with The Witcher 2 CDPR ‘LOD-ed’ not just the meshes but the animations and the mimics too
When the team began working on the X360 version of The Witcher 2, it ended up creating a new version of its engine called RED Engine 2. RED Engine 2 is considered a more optimized version of RED Engine, as CDPR was facing a lot of issues with Microsoft’s console:
“When we finished making the PC version of the Witcher 2 we started working on the Xbox 360 version. It was a very special situation where the console version was developed separately from the PC version, this allowed us to concentrate all our efforts. At the very beginning the game didn’t even fit on the 1 GB devkit so we had to optimize a lot and we had a deadline of the GC when we had to run on the 512 MB devkit. The first big win was the motion extraction from the animations, then we rewrote the whole foliage system, these and a few other optimizations finally made it possible to run on the console. We were facing many loading time and CPU issues too. For the former, we had to implement animation streaming, we always load the events, the extracted motion and some key poses for the animations and we stream in the rest and blend them. For the CPU we had to implement a lightweight solution for background NPCs that allowed us to place many simple animated characters on the levels. The triangle count and the textures were reduced by a factor of 2 so there was no special thing done here.”
Going into more details, CDPR’s developers shared more details about the CPU usage of RED Engine 2. According to them, the animation updates were separated into two different groups, the background NPCs were updated on multiple CPU threads, they were bucketed into 5 ms batches and prioritized. The worker threads tried to do as much work as they could. The main characters were updated in a fork-gather manner on 4 threads with a 5 ms budget in total.
After finishing The Witcher 2 for X360, CDPR decided to push things a bit further, thus RED Engine 3 was created. RED Engine 3 supports dynamic cloth physics, a new mimics system, dynamically loaded appearances (no need to load all and then choose), a new animation system that is not based on Havok, a fur solution, triangle count support that is up to 40K and 2K textures for the characters’ heads and bodies.
CD Projekt RED has also experimented with DX11 tessellation on characters, however it seems that The Witcher 3 won’t support it (do note that the game will most probably take advantage of DX11 tessellation for its environments). According to the developers, the company experimented with two tessellation methods: PN Triangles and Displacement mapping. The first technique did not bring much additional detail to the characters, while the second technique was promising. Still, in order to use Displacement mapping as a tessellation solution, CDPR would need to change its pipeline. Not only that, but that particular technique brought a ‘swimming’ effect and some hole that were caused by the tessellation itself.
“We tried tessellation on the characters but it didn’t give us good results, there are two reasons for this. The first reason is that our meshes are already very detailed, so the tessellation doesn’t give us as much as it gives to others, and the second is that it would be very hard to deal with the wholes that the tessellation would create. So at the end we decided not to use tessellation on the characters.”
The Witcher 3 is currently planned for a 2014 release on PC, Xbox One and PS4!