A Technical Art Director at 1C Entertainment Alexey Vlasov talked about the studio's recently released game King's Bounty II, discussed the character creation techniques they used, and shared some knowledge about procedurally generated environments.
Introduction
Hello! My name is Alexey Vlasov, and I am the Technical Art Director at 1C Entertainment. A bit about myself: I have been working in the gamedev for over 20 years, opened and managed branches of several gamedev companies, released 7 successful projects. I have a university art education. More details about recent projects are available at my ArtStation.
I would like to tell you about our recently released project King's Bounty II. It is the long-awaited sequel to the legendary King’s Bounty video games franchise, one of the most iconic representatives of the turn-based RPG genre. Many years later, we faced an order of magnitude more difficult task. We had to release the project on all major platforms (Xbox One, PlayStation 4, Nintendo Switch, Xbox Series X, Xbox Series S, and PlayStation 5 via backward compatibility), not just PC. To a certain extent, it was a challenge to the professional skills of the team. Overall production of this project took about 4 years. Considering that at the beginning of production there was only a PC prototype, this was a gigantic challenge to the entire 1C Entertainment team!
Technical Aspects
Let’s dive into some technical aspects of the project and see what’s interesting we were able to achieve:
All the geometry and textures for vegetation in King's Bounty II are procedurally generated. This accounts for about 95-98% of the content of the environment. The process of creating, for example, a Christmas tree, begins by modeling a few needles. At first, this seems redundant, but in fact, it allows to control the density and shape of the branches very accurately, and later bake those into the appropriate textures. No Man's Sky is a great example of this technique, but it certainly has more stylized graphics. We had to balance the realism and game goals of the project, general art direction. For that, we built a flexible pipeline consisting of SpeedTree, Substance Painter, and Substance Designer. This gave great control over all optimization levels for all platforms. The batching and optimization processes at the request of programmers were painless. Only in some rare cases (about 2-3%), we had to individually adjust ready-made models for Nintendo Switch. Over the course of 9 months, I’m completely redesigned and adapted all the plants of the game for various platforms which was a lot of fun. You can see the result of this work here:
The grass in King's Bounty II deserves special attention. Every blade of grass, flower, in some places even flower petals have their own life. All of those are animated and move according to the wind. We’ve built a rich toolkit for adjusting the influence parameters. For that, we had to modify the Pivot Painter 2 of UE4 to make it performant and use a reasonable amount of resources on Xbox and PlayStation 4. More details can be found here:
To animate every leaf on a tree the UVW Pivot Animation mechanism was developed. On consoles, this method was first used in Ultimate Spider-Man. Basically, it is a per-pixel transformation of UVW coordinates. The texture defines the coordinates of the base of the leaves which can be rotated relative to these coordinates. Using few more masks we set the degree of rotation, the offset difference over time, and finally the depth offset to make things thicker. This makes vegetation animation much more realistic. Unfortunately, due to time constraints, we were not able to add this for all vegetation of the, but we plan to do this in the next Add-ons. Take a look at how it works:
The skin and hair shaders were refined. Sadly, the stock shaders work fine only for high settings on PC. On consoles, there are problems with shadows, leakage of Point Light, glare compensation, transparency sorting, and many more interesting little things. It took us a lot of time and nerves, but as a result, we got hair and skin that works great not only on PC but also on consoles. On older consoles, it looks like this:
There are lots of characters because this is a game with a vast RPG world. If we count game characters, city citizens, we’ll get a total number of characters exceeding 1300. All of those must be produced in less than one and a half years which is a serious challenge. There were many trade-offs but ultimately, we were able to release on time and on an impressive list of platforms.
One of the interesting things worth noting is that we have a single skeleton for all characters. For men and women, thick, tall, plump. Using the bones we change the proportions and thus achieve the desired result. This allowed us to find a compromise in terms of the speed of character production. After all, in addition to the characters, we also have clothes, objects, and body kits. Sounds simple, but this flexible system has saved us a lot of time. We didn't have to adjust clothes and objects to different sizes, heights, and body proportions. They were automatically rescaled to the appropriate preset of bone proportions.
Given the ease of implementation, we were able to squeeze into the system requirements of the Nintendo Switch without any problems (or almost without problems). To reduce the development time, we also used ready-made solutions for 3D-scanned heads.
Hair, or rather hairstyles, is a headache in any game project. Our system is based on the hairstyle generation tools of Houdini. Houdini is flexible enough to control the number of triangles during blades generation of the final look of the hairstyle.
We also easily added all the necessary information to the vertex channels, and unlike 3ds Max and Maya, it was convenient and fast. Due to strict requirements for the number of triangles of the Nintendo Switch, we had to generate similar hairstyles using blob and bake from high poly hairstyles to the resulting simplified hair.
We managed to fit into the rigorous demands of the Nintendo Switch and ensure it performs well on this complex platform. At the same time, we managed to preserve the data consistency (integrity and absence of SVN branches for platforms) of the project’s hairstyles. In general, we tried to follow the following rule – one project, one content for all platforms. This allowed us to concentrate on a single platform in many cases, saving a lot of programmers and artists. UE4 is great for PC projects, but consoles require special attention. You must be very careful with content and code. Sometimes you can do things on time, sometimes you must compromise.
Conclusion
I happened to join the King's Bounty II team right at the stage of optimizing and adapting content for consoles, developing multi-platform solutions, writing console-specific graphs, reworking environment content, etc. But I’m glad to be a part of 1C Entertainment and release this project with my colleagues. I would like to personally thank the Art Director Alexei Vakhrushev, Lead Technical Artist Oleg Pivovarov, the General Producer of the project Denis Maltzev, Pavel Ovchinnikov, Vitaly Kovalevsky, Vladimir Shirshov, Denis Prokhodtsev, Zarina Babaeva, Igor Khudaev, Ivan Alkhimov, and Alexander Smertin. Overall, I would like to congratulate the whole team on the release of the project and thank them for their trust.
Finally, thank you 80 Level for what you are doing for us!
Alexey Vlasov, Technical Art Director
Keep reading
You may find these articles interesting