本科生毕业论文(设计)
题 目:
基于 Unity 引擎的射击游戏设计
姓 名:
陈晨
学 院:
信息科技学院
专 业:
计算机科学与技术
班 级:
计科 121 班
学 号:
19212116
指导教师:
车建华 职称: 讲师
2016 年 05 月 10 日
南京农业大学教务处制
目 录
Abstract: ...............................................................1
Key words ................................................................1
1.选题背景 ...............................................................1
1.1 行业现状介绍 ........................................................1
1.1.1 国内行业情况 ......................................................1
1.1.2 国外行业情况 ......................................................1
1.2 引擎分析与采用 ......................................................2
1.2.1 Cocos2D-x 引擎.....................................................2
1.2.2 UDK 引擎...........................................................2
1.2.3 Unity 引擎.........................................................2
1.3 研究意义 ............................................................3
1.4 开发流程 ............................................................3
1.5 论文的组织结构 ......................................................4
2.基于 UNITY3D 的游戏开发技术 ..............................................4
2.1 Unity3D 开发基本模块.................................................4
2.2 Unity3D 游戏开发框架.................................................5
2.3 Unity3D 游戏开发技术...............................................10
2.4 Unity3D 开发注意事项...............................................15
3.游戏逻辑实现 .........................................................15
3.1 角色漫游 ..........................................................16
3.1.1 玩家移动 ........................................................16
3.1.2 对象旋转 ........................................................18
3.1.3 坦克控制 ........................................................18
3.2 武器控制 ..........................................................19
3.2.1 信息输入 ........................................................20
3.2.2 武器射击 ........................................................21
3.2.3 武器 UI..........................................................21
3.2.4 武器切换 ........................................................22
3.2.5 武器装填 ........................................................23
3.2.6 坦克使用 ........................................................24
3.3 摄像机控制 ........................................................25
3.3.1 摄像机切换与追随 ................................................25
3.3.2 小地图 ..........................................................25
3.3.3 载具乘坐 ........................................................26
3.3.3 水下环境 ........................................................27
3.4 人工智能 ..........................................................27
3.4.1 AI 设计原则......................................................27
3.4.2 有限状态机 ......................................................28
3.4.3 AI 攻击..........................................................29
3.4.4 AI 寻路..........................................................31
3.5 全局控制 ..........................................................32
3.6 游戏优化 ..........................................................34
3.7 游戏测试 ..........................................................35
3.8 设计收尾工作 ......................................................35
3.8.1 游戏导出 ........................................................35
3.8.2 使用说明 ........................................................36
4.总结与展望 ...........................................................36
致谢 ...................................................................37
参考文献: .............................................................37
1
基于 Unity 引擎的射击游戏设计
计算机科学与技术专业学生 陈晨
指导教师 车建华
摘要:随着国内游戏开发技术的不断进步和游戏引擎的不断更新,基于传统技术和引擎制作的单机
游戏越来越难以为用户提供良好的体验,因此迫切需要采用新型的游戏开发技术和引擎来制作单机
游戏以丰富当前的单机游戏市场。本文结合游戏设计的基本要求,首先分析了射击游戏的发展历程
和游戏引擎的发展现状;然后阐述了一款局域网联机射击游戏的开发原理,总结了射击游戏开发流
程的部分要点,介绍了游戏中人工智能和局域网联机的实现等关键技术;最后针对游戏制作时会出
现的种种问题,给出了相应的解决方案,并利用C#开发了一款基于Unity3D的第一人称射击游戏。
关键词:射击游戏;Unity3D;局域网联机
Unity-based shooting game design
Student majoring in computer science and technology CHEN Chen
Tutor CHE Jian-hua
Abstract : With the continuous progress of the domestic game development technologies and the
constantly updated game engines, traditional technologies and engines based console games gradually
become more and more unable to completely feed people's entertainment requirement. So it's urgent to
adopt new technologies and engines to create console games in order to enrich the current species. Based
on the basic requirements of the game design, this paper firstly analyzed the development process of
shooting games and the game engine development status; and then expounded the principles while
developing a LAN online shooting game, summed up the main points of shooting game development
process, introduced the key techniques such as game artificial intelligence and LAN connection; Finally,
aiming at all sorts of problems in the process of game production, solutions were gave and a Unity-based
First Person Control shooting game was finished using C#;
Key words: Shooting Game; Unity3D ; VLAN
1.选题背景
以下对本次课题的选题背景、研究意义以及主要工作进行分析。
1.1 行业现状介绍
1.1.1 国内行业情况
2001 年是国产单机游戏市场的顶峰期,年度出品单机游戏 397 款,市场收入达到
2.8 亿元,全中国共有 50 家代理公司和超过 30 家研发公司。在 2015 年,尽管网游市场
甚嚣尘上显得国内游戏业日新月异
[1]
,但环顾整个市场可以发现商业化的国产单机游戏
只剩下四部:“仙剑奇侠传 6”、“御天降魔传”、“侠客风云传”和“轩辕剑外传”,
而且清一色的是武侠仙侠类。事实上由于严重的盗版问题,自 05 年以后同时受到国内
外两方面打击的国产单机游戏业就一直走在灭亡的边缘上。与生产“免费”3A 级大作
的外国公司相比,毫无竞争力的中国公司在破产和转向网游市场之间不得不选择了后者。
1.1.2 国外行业情况
2
1993 年,几个美国游戏爱好者组建了一个小公司,并推出了有名的《德军总部》系
列的第一部,得到了不错的反响。而他们接下来推出的《雷神之锤》更是轰动了整个社
会,该作在 90 年代初期便能达到几月内上亿美金的惊人销售量,这一堪比军火销售的
利润远远超过了常人对游戏产业的一般预期。从“使命召唤”到“光晕”,再到“战地”
和“半条命”等王牌系列,射击类单机游戏靠着一代代的改进,始终保持着国外游戏界
的支柱地位。
1.2 引擎分析与采用
在游戏开发早期,平均开发周期至少要在半年以上。有一部分原因是制作者缺乏经
验,更大的来由则是每写一款新游戏都要从头开始写代码导致的重复劳动。逐渐游戏引
擎作为一种工具,或者说一种代码架构基础便出现了,并帮助他们的编写者淘汰掉了不
借助引擎的同行。选择游戏开发的引擎,在各方面都要进行仔细的考察,以下对业内最
流行的三款引擎与进行选择的理由进行分析。
1.2.1 Cocos2D-x 引擎
Cocos2d-x 是由国内公司推出的一款开源游戏开发引擎,被用作开发跨平台的 2D
轻型游戏。Cocos2d-x 广泛地在跨平台移动游戏开发上得到应用,尤其是移植网页游戏
到移动平台。Cocos2d-x 在 2D 游戏领域获得了优异的成绩,是 IOS/Android 开发 2D 游
戏的首选
[2]
。
经过初步对 Cocos2d-x 引擎的使用发现存在以下问题:
(1)cocos2d-x 没有自主开发的代码编辑器,在试用了官方提供的第三方编辑器后发
现与引擎的兼容性并不算优秀,而且已经被宣布放弃。
(2)cocos2d 的更新换代过快,在短短的几个月时间内会频繁换代,官方给出的技术
文档更新节奏极慢,甚至出现过旧版本已经被撤下官网,新版本尚未发布的断档期。因
此网络上或者实体书店都很难找到相关技术资料,一旦出现问题将无法解决。
鉴于以上原因没有采用 cocos2d-x 引擎,不再考虑将目标定为 2D 游戏制作。
1.2.2 UDK 引擎
UDK 引擎是虚幻引擎 3 的免费版本。虚幻引擎可以说是目前最受欢迎的游戏引擎,
许多知名游戏包括质量效应、镜之边缘等等都是基于它开发。虚幻引擎在画面表现力上
堪称电影级别,渲染效果极佳,同时嵌入了大量辅助工具,包括面部动画插件、植被生
成插件等。UDK 如不被用作商用,是完全免费的
[3]
。
经过对 UDK 引擎的了解发现存在以下问题:
(1)开发成本过高,虚幻引擎的目标用户是大型游戏公司,并不符合项目需求,无论
是精力投入还是金钱投入都达不到要求。
(2)对美工要求极高,虚幻引擎在制作过程各方面中最侧重美术的表现力,如果没有
专业的美术人员很难达到标准。
鉴于以上原因没有采用 UDK 引擎。
1.2.3 Unity 引擎
Unity3D 是由 Unity Technologies 公司推出的一款功能强大的综合型游戏开发工具。
在最初 Unity3D 只能被用于 Mac 平台的游戏开发,并不广为人知。随着跨平台性能的进
步,Unity3D 逐步成为市场上最受欢迎的游戏引擎之一,它打破了大型公司专有引擎的
状况,为游戏行业的发展作出了有力的推动。Unity3D 是开放的开发框架,可以选用
JavaScript、C#、Python 等脚本语言进行开发,易于上手,十分适合个人开发者和中小
游戏公司用于开发 3D 游戏
[4]
。Unity3D 分为免费版和专业版,使用免费版进行学习并不