logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Deus Ex: Mankind Divided: Building the World

The first part of our series about Deus Ex: Mankind Divided. We talk to the Environment Director on Mankind Divided – Hubert Corriveau -about building the game’s world.

Deus Ex: Mankind Divided is a truly unique experience – it has its own amazing dense world that makes it one of the best RPGs the industry has to offer, providing the feeling you won’t find anywhere. We present to you our series of interviews with extremely talented team of developers from Eidos Montreal, who were kind to enough to share some details on building Mankind Divided.

Let’s start by discussing building the game’s world with the Environment Director on Mankind Divided, Hubert Corriveau. The developer talked about the density of Deus Ex, the way this game evolves around its story, using Dawn Engine, optimizing the game and other important details that make the game a masterpiece. 

Introduction

I started working in CG software when I was about 14 years old… back in 1995.  I was using Lightwave 3D, Truespace and 3DS (release 3), trying to learn how this thing worked. I was fascinated by the triangular visuals from movies like Lawnmower Man and I actually remember making drawings on paper of airplanes and landscapes using only triangles. I clicked with this way of expressing your mind, deconstructing an image with triangles.

I started working on architectural pre-vis at 18years old, went to the NAD center for a few months (a Montreal CG school) and then had my first gaming job at Microids, where I worked on Post Mortem, Syberia II and became a lead artist on Still-life, all of them point and click adventure game featuring pre-rendered visual.  Then I worked for about a year at Gameloft on various mobile projects, at Ubisoft on Rainbow Six Vegas and Prince of Persia 2008, and then landed the job at Eidos Montreal on DX: Human Revolution in 2009. 

Deus Ex: Mankind Divided

Deus Ex is about choices and consequences.  We’re building this world, where we hope you won’t simply get to your next objective.  We hope you will stop and explore a bit, and you can do it in various ways.  To me, the most important bit that makes it unique, is the various details we build for the game to make it “coherent” – we want the narrative and visuals to fit together.  You read an email or one of the many pocket secretaries and, you can piece together that we’ve worked on to make it feel like it’s all part of the same universe.  I think we are doing this more than other game developers.  

My favorite thing, though, is the setting, the backstory, the universe. I can bore my friends senseless with a bit of real-life trivia about the future of augmentations.  When I arrived at the franchise in 2009, I first had to “love” the franchise, which I think anyone working in this industry needs to do for the project they work on. Mary DeMarle (narrative director) recommended a few books to get in the mood and I read the entire bibliography of William Gibson flat out.  I read most of what Ray Kurzweil wrote, and a few other books from various authors for the sole purpose of “loving” Deus Ex. I would say this is by far is the franchise I liked the most from the ones I worked on.

Production Pipeline

The very first step is to agree on the main mission flow… and this is tough to define in DX because two players won’t have the same flow in the same mission, but we expect a simple and straight walkthrough from a player.  At this point we might say “Jensen lands on the rooftop, gets a few floors down, finds an incriminating document in a banker’s office, then goes out through the parking lot”.  We draw a very crude drawing of what we mean by this sentence. We then scope out how many “art palette” we have time to build for that environment – this is what we count at first and how many different looks we give to a map.  In this case, let’s say we have one rooftop section, one office section, and one parking lot. This is a large scale information that can be scoped and planned for.  Then we start what we call the gate process. 

There, on one hand, the level designers start working on the layout, dressing up the flow of a given mission, and the artists start working on what we call a map sample, a slice of environment that is fully produced to validate the main art looks of one of the the said mission’s art palette, based on concepts that are drawn by the team of concept artists. Once the gate process is validated, we propagate the asset built for the map sample throughout the environment.

Then we aim for our alpha state – we try to fill the entire environment with the basic modules required for each art palette.  At this point, the rooftop looks like a rooftop, the office like an office and so on, but it looks very repetitive, very modular.  We add a bit of props here and there to avoid having an environment that looks too empty, as this tends to bog down the review process (people always get stuck on the empty look of an environment instead of looking further ahead).

Then we start adding props seriously, breaking up the environment, adding the “used” look to it. We also do most of the main customization then. Basically, we start by having the map’s architecture there as soon as possible for alpha and then we customize the architecture, break it down a bit and add props in a generic fashion.  This leads us to what I guess we could call the beta phase. During this phase, level designer’s layout will progress and we now know, for example, that we also need a sewer access by the parking, a second office floor before getting to the incriminating evidence.  We try to keep this in the verified scope of production, but we push as much as possible to customize those new environments and avoid them end up being too repetitive. If we don’t have enough time though, they’ll end up being repetitive… but we try to avoid that.

And then we polish. This is when we concentrate on storytelling.  At this point we can play the game and talk to the characters and get a sense of the story, and we start adding personality to the environment.  We get a lot of feedback from the narrative team, the side quest team and the creative director on that aspect.  The side quest team’s feedback is invaluable as, to be fair, we don’t really know what they are cooking on their own and we cannot guess what we would need to add to tell their stories. We plan some time ahead for them… but we don’t know what kind of things we’ll have to add.

For example, when we started working on Prague, it took about 6 weeks to build all of the streets and buildings there. Then it took about 2 years to customize everything and add all the extra requirements from the level design, side quest and main story. And then few more months of extra polishing when we added the final storytelling element.  The idea of having everything in there so soon is that, in practice, from the level art point of view, we could get into shipping mode anytime. I don’t want to have a debt where I’d have to tell the creative director “I wish we could build that burned down building, but we have to finish the third district first”.  I prefer to give him a choice,  to let him know that he is trading off polishing on vanilla buildings in the third district in exchange for a specific burned down.

Dawn Engine

The main strength of Dawn is how it can manage almost infinite amount of entity at the same time. Not infinite though, we did hit that wall at some point, but it is very well-suited for a large game. More than that, its entity-driven architecture means artists have control over many things that were in the hands of programmers on HR. We have a team, lovingly called the “smart object” team, that is dedicated to all what is interactive in the game. They are responsible for anything from the guns and all their features to robots, cars and books on a shelve that explode in a rain of paper when shot at.

Prague is a highlight of Mankind Divided, and it’s a very dense environment. Its heavy density is made possible by the Dawn Engine.

Every part of the world works with the gameplay. Your environments gives tons of possibilities to build your own experience – stealth, pure combat or something else. How hard was it to model your environments so that they work for the players?

Environment wise, we have to talk about the relationship between the level designers and the level artists. Level designers are responsible for the mission scripting and the “multi-paths” element that Deus Ex is well-known for. They have a responsibility for the environments’ layout. Level Artists have to model and texture that world, organize it to fit with memory and GPU, and I’d have to say, try to keep the layout as architecturally credible as possible. Whereas the level designers see a level as the player’s playgrounds and the stage for the story, we (the level artists) see it as the expression of the Deus Ex world’s first. This brings a certain element of contradiction, a tension between artists and level designers that, I would say, is critical for the success of those environments. One team should not overwhelm the other, we need to find the best compromise between both viewpoints. We learned that during HR and we “embraced” this difference of viewpoints in Mankind Divided.

One specific detail is the cover system and the switch from the first person to the third person view it triggers. We do have a ton of “world dimension” rules to work with… more than most of the games I’ve worked on in the past. Imagine that you need a one meter cube to be clear at every corner of every single room you have, anywhere. Imagine this one meter cube of clear room also applies to couch and desks and cars. Imagine designing a car with a one meter cube that can stand both at its front and its back to support cover. We try to deal with that.

Another usual ingredient in Deus Ex are air vents. We can’t really make them architecturally credible. They are used as joker cards from the level designers to get from point X to Y and it is hard to justify air vents every time they are required. We did build a few variants this time around, the in-between walls, the cable ducts (technical variant of the air vents), the inside-ceiling modules in order to have more than just the air vents at the level designer’s disposal.

You had to built scenes that would look good with different scenarios – day in the beginning, then night and something special in the end. Could you give us some details on working with this element? 

The main element here is lighting of course, but also the entity-driven system of Dawn, which lets us script every single entity in there if we want, so we can apply a behavior to anything. In this case, it’s a simple fetching of a value, say 2 for night and 3 for rain, and deciding how an asset behaves with that value. This is easily doable everywhere with Dawn. We can modify on the run runtime any given parameter of a window’s material or in the case of Prague Rain, we can replace on the fly the material applied to the floor to give the sense that it receives a lot of rain. Some systems require specific engineering but we can pretty much always find a way around. Then it becomes a question of how much time we have to customize this behavior.

Your scenes are filled with different objects. I’d say it is a unique handwork with so many additional details that enrich the universe. And so many easter eggs! Could you talk a little about this part? How did you manage to add so many little elements, making sure that they look organic in the end and do not overcrowd your scenes? 

We focus a lot on that aspect. Clutter was a big element that we spent time on in Human Revolution. And with technology moving forward, now it feels like every other game can do clutter too… So we really had to work a lot on this. Golem City is a highlight here, being such a staple of cyberpunk imagery, we had to push the cluttering to the maximum. When we started, we asked the level artist in charge of Golem, Michel Lanoie, to put as many wires and cables there as he could. Almost dared him to put too many. Turned out, he loves doing those wires and cables everywhere and he really did put a lot of them. I believe it’s the environment with the most wires the game industry has to offer now :). 

More than that though, we focus on storytelling elements as much as possible.  This is where the coherence of the universe takes shape, this is where you find a location that was generic in alpha, and is now a kindergarten in the middle of a high-tech dystopian slum. Did you notice that kids were making little dolls with coat hangers in that kindergarten?

The world of Deus Ex is dense and complex – it has so many levels and locations with absolutely no stitches! How did you work on optimizing your scenes? The game works really well on all the platforms, managing  to look so amazingly good. 

Credits goes to the engineering team, the tech artists, and everyone responsible for the Dawn Engine.  There are a few things we are doing to help though. Doing custom assets for so many details in a very dense area like Prague leads to a shortage of memory, fast.  If we were baking even a few of our assets from high-res models, we would never be able to deliver this game. This is because a mesh that has completely unfolded UV coordinates (the kind of UV you do for a baking process) requires large texture to cover all of the asset’s surface.  In the first person shooter setting, this texture requirement is at least twice as large because pieces of environment are often right in front of your face, right there on your nose, compared to the third person game. Especially in the first person shooter where you can stack fridges on top of cars and jump four meters high or grab ledge on a rooftop using a teleport augmentation. You can get anywhere. 

So, all of our assets, or at least, anything as large as a stool or a chair and bigger, are built with 2 UVs. The first UV is composed of many UV islands, each mapping specific details at specific parts of a mesh. Generally, those are mechanical details. We stretch those details anywhere we can. In a way, we are compressing the texture manually by stretching part of the texture unto the geometry, at a very granular level.  This costs us time, and extra vertices. We used the second UV coordinate, unfolded in a more natural way, to apply all of the material’s grain and tileable details to the top of those mechanical details.  Obviously, we stack as many texture as we can inside the RGB channel of any texture. Having a gray scale texture inside each channel of a BC1 compressed file or eating the blue channel of our normal texture for other means.  

The Housing Block is a mesh built by Michel Lanoie, Level artist in charge of Golem. It is a good example of how we “compress” texture with UVs. All of the mechanical details are on the set of texture represented by the albedo file. We stretch the UV coordinates of UV1 for every single detail that can be stretched.

hengshanormals

An extreme example, which we avoid doing because they are quite time-consuming, are the normal textures used for all of the architectural assets in Hengsha (Deus Ex: Human Revolution). We don’t use such extreme UV compression anymore, but this texture is a good way to show how we are stretching details. The Hengsha normal image was used for the vast majority of details in lower Hengsha.

stretched_uv_process

stretched_uv_process

Look at the “stretched_uv_process” – we took a sample from the Hengsha texture and “stretch it”, using extra vertices, and we did this to a rather extreme level. This means that a very very small set of texture can get you a very large asset at a very large resolution.  But the trade is the amount of time required to cut this geometry. Those are represented by the thin grey lines. Imagine the housing block was built with the same method we used for Human Revolution. It would have been extremely dense with mesh.

housing_albedo

The housing albedo

We never do this to “such” an extreme level as HR anymore, but we still use that method with most assets, including guns, cars, robots, furniture, anything larger than a chair, except for the objects that don’t have any specific details (like… a large rock or a block of concrete). The housing albedo texture represents a very good example of how to mitigate the work required on mesh by saving larger samples of mechanical details, and then stretching “batches” of details instead of a single detail over and over.

For bevelled edge, we actually break the vertex normal. We cannot afford texture memory to map the bevel’s normal unto the texture, so we build a tool that defines which bevels you want to have a nicely bent bevel normals on. This tool remembers all of the bevels on any given mesh in max, and it remembers them forever, you can give a solid beating to a mesh and the “bevels” are still located in the tools memory, coherently. This is important because breaking vertex normal is risky as any modification to a mesh generally modifies the normal greatly. Instead, we remember what we want to be bevelled, and we automatically reprocess these normal every time we export. This does cost a bit of vertex memory, but we save a lot by not putting this information into textures.

The only exception to those rules are the characters.  We keep enough memory allocated to the characters to allow character artist work off baked sculpt, obviously.

Hubert Corriveau, the Environment Director on Mankind Divided

Interview conducted by Artyom Sergeev

Follow 80.lv on Facebook, Twitter and Instagram

Join discussion

Comments 3

  • Anonymous user

    for some reason, deus ex did not feel small for me. on the contrary, at first it was completely overwhelming. very big game.

    0

    Anonymous user

    ·8 years ago·
  • dan

    Needed more than 1 hub, felt so small. When we get mod support?

    0

    dan

    ·8 years ago·
  • Ant

    I see more and more use of that decal technique or stretching textures technique. They are definitely save lot of memory and space on HDD.

    0

    Ant

    ·8 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more