基于Unity3D的多人网络斗地主游戏的设计与实现.doc
《基于Unity3D的多人网络斗地主游戏的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Unity3D的多人网络斗地主游戏的设计与实现.doc(40页珍藏版)》请在咨信网上搜索。
1、本科毕业设计(论文)基于Unity3D多平台网络斗地主的设计与实现学院名称: 计算机工程学院 专业:计算机科学与技术 班级: 10工程W学号:10141303姓名:丁小未 指导教师姓名: 朱明放 指导教师职称: 副教授 二一四 年 五 月江苏理工学院毕业设计说明书(论文)基于Unity3D的多平台网络斗地主的设计与实现摘 要:斗地主是一款非常经典的游戏,可以说是家喻户晓,玩法也比较的简单,娱乐性也比较强,老少皆宜.随着互联网技术的飞速发展,斗地主呈现的形式也变得多样性,由传统的纸牌游戏衍生为移动端单机游戏,然后到多人多平台的即时在线联网游戏。形式的变化能够让人足不出户也能感受到和伙伴们一起玩游
2、戏的乐趣.本设计的游戏规则是针对一副牌为准,本文论述了网络斗地主游戏的基本算法设计以及大体的设计框架和思路,并且以图文,部分核心代码解释的形式展示出来。本设计采用了Unity3D作为开发引擎,结合Visual studio 2010开发工具,通过基本的socket通讯和一些算法,最终实现了多平台的多人网络斗地主的设计。本文基于Unity3D的游戏开发设计过程中,采用了MVC的设计模式,这也符合Unity3D工作模式;采用C脚本语言也更符合Unity3D游戏设计面向对象的设计理念,游戏设计就是将面向对象这一特性发挥到极致;采用MONO开源跨平台框架能够大大节约游戏的开发效率以及开发成本,最后通过
3、实际的完成效果来验证了基于Unity3D的多平台网络斗地主游戏设计具有高效性,高品质和低门槛性的特点。关键词:Unity3D,斗地主,手机游戏,游戏引擎,socket,网络通讯,MVC,MONODesign and implementation of multi-platform network LandlordsBased Unity3DAbstract: Landlords is a classic game, which can be said to be a household name。 The rules are relatively simple,and kind of the
4、entertainment is relatively strong. As a result, the game has gain popularity among both the young and the old。 With the rapid development of Internet technology, the form of the game is of greatdiversity。 The game derived from the traditional card game, thenturned into the stand-alone mobile phone
5、game, and now has become a multi platform instant online multiplayer networked game. The changes in the game form make people who stay at home enjoying the fun of playing the game together。The design of the rules is accordingto a deck of cards。 The article discusses the basic network Landlords algor
6、ithm design and the general framework and ideas of the game. The game interprets itself successfully by the graphic form and thepart of the core code。 This design uses the Unity3D as a development engine. Besides, it combined with Visual studio 2010 development tools. Ultimately we finishthe design
7、of a multi -platform multiplayer online Landlords by some algorithms and the basic socket communication.The article is based on the design process of Unity3D game development。 The MVC design patternis consistent with Unity3D mode, and C scripting language is good forthe design objectoriented design
8、of Unity3D game. Objectoriented game design is supposed to make the best of the feature .The MONO open source framework can greatly reduce the efficiency of game development as well as development costs. Finally we validate the high efficiency, high quality and lowthreshold characteristics of the mu
9、ltiplatform network game which based on Landlords Unity3D byachieving the actual results。Keywords:Unity3D, Landlords, mobile games, game engine, socket, network communications, MVC, MONO2目录前言1第1章概述21.1 系统开发背景21。2 设计的目的31。3 设计的意义3第2章开发环境及相关技术介绍42.1 开发环境介绍42.1。1 Unity3D简介42。1。2 Visual Stdio2010和MonoDe
10、velop52.1.3 Xcode简介52。2 C#语言和Javascript脚本62.2。1 C语言62.2。2 Javascript语言62。3 IOCP框架简介72.3。1 IOCP内部工作队列图72.3。2 程序实现IOCP模型的基本步骤82。3。3 使用IOCP模型和不使用IOCP模型通讯的对比82.4 本章小结10第3章系统需求分析103。1 用户功能需求分析103.2 系统性能要求103.3 可行性分析10第4章总体方案设计114。1 纸牌设计114。1.1 牌型设计114。1。2 出牌类型(游戏规则)设计124。2 C/S模式124。2.1 基于C/S模式的服务器端设计流程图1
11、24.2。2 基于C/S模式的客户端设计流程图124。3 游戏逻辑程序结构134.3。1 数据层134。3.2 控制层134。3。3 显示层144。4 游戏设计流程图144。5 数学建模15第5章详细设计与系统实现165。1 斗地主洗牌算法165。2 斗地主之“排序”算法165。3 基于IOCP的Socket通讯185.4 User对象的设计195。4.1 玩家状态设计195.4。2 玩家的属性以及手牌的操作方法205。5 Table对象的设计215。5.1 桌子状态设计215。5.2 Table的属性及方法215.6 粘包问题235.6.1 TCP和UDP的介绍以及区别235。6。2 粘包介
12、绍及处理23第6章发布和测试256。1 服务器端性能检测256.2 打包发布Android应用276.2。1 导出Android设置276.2.2 真机效果图286.3 打包发布IOS应用296.3.1导出IOS设置296。3.2真机效果图316.4打包发布Web应用326。4。1 关于UnityWebPlayer的SandBox Security(安全沙盒机制)326.4。2 导出Web设置326.4.3 运行结果336。5 打包发布PC/Linux应用346。6 整体测试效果34结束语40致谢42参考文献43附录A 网络斗地主的游戏规则44附录B 部分程序代码47III前言近年来,随着科技
13、和互联网的飞速发展、智能手机的迅速普以及性能的不断提升,游戏行业也突飞猛进,游戏已经逐渐成为人们公认的第九种艺术。现在各个平台上的游戏逐渐涌现,从最初的红白机,到PC机再到XBox平台发展到如今的手机移动平台,从端游到页游再到手游甚至是体感游戏等表现形式也逐渐丰富,当然成功的也数不胜数。比较大型的游戏有:反恐精英、星际争霸、使命召唤,生化危机等.当然也涌现了诸多经典的网络小游戏,比如麻将、拖拉机、中国象棋等。此外手机游戏,如愤怒的小鸟、保卫萝卜、FlappyBird、切水果、捕鱼达人等也赢得许多人的青睐.这些各种各样形式的游戏给如今生活在网络时代的人们带来了无限的生活乐趣。斗地主是一款相当经典
14、的游戏,当然前人也做了不少版本,有移动端,pc端甚至是Web端的。可能他们在设计的过程中只是正对某一平台然后使用特性的开发技术来开发,这样的话如果想要实现多平台的设计就需要极大的时间成本和劳力成本.而Unity3D引擎的问世,最大的解决了这一问题,它能够实现一次开发多平台发布的特点,这也是为什么Unity3D引擎在短暂的时间里能够发展的如此迅速的原因。将斗地主游戏从单机版到网络化,使得现实中的多个玩家能够在同一个虚拟房间里面进行对局,并且能够实时的聊天,同时还不会受到平台的限制,你可以选择pc,web或者是移动端,从而能更好的体验游戏,娱乐生活。第1章 概述1.1 系统开发背景随着Unity3
15、D引擎的横空出世,游戏开发技术也变得越来越成熟,这款引擎也逐渐改变了整个游戏圈的开发格局,之前火遍了全球的神庙逃亡就是基于Unity引擎开发的一款比较成功的手游大作,这也更很好的证明了Unity作为一款游戏引擎还是值得开发者的信赖。Unity相比较之前大家都熟悉的Unreal虚幻引擎,我认为Unity做的更好,它最值得人称赞的就是它的跨平台性是其他游戏引擎无法匹敌的,Unity能够做到一次编写多平台发布,能够大大节省了项目开发周期以及开发成本,并且还得够达到Unreal虚幻引擎开发出的那种游戏体验效果.Unity开发也算是基于。NET平台上的一个拓展,它的内核是Mono框架,而Mono是基于.
16、NET的一个跨平台的继承开发环境,它能够很好的移植到各个平台,所以Mono的问世也给广大.NET平台开发者带来了福音,终于不会在收到微软的约束,开发出来的东西只能运行在windows平台。正因为这样,Unity也是一致收到广大。NET开发者的喜爱.发展至今Unity已经支持了基本国内外所有的主流平台。也正是因为这一特性,才使得更多的公司更多的开发者对它抛出了橄榄枝,达到了开发出来的游戏,不要受平台的限制,能够给玩家更多不同的平台体验,它的这一特性也推动了Unity引擎的飞速发展。结合自身的优势,由于我大学期间一直自学的。NET开发,所以还是有一定的。NET开发基础和经验,加上喜欢钻研,学习了其
17、他Android、IOS等移动平台开发,所以了解的技术范围还比较广泛,感觉做Unity开发能将我所了解的这些多平台开发的知识能够很好的融会起来,所以当第一时间了解到Unity之后,我就对它产生了浓厚的兴趣。之所以选择做斗地主游戏,因为首先我觉得它是一款比较经典的游戏,经典的往往能够是永恒的,在日常生活中,斗地主也常常是人们娱乐的一个项目之一,当然想完成它还是有一定的难度,设计都不少的算法,并且我将其网络化,开发起来对我而言还是有一定的挑战性,但又不是力所不能及,只要努力一下还是能实现的.因此就确定了这个多平台的多人网络斗地主的课题。1.2 设计的目的从玩家的角度,这种网络小游戏满足了玩家休闲的
18、需求,让玩家换一种方式重温经典,能够在不同的平台,不同的的地区,还能够在同一个“房间”进行对局,也可以实时交流,也能结识更多的朋友,增加了游戏体验的乐趣,从而丰富了人们的业余生活,在紧张的工作之余带给人们最大程度的放松.从自身的角度,将大学所学的理论知识应用于真实的项目开发,做到了理论与相结合,理论知识指导实际操作,实际操作反过来也巩固了理论知识,从而更好的提升了自己的能力和项目经验。1.3 设计的意义通过亲自实践,验证了Unity3D引擎的跨平台性,也系统的了解到一个游戏项目设计的整个流程,从最初的规划到最后的实现,为今后走上工作岗位打下基础。最后能够圆满实现,锻炼了自己的能力,同时做出来的
19、游戏也增加了人们业余生活的乐趣。第2章 开发环境及相关技术介绍2。1 开发环境介绍所谓工欲善其事,必先利其器.要做一个项目的开发,首先得选择好合适的开发工具,市场上行行色色的开发工具很多,这就需要要对比选择,根据项目需求选择最佳的搭配工具.本设计采用的开发环境是Windows7旗舰版操作系统,搭载Unity3D 4。2。0f1专业版引擎。采用Visual Stdio 2010IDE编辑C#脚本。2。1。1 Unity3D简介Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整
20、合的专业游戏引擎.Unity能够运行在Windows 和Mac OS X系统下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android等平台.也可以利用Unity web player插件发布网页游戏.Unity具有强大的脚本系统,它的核心思想是面向对象,把游戏场景中有所的物体都抽象成可编程的对象,从而将游戏编程转化为游戏对象的控制和调度,而控制游戏对象和对象调度的就是我们所说的脚本系统,关系图如下(图2-1):图2-1 Unity脚本系统2。1。2 Visual Stdio2010和MonoDevelopVisual Stdio作为微软最引以
21、为傲的集成开发环境,敏捷的智能提示、排版以及稳定的性能,是任何语言的IDE都无法比拟的.因此C语言开发,当然首选Visual Stdio。但是Visual Stdio不支持Unity的Debug(调试),必须要到AssetStore(Unity的插件商量)去购买一个UnityVS插件才能够实现断点调试功能.而MonoDevelop是基于.NET的一个跨平台的集成开发环境,主要支持的语言也是C#。Mono作为。NET向跨平台和开源的先驱,它打破了微软一惯封闭的风格,因此Mono也得到了业界的广大好评和重视。MonoDevelop是Unity自带的集成开发环境,相比较VS的优势就是能够不依赖插件从
22、而实现断点调试,还有就是能够在其他平台上运行,但是它也有弊端,没有VS那么强大的提示功能,对中文支持也不够友好,可以说这两个IDE来编辑Unity脚本个有利弊,看如何取舍,一般都是选择前者.2。1。3 Xcode简介Xcode是苹果公司向开发人员提供的集成开发环境,用于开发Mac OS X,iOS的应用程序,Xcode具有较强的编译速度。Unity导出IOS程序的时候需要导出Xcode工程,然后由Xcode编译导出发布,当然还需要申请安装苹果开发官方的开发者证书.文章最后在介绍Unity工程导出成IOS版本安装到ios移动设备上会详细介绍流程以及注意事项。2.2 C语言和Javascript脚
23、本这两者都是Unity开发支持的语言,当然还包括boo脚本,但一般不怎么用boo脚本作为开发语言,前两者语言,C国内人用的比较多,Javascript国外开发者用的比较多,接下来我们就做一个对比,这两种语言开发Unity有什么异同.在这里,因为Unity是基于.NET平台,而C#是。NET平台主推的语言,因此我就选择了C,能够更好的兼容。NET的一些库文件.2。2.1 C语言C是微软公司再2000年6月发布的一种全新的且简单、安全、面向对象的程序设计语言,是专门为。NET应用开发而诞生的一种新的计算机语言。它吸收了C+、Visual Basic、java等语言面向对象的特性,又继承了C语言的语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3D 网络 地主 游戏 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。