this is an Excellent article, the way its set out with the vids and pics. very technical but not rambley. I learnt alot out of it.
Bob would have been proud
Congratulations Lukas:) Amazing piece of 3D parametric shader:) thank You for sharing Your knowledge:)
Quentin Papleux did a little talk about his work on the new stylized game Shiness. He discussed the main aspects of production of game environment content.
Hello, everyone! My name is Quentin Papleux, I’m 25 and I live in Lille, France.
I studied movie animation at a 3D art school and have honed my other skills with internet formations like CGItrainer. During that time, my speciality was Compositing & Rendering for CG.
Like many other people, I learned how to do my job by developing myself within a larger community and sharpening my skills through internet and offline resources. I think it’s exciting to learn something new each and every day!
I was in charge of environment creation on Enigami’s Shiness, which was released this year for PC, Xbox One and PlayStation 4. My job involved working on every aspect of the game’s environment, including: modeling (when 3D artists were unable to), shading, building, landscape creation, lighting (in game and cinematic), post-processing, environment VFX, environment optimization and tech issues — such is the job of a level artist in small game studio!
17 unique environments of different sizes compose Shiness. There’s plenty of “nature” in these environments, which proved to be one of the biggest challenges on this project.
Environment Trailer Shiness
Building with Modularity
Several hundred assets were made by talented 2D/3D artists from the studio, which were conceived for modular building. It’s a great system for iterated level design and aesthetically pleasant and simple visuals. However, it was rather inconvenient to manually merge everything together because of draw call optimization (the merge tool from UE3 didn’t produce the results we wanted). We used a lot of texture atlases for each map and family prop as well.
Trees and herbs are important environmental elements within this game. The 2/3 environments are natural so it’s important that they look nice.
Trees are prominent throughout the game, and we make billboard leaves because they look more cartoon, more flat. With the help of Sylvain Dupont, a programmer on the project, we ran a script like Pivot Painter to export our mesh and material instructions for billboard.
It was interesting working with herbs, too. They’re another element scattered throughout our world and thus had to look really nice for the final version. I referenced herbs from Ni no kuni when creating them for Shiness. Ni no kuni’s herbs look cartoonish yet express many different emotions with their colors, leading us to reference them for our own work.
Noise textures were used to get the random colors inside the texture, which allowed me to limit the colors used within the project.
Color and Lighting for a Cartoon Game
Something I definitely learned with this project was to embrace color and to not fear its great potential. Shiness is a cartoon game and its feeling is very important, maybe more so than the feeling of a realistic game. Realistic games attempt to capture the world around us that players understand, feel and interact with on a daily basis. A cartoon game, however, is fake by nature, meaning human emotions or feelings are more difficult to convey to audiences. So how does one “transmit” emotions to humans through an alternative reality — in our case, a cartoon game? One tool for evoking such emotions is through the use of color.
Colors can represent certain emotions, which may differ from country to country and culture to culture; but, there are some general rules for this relationship. Red evokes anger, violence, power and love. Blue represents sadness, distance, loneliness and coldness. Purple echoes quietness, imagination, meditation, intuition and so on.
The colors of an environment serve a true purpose. For instance, they might reflect a character’s emotion at a certain stage of the game and cause the player to feel a certain way. Of course, color and lighting must also always serve level design to guide the player through the game or to highlight a new and specific rule for a particular environment.
The yellow light serves to guide the player’s direction — it’s a go-to point, sort of like a beacon, to help the player navigate the game world. The blue lights are from the sky and represent solitude. Then the red color introduces the idea of passion and anger that is thematic for the level.
Lighting and post-processing are aspects of the production process that are the closest things to CG compositing for me.
Characters meant for gameplay always have a directional light in interior or exterior environments with a shadow to merge the character onto the ground. It’s not a realistic approach but it’s aesthetically pleasing for us. In the past, our characters didn’t have shadows when they were inside a baked environment shadow because while it physically looked fine, it felt more like a bug for a cartoon game.
MinShadowResolution tweaking in UDKSystemSettings.
Lighting a cinematic sequence within a game is a completely different job.
First, I needed to recreate lighting from scratch to achieve my desired result. Lighting is my favorite part during production because I’m able to change the mood with one simple actor. Clearly, lights are very important: an ugly game with good lighting can look nice, but a “technically correct” game without lighting will be bland and soulless.
This is one thing I criticize about plenty of new games: realism is not an art direction! A game’s identity is made through a distinctive art direction, especially when thousands of games come out every year and all too many look alike. Art direction is a need that must be seen!
Lights are animated on Matinee without performance loss.
Optimization was a delicate task throughout the production. As I previously mentioned, the UE3 merge tool doesn’t produce great results so we needed to manually merge quite a bit. We used a lot of texture atlases to reduce draw call and utilized material instances whenever possible. At the end of the day, we used all the tools that we could, including: Max Draw Distance, LOD, Culling, Merge, Instance, Foliage Instance and many others.
Another important note about Shineness is that we didn’t use level streaming. We had significant issues with the garbage collector for PC, which creates freeze or latency when loading/unloading levels.
As a result, we optimized the entire game to compensate for this loss. And of course, this was problematic for memory, especially at the beginning of the production when the game was a 32-bit build. Ultimately, we made it a 64-bit project, and we optimized it to the best of our ability while considering the memory limit of the Xbox One and PlayStation 4.
Working on Shiness was a very positive experience. Every day wasn’t easy but we did it! From the Kickstarter campaign to the game’s launch earlier this year, I took a wild adventure with a talented team because of this amazing game.
It’s our first “big” game with plenty of content and it really embodies our passionate, hard work. It was challenging having the responsibility to manage all of the graphics integration and final look of the game, but also it was a very rewarding assignment. But, if you have the option for other tech and level artists to contribute to these aspects of game creation, I’d say don’t hesitate and delegate!
We didn’t reinvent the wheel with our project, but I’m confident enough to advise level artists to pay close attention to the colors and contrasts within their games. At the end of the day, games aren’t reality — they’re meant to be played with!