📜 ⬆️ ⬇️

Features of the development of mobile MMO RTS. Part 5



Content:


  1. Who are the Technical Artists and why are they needed?
  2. Resource Optimization
  3. Organization of the structure of resources in the project

In previous articles I talked about architecture, multithreading, profiling, optimization, but did not write about people. Today we will talk about Technical Artists and what they do.

Who are the Technical Artists and why are they needed?


Somewhere a year ago, we realized that developers were pretty hard. They needed to perform several tasks at once:
')
  1. integrate graphic resources;
  2. profiling;
  3. organize resources in the project.

All this took a lot of time. It was necessary to understand the intricacies of the game engine with resources and put off writing code. The situation changed when a person came to the project as a Technical Artist, with experience in working with 3D. He had an excellent understanding of the theory of working with resources and pedantry. After he became a member of the team, the developers began to devote more time to the code. We decided to put together a team of Technical Artists. They solve the following tasks:

  1. Integrate 3D, 2D graphics and animation into the project.
  2. They test graphics, in particular, 3D models and animation.
  3. Optimize graphics from both the design side and its correct integration into Unity.
  4. They create animations - especially when custom shaders are needed for specific tasks or tight integration of animation with gaming functionality.
  5. They help artists, modelers and animators to find the optimal solution to graphical problems, mainly related to the specifics of the display of imported models and graphics in Unity. Sometimes they even write simple tools for designing game scenes and working with graphics.
  6. Profile the project, finds bottlenecks in graphics performance associated with incorrect or non-optimal use of resources.
  7. They work a lot with graphic resources: they are organized, they help developers to determine the ratio of resources in the build and in the bundles. Also check the correct location of resources before releases.
  8. Optimize the size of resources in the project.

After the task was reallocated, the team was developing easier breathing. There are people who have taken responsibility for the resources in the project.

Resource Optimization


Optimization of assets in the project is an important aspect of the work of Technical Artist. It is important to us that the size of the application remains small. Therefore, we are often engaged in the optimization of 3D graphics, UI sprites and other images. Read more about the effect of application size on conversion in the previous article .

Graphics optimization


Use texture compression. Different devices support different types of compression. For example, all iOS devices support PVRTC compression. On Android, there are several other formats besides PVRTC: ETC, DXT, ATC, ASTC. PVRTC often leads to the appearance of graphic artifacts, and we fix them if possible. For example, when developing a UI for iOS, it is better to use procedural gradients, rather than gradient sprites. You can also create a separate atlas for such gradients and not use compression for it.

Let's return for a second to the Technical Artist. They are also engaged in the organization of atlases in the project. Atlases help reduce the load on the GPU, combining several materials into one. This reduces the number of draw calls.

Atlases should be organized by category. It makes no sense to store 2 textures in one atlas, which are used in different parts of the project.

A separate challenge is the most dense packing of atlases with a huge variety of sizes, proportions and types of sprites.

Optimization of 3D models


In this process, almost no detail. It is important to optimize the geometry, scan, reuse textures. A lot of space can be spent, tritely forgetting to remove unnecessary keys from baked animations. Often, custom shaders help with graphics optimization tasks, which allow you to get different visual effects from the same assets.

Organization of the structure of resources in the project


The organization of resources in the project is also the work of Technical Artists. Despite the fact that there are certain rules for organizing resources, developers sometimes ignore them. Not from evil, of course. Here Technical Artists - the last line of defense in front of the ruthless onslaught of chaos.

All resources in the project are in two folders: Resources and ResourcesStatic. Resources contains resources that are instantiated in runtime via Resource.Load. Otherwise, they simply will not get into the build, because Unity has no direct links to these resources.

ResourcesStatic contains all other resources that Unity will include in a build only if they are a dependency of some of the resources that are already included in the build. If any of the resources ceases to be used, but remains in the project, in this folder, it will no longer fall into the build and affect the size of the application.

The last thing I will talk about today is the organization of Editor-scripts for Unity-components. We had a long discussion about where these files should be stored. As a result, we came to the conclusion that it is best to place the Editor-file closest to its component. For example, if the namespace of the View.Common.Binding.Text component, then its Editor-file will be located on the path: View.Common.Binding.Text.Editor . This approach is inconvenient because you have to create a large number of editor folders. But this does not affect the build, and the structure of the code becomes clearer.

Other articles from the series:


Source: https://habr.com/ru/post/327406/


All Articles