基于unity3d的塔防游戏的设计与实现.docx

上传人:b****4 文档编号:5519438 上传时间:2022-12-18 格式:DOCX 页数:38 大小:1.60MB
下载 相关 举报
基于unity3d的塔防游戏的设计与实现.docx_第1页
第1页 / 共38页
基于unity3d的塔防游戏的设计与实现.docx_第2页
第2页 / 共38页
基于unity3d的塔防游戏的设计与实现.docx_第3页
第3页 / 共38页
基于unity3d的塔防游戏的设计与实现.docx_第4页
第4页 / 共38页
基于unity3d的塔防游戏的设计与实现.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于unity3d的塔防游戏的设计与实现.docx

《基于unity3d的塔防游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于unity3d的塔防游戏的设计与实现.docx(38页珍藏版)》请在冰豆网上搜索。

基于unity3d的塔防游戏的设计与实现.docx

基于unity3d的塔防游戏的设计与实现

 

基于unity3d的塔防游戏的设计与实现

摘要

塔防,即炮塔防御(TowerDefence),也统称TD,指一类通过在地图上建造炮塔或类似建筑物,以阻止游戏中敌人进攻的策略型游戏,要有阵图。

塔防受众很广,游戏模式简单而且可玩性极强,时至今日,塔防在游戏应用中依然是最热门的下载类型之一,比较经典的像《植物大战僵尸》。

本设计使用当前流行的跨平台游戏引擎Unity3d,编程语言为C#。

在游戏中,玩家可以在任何空白的地块上建造各种防御塔用于攻击不同类型的怪物,怪物会按照预定的路线前进,当进入目的地的怪物到达一定数量后游戏会失败;当进入目的地的怪物没有到达指定数量且所有怪物都被击杀后游戏通关。

使用Unity3d引擎来设计让UI、游戏地图的布置大幅简化。

并通过使用拓展性强的类,使得开发者能快速添加新的怪物、防御塔等,提高开发效率的同时,还降低了游戏的开发成本。

本文主要从选题背景与意义、可行性与需求分析、游戏设计与功能实现、测试等四个方面,按照制作的流程对本次设计进行论述,对开发的思路、实现以及实现过程中的主要问题都予以描述记录。

关键词:

游戏;塔防;Unity3d;PC

 

DesignandImplementationofavirtualcitybuildinggame

Abstract

Towerdefense,thatis,turretdefense,alsoknownasTD,referstoakindofstrategicgamethatblockstheenemy'sattackinthegamebybuildingturretsorsimilarbuildingsonthemap.Towerdefensehasawideaudience,simplegamemodeandstrongplayability.Today,towerdefenseisstilloneofthemostpopulardownloadtypesingameapplications,suchastheclassic"Plantsvs.Zombies".

Thisdesignusesthecurrentpopularcrossplatformgameengineunity3d,andtheprogramminglanguageisC.Inthegame,playerscanbuildvariousdefensetowersonanyblanklandtoattackdifferenttypesofmonsters.Monsterswilladvanceaccordingtothepredeterminedroute.Whenthenumberofmonstersenteringthedestinationreachesacertainnumber,thegamewillfail.Whenthenumberofmonstersenteringthedestinationdoesnotreachaspecifiednumberandallmonstersarekilled,thegamewillpassthecustoms.Useunity3denginetodesignandsimplifythelayoutofUIandgamemap.Andthroughtheuseofexpandingclasses,developerscanquicklyaddnewmonsters,defensetowers,etc.,improvedevelopmentefficiency,butalsoreducethedevelopmentcostofthegame.

Thispaperselectedtopicbackgroundandthesignificance,feasibilityandrequirementanalysis,gamedesignandfunctionimplementation,testing,andsoonfouraspects,accordingtotheproductionprocessofthisdesignisdiscussed,thedevelopmentideaandthemainproblemsintheprocessofimplementationandtheimplementationofallrecordsshallbedescribed.

Keywords:

Virtualgame;Unity3Dgameengine;Theinteractiveofgames

1前言

Unity,也称Unity3D,是近几年非常流行的一个3D游戏开发引擎,跨平台能力强,使用它开发的手机游戏数不胜数。

[8]Unity3d是如今游戏开发过程中比较流行的虚拟现实和跨平台游戏开发的虚拟交互式引擎。

这几年,不仅Web应用、移动设备的App应用等得到迅猛发展,而且软件开发模式及其管理也发生了较大的变化。

[9]Unity3d引擎为游戏开发者提供了易用的可视化编辑器、资源导入导出、动画与物理系统、光照与音效系统以及对多达21个平台的发布支持等等的功能。

除此之外,在Unity3d从发布至今的多年发展中,网络上对于开发者提供的教材文档十分的丰富,官方的AssetStore里面也提供十分丰富多样的插件,由而多年来Unity3d引擎深受开发者的喜爱、逐步成为全球开发者普遍试用的交互式引擎。

1.1论文结构安排

本论文共有六章。

结构安排如下:

第一章:

对游戏现状和发展前景、项目的研究目的和意义进行了简要介绍。

第二章:

对此项目的可行性分析,包括技术、经济、操作三个方面,并做出总结。

第三章:

对游戏的概要设计和游戏的主要功能进行介绍。

第四章:

对游戏的类的详细阐述,介绍了游戏功能的具体实现,对游戏架构的各个部分与其相对于的代码部分进行分析。

第五章:

对游戏进行测试,包括测试的方法与测试的功能,并对此作出总结。

第六章:

总结本次项目的实现过程与体会。

1.2研究的目的与意义

随着智能化电子产品的普及,游戏产业已成为经济市场中增长速度最快的热点,近几年来,Android平台游戏以及Web的网页游戏迅速发展,已经成为带动游戏产业发展的中坚力量。

[10]知识经济的核心内容之一是创意经济,创意经济也是知识经济的重要表现形式,可以说,没有创意,就没有新经济。

作为文化创意产业中重要的部分,游戏设计是商品生产与文化艺术创意的一次碰撞下的产物,在中国的经济发展中,游戏产业占据着十分重要的的地位。

截至2015年上半年,中国游戏市场实际销售收入达到605.1亿元人民币,同比增长21.9%。

[2]

国内的首款自主研发的3d游戏是在2003年,相对于美国最早的第一人称3d射击游戏《重返德军总部》晚了十年左右,虽然目前国内3d技术日益加强,但毕竟起步较晚,与国外存在着不小的差距,只有少数大型的互联网公司能够从设计理念出发并应用到开发制作上,其余大部分游戏公司和游戏开发者依旧使用国外的游戏引擎,比较出名的有:

虚幻引擎、寒霜引擎以及Unity3d引擎,要想开发一款优秀的游戏,人工智能必不可少。

[1]不过,随着智能化设备的快速普及,现阶段国内的游戏市场竞争很激烈,尤其是移动端,自2017年国内移动游戏市场进入黄金时代以来,游戏APP从种类到数量皆呈现爆发式增长,玩家人数与日俱增,涵盖的玩家年龄段也越来越广。

2可行性研究

2.1技术可行性

本设计基于Unity3d引擎,采用C#开发脚本,C#是由Microsoft公司开发的一种面向对象的编程语言。

作为使用.NETFramework的Windows和Web开发人员无可争议的首选语言,C#语言提供了VisualBasic的简单易用性,同时也提供了Java和C++语言的灵活性和强大功能。

[4]目前比较流行的开发引擎有Unity3d、Cocos2d-x、UnrealEngine3等。

虚幻3引擎具有高优先级的动态演示管道和其他演示效果,但对多核CPU的支持很差,而且大多数插件都必须付费,而且国内这方面的学习资源也较少,这对学生个人开发群体来说不是很合适。

但是Cocos2d-x是为2T游戏开发的游戏引擎,不适合这种设计。

与前两个相比,Unity3d在技术支持和技术可见性方面更适合像作者这样的学生开发人员。

自从2012年Unity正式进入中国市场以来,中国越来越多的业内知名企业开始将选择Unity引擎开发作为其移动端战略部署的重要组成部分,使用Unity开发的诸多游戏都在市场上大方异彩。

[6]Unity3d是一个综合性的游戏开发工具,用于创建交互式多媒体内容,如3D视频、视频、实时3D动画等。

同时,unity3d拥有免费的开发资源和免费的强大插件,非常适合常用的3D类应用。

如果你正在为寻找合适的开发工具而焦头烂额时,不妨尝试一下Unity3D这个引擎。

如果需要制作2D/3D的游戏产品,那么它是一个不可多得的游戏引擎工具;如果需要制作AAA级画质的数字交互产品,那么它可以为你提供高效优质的渲染效果。

[5]

从上可以看出,unity3d加入可视化引擎视图为初级的开发者提供了很大的方便,由于其能够将项目发布于多平台,它使开发者能够更加关注游戏技术的研究,而不是代码平台兼容性上需要时间问题的问题。

综上所述,本设计基于一个使用C#脚本开发的unity3d引擎,在技术上是可行的。

2.2经济可行性

此次塔防游戏设计是单机游戏,开发引擎使用的是Unity3d,使用的是免费的个人版,将游戏打包至PC或手机端上即可游玩。

此次设计的开发是独立开发,开发人员是笔者,没有团队上的开销,游戏所投入的成本很低,主要集中在游戏资源(如模型、材质)的收集以及游戏本体的开发。

Unity是一款标准的商业游戏引擎,而商业引擎的主要特点有收费、封闭源码和功能强大。

关于收费情况,Unity的使用费用非常昂贵,最便宜的普通版许可证也需要400美元,加强版本为1500美元。

当然许可证的版本不同,引擎支持的功能也就截然不同。

具有加强版许可证的引擎的很多强大功能是有普通版许可证的引擎所不具备的。

但是从学习的角度来说,无须购买许可证同样可以进行,因为许可证更大的用处在于游戏制作完成后的打包与发布,不购买许可证制作的游戏是无法发售的,不过,单就学习而言,我们完全无须购买许可证,选择免费的Unity即可。

[7]

综上所述,本次设计在经济上可行。

2.3操作可行性

此次塔防游戏在操作界面采用极简的风格,操作十分的简易明了,unity3d引擎为游戏界面的设计提供了良好的设计平台。

游戏里所使用的图标如炮塔的图标皆取自炮塔本身使用的模型的贴图,在配合上与游戏界面风格相似的文本文字,游戏整体的风格是连贯一致的,玩家对游戏的操作仅仅只需点击或放大缩小,加上本次游戏规则采用传统塔防的游戏机制,因此玩家能够迅速掌握游戏要领,轻松便捷的畅游。

综上所述,本次设计在操作上可行。

2.4总结

本次塔防游戏的设计,在技术层面、经济层面以及操作层面三个层面上看,都具有高度可行性。

Unity3D引擎给此次设计提供了技术层面的支持,C#语言是脚本功能运行的保障;单机小游戏的设计规模使得个人独立开发成为可能,开发成本很低,经济上没有太大问题;而简单的操作和极简的风格在如今电脑、智能机普及的当下掌握起来不过几分钟,经典的塔防模式也降低了游戏门槛和学习成本。

综合以上论述表明,本次设计在基于Unity3D引擎下,使用C#脚本开发一款经典塔防类的游戏,是可行的。

3游戏概要设计

3.1总体概述

游戏题材:

经典塔防游戏

游戏类别:

策略类游戏

游戏玩法:

颜色不同的圆球形状的敌人从地图的蓝色正方体中进入地图,经过预设的黑色道路行进,进入地图的粉色正方体(即目的地),玩家需要在这些敌人行进的路线附近建造各种类型的防御塔,用以攻击经过的敌人,在敌人进入粉色正方体前将敌人击杀。

敌人有若干进攻波次,在每一波过后敌人都会变得更强,玩家也需要通过建造更多的防御塔或升级已有的防御塔来加强防御力。

当进入粉色正方体的敌人到达一定数量后,游戏会失败。

要想通关,玩家需顶住敌人的进攻,直到最后一波敌人被歼灭。

3.2游戏功能设计

本设计的主要功能包括:

游戏地图与敌人的行进路线、各种各样的敌人以及敌人的生成器、各种防御塔、资金的显示以及各种特效。

3.2.1地图与路线

游戏地图的构成要素包括:

可建造地块、敌人的行进路线、敌人生成位置、敌人进攻目的地。

图3.1游戏场景图

此图显示的视角即为游戏内摄像机的位置,其中,白色方格为可建造地块,即防御塔建造的位置,黑色道路为敌人行进路线,蓝色正方体为敌人生成器,游戏内的敌人均从此处生成并以此为行进路线的起点,而红色正方体即为敌人行进的终点,当敌人到达此处时,游戏宣布失败。

3.2.2敌人

此次共设计了五种敌人,外形皆以圆球形状,以不同颜色分为普通型(红色)、速度型(橙色)、极速型(黄色)、加强型(绿色)、Boss(蓝色)。

敌人最重要的属性,是敌人的血量、生成速度以及其行进速度。

图3.2各种类型的敌人示意图

以普通型敌人为标准,速度型敌人在行进速度和生成速度上有较强的提升,但同时弱化了它的生命值;而极速型敌人则更进一步的作此改变,因此,极速型敌人是游戏里行进速度最快、生成位置最密集的敌人,同时也是游戏里最脆弱的敌人,选用攻速快伤害低的机枪塔能对其进行有效的打击;而加强型敌人是敌人中的精英,在速度上只有较小的提升,但在血量上有极大的提升,与Boss不同的是,Boss只是单独出现,但加强型敌人是成群结对的,不过,其弱点于生成时间较慢,导致加强型敌人之间的间隔较大,阵型散乱,使用攻速慢伤害高的重炮塔,配合上能够造成减速效果的激光塔是打败加强型敌人的关键。

Boss,游戏最后的敌人,打败它是游戏通关的关键。

Boss的最大的特点就是其无与伦比的血量,但其行进速度是敌人中最慢的,且只单一出现,因此只需集中火力,尽量多的建造重炮塔配合激光塔,少建造机枪塔,尽可能加大对其造成的伤害。

打败Boss后,游戏宣布胜利。

3.2.3防御塔

此次设计中共有三种类型的防御塔,分别为机枪塔、重炮塔以及激光塔。

防御塔的属性有:

使用的武器系统、攻击伤害、攻击频率、子弹飞行速度、攻击范围、特殊效果。

图3.3机枪塔示意图图3.4升级版机枪塔示意图图3.5机枪塔购买图标

机枪塔是游戏中最廉价的防御塔,使用的武器系统是炮弹系统,虽然伤害不高,但其攻击频率高、子弹飞行速度快的特点能够有效对付移动迅速且血量低的敌人,而其廉价的特点能使其被大量建造,弥补其伤害低、攻击范围小的缺陷,将其放置在各个点位能对集群的敌人进行有效的拦截。

升级版机枪塔在原基础上大幅提升了其攻击频率,对攻击伤害、攻击范围也有小幅的提升。

图3.6重炮塔示意图图3.7升级版重炮塔示意图图3.8重炮塔购买图标

重炮塔是游戏中伤害最高、攻击范围最大的防御塔,使用的武器系统也是炮弹系统,其巨额的攻击伤害所付出的代价是其攻击频率的低下,巨大的炮弹飞行的速度也受到了影响,适合攻击移动速度较慢、生命值较高且单独行动或阵型间隔较大的敌人。

升级版重炮塔在原基础上大幅提升攻击伤害和攻击范围,攻击频率不变。

图3.9激光塔示意图图3.10升级版激光塔示意图图3.11激光塔示意图

激光塔是游戏中一种特殊的防御塔,它搭载了不同于机枪塔和重炮塔的武器系统——激光武器系统,该武器最大的特点在于它造成伤害的方式不是瞬时的,而是持续性的,且能够对正在攻击的目标造成减速效果,适合对付单独行动的或阵型间隔较大的敌人,不过,由于价格昂贵,且杀伤力较于重炮塔还是稍显不足,不适合大量建造,只需在几个关键路口建造即可,主要用于降低敌人的行进速度。

升级版激光塔在原基础上提升了攻击伤害与攻击范围,着重增强其对敌人的减速能力。

3.2.4武器系统

在此次炮弹系统的设计中,共分为两大武器系统,分别是炮弹武器系统以及激光武器系统。

图3.12重炮塔开火示意图图3.13激光塔开火示意图

炮弹武器系统是瞬时伤害的攻击系统,有攻击频率的属性,机枪塔与重炮塔皆搭载此攻击系统,是主要的武器系统。

激光武器系统是持续伤害的攻击系统,专为激光塔而设计,采用激光射线代替子弹和炮弹,能对目标持续造成伤害,最大的特点是其拥有减速能力,提供战术上的支持。

3.2.5特效设计

在特效设计方面,主要包括三大类:

动画类特效、粒子类特效、线渲染类特效。

动画类特效主要应用于游戏开始界面、玩家资金提示、防御塔升级面板、游戏结束界面等。

粒子类特效主要应用于防御塔的建造、炮弹武器系统、击杀敌人、升级和拆除防御塔等。

线渲染类特效专为激光武器系统服务,是实现激光武器系统的构成要素。

3.2.6各种UI

此次设计的UI包括:

游戏初始界面、游戏结束界面、升级面板、玩家资金面板、防御塔购买面板。

图3.14游戏开始界面示意图

图3.15游戏内场景示意图

图3.16游戏结束界面示意图

4游戏具体实现

4.1程序实现

4.1.1建造管理模块

类名:

BuildManager

说明:

控制游戏内建造防御塔、升级防御塔、拆除防御塔相关的操作。

方法:

voidChangeMoney()、voidStart()、voidUpdate()、publicvoidOnLaserTurretSelected()、publicvoidOnMissileTurretSelected()、publicvoidOnStandarTurretSelected()、voidShowUpgradeUI()、IEnumeratorHideUpgradeUI()、publicvoidOnUpgradeButtonDown()、publicvoidOnDestroyButtonDown()。

分析:

voidChangeMoney()记录了玩家资金的变化;voidStart()用于开启与防御塔升级界面相关的状态机;voidUpdate()用于控制防御塔的建造、升级、拆操作;publicvoidOnLaserTurretSelected()用于判断激光塔是否被鼠标选择;publicvoidOnMissileTurretSelected()用于判断重炮塔是否被鼠标选择;publicvoidOnStandarTurretSelected()用于判断机枪塔是否被鼠标选择;voidShowUpgradeUI()用于显示防御塔的升级面板;IEnumeratorHideUpgradeUI()用携程的方式来读取升级面板的显示与隐藏的变化并控制其隐藏;publicvoidOnUpgradeButtonDown()鼠标监听升级按钮的点击;publicvoidOnDestroyButtonDown()鼠标监听拆除按钮的点击。

4.1.2游戏进程管理模块

类名:

GameManager

说明:

控制游戏内菜单、场景切换、游戏流程切换。

方法:

publicvoidAwake()、publicvoidWin()、publicvoidFailded()、publicvoidOnButtonReplay()、publicvoidOnButtonMenu()。

分析:

publicvoidAwake()控制游戏开始时的各种操作如启动敌人生成器;publicvoidWin()控制游戏胜利时的UI显示与文本;publicvoidFailded()控制游戏失败时的UI显示与文本;publicvoidOnButtonReplay()监听游戏结束时“重玩”按钮是否被点击;publicvoidOnButtonMenu()监听游戏结束时“菜单”按钮是否被点击。

4.1.3敌人模块

类名:

Enemy

说明:

记录敌人各种属性,包括行进行为、承受伤害以及死亡销毁。

方法:

voidStart()、voidUpdate()、voidMove()、voidReachDestination()、voidOnDestroy()、publicvoidTakeDamage()、voidDie()。

分析:

voidStart()初始化敌人属性、控制敌人开始从起点移动;voidUpdate()更新敌人行进状态;voidMove()控制敌人移动;voidReachDestination()用于销毁到达终点的敌人,同时宣布游戏失败;publicvoidTakeDamage()控制记录敌人承受的伤害,并作出承伤行为;voidDie()敌人血量为0时销毁敌人。

4.1.4敌人生成器模块

类名:

EnemySpawner

说明:

控制敌人在起点生成、每一波次的生成时间、生成的敌人类型和数量。

方法:

voidStart()、publicvoidStop()、IEnumeratorSpawnEnemy()。

分析:

voidStart()用于启动敌人生成器;publicvoidStop()停止敌人的生成(当游戏失败时);IEnumeratorSpawnEnemy()用携程控制每一波生成的敌人,判断条件以作出是否进行下一波敌人的进攻,敌人全部被消灭时宣布游戏胜利。

4.1.5游戏菜单模块

类名:

GameMenu

说明:

控制游戏的菜单、场景加载以及其相关事件。

方法:

publicvoidOnstartGame()、publicvoidOnExitGame()。

分析:

publicvoidOnstartGame()用于加载游戏开始时进入游戏内的场景;publicvoidOnExitGame()控制游戏暂停与退出。

4.1.6可建造地块模块

类名:

MapCube

说明:

控制游戏的菜单、场景加载以及其相关事件。

方法:

voidStart()、publicvoidBuildTurret()、publicvoidUpgradeTurret()、publicvoidDestroyTurret()、voidOnMouseOver()、voidOnMouseExit()。

分析:

voidStart()初始化地块;publicvoidBuildTurret()将建造防御塔时的特效实例化并控制其显示时间;publicvoidUpgradeTurret()用于判断当前地块能否升级防御塔,并控制其升级行为和相关特效;publicvoidDestroyTurret()用于判断当前地块能否拆除防御塔,并控制其拆除行为和相关特效;voidOnMouseOver()监听鼠标悬停于地块上;voidOnMouseExit()监听鼠标悬停离开地块。

4.1.7防御塔模块

类名:

StandardTurret

说明:

控制防御塔的攻击行为。

方法:

voidOnTriggerEnter()、voidOnTriggerExit()、voidStart()、voidUpdate()、voidAttack()、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1