Game Framework 编程:简介

来源:互联网 发布:js 判断是否是数字 编辑:程序博客网 时间:2024/06/06 06:45

Game Framework是LightSpeed的子系统,用来提供基本的游戏模拟和行为,包括一个数据驱动的实体系统和很多相关的services。除了提供模拟功能之外,Game Framework还包含了迭代开发的机制,存在与Toolbench和众多的运行时数据格式之间。

Game Framework构建在Foundation子系统之上,不依赖于任何Core Runtime子系统的功能。Core Runtime通过游戏模块以插件形式和Game Framework关联起来。Game Framework通过底层的Foundation子系统,实现了很多常见的游戏功能,比如Game World initialization.

在这里插说一下Game World initialization,它基本包括了以下service的初始化:

(1)   Config Manager           设置管理

(2)   Message Service           消息

(3)   Entity Manager            实体管理

(4)   Scheduler                 调度

(5)   Assert Locator Service       实体定位

(6)   Flat Model Manager         

(7)   Entity Loader Service       实体载入

(8)   Light Service              

(9)   Camera Service            相机

(10)  Render Service             渲染器

(11)  Animation Service          动画

(12)  SceneGraph Service        场景图

(13)  Input Service              输入

(14)  Pick Service               拾取

当这些service都初始化之后,就轮到游戏的service了,会调用一个循环的事件方法OnInit(),通常包括等待所需要的service完成初始化,订阅需要的消息,游戏Block文件(通过Toolbench生成的)的载入,还有其他的一些需要在游戏开始前发生的调用。

Game Framework的核心是数据驱动的实体系系统(Entity System),Entity包括在实体模型(Entity Models)中描述的Property和Behavior。通过Scheduler来管理模拟。在运行的时候创建Entity,Scheduler通过各种事件来出发Entity上的Behavior,从而使得Entity之间可以交互。此外还有一个扩展的内置方法集,可以从脚本或者C++写成的实体行为方法里访问,可以实现Entity与各种service的交互。

Game Framework编程包括以下部分:

(1)Scripting                        脚本

(2)Core Runtime Services             核心运行时库服务

(3)Behaviors                        行为

(4)Buit-ins                          内置功能(主要提供给脚本使用)

(5)Entities                          实体

(6)Entity Properties                   实体属性

(7)Entity interaction                   实体交互

(8)Game Initialization                  游戏初始化

(9)Models                            实体原型

(10)PhysX System Services              物理服务

(11)Scheduler                         调度