游戏同步(二)-原理

在平时做项目过程中,我们使用到了行为树来作为AI的编辑基础,行为树的概念大家可以百度,网上应该有很多资料,在unity的商店里面,有一个我用来深度学习行为树的包,名字是behavior designer,里面的一些基础的概念,可以到下面这个网页https://opsive.com/support/documentation/behavior-designer/overview/去看看,比如什么是条件task, action,composite, decorator,稍微的吐槽一下,这个包里面其实很多东西是冗余的,比如它写的大部分的action,我们在实际的项目中都不会使用,因为它抽象的粒度实在是太细了,还有那些它实现的事件分发,都是多余的,在我项目中,保留的仅仅是它的执行过程,我大致描述一下,一棵树,包含了执行栈,执行栈里面才是具体的task的执行,在初始的时候,有一个执行栈,如果某一个composite可以并发的,那就会生成其他的执行栈,这样子就实现了并发的模拟,还有一个难点就是它的conditional abort,这个用来实现ai的时候非常重要。本节的重点是行为树的概念,行为树的执行,以及condition abort。这里的执行栈的概念在同步中起到了至关重要的作用.
(一) 行为树的执行栈
(二) 由于行为树实在是太灵活了,反而在使用的时候会摸不到头脑,经过我个人的思考,也为了我们实现同步的目标,使用它的时候我推荐是这样子的,一颗树只管一个对象的状态的变化,一个对象,可能会有很多颗树,但是肯定会有一个根树,在一颗树内,不会涉及到另外的对象的状态的改变。
(三)一个对象的状态,其实是两部分,一部分是我们的对象的数值状态,比如血量这种,我们可以认为它是由于树执行到现在积累下来的,另外一个部分其实就是树里面正在执行的task,这些会绝对未来对象的数值状态
(四)全部的逻辑计算都在服务器,客户端只是负责一个播放的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值