Thank you Richard. If I find some more ways to improvise for optimization, then I'll tell you definitely
would love to see the substance graph.
The visual shader system will be great for modular asset pack makers. You see some incredibly high quality modular asset packs on the Unreal store, whilst the ones for Unity are so-so, which I think is down to the ease of creating shaders on Unreal vs Unity. Alternatively you have to make your shaders in something like Uber Shader system which immediately splits your customer base.
Senior environment artist Michał Janiszewski from CD PROJEKT RED discussed the main ideas, which guided him during the production of virtual spaces for ‘Witcher 3: Wild Hunt’ and ‘Witcher 3: Blood and Wine’. He talked about world building, references, virtual city planning and other aspects of environment design.
Hi! My name is Michał Janiszewski and I’m a Senior Environment Artist working at CD PROJEKT RED. I didn’t know it back then, but I started thinking about becoming an Environment Artist back when I was a kid. I got my first PC and I quickly got into video games. And that’s when it hit me – the idea that I could create all these huge, sprawling worlds, home to thousands of adventures, characters and creatures. I started fiddling around with a variety of tools after school, learning as I go. Then I started university and got my first job in the game industry, eventually joining CD PROJEKT RED. It’s been an amazing ride since and the last three years have seen me work on my most epic projects to date – The Witcher 3: Wild Hunt and both expansions: Hearts of Stone and Blood and Wine.
Working as an Environment Artist
There are many pillars of being a good Environment Artist, but for me there are three that stand out. The first is communication. The goal for any Environment Artist is creating a unique world that will captivate players and stay in their memory long after they finish the game, and for a game as big as The Witcher 3: Wild Hunt this is not something you can do alone. So we work closely with Level Designers, Quest Designers and Writers to push the game’s visuals, search for the best level compositions and make sure environments support the narrative to name a few things. Ultimately, creating a game world is a team effort. But because you’re working with some many departments, it’s sometimes easy to lose the thing that’s most important for an Environment Artist, which is creating a world that is unique. A world that has soul and a story of its own that is worth telling the player, even if only subliminally, because that is one of the things that determines how the player will feel about a game when playing it for the first time. The other pillar is versatility. One minute you’re making a 3D asset in a particular piece of software, and creating landscapes using the game’s editor in the next. Nowadays we have a lot more tools that help speed up the process. And that’s the third pillar – the constant drive for self-improvement. Keeping up to date with the latest technologies and searching for the most effective solutions allow you to work more efficiently. At the end of the day, it’s not the tools that make an environment artist, but the knowledge of how to use them.
The world in The Witcher 3: Wild Hunt is story driven, meaning we use the story as a base to determine the basic dimension and tone of each area. We use it to establish Points of Interest on the map that will guide players across the huge open world and be exciting to see. Along with concepts it serves as a blueprint to map out cities, villages, caves, using grey boxes first, and later replacing them with proper meshes, decorations, paths and foliage. And, as writers continue to work on the story, the world changes with it, and we have to be ready adapt to the new vision. In most cases these iterations help to improve the overall quality of the project and it’s very important not to get too attached to your work at this stage. We had a case where a mountain was obstructing the visibility of an important quest location, so we had to remove the mountain and replaced it with a lake and a small village on the shore instead. As we get closer to having a final vision for the world, we start creating “beautiful corners” – areas like parts of the street, walls, or sewers that are supposed to come out as close to the final thing as possible. Using sets of decorations from meshes like groups of barrels helps speed up the process and get project leads involved quicker to weigh in on the quality and decide how to continue. When the story, quests, gameplay and world are finished, we start polishing the areas, making big open spaces between Points of Interest feel interesting and natural, and helping the cinematics team make the game’s cutscenes look more epic. Lastly, there’s optimization, which can be tricky and sometimes difficult. Creating mesh proxies, balancing the Level of Detail, or curving the street a little to change how many objects are visible on screen at the same time can go a long way to make a location run smoother or allow us to make an area more crowded. And everything we do at this point brings us a step closer to that light in the tunnel that not so long ago was still so far away – finally releasing the game.
The world of The Witcher 3: Wild Hunt is based in Slavic, Celtic and Scandinavian cultures so that was the basic idea driving the creative process for us. We get a lot of concepts from our art team to familiarize ourselves with areas we will be working on, but we do a lot of additional research ourselves: internet, books, photos, old paintings. In Poland, we have a lot of outdoor museums that are entire medieval villages, so we naturally ended up visiting them, armed with cameras. And when gathering reference material we enter this mindset to actually start taking the camera with us wherever we go to grab everything that might be useful – mountains, small rivers, even interesting rock formations. Even listening to music can help you better figure out the mood of the area you’re working on. What you end up with is basically this huge folder, separate for each location, with tons of reference pictures and documents, and step by step you and the team have to figure out what works and what doesn’t.
Speedtree was a super helpful tool when working on environments for The Witcher 3: Wild Hunt. All of our foliage assets were built inside Speedtree by Michal Buczkowski, who’s our vegetation expert. He did a lot of research what kind of foliage grows where and divided it into asset libraries and atlases specific to each place like Novigrad, Skellige, or Toussaint, making the work a lot easier for the rest of the environment team. From here it’s very much a top down process. We begin by using real world references to build shapes and silhouettes: big trees first, then smaller ones, and later ferns and grass. Using our awesome foliage tools in the game’s editor we start putting large amount of vegetation on the map using brushes. There are separate brushes for each terrain type: fields, meadows, swamps and forests, but we can define a lot of things within them, like the distance and scale variation between trees, for example. There’s also areas we have to do things manually, like in order to blend vegetation in the open spaces of the world, like between a plain and forest. After creating an area we continue to work on composition, deleting some vegetation, or moving it elsewhere to make it look more natural. We also have to keep gameplay in mind when looking at our work. If vegetation is causing problems during combat we have to figure it out. It’s not as simple as it sounds and there are always going to be many iterations.
Make Environments Feel Alive
Making the world feel alive starts during planning, where we meet and figure out how many people live in a given village, how many of the houses can players enter etc. The Living World Design team works to make the world come to life by having it react to the player and his actions. By not using a grid for mesh placement and having everything slightly imperfect we make it more believable, like a living person built it, not a machine. Lighting, colors, composition, and vegetation – it all plays a huge role in making a world come to life, so we work with references to make areas look natural true to life. It’s a little bit like painting in 3D, but being able to change things on the fly and look at them from every angle, which gives you more room to experiment. And like I said earlier, building a living and breathing world is a team effort, so we constantly talk, share ideas, play each other’s areas to see if we think they’re alive enough and enjoyable. And that important because we are players ourselves, so if we like something chances are the players will like it too.
In principle, building a city is the same as building an entire world, just on a smaller scale, and building the cities in world of The Witcher 3: Wild Hunt was a huge challenge. Not just from a design standpoint, but also when looking at it from the optimization, gameplay and technical side of things, too. First we had to check our facts with The Witcher series of book, more specifically parts regarding big settlements. Based on that, we divided areas into districts housing various layers of society. This also helped us define what kind of house meshes and decoration we’ll need and where. Each city district has a backstory and a different feel to it. For example, Novigrad is this huge city hidden behind massive walls, with buildings many stories high and lots of dirty back alleys scattered across the outer rim and sewers underneath. But as you get closer to the city center the environment changes and becomes richer and cleaner. Another good example showing this is the city of Toussaint, built on a top of a cliff, with the poor districts at the bottom, and rich ones starting to appear as you get higher behind the city walls. We had a lot of concept art for each city, helping us to bring them to life in the game, but of course we didn’t have art showing us how every corner of it would look like, so we had to use other references, mostly from medieval times. Once we had a general idea of how the city would look we could start using grey boxes and simple meshes to define how large the cities would be, while the Level, Quest and Living World Design teams figure out how to make the city come alive, how many shops and inns we’d need and so on. From there we start working on compositions for every street and corner, using shapes like buildings, roofs, fences, all while bearing in mind the game’s story and quests. Concept Artists would then take screenshots of compositions and add in more details that we could use as references to add more decorations, decals, water puddles and planks laying on the streets, making the cities closer to the ones you can see in the game now.
That’s actually the other huge challenge you’re facing when creating an open world game. The world of The Witcher 3: Wild Hunt had to run great on every platform: PC, Xbox One and PlayStation 4. Achieving this took a lot of work and help from Technical Artists to create accurate technical budgets. The basic approach to optimization is planning many modular meshes that can be reused and repurposed. Imagine taking a rock and using it as a cliff, rotating it to use as a climbable platform, or ceiling of a big cave. Or structures assembled from planks and later merged together. This is a base for level optimization and offers a huge save on performance. Another thing that helps is manually creating or generating Levels of Detail and setting draw distances for individual meshes depending on their level placement. This regards things like city decoration, sets of rocks, and vegetation. The most important thing, however, is managing textures and materials because this needs to fit within memory limits for each location perfectly. In certain areas like cities, where there’s lots of decorations you should avoid having too many unique textures and materials, especially since you’ve a lot of characters in those areas which take up precious texture memory. To solve this you use texture arrays, which are sets of tillable textures dedicated to entire areas, like a rich or poor district.
I think the one of the biggest challenges when creating an open world game is making it beautiful, believable and fun to explore. You don’t want players to get bored, so you have to constantly provide a varied visual experience. Say, a player is travelling through the woods for an extended period of time. You need to make sure to break up the forest scenery with some clearings, terrain height, or water. You can work with colors, atmosphere and vegetation to make change a locations feel slightly, like by adding mist or have trees look old and dry. For mountainous regions of the world, or islands like Skellige, you’ve got ample room to provide players with breathtaking and varied vistas with well-planned settlements or other elements visible in the background. In open world games players are explorer, so you also have to remember about properly distributing Points of Interest throughout the map. So if players will for even a moment forget that they’re playing a game, that what they see is much more than just a technological achievement and fully immerse themselves in the adventures – we consider that a challenge complete.