前言

来源:互联网 发布:web中js兼容性问题 编辑:程序博客网 时间:2024/05/16 01:50

今天大家对游戏引擎应该都已经不陌生了,使用引擎开发游戏也成了一种标准游戏流程,因为它可以提高开发效率,降低开发难度,节省开发成本,提高产品质量.但前提是你选择了一款合适的引擎,在我看来不存在什么最好的引擎,适合自己产品的才是最好的.

游戏引擎也是产品,是产品就要定义自己的目标人群,好像是废话...Matrix面向的主要用户是为网络游戏产品服务.网络游戏对引擎有其特定的需求,主要包括以下几个方面:

1 用户群主要是PC用户,PC的配置上下差异度较大,所以需要引擎有更广泛的硬件适应度.

2 网络游戏是一个生命周期很长的产品,所以需要有大量的内容被持续添加,那么动态的资源载入几乎是必须的功能(开房间类的游戏或可避免).

3 更多的高级网络组件和数据库支持,如常用的应用服务器组的模板,动态负载均衡,服务器分布式计算等.

 

所以我会在完成一个游戏引擎的标准功能外,提高对这些方面的支持能力.

 

再说点废话,什么是标准功能:

1 标准的数据类型支持,包括一些扩展的数据类型,如二进制流,树,向量,矩阵和四元数等.

2 图形功能:包括模型,网格,材质,纹理,动态阴影,静态阴影烘陪地形,,动画事件,摄像机滤镜,裁减遮挡,HDR,特效和GUI等.

3 物理功能:包括模型的碰撞和物理回馈,用户可控的简单形状,以及一些软体物理(如Ragdoll),布料和流体物理等.

4 音频功能:包括二维和三维声音,优先级,播放策略,声音滤镜,声音遮挡等.

5 平台功能:包括网络,时钟,线程,文件操作等,其实就是对当前操作系统功能的封装.

6 AI功能:包括路点,NavGrid,触发器等.

7 脚本功能:包括至少对一种第三方脚本的嵌入支持,甚至包括自身脚本语言,如UE自己的Script语言.

8 资源管理功能:对资源管理提供统一的操作方式,对异步和同步资源载入的逻辑层统一的使用方式,基于类似包形式的内部管理体系.

9 世界组织功能:包括对图形,音频,物理,AI世界的分离式管理,不同的服务器会需要不同的世界组合.

10 编辑器功能:提供对资源操作和世界对象操作的支持,如空间转换,模型合并,地形编辑等.

11 类型系统功能:提供对内建类型系统和用户自定义类型的管理和配置功能支持.

 

下面我会对Matrix在以上这些方面的设计和部分实现一一阐述.

原创粉丝点击