1. roles and division of labor
The vast majority of human engineering involves the following roles: designers, implementers, and reviewers. The actual correspondence is the three phases of a general project: Design ---> Implementation ---> acceptance.
In game software engineering, the corresponding items are planning, program, artist, QA, program, and artist.
2. Responsibilities
Planning: analyzes the various game demands of players, develops game rules based on these requirements, and designs various game systems. The purpose is to allow more players to immerse themselves in the game for a longer time (pay-as-you-go Game), or to allow more players to spend more RMB to buy in-game items (paid game for items ).
Art: provides various art materials required in the game: interface, MAP, light effect, character model, and action resources.
Program: translate the planning rules into machine languages, and the various materials provided by the artist are bonded to the game.
QA: In addition to functional testing, you can also perform stability testing, stress testing, and balance testing based on the functional functions of the Project verification program.
3. Management
As I am a program, let's talk about the management of the program team first. Game software can be basically divided into: underlying engine, upper-layer logic and game tools, so the team members are also composed of engine programmers, logic programmers and game tool programmers. Efficiency is the most important criterion for measuring management methods. How can we improve the efficiency of program production? That is, professionalism. It ensures efficiency and accuracy for the most professional talents to do what they know best. For example, engine programmers can be divided into people responsible for rendering, network, physics, AI, and so on, so that dedicated people are responsible for what they are best. Logic programmers can divide the game system, such as those responsible for skills, gangs, friends, transactions, and tasks.
The most painful thing for a program is to look at the code that others do not have a line of comment, and then refer to the cloud, and finally the author can only be called. Then the author looked at it and said it was the code I wrote a long time ago. I also want to see it. I will talk to you later. As a result, time is wasted, not a person's time, but two people's time. What's even more terrible is that many people don't ask the original author, or the original author does not know where to go, and then they start to look at it, so a bug is generated. The division of labor by game systems has another advantage: it allows the client and the server to Pair programming, which can save the communication costs between the client and the server programmer.
4. Risk Control in program management
In the gaming industry, Job hopping is very frequent. How can we set up a mechanism to minimize the number of employee losses at any time? Especially in the above-mentioned professional division of labor, because each person performs their respective duties, the departure of an employee may lead to the stagnation of the entire project. In order to minimize the loss, someone must be able to take over in the shortest time. I think there are two solutions: one is the pair programming method. It means that each module is under the supervision of one person and the other person. The actual coding process performs a cross-check of the module code, so that everyone not only needs to write their own module code, but also has to spend some time looking at other people's code, although reducing the efficiency, but in exchange for code security. It also solves the risks caused by resignation. Another method is that each group, for example, the engine group has a technical director. The task is to design modules and check the code of the team members, A group member can take over or instruct others to take over when leaving or on vacation. Compared with the first method, this method may be more operable. In fact, many gaming companies adopt this method.