版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、淮 海 工 学 院毕业设计(论文)说明书题 目: 基于java的五人制足球游戏攻防策略 的研究与实现 作 者: 学 号: 系 (院): 专业班级: 计算机科学与技术专业023班 指导者: 评阅者: 2006 年 6 月 连 云 港毕业设计(论文)中文摘要基于java的五人制足球游戏攻防策略的研究与实现摘 要:本设计是一款基于java的五人制足球游戏及对其的研究与开发。本课题是一款模拟经营和实时对战混合的足球游戏。它的大体设计内容有:游戏引擎的设计,游戏的客户端的设计,游戏的服务端设计,游戏的数据库的设计。游戏引擎是游戏的灵魂,它是控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,
2、到接受玩家的输入,以及按正确的音量正确的输出声音等等,整个游戏的引擎可分为如下几个部分:系统、控制台、支持系统和渲染系统。本文从游戏的背景研究和发展现状开始,详细描述了整个游戏的制作过程。系统设计中划分出了游戏大致的功能模块,包括:图象系统、声音系统、渲染系统、物理系统和人工智能系统。详细设计阶段,将功能模块进行了更深层次的划分,并给出了详细的实现代码,最后对整个设计给出了最终的实现程序。游戏的亮点在于它加入了仿真系统的设计。游戏中的模式是按照现实的实际情况作为参考,设计了重力和碰撞模块等等其他方面的内容。另一重要方面在于游戏的智能设计,让球员具有学习和信息采集等能力。但是,游戏中仍然存在许多
3、缺点,很多功能都不是很完善。在这一方面的设计仍需要多多加强。关键词:线程;人工智能;图形系统;物理系统等。毕业设计(论文)外文摘要research and development of the football game by five players based on javaabstract: this design is a football game by five players based on java, and also, the research and the development of the game. this topic is business and real-
4、time combat simulation section of the football game mixed. its broad design elements: the game engine design, client-game design, game-design services, games database design. game engine is the soul of the game, which is the main procedures to control all game functions, from the calculation of the
5、collision, physics system and the relative position of objects to accept player input, and by the correct volume exported correct voice, and so on, the entire game engine can be divided into the following components: systems, control and support systems and reduce system. this text starts with the b
6、ackground of the game and the present develop of the game, it describes the particular process of the whole game. in the system design, it divide the module of the function, include: graphic system, sound system, reduce system and artificial intelligence system. in the particular design, divide the
7、module of the function to the demarcation of the deeper level of structure. and give realizes detailed code, finally, give the finished process.the design of the true system is the best design of the game. the mode in the game consults according to the realistic actual circumstance conduct and actio
8、ns, designed the gravity mold piece and hit mold piece and any others. another important aspect is the intelligence design of the game is let the players having the ability of studying and collecting information. but, the game still have a lot of weakness, some function is not very perfect. so, the
9、game still need more design. keywords: threads; artificial intelligence; graphics system; physics system.目 录1 引言111 课题的研究背景与意义11.1.1 课题的研究背景11.1.2 课题的研究意义21.1.3 课题研究的现状和发展趋势212 java语言的特点及其与游戏的结合31.2.1 java语言的特点31.2.2java与网络的结合413 关于足球仿真系统51.3.1 引言51.3.2 多智能体系统51.3.3 机器人足球系统的典型结构61.3.4 结论714 可行性分析71.
10、4.1 经济可行性71.4.2 技术可行性81.4.3 操作可行性91.4.4 社会可行性915 本章节小结102 需求分析1121 系统初步分析112.1.1 用户需求分析112.1.2 系统的功能需求分析112.1.3 系统的可靠性和可用性需求分析132.1.4 本系统所要实现的功能1322 数据流分析1423 数据字典152.4 本章节小结153 总体设计1631 系统开发163.1.1 系统开发的原则163.1.2 系统设计阶段163.1.3 结构设计阶段183.2 攻防策略的研究193.2.1 进攻策略研究193.2.2防守策略研究223.3本章节小结224.详细设计234.1 图形
11、系统的设计234.1.1球员和球的图象显示234.1.2 球场图象显示244.2 声音系统的设计254.2.1 球场的音效输出254.3 渲染系统的设计264.3.1球场图象裁减变化264.3.2球员动画显示274.4 物理系统的设计374.4.1 重力系统374.4.2 碰撞系统384.5 人工智能系统的设计394.5.1 球员数据库信息采集394.5.2球员学习系统404.5.3环境变量444.6游戏有待提高之处444.7 本章节小结455 游戏的设计环境和java游戏系统特点465.1游戏的开发环境和运行环境4652 java游戏系统的特点及本作游戏的特点465.2.1 选择java游戏
12、系统的原因465.2.2 本作游戏的特点介绍475.3 本章节小结486 用户使用手册496.1系统功能及用户简介496.1.1系统功能496.1.2 系统运行环境简介496.2 系统运行与操作指南49结 论50致 谢51参 考 文 献521 引言游戏,如今俨然已经成为人们生活中不可或缺的元素。游戏可以简单地理解为调节人们生活节奏和缓解人们生活压力的一种手段。现在理解的游戏基本意义都是娱乐性质较浓,要有特定的行为模式,遵循一定规则以达到游戏者目的的行动。游戏的最初目的就是让游戏者(玩家)在游戏中得到放松。游戏一直存在于人类活动中,如今定义的游戏从早期的猜谜游戏,发展到如今的单机rpg游戏,网络
13、游戏等,已经升华为更高级别意义上的娱乐活动,对人们的感官刺激也越发强烈,得到的乐趣也更多。足球,是当今世界最受瞩目的运动。从出现现在实际意义上的游戏开始,运动类的游戏一直是比较受到广大游戏者的瞩目的。其中的佼佼者便是足球类的游戏,这也是得益于足球运动的流行。伴随着人类足球的越来越受人喜欢,足球游戏的发展也已经越来越受到人们的关注。对于足球游戏的研究,也从层面上的图形完善到达高层次的人工智能研究,涉及到的领域也延伸到机器人的足球游戏研究。对于一个好的足球游戏而言,重要的是如何让其更贴近于真正的足球运动,让游戏者真正能在游戏中体验到足球运动的乐趣。对于设计者而言,就是要在游戏中设计更多的变量元素以
14、及更多变的算法,使游戏更具真实感。本作中,考虑教多的就是这点,让游戏更能真实地表现出来。11 课题的研究背景与意义1.1.1 课题的研究背景世界上最早诞生的游戏类型就是球类游戏,而最早的足球游戏可能要上溯到上个世纪的70年代。由于硬件条件的限制,那时的游戏画面,线条简单,声音单调,在由几个简单线条构成的所谓的球场上,根本看不到球员,只是几根竖条在做着前后左右的机械运动,一个白点足球,就在这些堆砌的框框中飘来荡去。当任天堂横空出世的那个年代,足球游戏也确确实实迈出了自己战战兢兢和呀呀学语的第一步。举一个很简单的例子,当时在红白机上有一款五人制足球游戏,名字就叫足球,球员一律都是看不清眉眼高低的大
15、头娃娃,足球做得和腿一般高,球员到了场上就不分你我的来回奔跑,且跑动都是千篇一律,丝毫没有战术可言,球速、球员跑动以及足球运动的轨迹都是那么的莫名其妙。在当时那个任天堂一统天下的时代,由于8位机的机能所致,在表现平面的动作、射击类或是构图简单的rpg、slg类型的游戏会稍稍占优,而在表现大场面并需要表现高智能ai上面,则会显得捉襟见肘,在那个游戏机方兴未艾的时候,我们没有见到一款可以让玩家留有印象的足球游戏,在那个随便一款创意新颖即可以大卖特卖的年代里,这不能不说是一种遗憾。而造成这种情况还有一个更深层次的原因,即当时日本足球的水平位居亚洲中下游,全民上下对足球的认知和理解远不如今,因此对这种
16、现象,我们也就可想而知了。由于在那个时候,电脑对国人来讲,仍然属于一种奢侈品,因此,我们在电脑上所见到的足球游戏就更是凤毛麟角。足球游戏此时并未形成体系,犹如散兵游勇。说来也巧,每当四年一届的世界杯举行的时候,电视游戏主机就会在机能上发生一次质的飞跃。每一次机能的提升,都会给各种游戏类型带来一次从画面到声音的巨大变革,而电视游戏的发展和电脑硬件的发展是紧密结合在一起的,也可称得上是相辅相成和相得益彰。这一时期的时间跨度应该是从94年至98年前后这一段时期,随着硬件性能的提升,已经使3d化已经成为可能,足球游戏在这一时期,也有了突飞猛进的改观。在那个多媒体盛行的年代里,足球游戏依托于硬件的进步,
17、自身也取得了不俗的成绩,在那个群雄并举的时代,造就了像ea、konami这样的“足球专家”,但与此同时,也有许多游戏厂商退出了足球游戏的制作。虽然这一时期的足球游戏在品质上和趣味性上有了巨大改观,但不能否认,游戏中仍然存在着致命的硬伤,在合理性上也有着一种难以逾越的瓶颈即在真实性和游戏性的平衡掌握上,就如ea、konami这样的大牌足球游戏制作公司都在鱼和熊掌间徘徊,其它的游戏公司发行的足球游戏就更可想而知了。与此同时,玩家也不再仅仅满足于精美的画面、浮华的cg和动听的音效,他们真正要求的是一种好玩刺激但又不失真实性的足球游戏的出现,足球的黄金时代就要到来了。1.1.2 课题的研究意义当今世界
18、,足球受到越来越多人的喜爱,每四年一次的足球世界杯,几乎成为了全球人民共同的盛会。一个国家的足球水平甚至代表了一个国家的名望。当越来越多人投入到这个足球盛会的时候,也有一部分人在热爱足球的基础上投入到另一个疯狂的事业中,那就是机器人踢足球,要完成的工作是要让自己研究的机器人也能在球场上自如地带球,过人,传球,甚至漂亮绝顶的射门。这就是本课题需要完成的任务,虽然不能真正实现如此多让人心驰神往的功能,但是这样的研究将是未来几年里在机器人研究领域最尖端的研究。1.1.3 课题研究的现状和发展趋势机器人足球比赛是一个多智能体系统的典型问题。涉及到的人工智能问题主要有听觉与视觉、状态机、概率机、攻击与避
19、让模式和进化。游戏中的人工智能实际上就是使生成的bot具有一定的行为,行为的感觉很重要。设计游戏的人工智能时,要自上而下设计。先考虑bot要什么样子,然后再实现这个样子。很多人喜欢自上而下设计人工智能,先设计复杂的模式与基础结构。例如,也许不同bot要有不同搜索模式,象游戏者一样在迷宫中散步,但在三维世界中,游戏者可能以为bot是随机出现的,要来攻击的。因此要考虑游戏者看到的ai生成应该是什么样子,然后在进行设计。我们的意图是通过提供引人瞩目但又非常困难的挑战,将机器人足球比赛作为促进人工智能和机器人学研究的工具。促进研究的有效途径是制定一个长期目标,而不拘泥与某一特定应用。当这个目标完成时,
20、将产生巨大的社会影响,这就可以称之为重大挑战计划。建造一个会踢足球的机器人本身并不能产生巨大的社会和经济影响,但是这种成功的确会被认为是这个领域的重大成果。我们把这种计划称为划时代的计划。robocup既是一个标准问题,也是一个划时代的计划。现在的游戏制作业已抬起头了,人们的生活要比过去丰富、自由,于是许多人开始寻找自己的价值,游戏圈也是如此-有的人从玩游戏的过程中找到了,有的人从做游戏的过程中找到了。网络游戏对程序的跨平台性和安全性有很高的要求,所以java是最佳的实现语言。12 java语言的特点及其与游戏的结合1.2.1 java语言的特点java能够取得如此的成功,是因为它在设计时的目
21、标就定位在要解决当今程序员们所面临的众多问题。java的基本目标之一就是要提高生产率。生产率来源于许多方面,但是java希望在语言方面相对于它的前辈有明显的提高,从而为程序员提供更大的便利。1.系统易于表达、易于理解被设计用来适应问题的“类”,在表达问题的能力上显得更强。这意味着当你编写代码时,你是在用问题空间的术语,而不是计算机也就是解空间的术语,来描述解决方案。可以用更高层的概念来处理问题,并且只用一行代码就可以做更多的事。易于表达所带来的另一个好处就是易于维护,维护在程序生命周期中所占的成本比例极大。如果程序易于理解,那么他必定易于维护。同时,这也降低了创建和维护文档的费用。2.类库的巨
22、大影响力创建程序最快捷的方式就是使用已经编写好的代码:类库。java的主要目标之一就是要使类库更易于使用。这是通过将类库转型为新的数据类型来实现的,因此,引入类库意味着在语言中添加了新的数据类型。因为java编译器会照管类库的使用方式确保正确地初始化和回收垃圾,并保证其他方法被正确地调用,因此,你只需专注于你想让类库做些什么,而不必关心应如何去做。3.错误处理在c语言中,错误处理一直是一个声名狼籍的问题,而且经常被忽视经常只能靠上帝保佑了。如果你在构建一个大型的、复杂的程序,那么没有什么比在程序某处暗藏了一个错误,而你却没有任何能够暗示它在何处的线索更糟糕的事情了。java异常处理便是一种能够
23、确保错误必须被报告,而且对此必须有所响应的机制。4.大型程序设计许多传统语言在程序大小和复杂度方面都有内置的限制。例如,basic可能对某类问题的解决能力非常强,可以快速地创建解决方案,但是如果程序长度超过数页,或者超出该语言正常的题域之外,它就会像“在非常粘稠的液体中游泳”。它没有明确的界线来表示何时你所使用的语言会导致最终的失败,即使有这样的界线,你也会忽视它。你总不能说:“我的basic程序太大了,我不得不用c来重写它!”相反,你会试着将几行代码硬塞进去,以便在程序中增加新功能。因此,不知不觉中,你就付出了额外的开销。java具备编写大型程序的能力也就是说,它消除了小型程序和大型程序之间
24、的复杂度界线。在编写“hello,world”风格的小应用程序时,你当然不必使用oop,但是当你需要用到时,这些功能随手可得。而且,对小型程序和大型程序,编译器都会一视同仁地、积极地找出因bug而产生的错误。1.2.2 java与网络的结合java不仅是一种功能强大的、安全的、跨平台的、国际化的编程语言,而且它还在不断地被扩展,以提供更多的 语言功能和类库,能够优雅地处理在传统编程语言中很难解决的问题,例如线程、数据库访问、网络编程和分部式计算。java是通过applet以及使用java web start来进行客户端编程的。applet是只在web浏览中器运行的小程序,它是作为网页的一部分而
25、自动下载的。当applet被激活时,它便开始执行一个程序,这正是它优雅之处:它提供一种分发软件的方法,一旦用户需要客户端软件时,就自动从服务器把客户端软件分发给用户。用户获取最新版本的客户端软件时不会产生错误,而且也不需要很麻烦的重新安装过程。java的这种设计方式,使得程序员只需创建单一的程序,而只要一台计算机有浏览器,且浏览器具有内置的java解释器,那么这个程序就可以自动在这台计算机上运行。由于java是一种成熟的编程语言,所以在提出对服务器的请求之前和之后,可以在客户端尽可能多地多做些事情。例如,不必跨网络地发送一张请求表单来检查自己是否填写了错误的日期或其他参数,客户端计算机就可以快
26、速地标出错误数据,而不用等待服务器作出标记并给你传回图片。这不仅立即就获得了高速度和快速的响应能力,而且也降低了网络流量和服务器负载,从而不会使整个internet的速度都慢下来。java applet胜过脚本语言程序的优势之一就是,它是以被编译过的形式存在的,因此其源代码对客户端来说是不可见的。另一方面,虽然反编译java applet并不需要花费多少力气,但是隐藏你的代码通常并不是一个重要的话题。有另外两个因素很重要。如果编译过的applet很大的话,那么就需要额外的时间去下载它。脚本语言程序只是被作为web页面的一部分文本而集成到了web页面中。这对web网站的响应能力来说很重要。另一个
27、因素是非常重要的“学习曲线”问题。如果你是一个visual basic程序员,那么转而学习vbscript可能是最快的解决方案,而且由于它或许能够解决大多数典型的客户/服务器问题,所以你可能很难对学习java报以公正的态度。如果你已经对脚本语言很有经验了,那么你在考虑使用java之前,应该先看看javascript是否满足你的要求,这样对你会很有好处,因为它们能够更方便地满足你的要求,而且使你更具生产力。java引起人们的注意很大程度上始于applet。java确实是一种通用的编程语言,至少在理论上可以解决各种其他语言能够解决的问题。正像前面指出的那样,可能存在其他更有效的方式去解决客户/服务
28、器问题。当你离开applet的竞技场时,你便步入了通用应用系统的世界,这里的系统都是独立运行的,不需要浏览器,就像其他普通程序一样。在这里,java的威力不仅在于它的可移植性,还包括它的可编程性。java已经具备了许多功能,让你创建健壮的程序,而花费的时间比使用java之前的任何编程语言都更少。不过,这是好坏参半的事。为java带来的改进,所付出的代价是降低了执行速度。像任何语言一样,java也具有不适合解决某类问题的天生的限制。然而,java是快速进化的语言,而且每当发布一个新版本时,它都会因为能够解决更多的问题而变得越来越具有吸引力。13 关于足球仿真系统1.3.1 引言机器人足球赛是近几
29、年在国际上迅速开展起来的高技术对抗活动,虽然历史不长,但由于它集高新技术、娱乐比赛于一体,所以引起了人们的广泛关注和极大兴趣。机器人足球是人工智能与机器人领域极富挑战性的高技术密集项目,同时又是人工智能技术的一个理想突破点。机器人踢足球,看似游戏,其实展示了一个国家信息和自动化技术的综合实力。足球机器人系统的相关技术在许多领域也有着广泛的应用前景。因此目前许多国家都参与了机器人足球有关技术领域的研究并推动了这项活动及人工智能技术的发展。在机器人足球这一领域,目前美国、英国、加拿大等西方国家及日本、韩国等发达国家的技术水平普遍较高,我国与这些国家相比具有一定的差距。为了加速这方面技术的发展,缩小
30、与世界先进国家的差距,国内许多大学院校也开展了机器人足球技术的研究,例如清华大学、中国科技大学、北京理工大学等院校的研究团队就取得了不错的成绩,并于1999 年在哈尔滨工业大学举行了第一届机器人足球锦标赛。机器人足球为了能完成实际的比赛任务,需要结合多种技术,包括:多智能体的设计、自主机器人的设计、多智能体的合作与协调、决策调度、实时推理、机器人学和传感器融合技术等。从历届的比赛情况看,要想取得较好的成绩,参赛队伍必须面对三个方面的研究挑战:智能体模型的建立、多智能体学习及团队协作。所有这三方面的工作都是立足于多智能体的交互。关于学习方面的挑战包括个体和团队的在线与离线的学习。1.3.2 多智
31、能体系统智能体在人工智能领域有多种定义方法,但没有一种被广泛接受。russell 和norvig 定义智能体是一个可以通过传感器感知环境并通过执行器的行动影响环境的实体。所以,一个自主智能体可以自由地与环境交互并且高效地使用其传感器和执行器而达到特定的目标。stone定义一个智能体是位于环境中的具有感知、目标、理性、行为和区域知识的实体,它的行动或从感知到行动的映射称为行为,其行为使得它能够与真实的世界进行交互。当一组智能体具有共同的目标时就形成团队,团队成员通过采用一致的理性处理过程而协调它们的行为,并且通过通讯等手段来直接影响其它成员的感知输入。分布式人工智能(dai)是人工智能的一个分支
32、,dai 致力于在一个互不相关的多实体环境中学习行动和知识的协调所必须的技术与技能。dai 的一个子系统就是多智能体系统(mas)。mas 提供了建立包括多个智能体及多个互不相关的智能体行为机制的协调的一个复杂系统的准则。目前提出了几种不同的方法来区分多智能体系统和分布式人工智能系统。例如,deker 提出从智能体的间隔距离,智能体知识的不同,分布控制方法及通讯的可能性等四个方面来加以区分;而parunak 则从应用的角度对此进行了区分。stone 和veloso 认为智能体最重要的属性是异质的程度和可通讯的程度,所以他们据此以同质不通讯智能体、异质不通讯智能体、同质通讯智能体、异质通讯智能体
33、来概括多智能体系统及其相关问题。关于多智能体学习,wei是这样描述的:智能体的学习是因为其它智能体的存在而成为必要。另一方面,机器学习提供了通过经验使得智能体产生从个体表现的有效性到团队协作的成功性,直至最终取得最佳目标的鲁棒性机制。所以,机器学习(ml)与mas 结合是有趣而必要的。一件非常有意义的事情是足球机器人可以直接被用来评价不同的多智能体技术,特别是有关多智能体的学习和相互协调。1.3.3 机器人足球系统的典型结构智能体(agent)结构不同,决策方式也不同。机器人球队的结构差异很大,目前在研究领域流行的几种agent 结构都可使用。如使用bdi 模型,使用反应式结构,但使用最多的是
34、基于层结构的混合结构模型。1.基于bdi 模型的慎思结构在一个动态不确定的环境中,如足球机器人比赛,建立一个统一、稳定的环境模型是必要的。通过一个稳定的环境模型,偶然的错误信息能够被更正,不精确的信息能够重新进行估算,而且能够通过推理获得错过的信息。为了能够实现最终的目标,每个agent 需要在其内部维护一个稳定的环境模型,含有一个稳定的信念。有多支球队使用bdi 模型,其中最著名的为at humboldt team,曾获得1998 年比赛的亚军,athumboldt team 的结构特点是按照bdi 模型的结构建立全队的规划过程。信念就是环境的模型,愿望就是从固定目标库中选择的目标,意图则表
35、现为两个阶段的规划过程。2.反应结构从传感器进入数据的同时传给多个行为模块,如果某些模块的条件被满足,则这些行为就会被输出,但究竟哪一个被执行,或全部执行,需要裁决模块来判决。一般常用的算法有动态优先级算法和混合算法。需要根据具体应用环境而定。3.层结构层结构一般可以分为两层或三层:通讯层、控制层和决策层。sohota发展了一个决策技术,称之为reactive deliberation,它在多个事先定义好的行为之间进行选择。建立了层学习模式,首先学习低级技术,然后按照层的顺序,越来越高的层技术和行为被加入。stone采用以前的技术优势介绍并实现了分层学习,分层学习是机器学习的一种方法,它定义一
36、系列建立一个对复杂系统分层次学习方案的准则,这些准则包括:直接从输入到输出的学习难以实现、可以给出从底层到高层的任务分解、机器学习探索训练数据或在不同层次产生适应性学习、一层的学习输出提供给另一层。断球使得智能体学到底层的控球能力,传球评估使智能体运用它以及学到的截球技术去训练一个多智能体行为,传球行为是智能体利用学到的传球评估去学习一个团队行为。一个分层任务分解后,分层学习使每一层次的学习都影响到其较高层次的学习。此系统与sohota 系统的最大差别在于stone 没有使用事先定义好的行为,所以,系统适合整队比赛,而sohota 的技术主要用在一对一的情况。但stone 的层学习有一个重要的
37、问题,由于学习的过程是从低级到高级逐步进行,每步学习都是在低一层的基础上进行的,因此当某一层学习产生误差时,误差会通过层之间进行传递,使整个系统出现决策失误。南加州大学的isis 队使用了精确的队模型,称之为steam,由于环境状态空间特别巨大,精确的模型会影响系统的鲁棒性,荷兰阿姆斯特丹大学的jan lubbers &rogier r. spaans将stone 的层结构进行简化,建立推理层和执行层的双层结构。同时采用面向对象技术中的priority /confidence模型进行决策算法的设计,取得了较好的成绩。1.3.4 结论由于机器人足球内在的复杂性,具体到一个队伍,建立智能体的世界模
38、型(包括模型表示、感知对象、估计状态、对状态进行合理的评价、设计机器人智能体系统结构等问题)的方法,协调、学习和训练基本动作( 包括带球、传球、射门、断球等)、在比赛中学习和使用各种技能(包括合作、战术、对抗等技能)以及对对手模型的估计等方法均千变万化,因此要构建一个在各方面都先进的参赛队伍,必须对以上各方面的内容进行认真细致的设计和研究。 14 可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。必须分析几种主要的可能解法的利弊,从而判定原定的系统规模和目标是否实现,系统完成后所能带来的效益是否大到值得
39、投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上较抽象的方式进行的系统分析和设计过程。可行性研究最根本的任务是对以后的行动方针提出建议。如果问题没有可行的解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。本系统的可行性分析包括经济可行性、技术可行性、操作可行性以及社会可行性。1.4.1 经济可行性本课题研究的内容是涉及网络的游戏对战。当今形势下,网络游戏俨然已经成为年轻人最时兴的消费方式之一,加之本课题研究是的年轻人最热衷的足球
40、游戏,相信研究成功带来的经济效益必定是巨大的。可以看一下游戏业带来的巨大经济利润:“世界上投资最少,甚至每天睡觉都可以有成千上万收入的行业有哪种?网络游戏便可以。”网易掌门人丁磊的这句话越来越被人们当成了“名言”。 每一个技术的出现,都可能催生一个巨大的产业。在互联网技术成熟发展并实现将现实生活和虚拟世界完美结合的世界大背景下,在网络基础设施正逐渐由窄带向宽带过渡的中国,一个巨大的数字娱乐媒体产业应运而生,这个产业就是体验经济和网络经济的新宠网络游戏业。正如娱乐经济一书作者沃尔夫所言,“娱乐已经成为未来30年严肃的大生意,娱乐经济时代已经到来,未来多数产业成功的关键,在于能否成功结合娱乐,其中
41、电子电脑游戏产业则是未来娱乐经济的先锋代表” 。从2000年开始,这个“先锋代表”在中国更始刮起了一股旋风让人不容忽视的旋风。在2000年的时候,it行业进人寒冬,真正能够在这凄迷、残酷的环境中迅速成长,进而大把收钱的非网络游戏莫属。据资料统计,2002年网络游戏的市场规模已经达到10多亿元; 2003年中国的网络游戏更是“火”了一把,网络游戏产值约20亿元人民币;统计预测2004年将达到42亿元 。 网络游戏市场在国内迅速膨胀,成为一个充满诱惑的市场。此外,本作研究的基础是建立于二维动画的足球游戏,不需要耗费巨大资金,力争可以实现一些三维场面:例如球的变化等。这在经济上是完全可行的。1.4.
42、2 技术可行性现在流行的游戏似乎都是用c或c+来开发的。在java平台上几乎没有很大型及可玩的流行游戏。由于java是个新生语言,他的许多特性还有待大家的发掘,但是我们不能否认java在游戏编程方面的强大性。applets是一种web浏览器上的小程序,由于applet对系统而言绝对安全,所以它做的事比application有限,但是对于客户端的程序,applets仍然是个很强大的工具。为了浏览和运行方便,我们就以applet为开发对象。开发applets程序,我们得继承applet类,并覆写必要的函数,下面几个函数控制了web页面上的applet生成与执行。函数作用 init() 这个函数会被
43、自动调用,执行applet的初始化动作包括组件在版面上的分配,你一定得覆写它; start() 每当浏览器显示applet内容时,都会调用它,让applet开启其正规工作,调用init()之后也会调用这个函数; stop() 每当浏览器不显示内容时,都会调用它。让applet关闭某些耗资源的工作,调用destroy()之后也会调用这个函数; destroy() 浏览器将applet自网页移除之际,便会调用它,以执行“applet不再被使用”应该做的最后释放资源等动作; paint() 让你在applet界面上进行相应的绘画动作,每次刷新时都会重画。线程:由于applet.java应用程序的执行
44、都和线程有关。我们来大概了解一下线程的概念。线程也称为轻型进程。每个线程只能在单个进程的作用域内活动、协作和数据交换,并且在计算资源方面非常廉价。线程需要操作系统的支持,因此不是所有的机器都提供线程。java 编程语言,作为相当新的一种语言,已将线程支持与语言本身合为一体,这样就对线程提供了强健的支持。thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 thread 类导出的新类。程序员必须覆盖thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是必须调用thread 的 start()函数,该函数再调用run()
45、。但是使用thread类实现线程,增加了程序的类层次,所以一般程序员都由另一个java线程接口runnable接口来实现,runnable接口只有一个函数run(),此函数必须由实现了此接口的类实现。线程中有几个重要的方法是我们得了解:thread.start(): 启动一个线程;thread.stop(): 停止一个线程;thread.sleep(time in milliseconds): 暂停线程在一个等待时间内。使用多媒体声音多媒体功能在游戏中是必不少的一部分,优美的音乐,漂亮的界面往往是一个成功游戏必需具备的条件。在开始之前我们先了解一下主要的小型声音文件类型:au - (扩展名为a
46、u或snd)适用于短的声音文件,为solaris和下一代机器的通用文件格式,也是java平台的标准的音频格式。au类型文件使用的三种典型音频格式为: 8位-law类型, 8位线性类型,以及16位线性类型。wav - (扩展名为wav)由 microsoft和ibm共同开发,对wav的支持已经被加进windows 95并且被延伸到windows 98. wav文件能存储各种格式包括-law,a-law和 pcm 数据。他们几乎能被所有支持声音的windows应用程序播放。aiff - (扩展名为aif或ief)音频互换文件格式是为macintosh计算机和silicon graphics (sg
47、i)计算机所共用的标准音频文件格式。aiff和 aiff-c几乎是相同的,除了后者支持例如-law和 ima adpcm类型的压缩。midi - (扩展名为mid)乐器数字接口midi是为音乐制造业所认可的标准,主要用于控制诸如合成器和声卡之类的设备。在jdk1.0上,java只支持*.au格式的声音文件,但是java2的api以及声音包提供了很强大的对声音技术的支持。而此部分为了让大家快速掌握游戏编程的基本知识,我们仅使用了audioclip接口类来实现播放*.wav。如果大家有兴趣可参考sun java网站的声音sapmle,上面提供了完备的实例和教程说明。使用audioclip接口比较简
48、单,我们只要实例对象,加载声音文件后,再在任何地方播放即可。恢复和播放声音最简单的方法是通过applet类的play()方法。图片处理技术图片的处理和声音的处理在一样简单。设置图片变量,得到图形,最后绘制图形。开始绘制前,我们先要声明图形变量,用来存放图形文件。以上是对本作的技术支持,加之其他涉及到游戏的类和方法。通过四年的学习和查阅资料,在技术上已经实现了可行性。1.4.3 操作可行性本作的表现形式是游戏者以观众的方式监视比赛的进程,游戏中游戏者可以根据场上的变化进行球员的调整等,手动操作的过程十分简便,不需要特别的其他的操作。游戏的内容涉及球员的部分不需要游戏者进行特别的操作,球员可根据场
49、上的变化自行调整进攻及防守的策略,游戏者也可以通过更换球员的方法来调整进攻和防守策略,当然,这些操作都是在游戏中设定好的。游戏系统包括的游戏引擎,图形渲染,物理碰撞测试和声音系统等都已经包含在程序中,都是不可变的程序。游戏者(玩家)只需要在设定的规则下操作游戏,玩法相当地简单,这在操作上是可行的。1.4.4 社会可行性一个好的游戏应该具有以下特征:易于学习: 既然游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个价值不高的手动操作的游戏。保持游戏的简单是最基本的要求。可中断性: 多任务处理也是游戏的基本特征。基于订阅:游戏的盈利成功取决于他
50、们巨大的使用量。一开始开发和设计每个游戏都是昂贵的。如果一个游戏开发者要赢利的话,重要的是:同一个游戏引擎,多个标题,基本的故事情节类似。基于订阅的游戏是不断产生收入的最好方法。 丰富的社会交互: 不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。技术优点:巨额的技术研发费用都花在提高设备和网络的可用性和可靠性上面。因此,游戏设备硬件和网络协议与桌面/控制台世界有着非常大的差别。好的游戏应该利用那些更新的设备特
51、征和网络基础设备的优点。基于以上几点的描述,加之四年的学习经验和阅读资料,在社会性上相信也是可行的。15 本章节小结本章节主要通过对现在足球游戏的发展背景、发展历史,发展状况和发展趋势以及对机器人足球的仿真系统的介绍,分析出进行足球游戏研究的经济、技术、操作和社会可行性。2 需求分析所谓系统分析,就是指在整个系统开发工程中,解决“做什么”的问题,把要解决哪些问题,满足用户哪些具体的信息需求调查分析清楚,从逻辑上或是说从信息处理的功能需求上提出系统的方案,即逻辑模型,为下一阶段进行物理方案设计,解决怎么办提供依据。21 系统初步分析2.1.1 用户需求分析随着internet的发展,进入信息时代
52、后快速获得网络共享资源成为很简单的事情,人们对互联网也有了很大的依赖性。网络的普及化使得原本单人的游戏已经不能适应人们的需要,广大的游戏者迫切需要能够和身在异地的朋友一起享受游戏的乐趣。在这种环境下,网络游戏应运而生,越来越多的游戏者投身到网络游戏中。这样带来的问题自然成为越来越多的游戏研究者将研究方向转为网络游戏的研究。据目前的网络游戏的调研来看,以运动休闲为主的运动类游戏正在受到越来越多玩家的支持和爱戴。但是此类网络游戏中,足球类的网络游戏仍然是一个空白页,但是它却是一个迫切需要填补的空白页。在单机游戏的霸者足球运动游戏,若能在网络上出现高要求多人互动的游戏,它将是一项极为伟大的发展。这也
53、正是现在许多玩家迫切要求的。2.1.2 系统的功能需求分析系统功能的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。本作的功能模块主要包括游戏的引擎设计,游戏的图象动画,游戏的物理系统,游戏的声音和渲染系统,以及需要设计的人工智能模块。1.游戏的引擎设计的需求分析:鉴定一个游戏的好坏,从内部设计的原因上说来,是从游戏的引擎设计体现出来的。一个游戏的引擎设计,直接关系到游戏设计的其他方面,诸如游戏的图形系统、声音系统及设计的物理模块等等各个方面。就如一台电脑需要cpu一样,游戏的引擎也是直接牵制着整个游戏的设计。它的主要作用就是处理游戏中的事件,运行游戏中的图象,输出声
54、音及画面,调整游戏的节奏,响应玩家的游戏监听事件等等。所以,游戏的引擎设计是必要的功能模块,而且游戏的引擎设计必须做好,以使得游戏更具有可玩性。游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件等都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。2.游戏图形动画设计的需求分析:作为一个游戏吸引玩家的重要方面,游戏的图形动画的设计是非常必要的。本作将采用模拟动画的方式将球场、球员、足球展现在玩家眼
55、前。设计出丰富的球场环境,多样的球员图象更能吸引玩家。游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在midp2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。3.游戏的物理系统设计的需求分析:游戏中的情况是要符合实际情况,才能让玩家产生共鸣。所以游戏系统设计需求的另一个方面就是物理系统的设计。例如:在游戏中,球员的相互碰撞,球员踢球时的碰撞,球的重力测试等。这其中包括的就是球在被踢时产生的速度,受到重力时的下落,球在被传球过程中的弧线或者说传球的路线等等,这些都是物理系统所要考虑到的内容。4.游戏的声音系
56、统设计的需求分析:游戏处了吸引人的图象之外,必备的条件还包括声音。一个游戏的音效也是吸引玩家的重要方面。游戏中会设计一个声音输出系统。5.游戏渲染系统设计的需求分析:渲染是引擎最重要的功能之一,当3d模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终的输出质量。引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。6.游戏人工智能设计的需求分析:本作游戏的设计重点之处在于人工智能的学习和球员数据库的适时更新,以便球员能在游戏中作出变化适应球场的形势变化。研究要点包括适应性行为,灵活、多模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 好的故事课件
- 2024年淮北职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 武术五步拳身体素质练习教学设计
- 2024年海南健康管理职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 【核心素养】37核能-浙教版科学九上探究学案(原卷版)
- 2024年浙江体育职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年泰山职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 2024年阳曲县精神病医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年河南建筑职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年河北公安警察职业学院高职单招职业适应性测试历年参考题库含答案解析
- 公司费用预算表格模板(详细版)
- 华为经营管理-华为市场营销体系(6版)
- 2023年中国育龄女性生殖健康研究报告
- 钢结构加工厂考察报告
- 发电机检修作业指导书
- 薪酬与福利管理实务-习题答案 第五版
- 废旧物资处置申请表
- GB/T 37234-2018文件鉴定通用规范
- GB/T 31888-2015中小学生校服
- 质量检查考核办法
- 云南省普通初中学生成长记录-基本素质发展初一-初三
评论
0/150
提交评论