基于Unity3D多平台网络斗地主的设计与实现毕业设计Word文件下载.docx
- 文档编号:13540730
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:51
- 大小:3.93MB
基于Unity3D多平台网络斗地主的设计与实现毕业设计Word文件下载.docx
《基于Unity3D多平台网络斗地主的设计与实现毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于Unity3D多平台网络斗地主的设计与实现毕业设计Word文件下载.docx(51页珍藏版)》请在冰豆网上搜索。
斗地主是一款相当经典的游戏,当然前人也做了不少版本,有移动端,pc端甚至是Web端的。
可能他们在设计的过程中只是正对某一平台然后使用特性的开发技术来开发,这样的话如果想要实现多平台的设计就需要极大的时间成本和劳力成本。
而Unity3D引擎的问世,最大的解决了这一问题,它能够实现一次开发多平台发布的特点,这也是为什么Unity3D引擎在短暂的时间里能够发展的如此迅速的原因。
将斗地主游戏从单机版到网络化,使得现实中的多个玩家能够在同一个虚拟房间里面进行对局,并且能够实时的聊天,同时还不会受到平台的限制,你可以选择pc,web或者是移动端,从而能更好的体验游戏,娱乐生活。
第1章概述
1.1系统开发背景
随着Unity3D引擎的横空出世,游戏开发技术也变得越来越成熟,这款引擎也逐渐改变了整个游戏圈的开发格局,之前火遍了全球的神庙逃亡就是基于Unity引擎开发的一款比较成功的手游大作,这也更很好的证明了Unity作为一款游戏引擎还是值得开发者的信赖。
Unity相比较之前大家都熟悉的Unreal虚幻引擎,我认为Unity做的更好,它最值得人称赞的就是它的跨平台性是其他游戏引擎无法匹敌的,Unity能够做到一次编写多平台发布,能够大大节省了项目开发周期以与开发成本,并且还得够达到Unreal虚幻引擎开发出的那种游戏体验效果。
Unity开发也算是基于.NET平台上的一个拓展,它的核是Mono框架,而Mono是基于.NET的一个跨平台的继承开发环境,它能够很好的移植到各个平台,所以Mono的问世也给广大.NET平台开发者带来了福音,终于不会在收到微软的约束,开发出来的东西只能运行在windows平台。
正因为这样,Unity也是一致收到广大.NET开发者的喜爱。
发展至今Unity已经支持了基本国外所有的主流平台。
也正是因为这一特性,才使得更多的公司更多的开发者对它抛出了橄榄枝,达到了开发出来的游戏,不要受平台的限制,能够给玩家更多不同的平台体验,它的这一特性也推动了Unity引擎的飞速发展。
结合自身的优势,由于我大学期间一直自学的.NET开发,所以还是有一定的.NET开发基础和经验,加上喜欢钻研,学习了其他Android、IOS等移动平台开发,所以了解的技术围还比较广泛,感觉做Unity开发能将我所了解的这些多平台开发的知识能够很好的融会起来,所以当第一时间了解到Unity之后,我就对它产生了浓厚的兴趣。
之所以选择做斗地主游戏,因为首先我觉得它是一款比较经典的游戏,经典的往往能够是永恒的,在日常生活中,斗地主也常常是人们娱乐的一个项目之一,当然想完成它还是有一定的难度,设计都不少的算法,并且我将其网络化,开发起来对我而言还是有一定的挑战性,但又不是力所不能与,只要努力一下还是能实现的。
因此就确定了这个多平台的多人网络斗地主的课题。
1.2设计的目的
从玩家的角度,这种网络小游戏满足了玩家休闲的需求,让玩家换一种方式重温经典,能够在不同的平台,不同的的地区,还能够在同一个“房间”进行对局,也可以实时交流,也能结识更多的朋友,增加了游戏体验的乐趣,从而丰富了人们的业余生活,在紧的工作之余带给人们最大程度的放松。
从自身的角度,将大学所学的理论知识应用于真实的项目开发,做到了理论与相结合,理论知识指导实际操作,实际操作反过来也巩固了理论知识,从而更好的提升了自己的能力和项目经验。
1.3设计的意义
通过亲自实践,验证了Unity3D引擎的跨平台性,也系统的了解到一个游戏项目设计的整个流程,从最初的规划到最后的实现,为今后走上工作岗位打下基础。
最后能够圆满实现,锻炼了自己的能力,同时做出来的游戏也增加了人们业余生活的乐趣。
第2章开发环境与相关技术介绍
2.1开发环境介绍
所谓工欲善其事,必先利其器。
要做一个项目的开发,首先得选择好适宜的开发工具,市场上行行色色的开发工具很多,这就需要要对比选择,根据项目需求选择最正确的搭配工具。
本设计采用的开发环境是Windows7旗舰版操作系统,搭载Unity3D4.2.0f1专业版引擎。
采用VisualStdio2010IDE编辑C#脚本。
2.1.1Unity3D简介
Unity是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
Unity能够运行在Windows和MacOSX系统下,可发布游戏至Windows、Mac、Wii、iPhone、Windowsphone8和Android等平台。
也可以利用Unitywebplayer插件发布网页游戏。
Unity具有强大的脚本系统,它的核心思想是面向对象,把游戏场景中有所的物体都抽象成可编程的对象,从而将游戏编程转化为游戏对象的控制和调度,而控制游戏对象和对象调度的就是我们所说的脚本系统,关系图如下(图2-1):
图2-1Unity脚本系统
2.1.2VisualStdio2010和MonoDevelop
VisualStdio作为微软最引以为傲的集成开发环境,敏捷的智能提示、排版以与稳定的性能,是任何语言的IDE都无法比拟的。
因此C#语言开发,当然首选VisualStdio。
但是VisualStdio不支持Unity的Debug(调试),必须要到AssetStore(Unity的插件商量)去购买一个UnityVS插件才能够实现断点调试功能。
而MonoDevelop是基于.NET的一个跨平台的集成开发环境,主要支持的语言也是C#。
Mono作为.NET向跨平台和开源的先驱,它打破了微软一惯封闭的风格,因此Mono也得到了业界的广大好评和重视。
MonoDevelop是Unity自带的集成开发环境,相比较VS的优势就是能够不依赖插件从而实现断点调试,还有就是能够在其他平台上运行,但是它也有弊端,没有VS那么强大的提示功能,对中文支持也不够友好,可以说这两个IDE来编辑Unity脚本个有利弊,看如何取舍,一般都是选择前者。
2.1.3Xcode简介
Xcode是苹果公司向开发人员提供的集成开发环境,用于开发MacOSX,iOS的应用程序,Xcode具有较强的编译速度。
Unity导出IOS程序的时候需要导出Xcode工程,然后由Xcode编译导出发布,当然还需要申请安装苹果开发官方的开发者证书。
文章最后在介绍Unity工程导出成IOS版本安装到ios移动设备上会详细介绍流程以与须知。
2.2C#语言和Javascript脚本
这两者都是Unity开发支持的语言,当然还包括boo脚本,但一般不怎么用boo脚本作为开发语言,前两者语言,C#国人用的比较多,Javascript国外开发者用的比较多,接下来我们就做一个对比,这两种语言开发Unity有什么异同。
在这里,因为Unity是基于.NET平台,而C#是.NET平台主推的语言,因此我就选择了C#,能够更好的兼容.NET的一些库文件。
2.2.1C#语言
C#是微软公司再2000年6月发布的一种全新的且简单、安全、面向对象的程序设计语言,是专门为.NET应用开发而诞生的一种新的计算机语言。
它吸收了C++、VisualBasic、java等语言面向对象的特性,又继承了C语言的语法简约的风格,表达了当今最新的程序设计技术的功能和精华。
不同的是,C#面向对象模型已经面向了Internet进行了重新设计,它使用的是.NET框架的类库,为了安全起见不再主指针类型的使用,当然也是可以使用指针,在程序中要做特殊申明。
对指针使用的弱化,避免了程序异常访问系统存地址而带来的隐患,从而更表达了它的健壮性的特点。
C#不支持多继承,避免了以往类层次结构中由于多重继承带来的难以控制的特点,C#主用接口来实现而不是多继承,主要的目的就是减少程序的复杂性,减少出错的可能性,使运行效率更高。
.NET框架为C#提供了一个强大的、易用的、逻辑结构一直的设计环境。
同时,公共运行时(CommonLanguageRuntime)为C#语言提供了一个托管的运行环境,使程序比以往更加稳定、安全。
C#语言的特点有:
.语言简洁优雅、安全稳定
.保留了C++面向对象的特性
.能够快速开发应用
.强大的开发控件
.支持跨平台
2.2.2Javascript语言
Javascript是一种直译式、动态、弱类型、基于原型的脚本语言,置支持类。
它的直译器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。
Javascript语言的特点:
.简单性
.动态性
.跨平台性
.安全性
2.3IOCP框架简介
IOCP全称I/OCompletionPort,IOCP模型属于一种通讯模型,适用于(能控制并发执行的)高负载服务器的一种技术,基于IOCP通信的的服务器是以多线程的方式实现了与多个客户的消息并发交互,可以合理有效的处理客户端端的消息,可以使得系统存资源得以合理的利用,有效的解决了因多线程竞争所带来的问题。
2.3.1IOCP部工作队列图
如以下图2-2(源于IOCP本质论),简节明了的看出IOCP本质其实就是创建一个线程池然后部是以队列和栈的方式来处理客户端交互请求。
图2-2IOCP部工作队列图
2.3.2程序实现IOCP模型的基本步骤
如以下图(2-3),最重要的步骤还是创建了线程池来管理大量线程的切换处理从而提高了服务器端的性能。
图2-3程序实现IOCP模型步骤
2.3.3使用IOCP模型和不使用IOCP模型通讯的对比
对比图如下(图2-4),很明显能看出不一样的地方,不适用IOCP,用普通的socket连接,我做过测试,对服务器存资源消耗比较大,貌似上百多个客户端连接之后服务器端就容易崩溃,存发出警报,健壮性是服务器端程序首当要考虑的,而测试使用IOCP模型的客户端能够达到2K-3K左右的稳定连接,并且存资源消耗还比较小,下文测试章节会有具体的截图。
图2-4使用IOCP和不使用IOCP框架通讯对比
2.4本章小结
本章主要介绍了开发Unity游戏所需要的脚本语言以与开发环境。
之所以选择C#而非js是因为C#语言更面向对象和具备一些高级的特性(封装,继承,多态,反射和泛型等),它也是国的主流开发语言之一,而Javascript相对比较容易入门,语言本身是弱类型不需要那么严谨,在实际商业项目开发中不是太收推崇。
因此本次设计以C#语言编写,同时采用MonoDevelop4.0调试和VisualStdio2010集成开发环境。
服务器端基于IOCP模型搭建的比较稳定、高效、健壮的服务器应用程序。
第3章系统需求分析
3.1用户功能需求分析
系统是由登录,叫地主,出牌,压牌,判断胜负,用户奖惩机制,实时聊天,退出等功能组成。
该斗地主是根据民间盛行的扑克牌游戏演变而来,融入了现代电子游戏快捷便利,能更好的满足玩家的游戏体验以与提升业余生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3D 平台 网络 地主 设计 实现 毕业设计