【游戏设计】任务系统进化论
引言
近来在新的项目中负责开发任务系统,起初自己做了一份设计,后来经与同事的交流,发现从系统设计上还有诸多可以改善的空间,这里加以记录。
背景&需求
MMORPG游戏中的任务系统远了说从《征途》《传奇》《魔兽世界》开始,一直占据着串联游戏内容,增加游戏粘性,丰富游戏内容等等很多本身功能之外的责任。所以不无可避免的,任务系统会与游戏的中的各种其他模块打交道,从设计的角度上如何避免过度耦合就是一个要注意的难点了。
通常的任务系统,会由接受任务、对话系统、完成任务的指定条件、交付任务等几个阶段构成。近年来的手游作品又会在对话系统上下功夫,引入了诸如剧情动画,过场动画等增加代入感的小功能。在设计之处,显然要考虑到后期加入此类玩法的扩展性,对话系统可能会有分支的出现。
出现这类树形结构时,如何配置这样的对话成了一个问题。在程序数据结构的设计上,并非不可解决,然而如何通过配置文件配置出一棵形如二叉树的对话树就有些棘手了。
伪流程图
可以看出对话系统与后续的动作一般相连出现,而在设计对话系统时应该避免将对话系统与后续的动作耦合太深,对话系统作为一个相对独立的模块,只需关注何时进入对话,如何切换对话内容,何时结束对话等“份内”的工作,而不应该与系统外的功能发生联系。否则无论从配置上还是设计上,都会使任务系统越来越复杂。
上代码
借鉴插件式的设计思想,任务系统内类似对话系统的模块可以设计成插件式的结构
public class QuestBase : MonoBehaviour{public class DialogBase{public delegate void DialogEndEventHandler();public event DialogEndEventHandler OnDialogEndEventHandler;public void HandleStartDialog(){}public void HandleStopDialog(){OnDialogEndEventHandler();}public void HandleOperateDialog(){//切换对话内容}}DialogBase _dialogData;...}
当任务系统需要某个模块时,便初始化这个模块加入到任务数据当中,而整个任务的流程(这里指对话系统前后的行为,应该由对话系统的主体即任务系统来驱动,而不应与对话系统发生耦合)。
【游戏设计】任务系统进化论相关推荐
- 基于Java的雷电游戏设计(含源文件)
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 基于Java的雷电游戏 摘 要 电脑游戏,是指在计算机上能够运转的游戏软件.这种软件具 ...
- 地下城与勇士游戏设计元素及成功原因分析
地下城与勇士游戏设计元素及成功原因分析 地下城与勇士(DNF)游戏介绍 游戏设计元素分析 构成游戏的基本元素 游戏的戏剧元素 巅峰时期--成功原因分析 历史原因 丰富多彩的活动 玩DNF能赚钱 电脑要 ...
- 《游戏机制——高级游戏设计技术》一2.2 将突现和渐进进行对比
本节书摘来异步社区<游戏机制--高级游戏设计技术>一书中的第2章,第2.2节,作者: [美]Ernest Adams 译者: 石曦 责编: 陈冀康,更多章节内容可以访问云栖社区" ...
- 3D游戏设计和创作工具学习教程 3D Game Design Creation Tools
语言:英语+中英文字幕(根据原英文字幕机译更准确) 大小解压后:1.94G 1280X720 mp4 三维游戏设计和创作工具 用扎实的工作流程开始开发游戏 课程获取:3D游戏设计和创作工具学习教程 3 ...
- 游戏设计行业标准测试:秘密收集
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:30节课(4h 5m) |大小解压后:2.68 GB ...
- 游戏设计艺术(第3版) The Art of Game Design
作者:[美] Jesse,Schell(杰西・谢尔) 著,刘嘉俊 等 译 出版社: 电子工业出版社 品牌:博文视点 出版时间:2021-05-01 游戏设计艺术(第3版)
- 《游戏设计师修炼之道:数据驱动的游戏设计》一2.8小结
2.8小结 在动手处理一款新游戏时,设计师必须考虑玩家将在玩游戏期间做什么有趣的事情,然后查明那些"有趣"的游戏动作或机制将如何工作.仅仅含糊地表达游戏玩法是不够的,例如,指示&q ...
- Silverlight游戏设计(Game Design):目录
孩提时那无数个难眠的夜晚,时常在思考着如何干掉BOSS的方案时已不知不觉的入睡.爱游戏,痴迷到难以割舍的状态.不断的在这个虚拟的轮回世界中扮演着一个又一个的主角而无法自拔-感受着日本人给我们重温自家的 ...
- 《游戏设计师修炼之道:数据驱动的游戏设计》一1.4小结
1.4小结 本章概述了设计师在制作周期要做什么工作以使游戏从原始的理念变成最终发行的产品.提出一个中心故事只是设计流程的一部分,真正应该关注的是创建有趣的游戏玩法元素.设计师使用纸质原型和简单的交互式 ...
- Silverlight游戏设计(Game Design):(五)面向对象的思想塑造游戏对象
传说,面向对象的开发模式最初是因为程序员偷懒而不小心诞生的.发展至今,人们从最初的热忠于讨论某某语言是否足够面向对象到现在开始更广泛的关注面向对象的思想而不是具体内容.面向对象的思想其实并不深奥,它存 ...
最新文章
- 单目深度估计方法综述
- Neutron 网络基本概念
- 机器学习(Part I)机器学习的种类
- android 闪烁发光动画,androidview动画发光效果在imageview上
- 【PAT (Advanced Level) Practice】1005 Spell It Right (20 分)
- vue项目打包到腾讯云服务器全过程
- 条码生成代码(Code39码)
- html表格转换为csv,python实现将html表格转换成CSV文件的方法
- 传感器的特性及性能参数
- java 泛型强制转换_java – 使用泛型强制转换为内部类
- AD14 如何设置PCB板框大小及形状
- 程序员最常用的6大技术博客排行榜
- 梁念坚:从MOTO到微软 从无缝连接到统一沟通
- VC/MFC得到电脑的默认打印机、设置默认打印机、遍历电脑打印机
- C++Error2208:…尝试引用已删除的函数
- 每日站会并不是只是站在开会就行了:每日站会范例
- (七)Linux内存管理 - zoned page frame allocator - 2
- CAD电气制图中怎么用圆弧连接导线?
- android 轮播coverflow,vue-awesome-swiper 3D coverflow effect 使用时每个slider发生错位
- html作用ppt制作,HTML主页制作.ppt