Unity3D对游戏中的任务 成就系统和存储系统的开发

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:cj258399542
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:任务、成就以及存档读档等模块,在游戏中总是不可缺少。对于游戏而言,这不仅仅是必要元素,同时也是游戏的加分项。该文通过以Unity3D为开发平台,以开发的《通通站》项目为实例,从程序开发者的视角阐述了在游戏的程序设计中对于任务、成就、存储系统的理解,使开发者在制作游戏系统时有明确的设计思路,研究也表明开发游戏时,提前思考游戏系统间联系对制作良好的系统是很重要的。
  关键词:Unity3D;存储系统;任务系统;成就系统
  在完整游戏制作中,几乎不可避免地需要在游戏中加入任务系统,成就系统和保存进度的存储系统。可以说成就为玩家提供了奋斗目标,而任务为玩家提供了完成目标的途径,而这个过程就需要存储系统进行管理数据。
  本文以Unity3D为开发平台,以实践的形式分析成就、任务、存储系统的构建和联系。Unity3D是一款热门的游戏引擎,据Unity官方发布,每个月有28亿活跃的终端用户接触或使用Unity解决方案制作或运营内容[1]。
  实践项目《通通站》是一款基于企业App开发的嵌入式项目,该项目以地铁文化为背景,以养成宠物(通通)为主要玩法,通过完成任务、游玩小游戏、社交、完成成就等方式获取培养宠物的资源。
  1分析系统
  1.1任务系统
  基于实践项目对任务系统的基本属性进行分析,其中包括任务名、任务完成条件、任务进度、任务奖励、任务开放等级等属性。其中任务名、任务进度、是否领取过奖励等属性,是任务系统与存储系统中是最常交互的数据。在任务UI上,需要提前准备Unity的UI显示组件,包括奖励图片(Image)和奖励个数(Text)、任务进度(Text)、任务的名字和任务详情(Text)。任务系统数据的更新,包括任务属性的进度、任务是否完成、是否领取奖励和任务UI的更新等数据。而这些数据的更新和管理需要一个完整的设计思路和运行逻辑,良好的程序思路设计可以有效地提高程序的运行效率。当玩家进入《通通站》任务界面时。简单的运行逻辑如图1:
  1.2成就系统
  成就系统与任务系统在程序思路设计是类似的,在属性方面几乎有任务系统的全部属性,在更新数据上逻辑和任务系统是一样的,区别的设计主要在于UI排版、美术和交互上,在实践项目中,成就的交互设计和任务相比,成就交互设计难度更大,其区别在于交互细节,成就的UI设计是在任务系统UI的基础上,增添了一个新的UI面板,而所有的任务是共用这个UI面板的,面板的数据包括任务名称、完成条件、获取的奖励以及成就的具体信息。当玩家点击成就列表中某一个成就时,会在原来的UI面板上添加新的交互UI,同时根据所点击的成就对该共用UI面板进行数据更新,UI上显示的详细的成就信息和获得奖励的记录,对玩家有一定的激励作用,良好的成就系统能调动玩家的积极性,激发玩家内心的游戏动机[2]。
  1.3存储系统
  存储系统的开发,是联系多个系统、不仅有任务、成就等系统、背包的物品、也包括游戏玩家属性等级、名字、经验等。在《通通站》的项目中,保存游戏数据方式,选择了以保存Json文件的形式。在存储数据的结构上,不同的系统和存储系统交互的属性是不同的,所以需要针对不同的系统构建不同的数据结构(类),以方便保存和解析数据。在成就,任务系统与存储系统交互,其实存在着一个临行保存物品的系统,就是背包系统。在完成任务后获得奖励,储存在背包系统里,背包系统以一个C#的字典进行存储物品信息的,字典值类型使用C#列表类型,这样的设计可以提高查询的效率的同时,可确保多个相同的物品可以保持独立存储数据。背包物品均由一个(程序)父类派生出来,在背包中可通过该基类进行管理。
  1.4成就,任务和存储系统的关系
  对于存储系统而言不仅要将数据转化为Json文件,同时需要和其他系统构建联系起来,以成就和任务系统为例,存储系统只需存储必要信息,所以在保存数据时,需要存储系统根据成就,任务的脚本数据,对系统的属性进行区分,只留下必要信息,以实践项目的任务系统的存储数据为例:必要信息有任务ID,任务进度,是否完成过任务,任务是否领取过奖励等数据。
  三个系统的联系不仅仅是在数据的传输上,存储系统也对其他两个系统的数据进一步管理,同时存储的数据,也需要任务,成就系统为构建保存的数据结构提供参考。
  2制作存储系统的思考
  2.1什么是Json
  Json全称是(JavaScript Onject Notation),这是一种轻量级的数据交换格式。文件层次结构比较清晰,具有可读性,可在源文件中进行修改,同时对于计算机保存文件和数据的解析都比较友好。Json文件是一款完全独立于语言的文本格式,但由于使用了類似于C语言家族的习惯,使Json成为了比较理想的数据交换语言[3]。Json文件的结构和写法是以“{}”花括号对应程序的对象。“[]”方括号对应数组,“""”双引号对应程序里的变量名和值(Key和Value)。其写法如图2。
  2.2 Json的优缺点
  用于存储系统比较热门的技术分别有数据二进制序列化,XML和Json。其中对于电脑最友好的存储方式是二进制序列化,计算机对数据的处理最终是对二进制序列化数据的处理,这意味着数据的可靠性,稳定性和效率是最好,但相对的以二进制序列化保存的文件是难以解读,或修改的。
  另一个选择是XML,其优点是格式统一,不同系统可共享数据,系统的兼容性高,文件具备可读性,并且可进行修改。
  但这二者相对Json文件,可读性和可进行修改有着不可逾越的差距,二进制化难以解读和修改,而XML由于需要考虑父节点和子节点的复杂关系。而Json很好的管理了这些数据,Json和XML在保存相同数据的情况下,从文件数据的复杂度和内存大小分析,Json文件数据结构更清晰,存储空间更小,有研究表明当Json,XML传输相同的数据,XML消耗的时间更长[4]。这就意味着在传输速度和编写解析程序上,最优先选择的保存方式为Json文件,综合评价:在保存的数据需要进一步操作时,Json文件的保存方式是个很好的选择。   2.3使用LitJson的注意事项
  决定使用以Json文件进行数据存储,针对于Unity平台,可以使用LitJson的Unity插件,LitJson是Unity开发和Json相关应用的开发包。在开发初期,需要手动将LitJson传入Unity的项目文件中。LitJson可存储的数据类型为bool 、double 、int 、 object和string等 。其中需要注意float类型在LitJson插件中是不支持的,如果使用float类型的数据,编译过程会直接报错。
  相同的保存路径,文件具有覆盖性。存储不同阶段的数据时,需要在程序中更改保存文件的名字。对于保存路径还需要注意,在Unity编辑测试阶段时为了方便观察数据,保存的路径可以为(Application.dataPath "/StreamingAssets"),数据将会存储在项目的StreamingAssets文件夹中,如果打包成移动端,需要修改获取路径的函数(Application.persistentDataPath)。
  在《通通站》项目中,玩家进入时Json文件同时也进行解析,在此过程需要判断Unity场景中UI元素是否构建完成,完成构建解析后的数据才有赋值的空间,否则Unity会报空。这里可以使用Unity的协程进行开发,通过协程判断游戏场景元素是否构建完毕。
  3任务,成就,存储系统的制作
  3.1任务与存储系统的关系类图
  (Task)为任务的基类,其属性类包括处理奖品的类(TaskAward)和处理任务是否完成条件类(TaskConition),(FinishConitionChange)是对(TaskConition)类功能的补充,(TodayTask)继承于(Task),同时实现(Task)的功能,(TodayTask)创建对象后由(GrowTaskMgr)等级任务管理类和(todayTaskMgr)每日任务管理类进行管理。在保存和解读信息时,通过(JsonDataExchange)进行数据交互,而该类,采用了单例模式,方面该脚本和其他脚本的数据交互。(JsonDataExchange)交互的数据是(taskSave)保存任务存储必要信息类,通过(Save)将在(JsonDataExchange)中得到的数据进一步整理,最后(SRMgr)通过调用(SaveJson)或(LoadJson)类对(Save)的数据进行保存或解析。
  3.2基于实践项目分析:任务,成就,存储系统程序设计的难点
  针对于软件开发的功能模块,在程序上需要考虑程序的可移植性和可拓展性,对于可移植性,需要考虑Unity3D开发版本的兼容性问题,功能模块的开发,以C#程序和Unity3D的基础元素构成,尽量避免Unity版本迭代造成的问题。在程序可拓展型上,以面向对象的思维进行开发,通过图3的类图分析,构建游戏的程序框架,为游戏系统设计一个优秀的编程框架是开发编程型游戏系统的一项重要的任务[5]。
  优化任务,成就数据更新逻辑,对于任务、成就系统而言,良好的程序调用逻辑,可以降低运行的消耗,也方便后期对程序的调试、修改和修补bug。对于任务数据的监控,是不建议采用实时监测的形式,实时监测提升不必要的消耗。故需要设计良好的运行逻辑。以任务系统为例:打开任务UI时,才触发判斷是否领取过奖励,非领取状态才能进一步交互,而对于可交互的状态的任务,UI界面的数据更新的触发为更新进度,进度的更新,触发判断进度是否完成,进而更新任务奖励状态,最后以更新UI。
  (JsonDataExchange)数据交换类的设计,无论是任务系统,成就系统还是存储系统,都有大量的数据进行交互,造成的后果是对象之间的耦合度提高,增加了后期程序的维护成本,故使用中介模式,使三个系统的数据交互通过(JsonDataExchange)作为中间者进行交互,为了更好的使用该类,为此(JsonDataExchange)同时设计了单例模式,这样可以比较大程度上避免耦合性。
  4结束语
  本文以Unity3D游戏引擎编辑器作为为开发平台,以开发的项目《通通站》为实例,分析了《通通站》项目中,任务,成就系统的构建元素,同时解释了该项目中存储数据所用的文件为Json,进而介绍以Json技术为基础开发的Unity插件LitJson和使用的注意事项,通过这些技术的应用,以一个程序开发者的角度,阐述了项目中任务,成就,存储系统三个系统之间的运行逻辑和数据间的联系。对于一个游戏项目,如果没有提前思考总结游戏系统之间的联系,在开发的过程中很有可能导致系统间数据交互混乱。
  参考文献:
  [1] 2021游戏市场风向报.Unity对2020年游戏市场分析及2021年趋势预测[EB/OL].[2021-05-21].https://unity.cn/2021-gamer-report.
  [2] 郭文文.基于心流体验的手机游戏设计研究[D].北京:北京服装学院,2013.
  [3] Json介绍:Json中国 [EB/OL] 2013.http://www.json.org.cn/
  [4] 高静,段会川.JSON数据传输效率研究[J].计算机工程与设计,2011,32(7):2267-2270.
  [5] 江耿豪.编程型游戏编程框架的设计方法[J].软件导刊,2010,9(7):17-19.
  【通联编辑:谢媛媛】
其他文献
摘要:随着科技的飞速发展,我国在国际上的地位日益增长的同时,国家领导入也在鼓励广大青年要善于将传统文化与现代科技相结合,去其糟粕,取其精华,形成一种新的文化。故本文主要介绍如何基于Arduino将传统文化进行改变,完成传统文化的继承与创新的目标。木偶戏又称为傀儡戏,主要是用木偶表演故事的戏剧,是我国传统艺术之一川。本文使用Arduino制作木偶戏机器人,利用金属齿轮数字标准舵机进行提线控制木偶的四
摘要:随着社会的不断进步,大数据、人工智能、物联网等计算机网络高新技术的应用,改变了人们的生活、生产和工作。职业院校作为计培养的高新技术人才的主要阵地,培养一批具有高素质的计算机专业人才很重要。计算机网络实践教学作为计算机专业的重点与难点,在计算机专业学科建设中承担着重要的角色。然而,在经济不断升级和转型的情况下,当前职业院校计算机网络实践教学还存在一些问题,与当前的经济发展不匹配,因此,有必要进
摘要:中小学信息技术课程作为提高学生信息意识、锻炼计算思维和提升信息素养的重要课程,在互联网时代其课程的开展显得更为必要,同时,微视频在其中的应用及效果的研究也变得越来越多。从CNKI数据库中选取了2010~2021年间关键词为“微视频”和“信息技术”的301篇文献,利用 Citespace 工具进行可视化分析,分别对其关键词频度、关键词聚类、关键词时间线图谱进行分析得到以下结论:微视频在信息技术
摘要:BOPPPS教学模型主要是以学生为中心,不仅要培养学生自主学习能力,同时让学生从被动学习转化为主动学习。本文以计算机应用基础课程中“计算机中数制的转换”一课为范例,通过导言、课程目标、课堂前测、参与式学习和课后测试与总结六个步骤展示完整的一个教学过程。研究表明,BOPPPS教学法不仅能提高教师的教学质量,同时也能提高学生的学习技能  关键词:教学法;BOPPPS教学模式;计算机教学  中图分
摘要:信息技术是以计算机科学与技术为核心技术,信息技术学科的核心素养之一是培养学生的计算思维,计算思维也是信息化社会中数字公民所应具备的基本素养,根据新课改标准,信息技术一线教师要认真探寻如何培养学生的计算思维能力的策略。笔者以2019年全国“一师一优课”开设的一节以高中信息技术选修模块4《数据管理技术》第三章《如何建立查询》公开课为例,通过“教学设计案例和教学实践”分析,认为在现阶段,可以通过设
摘要:现代信息技术以计算机和网络技术为基础,其迅速发展和广泛应用为档案信息资源的科学管理和有效开发利用创造了前所未有的条件和机遇。同时也提出了如何高效管理和利用档案的新问题。计算机网络技术的应用可以降低档案馆管理成本,提高档案管理效率,实现档案信息资源向经济效益的转化。该文基于计算机网络技术在档案管理中应用的优势,从档案管理自动化、信息传输网络化、档案信息数字化、档案信息资源共享等四个方面解析计算
摘要:针对舆情分析系统而言,其对提升学校管理水平有着很大的意义和作用。当前,随着的信息化技术发展水平的不断提升,网络技术的发展也变得越来越稳定。在这种背景下,本文即对基于数据挖掘技术的舆情分析系统的设计进行了简单的研究和分析,希望可以为相关人员提供一定的帮助。  关键词:数据挖掘技术;舆情分析系统;设计  中图分类号:TP393 文献标识码:A  文章编号:1009-3044(2020)03-00
摘要:针对高职单片机课程项目教学中存在的一些问题,本文依托超新泛雅网络教学平台对课程中“简易数字电压表设计制作”这一项目进行混合式教学改革,从教学内容、教学策略、教学过程、教学评价、教学反思几个方面进行混合式教学设计。实践证明,新的教学模式将线上在线学习和线下理实一体化教学融合在一起,有助于调动学生的学习积极性,提高学生综合运用能力和实践创新能力。  关键词:单片机课程;网络教学平台;混合式教学设
摘要:自十八大以来,习近平总书记提出了“文化自信”,而后中国掀起了一股中华文化热潮。方言作为一种承载了地域文化的载体,对其的保护与传承至关重要。本文通过问卷设计及专家访谈的形式收集一手数据,运用描述性分析、列联分析、决策树等统计方法,分析“文化自信”背景下宁波方言传承状况及其影响因素。调研发现:对于宁波本地人来说,宁波方言的掌握程度普遍维持在能够听说的程度,但是调查对象中存在着由于各种原因所导致的
摘要:该文以了解研究高职院校学生使用运动健身类App现状与趋势为主要目的,以陕西部分高职院校大学生为主要研究对象,采用文献资料法、访谈法、问卷调查法、数理统计法进行分析研究。通过对高职院校大学生运动健身类App选择使用原因、数量、使用时间、使用功能、功能满意度、使用动机等方面的调查研究,了解获取高职院校大学生运动健身类App使用现状,探索发展趋势;建议加强运动健身类App推广宣传、拓展完善运动健身