谭庆标_基于U3D的3D解密游戏设计与实现.doc
《谭庆标_基于U3D的3D解密游戏设计与实现.doc》由会员分享,可在线阅读,更多相关《谭庆标_基于U3D的3D解密游戏设计与实现.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录第一章绪论11.1选题目的和意义11.2论文组织结构1第二章开发工具介绍32.1Unity3D游戏引擎32.1.1Unity3D引擎介绍32.1.2Unity3D常用组件32.1.3Unity3D的生命周期函数42.1.4UGUI(Unity官方图形用户界面组件)42.2C#语言52.3JetBrains Rider 2019.252.4DOTween 插件52.5ProGrids插件62.6小结6第三章游戏关卡设计介绍73.1游戏简介73.2游戏关卡设计73.3游戏美术设计103.4小结10第四章游戏实现114.1寻路系统的实现124.2方块机关拖拽实现184.3条件判断系统实现224.
2、3.1路径激活断开判断224.3.2关卡完成判断及记录保存244.4人物动画状态机244.5游戏音效管理274.6场景搭建294.6.1使用ProGrid布局搭建294.6.2使用Post Processing增强画质304.7小结30第五章游戏UI设计与实现315.1关卡选择界面315.1.1关卡盒子的设计实现325.1.2关卡页码的设计实现355.2交互动画365.3多分辨率自适应375.3.1视口的自适应385.3.2UI的自适应395.4小结40第六章游戏测试416.1游戏功能测试416.2资源占用测试416.3小结42总结.43参考文献44致谢.45第一章 绪论1.1 选题目的和意义
3、在众多类型的独立游戏中,对游戏行业影响最深的,让人印象最深刻的,频频出现神作的游戏类型的正是解密游戏。“从好奇探索获得成就/奖励”这是解密游戏的一大特性,是解密游戏的娱乐性来源,在这一过程中人们的压力得到了适度的累积和释放。人从一生下来就喜欢求知、探索、并尝试着去改变环境,简称互动。解密游戏只是将这个过程抽象化并合理设置限制和反馈,让玩家可以用较低的成本体验互动乐趣,通关后获得更大的成就感。解密游戏从上世纪70年代就已经开始了,在当时缺乏图形界面下还是文本解密冒险的游戏,随着计算机科学技术和图像技术的发展,加上鼠标的普及带动了“point and click(点击)”类解密游戏的发展。然而好景
4、不长,这股解密游戏的大浪潮就退去了,衰落的原因有很多,其中一个重要原因就是传统的解密套路被挖掘得一干二净了,从而导致玩家出现了很严重的审美疲劳。直到行尸走肉、纪念碑谷等新式解密玩法的出现才让这种游戏类型重新发展起来。通过这段发展史的回顾,可以发现,西方的解密游戏一直向降低解密环节的难度发展。归根结底,绝大多数解密游戏的玩家的乐趣更在于游戏里的其它元素,例如剧情、恐怖、探索等等,而并不都是冲着解密环节去玩的。Unity3D是近几年非常流行的一个专业游戏开发引擎,不仅提供了充足的特性,还带有极其友好的可视化编辑器 。对设备的要求低且最多可以支持超过十个主流平台发布,大大降低开发时间。因此不少游戏开
5、发者选择U3D引擎,尤其在2019年移动端市场超过半数是U3D开发的,看得出市场需求量大,前景广阔。因此本课题将基于U3D设计一款更加符合现代玩家的审美和体验的解密游戏,并对Unity游戏市场进行了解和技术的掌握,给玩家带来更多乐趣的同时希望能在未来游戏市场游刃有余。1.2 论文组织结构第一章:绪论,主要阐述了本课题的开发背景和意义,并且对国内外解密游戏的研究进行阐述。第二章:开发工具介绍,简要的介绍整个课题研究需要用到的主要软件,插件和Unity3D进行介绍,并且分析使用这些软件,插件的好处。第三章:对本课题研究开发的游戏进行设计介绍。第四章:游戏系统功能的设计与实现。第五章:对基于UGUI
6、的界面设计与交互实现进行介绍。第六章:对游戏的进行测试,打包封装。第七章:对整个课题研究进行总结以及对未来游戏开发行业的期望。45第二章 开发工具介绍2.1 Unity3D游戏引擎2.1.1 Unity3D引擎介绍Unity3D是一个专业的跨平台游戏开发工具,是一个全面整合的专业游戏引擎。截止2018年,该引擎已扩展支持超过25个平台,开发者无需进行太多的修改就可以一键发布在多个平台。该引擎可用于创建三维(3D)、二维(2D)、虚拟现实(VR)和增强现实(AR)游戏,以及模拟和其他体验。除开发游戏外,已经被很多其他行业所采用,例如电影、汽车、建筑和工程等行业。主要编程语言为C#。2.1.2 U
7、nity3D常用组件组件(Component)就是将一些具有功能性的代码封装成一个类,当我们把这个组件挂载到游戏物体上,等同于对这个类进行实例化,变成了具有这个功能的对象实体,那么这个游戏物体也就具有了这个对象所具有的功能。自己编写的脚本只要继承于MonoBehaviour基类也是一个组件。以下是Unity3D提供的常用组件:表格 2.1.2 常用组件组件名描述Transform组件游戏对象生成时自动附加的必带组件,用于控制其位置、旋转和缩放。Collider组件碰撞器,对游戏对象进行碰撞检测,以及实现碰撞的效果。Collider组件针对形状需求不同有Box Collider、Mesh Col
8、lider和Capsule Collider等等,开发者可以根据不同的形状需求进行选择。AudioSource (音频源组件)用于控制播放音频剪辑(AudioClip)资源,相当于一个音响。ParticleSystem(粒子系统组件)粒子系统就是调味料,可以给乏味的游戏对象增添特别的“味道”。粒子系统一般在预设的空间内的随机位置发射一定数量的粒子,可以具有方形或球形等形状,当设定的寿命到期时,系统会破坏粒子,再循环生成新的粒子。2.1.3 Unity3D的生命周期函数Unity3D作为一个面向对象的游戏引擎,生命周期是Unity游戏开发的重要思想。游戏中的每一个物体,脚本都是对象。每一个对象都
9、有它的生命周期,从产生到销毁,中间经历一些特殊事件、一些循环往复的事件。MonoBehaviour类是Unity提供的一个基类,生命周期函数都是由这个基类设定好了,所以凡是继承了这个类的脚本都具有生命周期。如表格2.1.3为比较常用的生命周期函数。表格 2.1.3 生命周期函数函数名描述Awake初始化函数,在脚本被实例化的时候就会被调用,不管脚本是不是enable,在整个生命周期只会被调用一次。Start在对象第一次enable之后进行调用,且只会被调用一次。一般用作变量的赋值,初始化。FixedUpdate/Update这两个事件在生命周期就像人的心跳,每一帧都会进行调用。FixedUpd
10、ate为固定时长,由于刚体的物理运动一般都与时间有关的,所以往往在FixedUpdate()中进行处理。Update每一帧都在调用,所以它和FPS的有关的,同一个Update()在60FPS和30FPS所执行的次数就不一样了。受不同设备性能影响,同一个游戏在不同机器上效果不一样,有的快有的慢。2.1.4 UGUI(Unity官方图形用户界面组件)UI设计是游戏设计中十分重要的一部分,好的UI不仅让界面更为舒适美观,还要让交互更为轻松自如。本课题设计主要使用UGUI进行游戏界面以及交互的设计。UGUI是Unity4.6以后推出的一套UI系统。新的UGUI系统拥有直观的操作性,无需编写脚本就可以将
11、UI元素放置在画面中。岩井雅幸.精解uGUI-Unity UI设计与开发从入门到精通M.中国青年出版社:中国,2017:51.前文说过Unity3D里每一个物体,每一个脚本都是对象,如无例外,UGUI系统的每一个UI元素都是游戏对象组成的。同时我们可以通过脚本的编写对功能进一步扩展。锚点(Anchors)功能是UGUI其中之一的重要布局功能,设定好各元素的Anchor Presets之后,游戏的UI界面就会在不同分辨率的设备下自适应调整。相比于第三方的NGUI系统,UGUI作为后起之秀,虽然功能不够完善,但是与Unity更深度的集成。同时,UGUI有着直观的操作性,自由的扩展性,灵活的布局自适
12、应性,是开发者的不二选择。2.2 C#语言C#是微软开发的一门语言,他们借鉴了Java中很多现代的编程特性,将其糅合到C+程序员所熟悉和习惯的语法当中。 Jeremy Gibson(杰里米 吉布森).游戏设计、原型与开发:基于Unity与C#从构思到实现M.电子工业出版社:中国,2017.p174相比于被Unity所弃用的UnityScript和Boo语言,具备全部现代编程语言功能的C#语言要高级得多。C#的这些特性:托管类型:托管代码的内存自动分配释放,程序员无需担心内存安全问题,更适合游戏的开发。强类型:强类型让代码编辑器可以进行实时的语法检查,同时强化了代码的自动补全功能,并基于前半部分
13、的代码为后面提供正确的选项。丰富的类库:拥有丰富的直接面向游戏开发的库,避免了重复造轮子,大大加快开发效率。使用C#语言开发非常贴切着Unity开发设定的目标,开发的壁垒也降低不少,是Unity游戏开发者首选的语言。2.3 JetBrains Rider 2019.2 Rider是JetBrains公司开发的一款快速强大轻量的跨平台C#编辑器,相比于Visual Studio,Rider不仅使用流畅不卡顿,还与Unity集成了双向通信,无需离开编辑起即可开始、暂停、逐帧运行。Rider还提供了2200多种实时代码检查,语法优化建议多,包括了Unity专用的代码检查和快速修复,有效的提高代码质量
14、,所以本课题将在Rider上完成全部代码的编写。2.4 DOTween 插件 DOTween是一款对Unity原生API进行扩展的面向对象的开源动画引擎。不仅速度快,而且非常高效,动画以缓存的方式进行存储和重用,避免了不必要的内存的分配。 Daniele Giardini.EB/OL.每一个动画都可以得到完全的控制,并且可以通过合并成序列创建一些复杂的动画。使用DOTween基本上能满足各种动画需求,非常适合入门的游戏开发者。2.5 ProGrids插件ProGrids可以让任何物体在移动的时候捕捉到世界栅格,帮助我们轻松的调整物体的准确位置和大小扩展的比例,使各个物体对齐且均匀的分布,大大提
15、高了每个关卡场景的搭建效率。2.6 小结 本章节主要介绍了在游戏设计开发中所用的Unity引擎简要的介绍,以及介绍了其他软件以及插件的用处和优点,希望能给同类开发者在软件插件上的使用带来帮助。第三章 游戏关卡设计介绍3.1 游戏简介游戏主角是一只精神小鸟,有着发光的脑袋和可爱的圆肚子,非常喜欢探险,在一次探险的时候掉进了神秘的机械世界,这里一个接连着一个的迷宫等着我们去解密。本游戏是解密类冒险游戏,多种类型的迷宫,玩家需要改变机关激活路径,引导人物穿过迷宫顺利到达终点,通往下一关。3.2 游戏关卡设计本游戏难度以循序渐进的方式设定,由易到难不会让玩家突然感到难度大增以至于动弹不得。玩家一旦经常
16、性的卡关,他们就会看攻略,看到攻略上的解法这么简单,感到羞辱的同时愈发怀疑人生了。谜题设计是关卡最重要的部分,增加谜题元素的同时加上变化,让游戏不会太过单一而枯燥。谜题可以通过独特的方式将游戏玩法和环境结合起来,并给玩家独特的回报,进而记得整个关卡,整个游戏。 (美)科(Co,P.),姚晓光,孙泱.游戏关卡设计M.机械工业出版社,2007:74.解密游戏都是一周目游戏,一周目游戏的性质则决定了玩家必须在一周目的流程中获得足够长的沉浸体验,他才能觉得他购买的游戏值回票价,然后回去给游戏打个好评。 李易航.这个最容易诞生神作的游戏类型,为何摆脱不了小众的命运?EB/OL.可知关卡的设计和策划是如此
17、重要。一般游戏都会有一定的新手引导,但对于解密游戏来说,关卡流程的本身就是教程,只需要告诉玩家如何进行操作就可以了,如图3.2.1本游戏的第一关卡以操作引导形式存在。图 3.2.1 关卡一操作引导如表格3.2,本游戏一共有十个关卡,有着不同类型的迷宫设计,迷宫的设计灵感大多源于生活,在其基础上再加以设计。表格 3.2 关卡设计关卡游戏截图设计说明Level2难度:在第一关过后,增加机关,进一步增添立体空间复杂度,起到渐进的作用。Level3难度:封闭的塔楼的设计,玩家需要观察外部知道内里的通道,不断爬升。Level4难度:黑夜模式,让本不太难的关卡增添难度,考验玩家的观察力的同时考验玩家的在前
18、三关的积累的经验。Level5难度:双层迷宫的设计,考验玩家的逆向解密的思维以及进一步考验玩家的空间探索。Level6难度:火山底部的主题,立体迷宫的设计,Level7难度:这一个关卡设计灵感来源于暗箱,玩家需要从不同的视角观察暗箱内部的空隙,连通内部的路径。Level8难度:镂空的塔楼,增添了关键的路径暗藏于内部,玩家需要找出才能走出迷宫。Level9难度:双面迷宫的设计,玩家需要从两个面来回穿插走出迷宫。Level10难度:有别于关卡7的暗箱设计,此关需要从外部解出机关,考验玩家的观察和思维的突破。3.3 游戏美术设计 随着科学技术的发展,计算机硬件和软件技术水平飞速地提升,人们对游戏美术
19、质量越来越重视,游戏美术设计的重要性也就逐渐凸显在本游戏中,综合对本游戏玩法和场景需求考虑,确定了方块为主要的美术风格。如表格3.2选取了较为精美的方块模型,搭建出不同主题的同时依然保持风格的统一,做好风格统一的把控有利于美术的设计方向不会偏移。本游戏关卡的迷宫主题元素也是比较多样:夏季、冬季、黑夜、金字塔、神庙、熔岩。3.4 小结 本章主要了对游戏进行简要的介绍,阐述了游戏关卡设计的重要性以及本游戏关卡设计的一些要点例如该类游戏教程的形式:关卡本身就是流程。列出了每一个关卡的截图、难度以及设计的灵感来源,以及对游戏美术设计质量以及风格统一的重要性。第四章 游戏实现在游戏开发设计中,需要有它基
20、本的游戏框架,让不同的功能结合使用。由于Unity3D作为一款游戏引擎,已经为我们在硬件API之上搭建了一层基于组合的架构 吴志达.一个基于Unity3d游戏引擎的体感游戏研究与实现D.中山大学,2012.。所以我们只需要根据游戏功能的需求搭建合理的游戏功能框架,在Unity3D原有组件的基础下编写额外所需的脚本,放入游戏物体中。Unity3D中所有的物体就像一个容器,装载着不同的Components,拥有着不同的功能属性,使得这些物体拥有自己的行为。如图4.1为本游戏脚本的类图。图 4.1 游戏脚本类图4.1 寻路系统的实现 在现有的寻路系统中,A Star寻路是一种比较传统的人工智能算法,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 谭庆标 基于 U3D 解密 游戏 设计 实现
限制150内