City Building

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.

Optimization

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.