最近对游戏引擎架构比较感兴趣,于是研究了下这方面的书籍。
当然我这里就我所认识的游戏引擎的组成部分跟大家说下,最后我会附加一副PDF图片,看到他你会吃惊说:噢,原理这就是游戏引擎的架构,她太漂亮了。
同时在下一篇博客中我会从一个已经V5的游戏成品角度看看一个上线游戏的结构,当然这个游戏的主要平台是PS系列,Xbox等平台。
游戏引擎有以下几部分组成。
>>>>>>>>>>>>>> low-level library Begin <<<<<<<<<<<<
A. Utility Library [ 被调用 ]
1. Lists
2. Map
3. Strings
4. Arrays
5. Hash Tables
6. Smart Links
7. Reference Counters
8. Graphs and Trees
认为以上的工具库就是一个游戏引擎该有的基本数据类型及其操作。
B. System Utilities [ 被调用 ]
1. Threads
2. Mutexes
3. Locks
4. Logging Tools [ 调用 System Variables and System Commands ]
5. System Variables [ 调用 System Commands ]
6. System Commands
以上就是系统工具的组成部分。
C. Math Library [ 被调用 ]
1. Vectors 矢量
2. Matrices 矩阵
3. Quaternions 四元法(一种查找方式)
4. RGBA Colors
5. Linear Algebra 线性数学
6. Polygon Utilities
7. Random Numbers
8. Bounding Volumes
以上就是一个游戏引擎中Math Library都应该提供的数学计算功能。
>>>>>>>>>>>>>>>>> low-level library End <<<<<<<<<<<<
>>>>>>>>>>>>>>>>> Base Services Begin <<<<<<<<<<<
A. Memory Manager [ 被调用 ]
1. Custom Allocator
2. Debugging Tools
3. Multiple Heaps
4. Small Block Pools
以上是一个内存管理的组成部分,也是游戏引擎提供的最基础的"服务" 。
B. File Manager [ 被调用 ]
C. Resource Manager
1.Virtual File System
2. Packing Utilities
3. Caching
444. File Manager [ Means: B ]
资源管理
D. Time Manager [ 被调用 ]
时间管理相关
E. OpenDDL [ 被调用 ]
开源数据描述语言: open data description language.
以上就是一个游戏引擎提供的基本服务。
>>>>>>>>>>>>>>>>> Base Services End <<<<<<<<<<<<<<
以下部分是大家比较熟悉的部分:
>>>>>>>>>>>>>>>>> System Managers Begin <<<<<<<<<<<
A. Display Manager [ 被调用 ]
B. Rendering Core [ 被调用 ]
1. OpenGL(Desktop)
2. Native API(Console)
C.Job Manager [ 被调用 ]
1.Multi-Core Support
2.Job Queue
3.Batches
444.System Utilities
D. Input Manager [ 被调用 ]
1. Mouse
2. Keyboard
3. Joysticks
4. Gamepads
游戏输入管理。
**************** Very Imp *****************************
E. Graphics Manager [ 被调用 ]
1. Renderables
2. Texture Maps(调用Resource Manager)
3. Vertex Buffers
4. Shaders
5. Camera Setup
6. Light Setup
7. Fog Setup
8. Post-Processing
999.Display Manager
101010.Rendering Core.
F.Sound Manager [ 被调用 ]
1. Custom Mixer
2. 3D Audio
3. Reverb Effects
4. Sound Flow
5. Streaming
6. Decompression
7. Audio Capture
888.Resource Manager
G. Network Manager [ 被调用 ]
1. UDP Sockets
2. Connections
3. Fault Tolerance
4. Packet Encryption
以上就是一个游戏的系统管理了 包括声音 网络 图像 输入 任务调度 渲染Core
显示管理等等模块
>>>>>>>>>>>>>>>>> System Managers End <<<<<<<<<<<<<<<
当然了以下部分是一个大型游戏引擎所必需的
>>>>>>>>>>>>>>>>> Large-Scale Architecture Begin <<<<<<<<<<<<<<<<
A. Interface Manager [ 被调用 ]
1. Widgets
2. Windows [ 调用Resource Manager]
3. Viewports
4. Mutators
5. Input Events
6. Configuration
777. Graphics Manager
B. Plugin Manager
C. Scene Structure [ 被调用 ]
1. Cameras
2. Lights
3. Geometry
4. Effects
5. Sound Sources [ 调用Sound Manager ]
6. Zones and Portals
7. Trigger Regions
8. Instances
999. Graphics Manager
101010. Resource Manager.
D. Message Manager [ 被调用 ]
1. Client-Server Technology
2. Message Distribution
3. Message Combining
4. File Transfer
555. Network Manager
E. Effect Manager [ 被调用 ]
1. Interface Panels [ 调用Interface Manager ]
2. Surface Markings
3. Particle System
4. Lighting Effects
5 Effects.
F. Controller System [ 被调用 ]
1. Scripts
2. Functions
3. Controller Messages [调用 Message Manager ]
4. Journaling
555. Input Manager
666. Time Manager
G. Movie Manager [ 被调用 ]
1. Tracks
2. Compression
3. Recording
444. Interface Manager
H. Animation System [ 被调用 ]
1. Models
2. Animation Blending
3. Skinning
444. Scene Structure
555.
Controller System
666.
Resource Manager
I.
Physics Manager
[ 被调用 ]
1. Rigid Bodies
2. Shapes
3. Joints
4. Contacts
5. Collision Detection
6. Force Fields
7. Water / Buoyancy
8. Rope / Cloth
999.
Controller System
下面就是一个引擎的心脏了.
J.
World Manager
[ 被调用 ]
1. Light Management
2. Shadow Management
3. Visibility Determination
4. Object Interaction
555.
Physics Manager
666.
Controller System
777.
Message Manger
888.
Scene Structure
999.
Animation System
101010.
Effect Manager
111111.
Graphics Manager
>>>>>>>>>>>>>>>>> Large-Scale Architecture End <<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>> 游戏成品 <<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>> Application <<<<<<<<<<<<<<<<
>>>
Game
<<<
I. World Manager
II. Physics Manager
III. Interface Manager
IV. Movie Manager
以上就是一个商业游戏引擎的所有架构,所有的组成部分了。当然想做好一个游戏使用的工具也是必须值得一提的。
如下:
I. World Editor
II. Script Editor
III. Shader Editor
IV. Panel Editor
V. Texture Tool
VI. Font Generator
VII. String Importer
VIII. Sound Tool
以上就是游戏引擎架构的粗略一看。以下是图片上传效果。