软件工程基于unity3D的求生游戏的设计与实现Word文档下载推荐.docx
- 文档编号:17782139
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:24
- 大小:7.87MB
软件工程基于unity3D的求生游戏的设计与实现Word文档下载推荐.docx
《软件工程基于unity3D的求生游戏的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件工程基于unity3D的求生游戏的设计与实现Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
随着生活水平的不断提高,科技发展速度迅猛,人们除了对生活品质有所追求外,对游戏娱乐等精神层面的品质也开始有所追求,有关游戏的各种信息量也成倍增长,庞大的游戏玩家群会对游戏的种类体验要求越来越多,想要玩到更多的新颖的游戏。
游戏与计算机硬件平台和互联网的发展,从最开始的简陋游戏,慢慢发展出各种各样精美的游戏产品,有游戏主机平台和台式机平台上接近电影画面的游戏大作,有即点击即玩的网页游戏,有移动平台上各种种类丰富的游戏,还有玩家佩戴特定设备玩虚拟现实游戏。
中国游戏产业规模总体收入达到3102.3亿元,玩家用户约为5.54亿人。
游戏产品越来越丰富,人们对游戏产品的要求、审美、娱乐性等各方面的要求越来越高。
如果游戏画面粗糙、游戏玩法单调或者游戏人物动作呆板,游戏趣味性少,这样的游戏产品很容易被流失玩家,甚至被市场淘汰。
2012年,Unity3D游戏引擎开始进入中国,因为Unity3D引擎对移动平台游戏的广泛支持,对新兴的虚拟现实设备的支持,开发者的学习成本较低,引擎使用的授权费低廉,受到资金实力薄弱的中小游戏公司的普遍欢迎,他们开始广泛地使用Unity3D引擎来开发游戏。
国内大型游戏公司看到第三方的游戏引擎Unity3D开发出来的游戏效果后也开始纷纷采用Unity3D引擎来开发游戏。
Unity3D引擎的广泛使用,加速了这项技术在中国国内的普及,中国游戏开发者成为全世界使用Unity3D引擎最多的国家。
Unity3D引擎中国游戏开发者注册量、游戏引擎使用活跃度、手机游戏引擎开发市场占有率等多项数据全球第一。
而Unity3D引擎公司总部所在地美国,在使用率等各项数据上反而处于第二。
游戏按照内容来分类,可以分为角色扮演、动作角色扮演,模拟角色扮演、第一人称射击、即时战略、冒险类、赛车竞速类、模拟经营类、体育类等。
生存游戏,属于游戏设计的一种元素题材,根据游戏设计者的核心玩法不同,可以归类到不同的分类中去。
游戏《绝地求生》,游戏玩法是每一局游戏有100位玩家参与,玩家被飞机空投到游戏地图的各个位置。
玩家需要在地图上寻找武器、物品,与其他位玩家展开搏斗,最终活下来的玩家才能获得最后的胜利。
这款游戏在核心玩法上强调使用武器射击,可归类为第一人称射击游戏。
游戏《绿色地狱》只将“生存”这一要素设计为核心玩法,玩家被扔进广袤又神秘的亚马逊丛林中,在这个绿色的地狱里求得生机。
玩家需要通过合作来获取物品,需要打猎、采集获得食物,根据游戏天气变化适应环境,其中的一些生物可能会攻击玩家,玩家需要狩猎鸟,鱼,蛇等动物活下来。
这款游戏的核心玩法是体验不同的环境,攻击遇到的威胁,生存下来。
1.2课题的研究意义
求生类游戏如今也越来越多,也是受到了很多人的喜爱,不同类型的求生生存游戏都有共同之处:
游戏的模拟性,如果说游戏世界是玩家另一个世界的话,那么求生生存类游戏就是能最大限度实现人类活在另一个世界的愿望,饥饿度等一切都很贴近现实,能更好的从娱乐中获取知识。
不仅如此,求生生存游戏的发展性、探索性、随机性都极大的吸引着玩家,玩家在游戏中可以不断的获得成就,就能更有兴趣的去探索去研究一些生存的技巧,实现边娱乐边学习,这样比普通的生存教学要有趣也有用很多。
此外,使用Unity3D引擎是因为Unity3D引擎在游戏开发市场上第三方授权的游戏引擎中市场占有率第一名,是很多游戏开发者首选的游戏引擎。
Unity3D引擎特性丰富,功能众多,开发出的游戏画面优美,是非常值得学习研究使用的游戏引擎。
每个游戏开发团队使用Unity3D引擎都有不同的方法。
本文研究使用Unity3D引擎开发生存类游戏,探索游戏开发的方法,缩短游戏开发的周期,解决游戏开发过程中遇到的常见问题,总结解决问题的方法,对使用Unity3D引擎来开发游戏有一定的意义。
1.3国内外发展现状
国外游戏产业起步较早,积累的游戏开发技术经验丰富,游戏产业十分成熟。
国外游戏公司开发生存题材的游戏时,在游戏引擎的选择上,使用公司自研的游戏引擎,或者第三方授权的Unreal引擎、Unity3D引擎,这个选择主要取决国外游戏公司实力和项目要求。
Unreal引擎也是国外游戏公司的重要选择之一,是很多3A级游戏大作的开发采用的引擎。
Unreal引擎画面效果逼真,程序运行效率高,使用它开发出来的游戏受到很多玩家的赞誉。
但Unreal引擎的授权费十分昂贵,这使得使用的都是属于大型游戏公司的行为。
后来出现的Unity3D引擎打破了这一局面,Unity3D引擎授权费低廉,在保持低授权费的同时,功能和画面不断发展和完善,画面效果慢慢接近了Unreal引擎,得到了国外中小游戏公司和个人游戏开发者的青睐。
而一些大型国外游戏公司的部分游戏产品也采用了Unity3D引擎来开发。
生存题材游戏是受到众多玩家喜爱的游戏,也是众多游戏公司设计游戏时考虑的重要元素。
最初的生存游戏,生存概念设计概念不太明确。
2009年,瑞典Mojang工作室推出了《我的世界》,这款游戏强调游戏的趣味性,玩家在三维空间中创造和破坏游戏里的方块,从而用方块来创造自己设计的建筑物。
该游戏没有华丽的画面,体现建筑生存的互动性。
2015年,澳大利亚BeamTeamGames游戏公司发行了《荒岛求生》,游戏的内容是玩家扮演一名飞机失灵流落到荒岛的乘客。
玩家要在荒岛上利用岛上的收集到的物品使自己活下去。
2017年,韩国蓝洞公司发行了《绝地求生:
大逃杀》,该游戏结合了第一人称射击的玩法,让众多玩家在一个游戏地图里捡拾物品、武器,互相搏斗,最终活下来的赢得胜利。
这又给生存题材游戏带来了不同的设计理念。
中国游戏产业与国外相比,出现时间比较晚,但是发展迅速。
最开始的游戏题材以古装、武侠、修仙、战斗为主。
生存题材的游戏重视程度没有那么高。
在国外生存题材的游戏火爆之后,中国的游戏开发者也加入了生存题材的元素。
2017年网易公司推出了游戏《荒野行动》。
2018年腾讯公司推出了游戏《绝地求生:
刺激战场》和《绝地求生:
全民出击》。
1.4论文的组织结构
第1章:
绪论部分,主要介绍了本论文的研究背景和意义、国内外研究现状和发展趋势和主要研究内容。
第2章:
Unity3D游戏引擎及相关技术概述,介绍了Unity3D的开发过程和常见Unity3D的编程模式。
第3章:
游戏总体设计,分析研究了游戏的需求,在此基础上进行了游戏模块的划分。
第4章:
生存游戏的设计与实现,在游戏需求分析的基础上,对各个模块的具体设计做出了实现,并且运行测试了游戏的功能。
第5章:
论文的总结。
第二章Unity3D引擎技术
2.1Unity3D编辑器介绍
Unity3D是由UnityTechnologies开发游戏引擎。
开发者使用Unity3D引擎,可以快速地制作2D、3D游戏。
Unity3D具有强大的跨平台特性,玩家从最开始的在台式机电脑上玩游戏发展到专门的游戏主机玩游戏,再到目前的移动平台上玩游戏、用虚拟现实设备玩游戏,游戏平台发展速度很快,Unity3D引擎可以到达一次编写,多种平台上发布运行。
目前Unity3D已经支持发布Windows、MacOS、Linux平台的单机游戏,iOS、Android等移动设备的游戏,HTCVive等虚拟现实设备平台上的游戏。
在游戏引擎开发市场上,还有很多著名的游戏引擎,例如Unreal虚幻引擎、cocos2D等。
这些游戏引擎中有些出现的时间比Unity3D诞生时间要早很多,也是大型游戏公司制作多款游戏作品知识和经验的积累,但是却被Unity3D后来居上,使得Unity3D引擎成为游戏引擎技术普及度最高的引擎,原因有很多,例如上手困难高,又或者是本身自带的游戏引擎脚本系统不完善,要求使用者使用C++编写游戏程序,编写程序难度相对较大,又或者是引擎本身的第三方授权使用费非常昂贵,让大部分的使用者望而却步。
而前者这些引擎的缺点正是Unity3D引擎所避免的。
Unity3D推出了资源商店,在资源商店中,Unity3D开发者可以购买3D或2D人物、动物、怪物模型,游戏场景环境、游戏道具、游戏交通工具、游戏音频、游戏脚本、游戏插件等各种游戏开发中用到的素材,而且价格相对低廉,另外有一些素材资源是免费提供的,特别适合中小团队和独立游戏开发者。
Unity3D有丰富的文档和官方视频教程,为初学者提供了快速上手使用的捷径。
同时开发者可以把Unity3D使用中的遇到的难题发布到社区中,会有资深的Unity3D使用者解答问题。
Unity3D不仅仅可以制作游戏,在其它行业也有广泛的应用。
在电影行业中,电影从业者用Unity3D制作动画电影,成功的电影短片有《BookoftheDead》。
该电影短片的成功,预示着使用Unity3D可以制作出自然真实的现实环境、逼真的光影效果、角色人物动作流畅自然。
在建筑行业,建筑工程师可以使用Unity3D制作建筑仿真和交互系统。
在机械行业,机械工程师用Unity3D制作机械系统的模拟和仿真系统。
此外在其它行业,如汽车、教育培训、医疗等,Unity3D也有使用。
优势:
Unity3D操作简单易上手[5]。
并且通用性强,支持多平台开发,可开发电脑端、手机端和主机端等。
拥有自己的商店平台,大部分插件与效果都可买到,大大提升了开发效率。
可以为我们提供了许多高性能的系统,例如灯光照明、自动寻路、粒子系统等。
劣势:
在国内起步晚,2012年才进入国内[5],较好的程序还是比较少。
程序的占用内存比较高,渲染性能比较低。
2.2Unity3D引擎的功能
2.2.1Unity地形编辑器功能
Unity3D引擎有一个功能强大的地形编辑器,使用者可以笔刷的方式雕刻各种山脉、峡谷、平原等地形效果。
另外,Unity3D地形编辑器还可以实现平铺地面材质纹理、通过笔刷大小的不同实现局部面积的种植树木、实现2D广告牌式的种草功能。
Unity3D地形编辑器支持设置地形的LOD功能,LOD是指摄像机与显示物体的距离越近,显示物体的网格模型效果越好。
远处的地形块使用稀疏的网格模型展示,近处的地形块使用密集的网格模型显示。
Unity3D引擎地形编辑器可以为游戏场景提供十分真实的、接近电影效果的地形展示游戏画面。
图2-1
Unity3D引擎的地形编辑器
2.2.2Unity3D引擎中的物理引擎系统
Unity3D引擎使用NVIDIA公司的PhysX物理引擎作为自己的物理系统。
使用物理引擎可以使得游戏中的对象模拟现实中的物理效果。
在Unity3D引擎中的物理引擎,提供了刚体、碰撞器、物理材质等设置。
给一个游戏对象加入了刚体组件之后,Unity3D引擎就会对它进行物理效果模拟,游戏开发者可以通过属性面板设置各种参数,也可以通过脚本来控制游戏对象的物理运动。
2.2.3Unity3D引擎中的脚本系统
Unity3D引擎中使用脚本系统来控制游戏对象的运行,原先脚本系统的开发语言有C#、Javascript,在后来的版本中,放弃了对Javascript的支持,只支持C#,这个是为了提高游戏编译运行的效率。
Unity3D引擎本身是使用C++开发的,如果直接要求引擎的使用者使用C++编写具体的游戏,会因为C++本身复杂难学难以使用,使得游戏开发者开发进度缓慢。
Unity3D引擎使用C#作为脚本系统之后,给游戏开发者带来快速开发,游戏接口良好,自动化管理内存等开发优点。
2.2.4Unity3D引擎中的动画系统
Unity3D引擎提供了一个功能强大的动画系统,可以为Unity3D游戏中的对象(包括人物、动物、怪物、游戏道具等)提供动画设置。
Unity3D引擎提供了人形动画重定向,把人物动作动画抽象成一个Avatar,导入一个做好动画的人物模型,可以把这个人物模型带的动画赋予另外一个没有动作动画的人物模型,这特别适合移动平台游戏的开发,因为这将极大的减少游戏发布的文件大小。
动画系统带有有限状态机功能,可以使用这个功能为模型的动画设置条件。
例如,一个人物有闲时动画、走路动画、攻击动画、跳跃动画,可以使用动画系统的有限状态机功能为这个人物模型分配何时触发各种动画的条件,并结合脚本代码实现。
Unity3D动画系统还提供了动画树功能,可以把模型带有几个动画融合,做出复制的动画效果。
另外Unity3D还提供了人物骨骼动画的调整和设置,利于动画师调整人物的动作,使得人物模型动画更加自然。
图2-2
Unity3D引擎的人形骨骼动画系统
2.3Unity3D游戏开发流程
游戏软件开发和其它软件开发过程类似,大致可以分为需求分析、代码开发、功能测试等几个阶段。
每个游戏开发团队使用Unity3D引擎开发游戏产品的开发过程都不相同,但是大致的过程类似。
在一个大型的游戏开发团队中,开发成员一般分为游戏策划、游戏美工、游戏程序员、游戏测试员等。
游戏策划首先分析目前游戏市场的行情,分析当下热门的电影、电视剧、小说、漫画、游戏的偏好和热点,确定将要制作的游戏类型,锁定该游戏的大致受众。
游戏策划向将来这款游戏的潜在玩家通过网络问卷、电话访谈、玩家联谊会、第三方市场调查公司等形式调研潜在玩家的需求。
游戏策划会根据上述分析手段和资料收集,在游戏公司开展头脑风暴会议,确定游戏内容和核心玩法,编写游戏策划书。
游戏美工根据游戏策划书,设计制作游戏人物、游戏场景。
游戏美工会细分为游戏主美、游戏原画师、游戏模型师、游戏地形编辑、游戏动画师等。
游戏主美会结合游戏策划书与游戏策划游戏主程序商量,确定这款游戏的美术风格。
游戏美术人物是偏向写实,还是趋向Q版,游戏场景风格是怀旧、科幻、朋克、现代、古代、卡通?
在游戏主美设计确定好游戏的总体美术风格之后,游戏原画师会根据设计风格要求,使用手绘或者电子绘图在Photoshop等平面绘图软件中设计好游戏的人物平面模型图、游戏场景模型图、游戏道具图等。
接下来,游戏模型师根据游戏原画师的人物场景设计稿,在3dsmax或者Maya等建模软件中进行游戏人物场景高模的建模工作,把游戏高模拓扑成适合游戏引擎用的游戏低模,游戏低模展开UV,绘制游戏模型贴画材质纹理等。
在游戏模型师制作好游戏模型之后,需要动作的模型,将会交给游戏动作师。
游戏中需要动画的模型一般是游戏人物、游戏怪物、游戏动物等。
游戏动画师会根据游戏策划书的需要和游戏程序员的要求,设计好游戏模型所需的动作动画,游戏动画的一般在建模软件3dsmax或者Maya中制作,有些游戏动画还会用到动作捕捉设备,力求获得更好的动作效果。
游戏模型制作好之后,会在建模软件中导出成适合Unity3D引擎所需要的FBX格式。
游戏地形编辑使用导出好的FBX文件在Unity3D引擎编辑器中,根据游戏策划书需求中关卡场景设计要求,结合游戏场景原画稿等,搭建各个游戏关卡的游戏场景。
游戏特效师会在游戏地形编辑创建好的游戏场景中,按照策划书的要求设计各种游戏特效。
游戏程序员根据游戏策划书,完成游戏所需要的功能。
游戏程序员一般可以分为游戏客户端主程序员、游戏客户端程序员、游戏服务端主程序员、游戏服务端程序员。
游戏客户端主程序员和游戏服务端主程序员根据游戏策划书,分析完成整体游戏所需要的功能,确定游戏客户端和游戏服务端的通信协议、通信接口。
在确定好整体游戏所需的功能之后,游戏客户端主程序员确定游戏客户端需要具体实现哪些功能,确定Unity脚本的架构,细分各个功能模块,列出实现各个模块的编码难易程度。
游戏客户端主程序员按照各个模块的编码难易程度,根据游戏客户端程序员的编码水平,分配给他们实现。
在确定好整体游戏所需的功能之后,游戏服务端主程序员确定服务端开发语言和游戏数据库的选型,确定游戏服务端需要具体实现哪些功能,细分功能模块,列出实现各个模块的编码难易程度,设计游戏服务端架构,确定游戏服务器上线部署架构。
游戏服务端主程序员按照各个模块的编码难易程度,根据游戏服务端程序员的编码水平,分配给他们实现。
游戏客户端服务端程序员在完成某一功能实现之后,还要进行代码的白盒测试。
游戏中所需要的声音,例如场景音乐、场景音效、人物对话配音等,一般游戏团队都外发给独立的音乐工作室完成制作。
游戏测试,一般是在游戏程序员在实现某一个功能完成白盒测试的基础上进行的黑盒测试。
游戏测试员会按照游戏策划书的要求测试游戏某一功能看看是否达到策划书所要求的效果,把游戏测试的结果反馈给程序员。
游戏策划书所确定的开发需求会在游戏的开发阶段不断更新变化,所以游戏需求分析、游戏美术制作、游戏代码实现、游戏测试几个阶段是不断迭代进行下去的,循环往复最终完成游戏所有功能。
图2-3Unity3D游戏开发流程图
2.4Unity游戏开发中的常见设计模式
在Unity3D脚本编程中,有几种的设计模式常常用于开发中。
2.4.1单例模式
在Unity3D项目中,有些游戏对象只能实例化一次,如果实例化了多个游戏对象,会导致游戏程序运行不正确。
只能实例化一次的游戏对象有,控制全局游戏对象的控制器类、场景切换管理类、游戏进度保存类等。
此时对只能实例化一次的游戏对象,采用单例模式。
在Unity3D项目中,挂载在某一个游戏对象上的游戏脚本类,都必需继承MonoBehaviour,不能自己用new实例化,实例化的过程是交给Unity3D引擎来完成,所以采用单例模式的游戏对象,生成单例引用时,不能用new实例化自己,可以使用FindObjectOfType来生成,这个生成的过程也是交给了Unity3D引擎来完成。
2.4.2事件模式
在一个相对简单的Unity3D项目中,游戏对象数量有限,游戏对象之间的交互之间采用调用对方的接口函数。
而在一个复杂的Unity3D项目中,游戏对象众多,游戏对象之间的交互采用互相调用对方的接口函数,会引起极大的耦合性,代码的复杂度增加,后期的维护困难,这种情况下一般使用事件模式解耦。
在Unity3D项目中,使用事件模式,要定义一个事件队列对象。
事件队列对象可以注册或者取消某一游戏对象对某个事件的关注,当某一事件发生时,事件队列对象会把这个事件发送给关注该事件的游戏对象。
例如游戏对象玩家和游戏对象敌人都关注了伤害事件。
当游戏对象玩家和游戏对象敌人发生打斗时,游戏对象敌人攻击了游戏对象玩家,此时游戏对象敌人发送给伤害事件给事件队列对象,事件队列对象把伤害事件发送给游戏对象玩家,游戏对象玩家接收到了伤害事件,并对伤害事件做出反应。
2.4.3MVC模式
MVC模式是指把软件系统分为模型(Model)、视图(View)、控制器(Controller)。
在Unity3D项目中,有些子系统是玩家用户与游戏UI交互较多的子系统,比如游戏装备子系统、游戏商店子系统,有些游戏项目,玩家用户主要与游戏的UI进行交互,例如《斗地主》等棋牌类游戏、《炉石传说》等卡牌类游戏。
这些子系统和这类游戏项目非常适合用MVC模式进行项目架构。
例如在游戏商店子系统中,把游戏道具划分为模型、把游戏道具购买、展示、交易等界面划分为视图、控制游戏道具的购买展示的游戏对象划分为控制器。
控制器在界面视图中展示游戏道具模型的具体信息和数量,控制游戏玩家购买游戏道具的过程。
按照MVC模式组织代码架构,代码的结构清晰,有良好的可维护性。
2.5本章小结
本章主要介绍了Unity3D的功能特性和使用Unity3D的开发过程。
总结了Unity3D几种常见设计模式。
Unity3D是一款优秀的开发工具,使得开发使用者可以高效完成游戏项目。
第三章游戏需求分析与设计
3.1游戏需求分析
3.1.1游戏故事背景介绍
本课题制作的游戏发生在一个森林中,玩家流落到了一个森
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 基于 unity3D 求生 游戏 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)