Game Engine Overview-Part1

1. Briefly describe your own learning journey      

          It has been more than 4 months since I started working in UNITY. In retrospect, I seldom write blogs since I started working. To learn some small Unity projects by myself, until I joined the job, until now I can only say that I have gradually learned a little about Unity, and I probably know what can be done with the Unity engine, how to do it, the project process, etc...

        At the same time, I have some understanding of Unreal Engine, and gradually I have free time to learn C++ and Unreal Blueprint, etc. I also did some official C++ small cases and Chen Jiacheng's blueprint online class. This period is more interesting. What's more interesting is that in addition to learning Unity and Unreal, I also learned a lightweight engine Inscape VTS for development needs. It uses a pure blueprint method for project development, so I was engaged in the virtual imitation industry and came into contact with three engines...

        When I first came into contact with Unity, my colleague gave me the first project to adjust HDRP lighting layout and rendering, post-processing, etc. The HDRP book has been stuck for a month, and I am still very patient in retrospect. Since then, I have been groping and learning by myself. I can develop VR projects in Unity. I will probably browse the source code written by the master, know how to call, how to use development tools, know There is a built-in physical system in it, and I also know UI basic development such as UGUI, NGUI, etc., and can also embed audio, video, etc., and even make materials by myself, build servers by myself, connect my projects to the Internet, and use Web display My own project, so I feel that the more I learn, the more information I receive every day

        After that, I felt that I was very interested in Shader. I felt that it was very powerful to be able to write Shader by hand in HLSL, so I supplemented the knowledge of Shader, bought the Essentials of Getting Started with UnityShader, and bought the OpenGl Blue Book, but I just read it superficially. , I found that the current company's projects do not support me to continue to learn Shader.. (Or is the interest not so strong?) Later in the actual project development, the Shader part must be supplemented in the follow-up...

        Later, I started to manage a small project, and took a look at the data structure algorithm I had learned before. Although the things I wrote were completely unsightly, I gained my own understanding of code development, maintenance and management in the process. , and more and more find that my skills in code are too shallow. Some things about C# and C++ written by myself before are easy to forget without practice, so we must continue to learn and practice to improve...

2. Enter the pit game engine

        Let’s start last month. One day, I feel that I have a general understanding of the three engines now. I probably know what the commonalities between the engines are. So I read some courses of GAMES104 and know the development history of the engine (in fact, the earliest game The concept of the engine is that there was a game engine development on the bookshelf of the interviewing boss at that time. I was very interested in it at the time, and I took it to read...), in 2008, the game had become an economic value of tens of billions of dollars. Industry, at that time the engine has been doing very wonderful, such as Quake and the originator Doom engine, UE engine, Unity engine, CryEngine, Frost engine, Source, etc. are already full-featured reusable software development kits

        Almost all engines contain a common set of core components, such as rendering engine, collision, physics engine, animation system, UI system, audio system, object model and artificial intelligence system, etc., which have formed some semi-standardized components in the industry. It is not easy to make a complete engine, so game development can be called the ceiling of software development. It involves almost all computer knowledge, from the bottom to the top, various programming languages, and data analysis. Structural algorithms, memory management, rendering engines, animation systems, and physical systems are used to the extreme. In the second edition of Game Engine Architecture, the structure of the game team is divided into the following structures:

        Engineer: Design and implement software, divided into runtime programmers and tool programmers

        Artist: concept artist (game prototype design), also known as original artist

                        3D modeler: Make 3D geometric models for everything in the game

                        Texture Artist: Create maps, textures, and more

                        Gaffer: Arranging static and dynamic light sources for the game world

                        Motion Capture Actor: Provide some raw motion data

                        Animator: Add animation to characters and objects in the game

                        Sound Effects Producer: Create sound effects in games

                        Voice actors and composers: for the game's background music and lines

        Game designer: In general game companies, such a role is generally called a game planner

        Game producer: responsible for managing the progress of game development, etc.

        Other management personnel: responsible for administration, IT, company hardware support, etc..

        Publishers and studios: Publishers are responsible for the market planning, manufacturing and distribution of games. Publishers are some relatively large companies, such as EA, THQ, Sony, Nintendo, etc. Many game studios are not publishers, they are just Sell ​​your games to publishers

3. What is a game engine?

        The earliest game engine originated in the middle of the 1990s. At that time, a game was born, which was the famous Doom, and its developer was John D. Carmack II, who is well-known in the game industry. Cormac, at that time the game had been clearly divided into three-dimensional graphics rendering engine, collision detection system and audio system, art assets, etc. Unreal Engine etc.

        When designing the engine, reusability and mods were taken into consideration, but at the beginning, when designing the engine, it was aimed at a specific type, such as the game engine we use to make FPS, which is more reusable for first-person shooter games than other The game genre is much better, but with the passage of time, the game engine or intermediate group components are more and more common, and with the application of computer hardware speed and graphics card, the difference between the graphics engine of different game genres is already very small

According to the second version of the game engine architecture, the following divisions are made:

A game engine usually consists of two parts, a tool suite and a runtime component.

The runtime component consists of the following parts:

target hardware

device driver

operating system

Third-party software development kits and middleware

platform independence layer

core system

resource manager

rendering engine

Profiling and Debugging Tools

Collision and Physics

animation

Human Interface Devices

audio

Online Multiplayer/MMO

Gameplay Base System

Tools and Asset Channels

The tool suite includes some offline development tools

Using the classification method of Games104, we can classify game engines into the following modules:

We can use some flow charts to modularize the game engine to facilitate subsequent pit filling

 Animation system:

rendering:

Physical system:

Animation system:

Infrastructure:

Toolchain:

sound effects:

network:

Data-oriented programming and task system:

GamePlay:

Guess you like

Origin blog.csdn.net/leikang111/article/details/127991312