Working in AAA: Experience, Textures, Optimization

Working in AAA: Experience, Textures, Optimization

Charlotte Delannoy talked about her experience at an AAA company, texture & material workflows, optimization, and some tips for those who want to join her.

Charlotte Delannoy who works at Eidos Montréal talked about the production of Shadow of the Tomb Raider, her experience at an AAA company, texture and material workflows, optimization, and some tips for those who want to join the industry.


Hello everyone. I’m a 30 years old French girl and I’ve lived in Montreal for almost 4 years.  Already in my childhood, I developed a real passion for video games (thanks to my parents) and, as far as I can remember, I’ve always wanted to work in this industry.

Before being hired by Eidos Montréal, I studied in 2 different schools and in between them worked in a couple of Indie studios in Paris. At my second school (Le Campus ADN, in Montreal) I acquired enough knowledge to be ready to work as a level artist in an AAA company.

In a few months, it will be my 3rd work anniversary at this company. It became a family to me and I’m happy to work with talented and passionate people. I first started as a 3D modeling / texturing artist and then, after a year, I moved to level art. At the end of Shadow of the Tomb Raider, I switched on to another project and a new position. I’m now an Interactive Object Artist which means I’m a 3D artist who creates nodal scripted logic for game design ingredients. I prototype and polish objects that players will interact with. It’s a multi-faceted job requiring communication and synchronization with several departments. It is fun and challenging. I’m thankful to Eidos-Montréal for giving me a chance to learn something new.

Shadow of the Tomb Raider — Paititi

Working on Shadow of the Tomb Raider

Since I was a newcomer in the company and a neophyte in the engine, my manager gave me some simple meshes to begin with: desks, ceilings modules or books. Via these, I learned the mesh and material creation pipeline and engine integration. My colleagues and other artists were all very helpful, patient and kind. Their positive attitude served as a starting point for building trust in our relationship. With their support, I was at ease to ask (a lot of) questions which helped me to solve many issues. At that point, the best way to avoid mistakes for me was to work on map optimization and that’s what I did. If you are curious enough, you will quickly learn why things have to be done in a certain way and consequently, you will be able to anticipate how you’re going to create your next materials, textures, modules or unique assets and do it more efficiently.

After a few months, I had the opportunity to work on hero props or big assets like the spider, bird statue, Ader Avion 3 and some others using Maya, ZBrush, and Substance Painter.

Our manager was a great leader. He trusted his team and gave us enough challenging tasks to keep us stimulated. For this project, he gave me some Substance Designer tasks to work on. I went on creating some fabrics that were used in gameplay as a visual language. For example, the colors and the patterns of the clothes defined several areas in Paititi (the main hub in Shadow of the Tomb Raider).

During the final year working on Shadow of the Tomb Raider, my manager let me work on maps as a level artist. I had to learn to work with the level designers and different metrics, streaming, navigation constraints and so on. I sometimes had to start maps from scratch and other times, I collaborated on the ones that were already started. In some of them, I only polished various elements such as meshes materials, framerate, composition. It was a team effort, as everyone was giving feedback, improving, collaborating with each other to deliver high-quality maps

That was a really intense time during which I learned a lot and as a French immigrant, I really found a second family in the Shadow of the Tomb Raider’s team. I can’t stress this enough – thank you, beautiful people!

Texture Workflow

The way you are going to work with textures always depends on what kind of game you’re working on, your shaders, your resources, and your tools. Is it a big mesh? Can you use vertex paint and blend tileable textures on it? Is it a module or a unique asset? Is it a hard-surface or an organic geometry? What are the project limitations? How far are the meshes from the camera? What kind of map are you working on (corridor, exterior, cave, city, etc.)? What is the texel ratio?

First, for textures, I define if the asset is modular or unique. Is it small enough to fit in a unique UV set and reach the necessary texel density? If it’s a module or a big unique mesh, I’m going to use tileable textures, maybe a unique normal map and a mask created in Substance Painter (or vertex paint) to reveal layered materials. If you want to save texture memory you can use vertex paint and a big poly density instead of using a normal map and masks. If the asset is small, I try to block the model with a quick UV pass (to define the size of the textures).

Then I can go crazy with Maya and/or ZBrush. I often create color masks on high-resolution meshes to easily select the different materials in Substance Painter. I do a quick retopology or decimation in ZBrush, then I project my blocking UVs and clean them. I always try to use the maximum of my texture area and if my mesh is baked, I’m not worried about stretching UVs. With a powerful tool like Substance Painter, you can overcome the stretch issues. After a quick UV pass, I go into Substance Painter to set up my baking properties, then make the first try with a low resolution. If it works, I bake once again with high-resolution settings. Finally, it’s time to create materials: I always try to create one folder of each kind of materials to keep everything clean and easy to use for myself and others. I enhance my UVs if needed and rebake them as many times as necessary.

Sometimes, I create some small tools in Substance Designer to facilitate the process. For example, during Substance Game Jam in Montreal, I created Splatter that worked with the position and the normal maps. I could choose any pattern and splatter it in 3 directions, choose a range where the mask will be smaller, and so on.

However, I mainly use Substance tools as they are a better fit for what I want to achieve.

The challenges I’m facing (for now) always revolve around the same issues: How to create things? How to be more efficient at each iteration? How to make more stunning assets and optimize them? The real challenge starts when you move onto a new project, sometimes with a new engine, and have to adapt your way of doing things and find turnarounds to improve your work. When I started in AAA, I was really afraid of new challenges. But the more experience I get, the more exciting and less scary these new challenges are to me.

Column & Pattern Generators in Substance Designer

The Pattern Substance appeared when I was asked to create something that would help to identify the different areas of Paititi. I had to find the balance between our artistic direction and the gameplay needs. I decided to create two generators for it: one for the patterns and the other one for the columns.

With the Column Generator, I was able to split the canvas into columns with 4 different sizes. By defining the column width, the generator produced a color mask with 4 different main colors (one for each width) but slightly different to determine a different ID for each column. Furthermore, the generator also created a different kind of gradients for each column. With this technique, I was able to quickly generate masks and work in an iterative way by picking individual colors or a color range.

The Pattern Generator was a tricky one. I wanted to get some basic shapes with color masks inside them. I used a unique Polygon Node and exposed the Sides parameter so that all my shapes were derivatives of this node. I exposed some other parameters like Rotation or Size, then used a Tile Generator Node for the “color” version and another one for the “black and white” version. I also exposed some of the Generator parameters to control the number of Rotations to allow more flexibility.

I combined these two generators (usually, I used one Column Generator and as many Pattern Generators as necessary) in a big graph where the Heightmap was created. Finally, only one roughness and one normal map for all the albedo maps were used.

With this, I was able to deliver high-quality results really quickly and find a good balance between the gameplay and artistic direction needs.


It’s difficult to think about optimization without any context. What camera and characters do you have? What kind of game are you making? Is it an open world, an MMO, a linear story-based game? What are your tools? Do you work with programmers/tech artists? I can’t pretend to know every solution and that’s part of the fun. I think that artists who work in video games need to constantly evolve both artistically and technically. Once you overcome your fear of the unknown and your insecurities, it’s a really fun part of the job, if not the funniest one. I think the better way to avoid heavy cleaning and optimization time is to keep your stock clean (have a good nomenclature, clean your ZBrush, Maya and Substance Painter or other software programs). The content created during the research stage may not reach the final version of the game because everything is constantly evolving, so it’s better to get prepared for that. Also, you never know who is going to work on your stuff after you because often, you do not own it solely. So, you must respect the people you’re working with by keeping your files as clean as possible.

One of the problems is that I constantly think about the best way to make an item. I often approach it from a technical point of view and sometimes forget about the art a bit. But remember that in the end, you want a beautiful asset and trying to reach that goal is the first step to make.

For the maps, optimization can be a little bit more complex. We always want to make something unique and unforgettable and to do so, we must iterate a lot. You need tools to know how many meshes and textures are used in the map. If a mesh is used only once is it possible to delete it? Is there a way to slightly change your layout to improve streaming performance without breaking the experience? If your mesh has a high density can you reduce the polycount? If there are too many textures can you reduce this number (by deleting or merging them) or the size? Can you use some LODs but not too much? Everything depends on the context. Sometimes you have to duplicate props, delete some LODs, create a lighter material, and so on. And we are only talking about art. In the end, you have to work with everybody in the team to get the optimum framerate.

For Those Who Want to Work in AAA

Since this year, I’ve started giving Substance Designer and Shader classes, and I usually give the following pieces of advice to my students:

  • For your portfolio: less is more. Create something unique and polish it. The recruiter wants to know two things: are you making quality stuff and are you going to fit in the team? Five excellent assets are better than multiple ones with low quality.
  • Use A LOT of references (shapes, materials, blueprints, etc.) and choose interesting items. Think about how and why they have been created. How are they working/aging and why? It will help you create interesting assets with deep background.
  • Take feedback, go on forums, Discord chats, ask people on ArtStation and so on. Don’t be afraid to start over and over again. We all, even seniors, get a chance to get better at what we do every day, and we shouldn’t be ashamed of failing at creating something non-standard. If you give up after the first negative comment, it’s going to be hard for you. We all are emotionally attached to our creations, but isn’t it more important to improve our work and eventually get into the AAA industry (if that’s what you are into)?
  • Take care of your relationships with people because the video game industry is small. Your career might start already at school with other students and your teachers. I work with 4 schoolmates today. If you want to extend your social circle, you can go to forums, Discord, Facebook pages, Game Jams, etc. Being kind is all you need to fit in most of the places.
  • Don’t hesitate to apply for a job you don’t 100% fit. Just don’t be afraid to apply.
  • The last piece of advice: don’t give up, keep trying and trying. It may not work the first time. Even if your ultimate goal is to work at an AAA studio, starting in the Indie development can be your first step. Working there, you will gain knowledge that an AAA Studio might not be able to provide – and you are going to learn a lot! Try to improve, create better things and one day, it will pay off. I have spent almost 6 years after my first school trying to join the AAA industry. It was hard but when I passed by Eidos Montreal’ building for the first time, I told myself: “One day, maybe in 3 or 5 years, I’m going to work here!” And less than a year later, I got employed. I have a friend who first was in the toys industry and now he is a Character Artist thanks to hard work. Some of my friends got a job really quickly, others needed some luck, an excellent portfolio or good timing but they all have finally found their place in AAA.

That’s all. I would love to thank for giving me a chance to talk about my experience and all the people at Eidos. Thank you, people!

Charlotte Delannoy, 3D Environment Artist

Interview conducted by Kirill Tokarev

Join discussion

Comments 0

    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

    Working in AAA: Experience, Textures, Optimization