首页 > 代码库 > 游戏引擎架构

游戏引擎架构

最近对游戏引擎架构比较感兴趣,于是研究了下这方面的书籍。

比较推荐的两本书是:

1. Game Engine Architecture. 

2. Game Code Complete.

他们全面说明了一个游戏引擎的组成部分,和每个部分所实现的基本代码。

当然我这里就我所认识的游戏引擎的组成部分跟大家说下,最后我会附加一副PDF图片,看到他你会吃惊说:噢,原理这就是游戏引擎的架构,她太漂亮了。

游戏引擎有以下几部分组成。

// ------------------------- 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
4444. 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 -------------------------------------


~~~待续


游戏引擎架构