What Is the Game Engine
What is a game engine? In fact, it is difficult to give a clear definition.
In the promotion of many games, we will hear the admiration of the game engine. Gorgeous special effects and smooth experience seem to be the credit of the game engine. In the eyes of game players, the better the expressiveness of the game screen, the greater the shock of the game scene, the stronger the realism of the game experience, and the stronger the underlying game engine.
Let's take a look at some definitions given by the industry: Game engine refers to the core components of some edited computer game systems or some interactive real-time image applications. These systems provide game designers with various tools needed to write games, and their purpose is to allow game designers to write game programs easily and quickly without starting from scratch.
Most game engines support multiple operating platforms, such as Linux, Mac OS X, and Windows. The game engine includes a rendering engine (ie "renderer", including 2D image engine and 3D image engine), physics engine, collision detection system, sound effect engine, script engine, computer animation engine, artificial intelligence engine, network engine, and scene management engine.
According to the above definition, in many people’s eyes, the game engine is responsible for assembling many existing parts, just like assembling a mobile phone. The CPU, screen, camera, motherboard, etc. are all produced by others. The mobile phone manufacturer can assemble it according to their favourite style. All right.
Let’s take a look at what Game Engine Architecture (Chinese title "Game Engine Architecture") says: Usually, the dividing line between a game and its engine is very blurry. Some engines have a fairly clear division, and some do not try to separate the two.
In one game, the rendering code may particularly "know" how to draw a monster (Orc); in another game, the rendering engine may only provide multi-purpose materials and shading functions, and the "monster" may be completely Use data to define. No studio can perfectly divide games and engines.
This is not difficult to understand, because as the game design gradually takes shape, the definition of these two components will often shift.
It seems that engine experts in the game industry cannot really give a clear definition of an engine. Although everyone knows what a game engine is, it is difficult to express it in a few words.
Game engine VS car engine[edit | edit source]
Here we introduce a 3D game engine with a vivid metaphor—take the engine of a car as an example.
The engine that drives the car on the highway is the engine, and the car engine is the power source that drives the car. Both the fuel tank and the drive shaft must be controlled by the engine. In other words, the engine is equivalent to a control module that controls the operation of all other equipment.
The performance of the engine also determines the performance of the car. A variety of different models of cars can be manufactured around the engine.
The principle of a 3D game engine is similar to that of a car engine. The logic module of the game is also implemented on the basis of the game engine. Game developers only need to call the interface provided by the engine to write logic.
The rendering efficiency of the engine directly affects the running efficiency of the game, and the rendering quality of the engine directly determines the rendering quality of the game.
Of course, many games can be made with the same engine. The most intuitive ones are commercial engines, such as Unity and Unreal Engine. There are many types of products developed using them.
How was the game engine born?[edit | edit source]
More than ten years ago, when the author first stepped into the game company to do research and development, the company did not have a 3D game engine at the time. The company developed games based on the previous product developed by the company and modified it, in other words, "changing the skin.".
After doing it for a long time, the same code logic will appear repeatedly in different game projects. It is commonly known in the industry as "repetitive wheel making". The usual practice of developers when developing products is to copy and paste, which leads to bugs in the project. The probability is very high, which greatly reduces the efficiency of research and development.
In order to change this status quo, the company arranged for someone to try to extract the commonly used codes in the game and re-compile a new project into a static library LIB or a dynamic library DLL, so that the prototype of the 3D engine began to take shape. As the amount of code in the project continues to increase and improve, over time, a 3D game engine is formed.
The purpose of developing a 3D game engine is to simplify the complexity of game production, shorten the game development cycle, and reduce product production costs because the packaged engine can develop multiple types of products.
The art of game engines[edit | edit source]
For thousands of years, artists have enriched the spiritual level of mankind through traditional art forms such as literature, painting, sculpture, architecture, music, dance, and drama. Since the middle of the 20th century, the popularization of computers has spawned another art form-video games.
The game combines the above-mentioned traditional art and other art derived from modern technology (such as photography, film, animation), and completely breaks away from the one-way transfer method of art appreciation-the game must be interactive, and the "player" is not the "reader" ", "audience" or "audience", but the participants who enter the game world, perceive and react to the world.
Based on the interactive nature of games, the production of games is usually more complicated than other popular arts. The production of commercial games usually requires the participation of various talents, and they need to rely on various tools and technologies. The game engine is a tool and technology integration designed specifically for games.
The reason why it is called an engine, like the engine in a vehicle, provides the most core technical part. Because of complexity and high R&D cost, people do not want to redesign the engine when making every game (or car model). Reusability is an important design goal of the game engine.
However, the nature of each game itself and the differences in platforms make it extremely difficult or even impossible to develop a fully universal game engine.
Although some of the game engines sold on the market have reached a very high technical level, in commercial applications, it is often necessary to modify, integrate, expand and optimize the engine in response to individual game projects. Therefore, even if we can use the best commercial engine or self-developed engine on the market, we still need to understand the architecture, various mechanisms and technologies, and analyze and solve the problems encountered in production.