Gamebryo—Data-driven Entity System

Data-driven Entity System

Data-driven Entity system是The Game Framework的核心。实体包含了实体模型(entity models)中定义的属性(propterty)和行为(behavior)。模型可以从而其模型中继承,从而可以进行功能的扩展。

1 概述

使用scheduler来处理运行时消息,它时一个用来处理运行时脚本和相关消息的系统服务。它和Entity Manager一起来触发实体的行为。

实体在运行时被Entity Manager创建,Scheduler会根据相关事件来触发实体的相关行为,从而实现实体间的交互。这种交互时异步的。

可扩展集—build-in methods,可被脚本或c++使用,从而实现实体和其他服务之间交互

2 实体

实体是simulation中最小的个体,任何可变状态的simulation object都可看作是一个实体。如,玩家或AI角色。也可以是一个抽象的不可渲染的simulation 状态。如,游戏中的天气。

实体使用一个data-driven temple叫做model,来定义属性和行为。在EMT中可以创建和编辑entity model。

可以通过几个model来组成一个新的model。新的model具有了他们所有的是属性和行为。

一个不添加任何属性和行为,仅仅重载默认的属性值叫做prefab model.

创建新实体的过程时异步的,新建的实体在被添加到管理器中和向scheduler中通可用之前都是不可以用的.

3 Scheduler

Scheduler是一个决定实体行为的系统服务.实体之间时通过发送事件的方式来进行交互的.scheduler对这些事件进行处理.scheduler通过game-time来管理一个事件的.未处理的事件序列需要被审查,一个实体想要运行必须拥有一个开始行为.

Scheduler也管理了在previouse tick被阻止的行为,该系统支持基本事件的处理,即在一个tick中完成一个事件.

通过使用脚本运行虚拟机,系统支持process-oriented计数.这样允许阻塞一个行为,保存一个可执行的上下文.从而在后面可以继续执行该行为.如,可以在被攻击三秒后恢复.随后可以继续其它事件.

Scheduler是一个独立实体和行行为系统.它允许实现其它类型的scheduling paradigms.默认的scheduler是一个实时,面向事件的服务.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值