Games104 gameplay系统笔记

GamePlay系统
(1)事件系统
(2)脚本系统
(3)可视化脚本
(4)3C
(5)AI
挑战:多样性;可扩展性;快速迭代

一、事件系统
(1)消息定义
(2)回调函数注册
强引用(引用不随对象销毁而删除,保证引用的安全性,但会导致系统内存增大)
弱引用(在回调函数中增加判断引用对象是否销毁的逻辑,智能指针)

(3)消息分发
1、实现机制:消息队列,相同类型的消息放在一个消息队列里
在这里插入图片描述
在这里插入图片描述
2、消息存储:RingBuffer
在这里插入图片描述
3、消息队列的缺陷:不能保证消息执行的顺序

三、AI

1、寻路

(1)步骤:
Map Representation
Path Finding
Path Smoothing

(2) Map Representation
Format: WayPoint Network、 Grid、 Navigation Mesh etc.

WayPoint Network:
在这里插入图片描述

Grid:
缺陷:存储空间大,格子多了访问速度慢(cache miss),难以表达层叠结构

Navigation Mesh:
可以是三角形,也可以是多边形(必须是凸多边形);
灵活性强,寻路速度快;
生成速度慢;不支持3D空间(例如飞机)

2、感知

3、群体

4、决策
有限状态机
行为树
其他决策算法:
在这里插入图片描述

(1)有限状态机
在这里插入图片描述缺陷:增加新的state时需要考虑和其他state的关系 ,难以管理

改进:分层有限状态机,增加了状态机的可读性,但可能速度慢
在这里插入图片描述
(2)行为树
状态机是对AI行为的抽象,但并不符合人们的思考方式
行为树的结点:
1、Excution Node : 行为树的叶子结点,分为条件结点(Condition Node) 、动作结点(Action Node)
动作结点有三种状态,success、fail、running
在这里插入图片描述

2、Control flow Node :
在这里插入图片描述
Sequence: 顺序执行,将子结点依次执行,如果一个结点返回的是false,则停止执行
Selector: 根据条件执行子结点
Parallel:并行执行,行为树强于状态机的点,AI可以同时执行多个任务(人类的行为很多时候也是多线程的)
Decorator,PreCondition:简化条件分支
在这里插入图片描述

行为树的Tick:
行为树每一次都会从根结点重新 tick(而不是从上一个状态)
行为树在running的结点可能不止一个(优化:可以用event驱动)
在这里插入图片描述

行为树的黑板:
在这里插入图片描述

行为树的缺点:
Tick开销大

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值