基于Unity3D的网络多人对战策略游戏的开发与实.doc
![资源得分’ 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的网络多人对战策略游戏的开发与实.doc》由会员分享,可在线阅读,更多相关《基于Unity3D的网络多人对战策略游戏的开发与实.doc(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要在如今的互联网时代影响下,人们的生活交往方式产生了变化。在学习工作的时间之外,游戏娱乐已经成为人们休闲娱乐的主要方式之一,尤其是在互联网高速发展的今天,网络游戏成为了越来越多人的选择。网络游戏不仅是人们放松身心的娱乐方式,也是沟通交友的有效途径,网络游戏已然成为人们休闲之时的很好选择,网络游戏的发展越来越受到重视。Unity3D是目前最流行的游戏开发引擎之一,以其低成本与高效率被多数游戏开发者所使用。本文主要描述了使用Unity3D开发基于网络的多人策略放置类型游戏的实际开发过程,以及开发过程中所应用到的网络连接与信息交流的原理与方法。在具体的开发流程中,主要描述了使用Unity3D作为开
2、发引擎的游戏客户端的开发,随后实现基于TCP的服务端的简单实现,以及服务端与客户端进行交流的实现,然后会实现游戏热更新的相关步骤,最后进行游戏的打包与功能的测试。为后续的同类型游戏开发提供借鉴与参考。关键词:Unity3D;策略类游戏;网络游戏AbstractUnder the influence of the Internet era, peoples way of life and communication has changed.In addition to study and work time, game entertainment has become one of the ma
3、in ways of peoples leisure and entertainment, especially in the rapid development of the Internet today, online games have become more and more peoples choice.Online games are not only a way for people to relax physically and mentally, but also an effective way to communicate and make friends. Onlin
4、e games have become a good choice for people in their leisure time, and the development of online games has attracted more and more attention.Unity3D is one of the most popular game development engines, which is used by most game developers with its low cost and high efficiency.This paper mainly des
5、cribes the actual development process of developing network-based multiplayer strategy placement type games with Unity3D, and the principles and methods of network connection and information exchange applied in the development process.In the specific development process, it mainly describes the deve
6、lopment of the game client which USES Unity3D as the development engine, then realizes the simple implementation of the server based on TCP, as well as the communication between the server and the client, then realizes the relevant steps of the game hot update, and finally carries out the packaging
7、and functional test of the game.It provides reference for the following development of the same type of games.Keywords:Unity3D; Strategy game;Network game 目录第一章绪论11.1选题的目的和意义11.2研究现状11.3论文组织结构1第二章开发工具介绍32.1Unity3D游戏引擎32.2C#开发语言32.3Visual Studio 201732.4MySQL数据库32.5Lua开发语言4第三章游戏设计53.1游戏玩法设计53.2游戏热更新5
8、3.3游戏登录界面63.3.1游戏大厅及房间73.4进行游戏83.4.1英雄和装备购买83.4.2英雄羁绊93.4.3升级英雄103.4.4战斗阶段113.5结算界面11第四章游戏实现134.1UI界面的实现134.1.1UI界面框架134.1.2UI子物体的获取144.1.3UI界面流程控制和管理154.1.4View层的实现174.1.5Model层的实现194.1.6Command层204.1.7全局管理层Faade214.2游戏资源224.2.1游戏属性数值224.2.2准备游戏资源264.2.3资源的管理274.2.4人物动画控制器284.2.5游戏人物的创建294.2.6AI控制脚
9、本314.2.7游戏中的装备364.3游戏场景的加载与初始化374.3.1游戏场景的加载374.3.2场景初始化384.4网络模块404.4.1游戏的同步方式404.4.2传输协议414.4.3协议的创建414.4.4协议的发送434.4.5协议的接收444.5服务端的实现444.5.1Socket的连接和交流444.5.2协议的接收464.5.3协议的解析474.5.4创建数据库484.5.5访问数据库494.6游戏热更新504.6.1版本服务器514.6.2热更新的实现51第五章游戏打包与测试545.1游戏打包545.2游戏测试55第六章总结57参考文献58致谢59广东东软学院本科毕业设计
10、(论文)第一章 绪论1.1 选题的目的和意义随着人民生活水平的提高和互联网终端硬件设施的改善,更多的人选择在线上游戏里释放生活中的压力,为自己的生活增添更多的乐趣,游戏产业因此飞速发展。在众多不同类型的游戏中,人们更趋向于选择网络游戏,所以网络游戏占据绝对主体地位。选择开发一款网络游戏能够获得更大的市场需求和更多的机会。计算机的持续普及和网络技术的不断发展,为网络游戏的发展提供了硬件基础和技术支持。一款好的游戏开发引擎可以帮助开发者快速将游戏构想付诸实现。在众多游戏开发引擎中的Unity3D,以它的多平台开发、上手难度低等特点脱颖而出。选用Unity3D作为开发引擎,可以帮助开发者更加便捷、高
11、效地开发出一款完整的游戏。由于Unity3D游戏开发的成本较低、周期较短、适应不同终端平台、支持多种游戏类型开发等特点,是许多游戏开发公司的首选,因此Unity3D开发等相关岗位拥有比较广阔的市场和发展前景。1.2 研究现状随着互联网技术和终端硬件的发展与完善、人们生活水平的提高,游戏市场越来越受到重视,游戏产业高速发展。2019年全球数字游戏总营收高达1201亿美元,其中的移动端游戏营收644亿美元。移动端游戏的收入占免费游戏营收的比重高达74%,在这其中腾讯的王者荣耀稳定强劲的营收占据了较大比重。这也体现了如今的游戏产业中,移动端网络游戏是比较受欢迎,有较大的市场和前景。1.3 论文组织结
12、构 论文从最初的构思到最终的完成,结合应用了游戏开发与网络交流相关的知识和技术,成功实现了一个基于Unity3D的网络多人策略游戏的开发,其中具体介绍了游戏框架设计以及游戏制作的关键步骤,也包括游戏的系统功能设计和一系列代码的编写。论文分为六章,各章节安排如下: 第一部分:绪论,主要阐述了该毕业设计制作的背景、相关课题的研究现状以及本设计的大概介绍; 第二部分:介绍了本文制作游戏使用的各类开发工具和Unity3D的大致介绍;第三部分:介绍游戏流程设计; 第四部分:游戏实践开发的关键步骤; 第五部分:对游戏进行打包并测试;第六部分:进行最终总结,回顾游戏的缺陷以及改进方法。第二章 开发工具介绍2
13、.1 Unity3D游戏引擎Unity3D是一款3D跨平台次时代游戏引擎。作为一款专业的游戏开发引擎,它有资深技术团队的支持、友善的图形化界面、丰富的拓展插件和多平台的导出配置。Unity降低了游戏开发门槛,引擎的上手难度较小,对新手比较友好。使用Unity开发游戏的成本低,开发周期较短,是大多数游戏公司和游戏开发者的最佳选择。2.2 C#开发语言C#是微软公司发布的一种运行于.NET Framework和.Net Core上的高级程序设计语言,是由C和C+衍生出来的面向对象的编程语言,拥有较高的运行效率和较强的操作能力,因为其创新性的语言特性以及面向组件的编程支持,成为了Unity3D开发选
14、用的主流语言。C#不仅能用于开发传统Windows环境中的应用程序,还可以用来开发原生的Android、iOS、Windows Phone和Mac App应用程序,甚至还能整合Azure或Hadoop技术开发云计算和大数据应用系统。5C#也提供了网络编程相关类库,因此也可被用于服务端的开发。2.3 Visual Studio 2017Visual Studio 2017(以下简称VS)是微软公司推出的集成开发环境。提供强大的调试和性能分析工具,快捷地查找和修复错误的方式,强大的库调用和云集成,为Unity3D游戏开发提高了效率。2.4 MySQL数据库MySQL是由瑞典MySQL AB公司开发
15、的一个关系型数据库管理系统。因为其关系型的特点,存储时将数据保存在不同的表中,提高了读写速度和整个数据库的灵活性。也拥有体积小、速度快、运营成本低等优点,是中小型项目开发时数据库使用的较好选择。2.5 Lua开发语言Lua是由巴西里约热内卢天主教大学里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的一个小巧的脚本语言,该脚本语言设计之初就是为了嵌入到应用程序中,为其提供扩展和定制等功能。由于C#是预编译语言,在手机端的热更新上不太兼容,所以使用Lua语言嵌入C#实现
16、游戏代码的热更新。第三章 游戏设计3.1 游戏玩法设计本游戏是根据目前比较流行的策略放置类型游戏:自走棋,进行设计和开发的。在游戏中,玩家有金币栏、生命值和经验栏。每一小局系统会给玩家若干金币,提供5个英雄让玩家购买,玩家通过点击UI使用金币购买英雄、刷新英雄或提升自身的等级,通过卖出英雄获得金币。玩家收集不同的英雄搭配,为英雄佩戴装备,提升自己的阵容强度,在对战时刻来临时,对战双方的英雄阵营进行自动对战,失败一方扣除生命。玩家的生命值小于等于0,就淘汰出局,游戏一直持续至出现唯一存活下来的胜利玩家。3.2 游戏热更新在游戏以及上架后,如果我们发现游戏中有Bug或者想要修改游戏中的模型贴图甚至
17、是发行DLC等等,我们可以选择在Unity3D编辑器中修改,然后再打包后发行。当是这样操作后,游戏就得重新花费时间进行审核,玩家也得重新下载整个游戏。这就会造成玩家的流失,尤其在手机玩家的流失方面更为严重。因此游戏热更新应运而生。游戏热更,只需下载需要更新的部分覆盖旧的部分,极大的降低了游戏更新地代价。尤其在网络游戏方面,如果出现一个BUG可能会破坏游戏平衡甚至导致整个游戏的终结,热更新的及时性,可以降低游戏修复的时间和难度。在每次打开游戏的时候,都会进行更新检查,如果发现新的版本,就会进行热更新。图3-1 游戏进行热更新3.3 游戏登录界面在热更新完成之后,就会进入游戏登录界面。玩家可以在登
18、录界面进行账号注册和登录。登录及注册的内容会通过协议发送到服务端,服务端解析后,通过SQL语句访问数据库,完成玩家的操作。图3-2 游戏登录界面3.3.1 游戏大厅及房间在玩家成功登录后,会进入游戏大厅。大厅会显示出所有的游戏房间。左侧为玩家的账号信息,右侧为大厅界面,提供创建房间和刷新界面的按钮。玩家可以创建房间或者进入别人的房间进行游戏。图3-3 游戏大厅界面当玩家进入一个房间后,游戏会切换至房间界面。房间界面提供了离开、添加机器人玩家、开始游戏三个按钮。一个房间最多可以进入8位玩家,当房间内的玩家数量至少为2名时,才能进行游戏。图3-4 房间界面3.4 游戏流程3.4.1 英雄和装备购买
19、房主点击开始游戏按钮后发送开始游戏协议到服务端,服务端接收到消息后在派送给所有客户端,客户端接收到开始游戏协议后,开始加载游戏资源,当资源加载完成后,发送完成协议到服务端,服务端收集到全部的协议后,广播正式开始游戏协议,所有玩家进入游戏界面。通过点击游戏右下角的棋篓按钮可进入英雄和装备购买界面,英雄购买界面显示英雄的价格、羁绊等信息。玩家通过购买英雄和装备并使用,从而与其它玩家进行对战。图3-5 英雄和装备购买界面玩家点击英雄后进行购买,购买的英雄会出现在等待区域,通过拖拽方式将英雄放置到战斗区域,拖拽时会出现绿色的UI提示可放置位置。购买后的装备会出现在左下角的仓库内,拖拽仓库内的装备至英雄
20、身上进行装备。图3-6 拖拽英雄至战斗区域图3-7 拖拽装备至英雄身上3.4.2 英雄羁绊在游戏画面的左侧有英雄羁绊界面,玩家将购买后的英雄放置到战斗区后,系统会统计战斗区域英雄的羁绊组合,将羁绊组合显示在羁绊界面并为英雄增加相应的属性,玩家可以通过不同的羁绊组合实现属于自己的英雄阵容,游戏的可玩性得到提升。图3-8 羁绊界面3.4.3 升级英雄当玩家购买且集齐三个同等级同类型的英雄后,可以点击英雄属性界面的升级按钮,将三个一级英雄升级为一个二级英雄,获得更高的英雄属性,更少的位置占用。图3-9 英雄升级画面3.4.4 战斗阶段当游戏画面上方的倒计时结束后,进入战斗阶段,战斗区域的双方英雄进行
21、战斗。战斗阶段结束后,又会回到准备阶段。玩家需要不断调整自己的英雄组合和装备,确保自己赢得更多的战斗。图3-10 英雄战斗画面3.5 结算界面每个战斗阶段结束后,如果任何一方有英雄存活,就会对对方玩家造成基于英雄数量的伤害。在游戏画面的右方是游戏中玩家的生命值,当某位玩家的生命值为0时,就表示失败,不再继续参加游戏。当只剩下一位玩家存活时,这位玩家就是胜利者,同时游戏画面会切换至结算画面。结算界面会根据玩家们游戏失败时的时间长短,显示玩家们的名次,对应增加胜败次数。图3-11 结算画面在游戏结算后,玩家可以在结算界面查看自己的名次及胜负场次。然后可以点击游戏画面右下角的返回大厅按钮,返回到游戏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3D 网络 策略 游戏 开发
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内