基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的多视角悬浮岛生存冒险类游戏的设计与开发.docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要随着近年来互联网技术的发展与进步,游戏产业也迎来了朝阳时期。经过深入了解和研究生存冒险类游戏在市面上的情况,结合目前游戏市场的热点和玩家兴趣,本课题从多维度、多功能、多创新的方面出发,在开发过程中考虑后期开发需求,结合使用框架以及模块化思维的功能逻辑,解决开发后期可能会带来的开发隐患。本项目通过UI部分结合其他部分进行开发。UI部分结构清晰、层级明显,结合使用MiniMVC和PanelMgr面板管理系统,可以很好地解决游戏UI大框架上的结构问题;通过射线的检测功能,设计了一系列的检测机制,利用射线返回的信息反馈并结合FSM有限状态机控制AI的行为,模拟出Unity中的导航系统,有效提高AI
2、导航设计的灵活度;并引入了ObjectPool功能,利用ObjectPool统一管理游戏对象的内存分配,合理回收再利用游戏对象资源。本项目基于游戏中出现的各种难题,通过研究和分析这些问题的特性,尽可能寻找出最佳的解决方案,实现游戏中各个模块的有机结合。关键词: 生存冒险 沙盒游戏 算法设计 Unity3D 体素建模.Abstract With the development and progress of Internet technology in recent years, the game industry has also ushered in a rising sun. After
3、in-depth understanding and research of the survival and adventure games on the market, combined with the current hot spots in the game market and player interests, this topic starts from the multi-dimensional, multi-functional and multi-innovation aspects, and considers later development needs in th
4、e development process. Use the framework and the functional logic of modular thinking to solve the hidden development risks that may be brought later in the development.This project is developed through the UI part in combination with other parts. The structure of the UI part is clear and the level
5、is obvious. The combination of MiniMVC and PanelMgr panel management system can solve the structural problems on the game UI framework; through the ray detection function, a series of detection mechanisms are designed to use the information returned by the ray Feedback and combined with the FSM fini
6、te state machine to control the behavior of AI, simulate the navigation system in Unity, effectively improve the flexibility of AI navigation design; and introduce ObjectPool function, use ObjectPool to uniformly manage the memory allocation of game objects, rationally recycle and reuse games Object
7、 resources.This project is based on various problems that arise in the game. Through research and analysis of the characteristics of these problems, the best solution can be found as much as possible to achieve the organic combination of various modules in the game.Key words: Survival adventure Sand
8、box game algorithm design Unity3D Voxel modeling 目 录第一章 绪论11.1选题意义与目的11.2文献综述11.3研究现状11.4创新思路2第二章 游戏功能与UI设计32.1背包系统32.1.1背包介绍32.1.2物品选项32.1.3物品拖拽42.1.4物品信息42.1.5 AI与建筑物背包42.1.6背包UI布局与设计52.1.7物品JSON数据52.2物品合成系统72.2.1物品合成系统介绍72.2.2合成系统UI设计72.2.3合成选项82.3工具栏82.3.1工具栏介绍82.3.2工具栏UI设计92.4物品操作提示92.4.1物品操作提示
9、介绍92.4.2物品操作提示UI设计92.5地图102.5.1地图介绍102.5.2地图功能102.6菜单选项112.6.1菜单选项介绍112.6.2菜单选项功能112.7面板管理器112.8主角基本控制122.8.1主角基本控制介绍122.8.2基本控制122.9建造模块132.9.1建造模块介绍132.9.2建造材料132.10场景资源142.11物理碰撞层级152.12游戏按键汇总16第三章 设计模式与核心算法183.1 MiniMVC183.2 场景加载203.2.1场景加载介绍203.2.2异步加载203.2.3异步加载实现203.3 内存与对象池223.3.1对象池介绍223.3.
10、2对象池实现223.4 AI控制233.4.1 FSM有限状态机233.4.2 射线检测实现寻路和避障253.5 接口与里式转换原则283.5.1 接口与里式转换原则介绍283.5.2 手部控制权283.5.3 可交互物体293.6 工具类30第四章 游戏界面与环境展示324.1 游戏主界面324.2 加载界面324.3 游戏地形334.4 资源获取334.5 UI面板334.6 建筑物34结论35参 考 文 献36致谢37广东东软学院本科生毕业设计(论文)第一章 绪论1.1选题意义与目的选择该选题的目的主要有两大方面,一个是希望将自己在大学三年时间所学的知识尽量发挥出来,另一个是,在这个基础
11、上,通过这个研究,学习更多的新知识,在这个选题当中,学过的与未学过的知识各占一半,很适合作为研究课题,要知道,如果把目标设定得太高,在选题研究过程中很容易因为受挫,导致自信心大受打击,以至于该研究后面的工作受到影响,但是,把选题设定得太过简单也不行,这样学不到什么知识,更说不上研究了。综合考虑之后,设定了一个较为合理的难度,符合跳一跳,够得着。在项目中模块设计实现过程中,我给自己加了一些限制,尽量使用设计模式去优化功能代码,提高代码利用率,为了提升自己的呈现开发能力,在项目中用到大量的框架与设计模式。在程序员能力金字塔中,能力层次主要有三层,一是熟悉程序用法,能实现各种功能模块,但没有考虑程序
12、的框架性和拓展性;二是在一的基础上,利用框架,设计模式等程序设计思想,提高代码质量,降低代码理解成本,为程序拓展性做好准备,在项目后期越做越简单。三是计算机图形学,我自己也在努力往这边去努力,虽说在大学期间有相应的计算机图形学基础知识,但真正想了解到它的精髓,还需要大量时间和精力,学习很多数学与物理知识,会用到许多高深的数学与物理计算,本次课题也算是由二阶段到三的一个小过渡。1.2文献综述游戏中主要的控制方式是第一人称与第三人称控制,所以参考大量的第一人称游戏文献,特别是FPS类型的游戏,我本身也玩过不少的第一人称射击游戏,也算对该类型的游戏较为熟悉,大部分射击类游戏的操作控制方式大同小异,在
13、现在的市场上算是很成熟的玩法,所以可以大量参考他们,来优化操作与手感体验。选题中有网络模块,支持多人在局域网中进行联机,也是参考不少文献,了解主流做法,结合自己所学,输出最优方案。在游戏玩法上,我采用的是生存冒险式的玩法,也就是说,玩家可能不会长时间呆在一个区域,通过不断探索未知领域,刺激玩家新鲜感,这里参考了冒险类与漫游类的游戏。1.3研究现状该研究分为三个阶段,前期功能制作阶段,中期功能调整及拓展阶段,后期功能优化体验优化阶段。目前研究处于中期阶段,选题中大部分的基本功能已经实现出来,因为该选题包含较多的模块,在开发前期,将其中各个功能分成具体的模块,这样做有什么好处呢?一是思路清晰,适合
14、整理流程,游戏中涉及到大量的功能模块,如果不进行相应管理,不仅容易乱,而且不利于开发;二是用到程序开发的框架思想,设计模式,通过使用前人总结的经验,能快速梳理功能,将每个模块独立开,围绕具体的功能进行开发;三是主要的,也是最重要的目的,在程序设计中,有四大核心思想:高内聚,低耦合,易拓展,可移植,虽说是四大思想,其实他们之间相互联系,相互促进,是衡量一款程序设计项目重要评估标准,所以,在该选题中由大到小,细分了好几层,先是UI(2D)与3D,客户端与服务端,然后分场景,再分大模块,再到小模块,或许这样看起来貌似操作起来很繁琐,但对于一个比较大的项目来说,准备工作得做足,正所谓万丈高楼始于基石,
15、为其不断添砖加瓦,像乐高积木一样,由部分到整体,慢慢呈现出来。1.4创新思路该选题主要的创新在于场景设置上,场景的大背景是天空,游戏场景主要发生在空岛上,这些空岛由于未知的能量波动,被推上天空,并且维持了相当长的一个时期,空岛悬浮于空中的主要原因是磁悬浮原理,主角为了探明空岛维持长时间悬浮的真相,前往各个空岛,了解空岛的内部构造和它与外部的相互作用。为了增加游戏中的不确定性,会在里边加一些随机元素,类似现阶段热门的Roguelike类型的游戏,增加游戏新鲜感。第二章 游戏功能与UI设计2.1背包系统2.1.1背包介绍背包用于放置并存储角色拥有的物品,可随时通过按键【I键】打开背包界面,查看自身
16、所拥有的物品。关闭背包的方式有两种:一是用过再次使用按键【I键】关闭;二是通过退出键【Esc键】关闭背包。背包存储物品的数量不限,且每个物品在同一物品格子中可无限叠加,大大增加物品存储的便利性,玩家无需担心背包溢出而导致一些物品无法及时存储起来。2.1.2物品选项物品最多有4中操作选项,可通过将鼠标悬停在对应物品上,使用【鼠标右键】打开该物品的操作选项。这四种选项分别是:使用、转移、拆分和丢弃。为了提高用户体验,在物品无法执行一些操作的时候将对应操作置为灰色,提醒玩家无法进行该项操作,否则正常状态显示。除此之外,给常用的操作选项配置了相应的快捷键,鼠标悬停在某一物品上,按对应快捷键,可快速对该
17、物品执行对应操作。图2-1 物品选项表2-1 物品右键选项操作项快捷操作(快捷键)备注使用【E键】使用该物品,比如果子,果子是食物,可用使用按钮食用果子。转移【T键】转移该物品至其他对象背包、操作台或储物箱中。拆分无拆分物品是在游戏当中经常使用的操作,由于物品叠加在一起,当玩家需要丢弃部分物品,或是将部分物品存储到储物箱中时,可使用该操作对物品进行拆分。拆分默认拆分出当前数量的一半,可手动修改拆分的数量。丢弃【O键】将不需要的物品丢弃。2.1.3物品拖拽转移物品:可通过鼠标左键拖动物品至其他有存储功能的背包上,如储物箱,这时相当于转移该物品至储物箱中。放置至工具栏:许多物品需要放置至工具栏中才
18、能使用,通过拖动物品放置至工具栏的槽中,以便对其进行使用。如武器类型的物品:斧头,只有将其事先放到工具栏,然后再进行使用。2.1.4物品信息在玩家刚开始接触这个游戏时,并不对每个物品的作用十分了解,所以需要提供对应的信息给玩家,以便增加玩家对游戏物品的了解。将鼠标悬停在某一物品上就会弹出信息小窗口。物品信息包括:物品名称、物品描述和物品合成信息(物品合成所需材料、所需数量和已拥有的数量),只有可合成的物品有物品合成信息,如斧头这种,而像木头这种原材料无该信息。物品信息窗口做了屏幕防超出处理,窗口默认显示在鼠标悬停左下方,当遇到右侧或下方显示空间不足时则会进行相应的显示位置改变,提高游戏体验1。
19、图2-2 物品提示信息2.1.5 AI与建筑物背包AI背包:不单单是主角才有背包,像游戏的动物也拥有自身的背包,玩家可通过靠近对方,使用按键【E键】即可打开对方背包,查看物品,或进行某些操作。打开对方的同时默认会打开主角的背包,以便进行物品交换等操作。关闭背包的方法同主角背包。建筑物背包:储物箱或工作台等具备存储物品功能。2.1.6背包UI布局与设计背包共有两个,分为上下两处,上方为主角的背包,背包内的物品只存储主角拥有的物品。下方为公共背包,除了主角以外,其他所有具备背包功能的物品展示都应用该公共背包。公共背包默认隐藏,只有在打开对方背包时才会显示出来,并且在左侧标题位置显示其对方名称。两个
20、背包采取纵向排列,但由于受屏幕大小限制,如若平分两处背包大小,则显示的内容有限,且显得十分拥挤,所以这里采用了动态布局。在两个背包设置了进出鼠标事件,检测当鼠标处于某一背包时,该背包所示内容变大,同时另一背包变小,这一过程采用动画平滑过渡,以免显得突兀。采用该设计巧妙化解了屏幕空间不足的问题2。背包内部采取格子布局,横向最多六个格子,纵向没有数量限制,当纵向物品数量超出则会在背包右侧自动显示滚动条。图2-3 背包UI布局 2.1.7物品JSON数据游戏中存在大量数据,而这些数据通常会保存成文件形式,在载入游戏时再从文件中加载进来,变为游戏数据。在本文中,物品存储在*.txt文本文件中,文件内存
21、储的格式严格按照JSON数据格式进行填写。这样安排的好处是能够统一管理同种类型的数据项,不同类型的数据项存储在不同的文件中,方便后期的增加、删除以及修改数据项等操作。以物品JSON数据文件为例,本文使用物品信息JSON数据文件(InventoryItemInfoJsonData.txt)存放所有关于游戏物品的信息。文件中每条数据包含以下几种信息:ID、EName、Name、Info和Materials。表 2-2 物品JSON数据中数据项含义信息类型信息含义ID物品ID。物品的唯一标识符。EName物品英文名称。Name物品中文名称。Info物品描述信息。Materials物品所需合成材料。格
22、式如下:物品1ID|物品1数量|物品2ID|物品2数量。例如:1001|5|1002|8,则说明该物品所需合成物品有两种,1001物品需要5个,1002物品需要8个,以此类推。信息用“|”隔开。若该项为null则代表该物品无法合成。表 2-3 物品JSON数据序号IDENameNameInfoMaterials11001Grass草富含纤维,可用作食物、饲料或合成材料null21002Tree木材砍伐树木后获得,可供建筑及制造器物用的材料null31003Stone石头质地坚固、脆硬。可用来制造石器及建筑null42001BaseStone地基是建筑的基础,很多建筑需基于地基建造1001|8|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3D 视角 悬浮 生存 冒险 游戏 设计 开发
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内