InGame programsIn the fieldGame Engine)No. It sounds like a cool term, but in fact, the word "Game Engine" is often overcalled and misused. The so-calledGame Engine ArchitectureFrom Low-Level to High-Level can be subdivided into the following threeLayer):
- Drawing APIFor example: DirectX and OpenGL)
- Drawing EngineFor example, OGRE, Renderware, and Gamebryo)And other engines
- Game EngineExample: Unreal and Torque)
Drawing API, responsible for communication between programs and hardware, abstracting the features and features of the hardware layer,Provides a set of standardized InterfacesFor use by program designers. Currently, DirectX and OpenGL have become two major standards in the industry. This level belongs to the standardization and standardization of the bottom layer of the drawing, which is conducive to the development of the engine and game developers as well as the industry as a whole, so that developers can focus on more specific engine architectures related to the game, it is not limited by the actual hardware content of different manufacturers.
The Drawing Engine encapsulates the underlying drawing API into an interface unrelated to the actual work. It can even provide drawing APIs for cross-platform development and use on several different platforms, furthermore, it brings a lot of functionality and convenience to program designers. The biggest benefit of using the Drawing Engine is that it can be used by developers.Various Drawing architectures and technologies constructed using the drawing APISuch as Scene Graph architecture, Space Division, resource management, and light and shadow processing.
The game engine isA complete set of solutionsTo provide maximum functionality and convenience while maintaining a certain degree of elasticity. In addition to the Drawing Engine function, it may also contain sound engines for playing music sound effects, physical engines for determining physical collision behaviors, and other functional components. Compared with the simple drawing engine, a complete game engine requires a lotEditor and toolsSuch as the terrain editor and character action editor. The integration of the game engine and art design software, such as 3ds Max, is also very important. If the engine contains powerful editing tools and plug-in output programs, it not only saves time for program developers, it brings convenience to corporate painting and art designers, reduces the incidence of human errors, and further accelerates the game development process.
In addition to the preceding drawing API, drawing engine, and game engine layersGame Framework). In the field of software development, the so-called Framework refers toReusable Design in a software system. The game-related name Framework system is used to develop the XNA Framework of Xbox360 games and the. NET Framework vigorously promoted by Microsoft. The framework system must be able to provide a ready-to-use version while retaining an elastic and scalable interface to achieve the reusability of the framework.
In addition, due to the vigorous development of the game industry, more and more companies are focusing on developing graphics engines and game engines. Therefore, an emerging term calledMiddleware intermediary software). Intermediary software is used to provide functional components at a specific level. It aims to save the game development time and risks, such as the drawing engine, physical engine, artificial intelligence engine, sound engine, and so on can be regarded as a kind of intermediary software. At present, there are also intermediary software development vendors that provide a complete solution for developing MMO games, including server and client programs.
In game program development, the most difficult key point is the bridge and communication between different levels. For each level, developers should try to make them independent and independent from each other to reduce coupling between different levels. In this design mode, in order to achieve a component-based, hierarchical level of the game engine can be reused. In shortInterface and practice separationDesign concept. In the ideal situationGeneric Code of the engine frameworkAndCode related to a specific gameThe two parts are completely separated and managed in order to provide different game code for use when the engine-related code changes at least.
The functions provided by the game engine are like playing with Lego toys. We can use various shapes in a wooden box.Basic building blocksTo combine the huge models in the dream blueprint. These basic building blocks are likeVarious components in the Game EngineBased on the different needs of different game projects, you can extract the appropriate building blocks and components to form a complete game. This step from building blocks to form a model requires a normalized and standardized procedure「 Assemble 」This action becomes intuitive and easy to understand. No matter whether the content and materials of the building blocks are changed in the future, it will not have a great impact on users. The "assembly" action of building blocks is like a program「 Interface 」Similarly, any change to the combination of building blocks or the use of interfaces will cause user troubles and inconvenience, and greatly reduce the possibility of copying the use experience.
However, in the real development process, we may find that it is not easy to achieve independent layers and separate interfaces. Especially when the program architecture is poor, it will make the ever-growing number of game code overlapping and intricate, as if the ground is unstable, and the tall buildings that are desperately stamped with the Code are as fragile as they are. Therefore, as described in the Design Model Book, we should focus onSeparate "change" from "no change", Respectively, encapsulate the concepts of "change" and "No change" to minimize the effort required for changes.