Study Notes (1): Overview of Game Development

1. The history of game consoles

  • The first host magnavox odysse began in the 1970s
  • 80s red and white machine
  • Various non-FC hosts (PS, NDS, etc.) PC stand-alone games from the 80s to the 90s
  • LAN Battle Game from 1990s to 2000
  • Massively multiplayer page game mobile game after 2000
  • Now VR, AR...

2. How is the game developed and what is the development process?
The original game is relatively crude and has very little content. It is usually developed by one person, and the art and planning are done by yourself (it is recommended to read "doom apocalypse").
As the game becomes more complex and requires multiple people to cooperate to complete it, the division of labor becomes obvious. The simple process is as follows:

  • a. First discuss and determine the basic content and type of the game, and file a case for the game project
  • b. The programmer builds the most basic game framework, stand-alone or online game, what platform (at present, some very simple game demos can also skip programming and use the game engine directly)
  • c. Planning to design and build the details of the game (including plot, gameplay, levels, values, systems, etc.)
  • d. The art needs to provide appropriate artistic effects (including original paintings, models, special effects, UI, animations, scenes, etc.) according to the game world currently planned and envisaged
  • e. Program, art, and planning three parties constantly communicate with each other to improve the content of the game and constantly test and optimize (this is the most time-consuming process) Note: planning here is not only thinking about the gameplay, but also the programmers. Various configurations of the interface because the project’s requirements change too frequently
  • f. After the content of the game is basically completed, the quality inspection personnel are required to start the test, and the programmer fixes the bug
  • g. The game will be released after a certain test. At the same time, it is handed over to operation and maintenance personnel for basic maintenance. There must be bugs in the early stage of release, and various functional personnel need to cooperate with each other

2. What technologies are needed to develop games?

  • a. Basic qualities required as a programmer: including mastering basic language programming, in-depth understanding of language features, understanding of computer-related foundations, design patterns, etc. In fact, it is difficult for many people to meet the standards in this area, but we can improve while playing games Own skills
  • b. Building a game requires understanding the relevant technologies of different platforms, but generally does not need to be too deep
  • c. Need to have certain engine knowledge, and be familiar with the use of each function of the engine as much as possible
  • d. Common scripting technology (lua, etc.)
  • e. With the development of 3D games, it is necessary to have a certain in-depth understanding of graphics and image knowledge (involving mathematics, very complex and huge modules)
  • f. Online games need to master basic network knowledge (TCP/IP, Socket, Http) and understand the synchronization mechanism
  • g. Animation technology
  • h. Understand the use of physics engine
  • i. Basic scene management technology
  • j. AI-related technologies, most of the AI ​​in the game is relatively simple and does not require machine learning

3. What is the general responsibility of programmers?

  • a. Realize planning requirements (mostly logical requirements)
  • b. Provide internal tools to speed up development. For example, the current engine does not support the highlighting of certain NPC objects, and cannot drag resources into the game. It requires programmers to provide improvements in development efficiency.
  • c. Fix the bug
  • e. Optimize experience, which is often referred to as performance optimization, increase frame rate, reduce memory overhead, etc.

At present, large-scale companies, programmers are also divided into multiple types (generally divided into logic programmers and engine programmers), and the content they complete is also different.
Logic programs generally belong to programs that frequently communicate with planning and directly develop project requirements.
Engine programs are generally used to study engine functions and optimize engines (hint performance, improve performance, etc.), but this is not absolute.

4. How to enter the game (recommended)

  • a. Consolidate the foundation (language, data structure, algorithm, network, operating system, graphics, etc.)
  • b. Have a basic understanding of game development. It is recommended to watch this series of videos according to my article explanation (check and study if you don’t understand the terms), and then read through the game engine architecture
  • c. Practice! Choose a game engine and start developing game demos, refer to other game demos, and apply the game knowledge you have learned as much as possible. Think more, understand more
  • d. Find a way to enter the industry and absorb knowledge from the project. If you have the opportunity (there are more opportunities for fresh graduates), you can join the industry as long as the program has sufficient foundation

5. What are the gaps between novices and real developers?
The most is experience. The technologies mentioned above are general in nature, and every aspect is an infinite pit. Novices generally only use it and don't understand why it is used. Really experienced developers not only use it, but can even imitate a set of almost the same framework and improve it. When encountering problems, they have more ideas and solutions to solve problems.

Original link (please indicate if reprinted): http://blog.csdn.net/u012999985/article/details/78797928

Guess you like

Origin blog.csdn.net/qq_43801020/article/details/108877261