e-Ro: Modularity, Animation, Level Design in Unity
French level designer and environment artist Pierre-Henri Paitre gave a detailed talk on a marvelous Unity project called e-Ro. It is a colorful stealth platform game with an adorable droid that walks through the alleys of Venice. The artist discussed his level design techniques, approach to building environments, creating the main hero and other aspects of the game production.
First of all, I wanted to thank you for the opportunity to do this interview! It’s an honor to be contacted by the leading web magazine in the business! My name is Pierre-Henri Paitre, I’m French and I currently live in Montreal, Canada. I just graduated as a 3D artist from ISART Digital Montreal, a video game and 3D animation school. Previously, I studied cinema and post production and worked as a freelance Motion Designer in Paris, France. I worked for major companies in a broad variety of media like cinema, advertisement, TV shows, business communication, live events… 3 years later I decided to go back to school because I wanted to have more skills in 3D, and being more versatile means reaching more clients. I’ve been a gamer since my fingers could hold a Gameboy, so I was totally OK with a game art school to learn 3D. At the same time, I was curious about Canada, so I left France with my wife to go on a new adventure. Eventually, I saw all the art potential lying on video games and my purpose drifted completely from Motion Design to Game Art in a couple of months.
For the final year at ISART Digital Montreal, Game Designers and Artists formed 3 groups. From there, each group had 8 months to build a game from scratch. Last November, I chose to team up with 2 other artists on a prototype called Black Plague made by 3 Game Designers. Pitch was: you’re an infected sneaky rat and you have to find a way to contaminate people. The main feature was to create some chain reaction to solve a puzzle. You contaminate an apple, the apple is eaten by an AI who spreads the contamination to his fellows. So, I guess we can qualify the prototype as a stealth-puzzle-platformer game.
The first 3 months were dedicated to brainstorming, references, concepts and pre-production. I had a wonderful time trying to imagine a world around this prototype. We threw many ideas, some good, some bad, some impossible in the timeframe, some with too many characters or too complicated environments…And then we came up with the idea to take a stance opposite to the typical stealth games. We decided to go colourful, rich in saturation with a cute creature.
To embrace this direction, Venice came to our mind very easily. Then, because none of us were very talented with characters, we decided to choose a robot as a main character. With those two ingredients, it was time to release the beauty of storytelling in video games where you can mix a medieval Venice with a time-travel droid. Keep the story simple without getting lost in irrelevant details and you’re done if everything is cohesive.
I was very inspired by games like INSIDE and its cinematographic camera catching beautiful compositions, The Witcher 3: Blood and Wine for the colourful cities of Toussain, without forgetting Assassin’s Creed 2 for the old architecture of Venice. References must never be just games, and Caravaggio and Rembrandt’s chiaroscuro paintings were great inspiration as well to deal with shadows. I also learnt a lot on how to tackle atmospheric perspective just by looking at da Vinci sfumato painting techniques. And we collected a lot of photography and Google Street views from the modern Venice and some old paintings figuring Venice in the medieval age. Reference is the key to a successful pre-production!
Our school program provided Unity, so it was a natural and wise choice to go on with Unity (we built the game on Unity 5.4). You can build something very fast with it, it’s super user-friendly and not overwhelming. Perhaps not the best visually appealing game engine out of the box but it has some of the best qualities for a student game project.
Before starting production, we spent a good amount of time on 3D concepts and artistic direction. As the environment artist of the project, I blocked some buildings, some props and a small city block. Those were a must have to discuss about our artistic choices. You can’t dive in the production if there are still some interrogations on how to model this or how to stylize that. It was a lot of tries and errors. Many times, I was happy with a blocked asset, then next morning I would start all over again because it was not consistent with the other assets.
An even more important pre-production work was the texturing research. We had the chance to have Jeff Huard who wants to become a surface artist and he did a fantastic job on this project. He spent hours and hours trying to find a good artistic direction with the textures. He worked exclusively in Substance Designer which provided him non-destructive workflow to iterate a lot. Texturing research was a critical point on preproduction and it helped us to know what to model or sculpt and what to leave for the texture normal. I think we spent the most time trying to place the cursor on the right spot between realistic and stylized art.
Then we planned the production on a large Excel sheet trying to evaluate timing and we quickly realized it was too hard to get it done. So, we cut game design features and edited the numbers of props we wanted. I’m glad we were not blinded at this stage and we made some good decisions. Sometimes it gets emotional because you put too much heart on something and it becomes tough to cut. I’m not saying passion is a bad thing, you definitely need it, but objectivity and pragmatic decisions tell the difference between a project that will be finished for the deadline and the one that will be a failure.
Production started in January, and we had 5 months to complete the challenge. My very first assets were the chimneys. It’s good to start with something non-important because you need to warm up. Never start with the super cool asset, the main character or the key environment.
As the environment artist on the project, I had to work as modular as possible. I couldn’t build an entire city by modelling each individual building. Next thing was the scale. I discussed a lot with the game designer to fully understand the level design constraints and objectives. If the designers set a specific Y-distance for the character to jump, you have to model the crate, the wall or any asset that can be a platform according to that height. I made some mistakes by going random on certain proportions and it often resulted by reworking assets and losing precious time. My advice for all the game art students: don’t start your modular set if your blocking and your scales are not 100% approved. Gameplay will always be the king of the hill. No matter how beautiful your asset is, if it doesn’t serve the game design you just did half of the job.
Scale was good to go, so I tried to optimize my modularity as far as possible. Here are some questions I ask myself:
- Is this asset will be frequently repeated?
- Can I use all the sides of this mesh to get multiple versions?
- Will it be far from the camera?
- Can it be used elsewhere and fill a completely different purpose?
- Will it be a level design object or just a piece of environment in the background?
- Will it fit in the Level Art?
I find that keeping things simple is the best way to go and forcing yourself to always think one step ahead in the production reduces the mistakes.
The most difficult part was in the middle of the production, when you start having lots and lots of assets. It’s a good challenge to macro manage hundreds of files, FBX, instances, heavy hi polys, textures… Is this asset named correctly? UV, Vertex maps, polycount, modularity, snapping… Is everything ready to be imported in the game engine? We were lucky enough to be organized since the beginning so it was just a small headache sometimes.
Textures are an important aspect of making game art. Establishing some guidelines and directions at the beginning of every project can save you a lot of time in the process. We knew that we wanted to do a project that encompasses all the characteristics of realism without being strictly realistic. When you do so, you should make a lot of concepts, iterations, until you come up with something you’re satisfied.
The first step is a crucial one and every artist will tell you the same thing, gather references. When creating textures, you have to gather information about the texture itself (like gathering a lot of pictures of different bricks) but a lot of people forget that these textures will be in relation with each other, so you have to collect references of the general environment you will create as well.
Determining a colour palette early in your process can save you a lot of time. If you don’t pay attention to this detail, it will impact your general composition at the end. And it can save you time near the end of a project by having the right combination of colours, saturation, etc.
After this, you want to determine the amount of control you will give to the artists (which parameters will you expose) and the general aspect of each texture. Will it be worn? Old? New? For example, Venice is built on an island and one of the first things you can see is the amount of moss everything has. So it was clear that the control of moss, and the texture of moss itself had to be be taken seriously, because it is one of the textures that would be everywhere. Exposing some parameters when you create textures with Substance designer is really important, more so when you’re working with other artists. The amount of control is essential and you don’t want your team coming at you every time to change little things that they can eventually do. For example, every normal, roughness, cracks, etc. were therefore exposed so artists can achieve the vision they have in their head for each asset.
Finally, don’t be afraid to iterate as much as you can. Jeff did a lot of iterations before we settled on the right textures for the project. We wanted to test as many different shapes and silhouettes so we knew that we would have the best texture we could achieve.
We did some post-process tests during the early stage of production with some of the texture Jeff already had done. We were able to tweak things to achieve our goal very quickly. If you do that kind of calibration near the end of your production, chances are you will have to come back and change the colours on a lot of textures. However, if you do that earlier in your production, you will only have a couple of changes to do, and these changes will become the cornerstone of every future texture.
I’m not a character artist, and nobody was among us. I volunteered to do the droid, but trust me, I wasn’t in my comfort zone at all. I knew that I wanted to go for a cute robot that would be ready for an adventure but still clumsy despite itself, like a mix between R2D2 and C3PO, for example. And during an intensive session of “OMG, I’m not a character artist, I need to find some inspiration” I saw the work of the 3D artist Rafael Amarante. His mechs have so much expression and I fell in love with the insect feeling that Rafael managed to create.
From there I quickly sketched some concepts, then I switched to Modo to find some interesting foundations for my droid. With some animal and robotic references, I tried to go for a raptor-chikenish kind of attitude and I wanted the player to feel the weight of the tank on the back of the character. It wasn’t necessary to push the details very far because most of the time the droid will only represent 1/10th portions of the vertical screen. Modo rounded edge shader did the tricks for the high poly and the baking.
I sent everything to Maya in order to rig the little buddy, then came the better part, animation. My background as a Motion Designer helped me there. I had never worked on a 3D character, but understanding the movement of a shape in a video, the rhythm and the spacing, that’s not quite far from it. So I gathered some sneaky animation references, especially from cartoons like Pink Panther. Although that wasn’t easy and I needed several tries to get some interesting results, I was really happy with the outcome. From there I sent the animations from Maya to Unity where a game designer made a state machine to point each animation to an action and to blend everything smoothly.
Everybody was happy with the little droid, we decided to name it e-Ro and it became the official name of the game.
Lighting, yes yes yes… there’s one directional light representing the sun. That’s it! Nothing fancy here except a bunch of light for each torch and each lamp. But well, I think I spent as much time in this single directional light than in the little droid. One thing I learned from tutorials, conferences and podcasts on lighting in game art is that you can’t treat it like the last thing to tackle in game production. This directional light was there since the blocking. Rotate it 4 degrees in X-axis and you suddenly switch from an early afternoon to a mid-afternoon sun. Turn it 7 degrees in Y-axis and you change all the position of your shadows blowing your compositions and gameplay, since shadows are the safe zones. The colour of the main light is also super important. At the beginning, we wanted things to happen during sunset with strong shadows and orange feel. But I ended up with a very flat render, losing all the colours for 50 shades of orange. Add lots of orange to a blue water and you get an ugly green liquid. That was colour complementary 101 straight back to my face. I tried to push the colour to something whiter but I lost credibility and sunset atmosphere.
So we decided to relocate the set to a warm afternoon and it considerably toned down the orange shading. But then it was more complex to justify some shadows here and there. Lighting was very sensitive with just 1 directional light and I’m glad I kept it simple. For the atmospheric perception, I placed huge transparent planes with a simple light-blue gradient.
Making the world feel alive
That’s the best part for me since I want to become a Level Artist. I love doing storytelling with environments, it’s so awesome. I also have a passion for photography in real life and that’s the reason why I like to frame some compositions when I’ve got my hand in the game engine. Working on a 2.5D platformer offers this kind of possibilities on a silver plate. Once you have refined your blocking and rearranged the big chunks like buildings, you have to work on the level design objects. Level art exists to serve the level design. It’s really important to understand that. You have to build something beautiful around the level design. That’s something difficult and many times I was annoyed by a platform poorly placed in terms of image composition. You have to find aesthetic solutions to justify level design, that’s the job of a level artist. Of course, sometimes I pictured some narratives for a section and I tried to push the idea. Dialogue between an artist and a designer is essential to get the best from both worlds. Individual talents are necessary but at the end, video game is teamwork.
Then to achieve something more alive, I placed hundreds and hundreds of details.
First, I found any good solutions to break the tiling and the repetition. I had anticipated that with assets and few decals but some situations required genuine creativity. Then I populated the scene with props. There may be thousands of them here: fruits, glasses, vases, ropes, chairs, fishes, tables, plates, barrels, planks, jars, grain bags, etc. Of course we didn’t build hundred props but you can virtually decouple your asset list by changing colours, roughness, size, reorganizing the geometries, flipping them upside down… I tried my best to be creative with the materials I had. It’s time consuming to build mini scene full of details but the result worth the investment.
Then I moved on to the camera. I used a third-party plugin called Pro Camera 2D that provided me a total control on the shots supported by a trigger system that was easy to set up. My goal was to emphasize puzzles, to enhance vistas and to connect the player with the character. You need to feel its fragility and its will in this adventure. Camera is a formidable tool for dramaturgy. Shoot a close up in a tiny dark space and the player will feel uncomfortable and vulnerable. Dezoom to see a level portion in its entirety and the player can breathe again, analyze the AI patterns and make a strategy to solve a puzzle. It’s all about rhythm! You should play with different cinematographic plan values. Alternate highlights, heavy actions and breaks, vistas. It’s never non-stop action when you want to tell a story, it’s all about what makes a pleasant experience for the player.
When it was the time for me to adjust our final visual, I didn’t do much because we already put effort to refine the colours, roughness and metallic value during production. So, I used the basic Anti Aliasing and Ambient Occlusion that comes with Unity, and to do small colour grading I used the plugin Beautify from Kronnect. It’s handy because it stacks a good amount of things you usually see in post-processes like Bloom, Sharpen, Colour Grade, DoF, Vignetting,… I heard about the new features of Unity 2017.1, especially the Post Processing Stack, it seems powerful for post-process optimization. Talking about optimization, I try to apply techniques I learnt over the last couple of years. I know it can still be better, but I tried to minimize triangle count wherever it was possible. I always checked in-game if a lower texture resolution on an asset could provide the same result from the camera point of view. I used some planes to simulate atmospheric perspective. I merged meshes to reduce objects on the scene. I cut geometries when they were not visible and our guide line was to never be above 2K drawcalls (only one vista gets a pike at 1,7K). Again, it’s not perfect and we didn’t have programmers, but it runs smoothly with a full-realtime lighting.
Working on e-Ro helped me to understand the entire pipeline of a video game production and it’s somewhat a tiny but concrete example of what happens in the industry. I gained speed, I gained confidence, I gained lots of technical knowledge and I’m quite sure that now, I can call myself a 3D artist. There’s still a very long road ahead before becoming a good one, but if I can give one advice to the future students: work hard! Creating e-Ro was an average of 60h/work week for 8 months. I made some sacrifices, I barely played any video games, weekends didn’t exist and social media were reduced to a minimum. Nothing comes freely, you have to practise to become good at something. It’s a wonderful opportunity to be able to go to a 3D school, don’t miss it. And one sure thing, work always pays back.
Learn to cut your artistic scope, learn to edit, do not dream too big at the start. Try new things, new techniques, don’t be stubborn and make things only the way you’ve learnt it. There’s a vast ocean of tutorials out there, don’t be lazy and be thirsty for knowledge. And don’t forget to go out frequently: take a walk, go to the park, grab a beer and do some sport.
I also learnt a lot from the teamwork experience. There’s always some good and some bad apples in a team but hey, you have to synergize with what you get and never forget that we are all together on the same boat to do one of the coolest things out there: making a video game!
Pierre-Henri Paitre, a Level/Environment Artist
Interview conducted by Artyom Sergeev