2) How to build a knowledge tree in Unity’s main program 3) Setting CullTransparent in TMP does not cause a Text with an Alpha of 0 to be Culling 4) Spine animation maps with black edges in linear space 5) Too many spines lead to significant loss of UPDATE performance
This is the 256th post of UWA technical knowledge sharing. Today, we continue to select a number of issues related to development and optimization for you. It is recommended that you read for 10 minutes.
UWA Q&A Community: Answer.uwa4d.com UWA QQ Group 2:793972859 (The group is full)
AssetBundle
Q: Now the game resources are about 870MB (all the AssetBundle exported on Android platform). It takes about 2 hours to export the full amount of Android resources under Windows (i5-7500 [email protected], GTX1050, 16GB RAM, SSD hard drive). One hour on the i9, almost four hours on the six-year-old i3.
With the same export code, it took about 38 hours to replace the Mac Mini (2018, i5@3GHz, Intel630, 16GB DDR4 memory, SSD hard disk) with a MacBook Pro (2018, DL, Redon560x 4G, 16GB DDR4 memory, SSD hard disk), also need 30 hours, do not know where the problem is, ask you big deity, have encountered similar problem? It is also suspected that PVRTC is the problem, and all the resources are re-channelized into ASTC without improvement.
A: see if the problem: https://forum.unity.com/threa… This is simply packaged with the -nographics parameter.
After the main test: finally generated on the Mac Pro i9, less than 40 minutes.
Thanks to little Ella @uwa for your answers, please go to our community:
Unity
Q: What kind of knowledge tree does the Unity main program need to build if it’s based on an MMORPG?
A1: That’s a difficult question to answer, and I dare not answer it. There are so many great spirits outside, not only domestic, but also foreign. In addition to the knowledge system, the main program also includes the management system, program analysis, personnel cost control, operation and product control system. From the tree of knowledge alone, recommend Milo Yip’s tree of knowledge + any of the three engines (Unreal, Unity and Frost) source code for a complete read:
https://cloud.tencent.com/dev….
Thanks to the Magus@uwa Answers community for providing answers
A2: It’s a very broad question. It’s a very big question. Even if you narrow it down to an MMORPG, it covers a lot of things. In fact, Margus answered the question very well, and Milo’s graph basically covered the core technology. In terms of management, there is a simple article in UWA School, which tells about some management work I did when I started my own business. If you are interested, you can read “Technical Management of Entrepreneurial Team”.
Here are a few techniques I think an MMORPG master should know:
1. Programming Language This is easy to understand and is the foundation of a program. Dynamic languages: Lua, Python. Then, because game development usually requires multiple languages, it also requires a mix of programming concepts and skills. In addition to understanding the syntax and features of each of these languages, memory management is usually involved.
2. There is no need to say more about the programming specification. As the main program, the team’s programming specification needs to be formulated, and static checking tools such as LuaCheck need to be used to make the specification better implemented and guaranteed.
3. I think the programming paradigm consists of two parts: one is the framework of building the whole GamePlay framework, traditional Entity inheritance, componentization and ECS are three relatively general ones; Another piece is design patterns and their applications.
4. Data structure and algorithm, as well as 3D mathematics are 3D games by default, so basic knowledge of this is still needed.
5. The game engine should be familiar with and master the game engine, including the client side and the server side.
In addition to the programming paradigm mentioned earlier, there is much more to Gameplay:
- 3C
- Game State Management
- General skill structure and so on
7. How to design the physics system for collision detection, player control, vehicle system, doll, soft body effect.
8. Animation system: skeleton animation principle, basic concept of skin, motion fusion, Rootmotion, animation redirection, character model and motion production specification, etc.
9. Special effects system
Render 10.
- Understand the basic rendering pipeline
- Be familiar with the PBR
- Learn about non-real rendering
- Various post-treatment effects
11. Audio technology
- FMOD, Wwise, the use of engine audio features
- Material sound, P1/P3
- Mixing echo and other functions support
12. Big World Scene Production and Management Process If it is an MMORPG, it is likely to require the technology of Big World Production, how to build the production pipeline based on World Mashine, Houdini and other PCGs, how to support the scene editing at the same time, How to solve the big world scene resource loading and unloading management, how to implement the shadow of the very long range, day and night weather system, HLOD, etc.
13. Performance tuning: general performance tuning, and how to continuously monitor for performance problems and find solutions. This includes CPU, GPU, bandwidth, memory, disk space, etc.
14. Game update mechanics
- Patch system of client
- Server hot update
- Hotfix for client code
15. The network
- How to define the communication protocol
- Optimize network traffic
- Optimize game performance on weak networks
- encryption
- Current limiting
16. The server stores the use of regular databases such as MySQL and Mongo
17. Game AI
- It may be on the client side or the server side that you need to provide convenient editing capabilities
- AI solutions based on deep learning
18 server stability and security
- Concurrent security
- Process monitoring
- General operation and maintenance knowledge
- Load balancing
19. General server technology
- AOI management
- Server-side physics
- voxel
- Synchronization scheme
IDE and debugging tools commonly used in VS Code, Visual Studio and other IDEs, as well as the corresponding development mode of the corresponding debugging tools.
21. Version management software
Editor development
With the column, some messy, some technical content itself is very complex, continue to split can be done very fine, such as in 3C, how to do the host level experience, it is not a person can do thoroughly.
Of course, there are many more techniques that are relevant to the genre than the ones I’ve listed.
For the main process of an MMORPG project, I would say that a minimum understanding of at least 80% of the technical content listed above is a good qualification. Of course, everyone has his own field to be good at. As long as he has enough learning ability and can find the right people, the technical content can be learned and made up for. But the main process itself is to provide the bottom for the technical problems of the project, and to make the decision of the technical scheme, so there are higher requirements for the width of the technology.
My own experience is that it’s hard to get 30-40% of your code time in the main work, which is usually a day of communication and meetings. Therefore, in the eyes of the host, there should be both “things” and “people” — how to maintain the vitality of the team, how to stimulate the fighting effectiveness of the team, and so on, all of which are difficult problems that need to be considered outside of technology.
Thanks to Jia Weihao @uwa Answers Community for providing the answer
A3: The first two guys answered very well, learned a lot, worship!! Here are some additional, as a reference, I hope to be helpful:
1. Technology
- The first requirement is an advanced or experienced Unity developer with a good grasp of software development and computer related basic knowledge.
- I am familiar with the use of Unity, and have a certain understanding of the use of large modules and underlying principles, such as actions, special effects, GUI, Avatar, scenes, Timeline and resource management, etc.
- – MMO development experience, knowledge of common concepts and implementations in MMO games, such as Scene, Planes, Sites, AOI, Attitude Synchronization, AI, Entity, Skills, Buff, voxels, etc.
- Understand the commonly used performance optimization tools, optimization scheme.
- Continuously expand the technical vision, the selection of technical solutions, decisions will be helpful.
2. Management
- Make code specification, understand what code specification is a good specification, suitable for the project specification.
- I was able to formulate resource specifications recognized by art students according to project requirements and performance budget, and provide procedures and tools to help them implement.
- Develop and continuously optimize development process to improve output efficiency.
- There are a lot of technical aspects involved, and one person’s energy is limited, so hiring, identifying people, employing people, and finding the right people to do the right thing is also important.
- If you are moving up from a purely technical position, some of the basics of management may be recommended as well.
3. It is not a strict product requirement, but it is recommended to have a certain level of game experience for your project and competing games in the same category:
- Understand the common gameplay in the game.
- Experience the experience of different levels of players in the game and understand their needs.
- Understand the technical breakthroughs needed for this type of game.
In this way, we can communicate with planners about product requirements and discuss optimization plans, which is easier to reach an agreement and will be much more efficient.
For example, the MMORPG mentioned by the main topic can be experienced in Tianya Mingyue Knife, Oracle, A Chinese Ghost and A Dream River’s Lake.
Finally, I think a good attitude is also very important. In the process of a project development, there will be difficulties, setbacks and even failures. In these situations, keep a positive attitude and exert a positive influence on team members, so as to give everyone confidence and lead them to achieve better results.
Thank you to the @uwa Q&A community for providing your answers. Welcome to the community exchange:
UGUI
Q: Setting CullTransparentMesh in CanvasRenderer in Unity 2020 can make elements with an Alpha of 0 not draw the mesh, but why not TMP?
TextMeshPro is not empty. CanvasRenderer. setMesh (workerMesh) is used in UGUI. Tmp is m_CanvasRenderer.setMesh (m_mesh); While CanvasRenderer source show is such a public extern bool cullTransparentMesh {[MethodImpl (MethodImplOptions. InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; }, what can I do to make TMP element transparent to remove grid drawing like Text?
A: There are some vertices whose Color is not 0 in the TMP Mesh, that is to say, the Alpha in the Color setting cannot set the unused vertices. As a result, there are vertices whose Color is not 0 in the Mesh passed to the underlying drawing, which cannot be removed. At the same time, there is a bigger problem that vertex information cannot be zeroed. There are 400 vertex information, re-assigned to a text, or 400 vertex information, but 396 vertices do not need to draw just, so TMP careful use, either change the source code, or wait for the official repair.
Thank you cwf@UWA Q&A community for providing the answer, welcome to the community exchange:
Spine
Q: The Unity version we used was 2017.4.3F1, and there was no problem with the Spine animation done under the Gamma space. Now there are many Spine animations under the Linear space, and black edges appear where many small seams appear. The nose is shown below. Now you will see blurred black edges around the nose map below the Linear. It is expected to be caused by Alpha values around the nose map, but it is not clear exactly what the cause is, but it is correct in the Gamma space.
The figure below the Gamma space, where the nose is, is normal:
In Linear space, the nose is surrounded by a dark edge:
Here are two clearer local images for comparison:
A: First, the Spine closes the premultiply Alpha and reexports it; Second, the Shader checks Straight Alpha Texture.
Refer to the following information: http://zh.esotericsoftware.co…
Thank you to the @UWA Q&A community for providing your answers. Welcome to the community exchange:
Spine
Q: Too many spines cause significant performance loss for updates, as shown in the figure below. Skeletonaimation takes too long to Update. Is there any effective solution?
A1: Switch to GPU.
Thank you, Match@UWA Q&A community for providing answers
A2: Please refer to the following:
- The number of Spine does not mean the card, mainly depends on the number of vertices;
- There is also C# code in Unity. Because of this function, the card is very common. In fact, this card is the mask when the Spine is cutting, and there are too many vertices in the mask.
- In summary, the vertices that should not be masked should not be masked, as few vertices as possible.
Thank you to the @uwa Q&A community for providing your answers. Welcome to the community exchange:
Cover image from the network
That’s all for today’s sharing. Life, of course, is long and knowledge is long. The questions you may see are just the tip of the iceberg in the long development cycle, and we have already prepared more technical topics for you to explore and share on the UWA Q&A website. Welcome you who love progress to join us. Maybe your method can solve others’ urgent need. And the “stone” of another mountain can attack your “jade”.
Website: www.uwa4d.com Official Technology Blog: blog.uwa4d.com Official Q&A Community: Answer.uwa4d.com Official Technology QQ Group: 793972859 (The original group is full)