Hi Elliott, This is a great breakdown and very generous in sharing your process and insights, you came a long way from the vending machine days!
Are you planning on releasing the UE4 project to the public? Or only builds? I'd love to play around with it in the editor if possible!
Witcher 3: Wild Hunt is one of the best role-playing games of this year. The game boasts incredible design, wonderful story and a lot of cool quests. But the biggest thing about this project is its vast open world full of beauty and details. Technical Art Director at CD PROJEKT RED Krzysiek Krzyścin told 80.lv about the RedEngine 3, some principles of open world level design in The Witcher 3 and the middleware used during the production.
RedEngine & Middleware
We are using in house developed game engine – RedEngine 3. Essentially it’s a set of tools that allows us to create large scale open worlds and also includes technology to render them efficiently on multiple platforms. To be specific, it’s a high-dynamic range (HDR), deferred renderer with forward pass, that uses physically based shaders (PBR) to achieve realistic look of in-game materials, including realistic skin, eyes and hair. All that supporting multiple post process like: color balance, tone mapping, bloom, depth of field, temporal anti-alias, realtime local reflections and more. For the vegetation creation we used Speedtree middleware, and for physics (including cloth simulation) we use Nvidia Apex / Physx.
Optimizing The Witcher 3
We had to make sure all the rendering subsystems are scalable, and can operate efficiently on all different platforms, and because our engine is multithreaded – we had to make sure that all available (CPU) cores have work distributed evenly – so the GPU can operate freely without stalls. That was actually crucial to make the game perform well, and once we achieved that – we looked into GPU performance in details. For example we changed how our shadows are rendered – not only we made it perform faster – by introducing special data format that allows us to render all bunch of shadow meshes in one drawcall. We also improved quality in the process – by adding soft blending between the shadow cascades. Other example would be the hair shader – that was initially extremely expensive. We had to do a lots of tricks to make it run better – we calculated fog per vertex instead of per pixel, and changed the way we calculate secularity (basically for far away objects we simplified the calculations).
Making Open World Look Original and Realistic
For Witcher 3 we were following realistic but very stylized art direction, with the goal of creating something unique and memorable. Of course to achieve good performance we had to make sure, that we use resources wisely. For example we had to control of how many “wood” texture variations we have in game, how many unique meshes are placed in given areas, how many distinct particles are loaded etc. If something looked to similar to what we already have on the level – we simply replaced it with the resource that is already loaded – just to not to exceed memory budgets. Thanks to that, we have no loading screens on when you enter the buildings. We also had to develop bunch of tools that would help us automate content authoring. Imagine this: we wanted to add much simpler collision to the doors, that cannot be opened by the player (they are always locked in-game). We have over 3000 doors in the biggest city – asking artists or designers to just go and click through all of them is not a good idea, right?
The Main References for The Witcher 3
There is simply too many, and everybody have their own favorites as well. As a studio, we have grown from 90 people working on The Witcher 2 to 250 people in Witcher 3 team, so it’s really a mix of all the cultures and inspirations. I think it’s safe to say we all love games, RPGs especially, and we want to push the genre forward as much as possible.
Biggest Technical Achievements of The Witcher 3
This is our first game that we released simultaneously on 3 platforms. Also, we succeeded with going from a smaller, closed and a bit linear world to a massive open world game. And the most important is, that the world we’ve created is dynamic – with changeable weather conditions, day & night cycle, realistic materials (PBR), interesting communities that vary across the areas, swarms of animals, new exploration system, horse racing and boat travel – even underwater environments – all that is a huge upgrade compared to the previous title – and I hope you will enjoy playing it!