- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于聚合状态机的游戏引擎架构
呈天游 霍殿岩
目录
• 游戏架构问题
• 游戏引擎框架
– 引擎结构、对象组织、组合聚合、状态机
• 聚合状态机
– 结构、特性、应用形态
• Unity3D应用案例
– 引擎框架、游戏结构、应用案例
• 总结
– 优劣势、适用范围、QA
游戏架构问题
游戏创作需求
游戏架构需求
• 业务需求、产品需求
– 多、快、好、省
– 复制、移植、适配、改造、国际化
• 运维需求
– 自动化、可扩展、易控制
• 研发需求
– 快速原型、敏捷迭代
• 技术需求
– 松耦合、易重构、可扩展、拆分
游戏引擎框架
游戏引擎框架
• 物理适配
– 声音、输入、文件、网络、绘图、平台适配等
• 服务管理
– 内存管理、多线程、事件、资源、脚本等
• 集成环境
– 多语言、资源、编辑、发布、部署等
• 游戏扩展
– 物理、动画、高级绘图、游戏对象
• 游戏对象组织与流程控制
游戏对象结构
• 游戏对象组织
– 导演、舞台、场景、精灵和精灵的孩子们
– 游戏对象树状聚合
– 游戏对象创建、查询、释放
• 基础对象:可管理性
– 资源、引用、获取
• 游戏对象:可控性
– 查询、关系、组合、聚合、生命周期
游戏对象定义
• 继承 (是一个)
• 组合与聚合(有一个)
– 组件
• View
• Control
– Behaviour行为
– FSM有限状态机
• Model
– 静态、动态、网络同步
游戏对象定义
游戏流程控制
• 基础流程
– 更新线程、渲染线程、其他线程(计算、IO )
• 流程控制
– 接口、函数、消息、事件、回调
– 有限状态机
有限状态机(FSM )
• 组成
– 状态(State ):Enter、Exit
– 转换(Transition )
– 动作(Action )
– 事件(Event )
– 变量(Variable )
有限状态机(FSM )定义
聚合状态机
游戏引擎架构与聚合状态机
聚合状态机定义
• 游戏(应用)由游戏对象多级聚合而成
• 游戏对象由组件组合而成,其数据、展现、
控制都体现在组件中
• 游戏对象的生命周期处在多种状态中
• 游戏对象在状态中响应事件、实施行为
• 游戏对象主动或被动的转换状态
• 游戏对象间通过状态机传递信息、事件,
相互影响、驱动流程
聚合状态机设计
聚合状态机应用——游戏主流程
聚合状态机应用——角色控制
聚合状态机应用——NPC AI控制
聚合状态机特性
• 松耦合
• 结构化
• 事件驱动
• 组件复用
聚合状态机适用范围
• 适用范围
– 游戏框架与流程控制
– 游戏对象定义与控制
– 引导教学控制
– 过场动画
Unity3D应用案例
Unity3D引擎
• 底层适配
– 物理适配、服务管理、集成环境、游戏扩展
• 游戏对象组织管理
– 游戏对象、组件、行为扩展
• 游戏流程控制
– 事件、代理、消息
– PlayMaker插件
游戏对象定义
总结
聚合状态机优劣势与适用范围
• 优势
– 易理解易应用,降低设计、开发难度
– 结构清晰松耦合,降低维护、重构成本
– 便于团队集成制作,降低沟通成本
• 劣势
– 复杂产品游戏对象结构较臃肿,即时性响应效率较低
– 状态、动作对象多,关系冗余,需要后期逐步优化
• 适用范围
– 快速产品原型,MVP
– 中小团队中小型产品
– 以内容、体验为主中心
文档评论(0)