【VC++开源代码栏目提醒】:网学会员在VC++开源代码频道为大家收集整理了“基于DotNet的编程型竞技游戏平台的研究与实现 - 硕士论文“提供大家参考,希望对大家有所帮助!
摘要 摘要 编程型竞技游戏(Programming Game)是一类特殊的电脑游戏,通常以“机器人竞技仿真引擎”的形式出现。
编程型竞技游戏以美国IBM公司在2001年7月发布的Roboeode游戏为其诞生的标志,发展至今已经有五年多时间,从无到有,同趋成熟,对教育游戏行业的发展起到了重要的推动作用。
目前,典型的编程型竞技游戏都是单机版、单玩家的二维游戏软件,而且关于此类游戏平台的构造原理和开发技术的研究,特别是基于Microsoft.NET框架构建游戏平台方面的研究比较少,限制了编程型竞技游戏的进一步发展。
因此,探索编程型竞技游戏平台的构造原理和开发技术,具有重要的研究意义和价值。
本
论文在借鉴国内外相关研究成果的基础上,重点研究基于Microsott.NET框架的,实现三维视图效果的,支持多玩家在线游戏的编程型竞技游戏平台的构造原理、设计方法和实现技术。
本
论文完成的主要工作如下: 1.阐述编程型竞技游戏平台的研究目的、研究意义和国内外研究现状。
2.概述编程型竞技游戏的特点、分类、游戏形式和游戏过程。
3.介绍相关的基础知识和软件工具,包括基于“Model.View-Controller(模型一视图一控制器),或MVC”的软件体系结构;“Peer to Peer(点对点)”、“Client/Server(客户端/服务器)”两种网络管理模式以及游戏平台的网络管理模式的选择;Microsoft.NET框架、编程语言、托管模块、程序集和线程的概念;底层游戏引擎FIy3D的基本编程思想、插件内部结构、编写插件的方法步骤;Fly3D与基于.NET框架的游戏平台的集成等内容。
4.运用面向对象的思想和方法,采用MVC软件设计模式对游戏平台进行系统分析与设计,详细阐述了游戏平台的主要模块功能、各模块间相互关系及协作、游戏平台的逻辑结构、服务器程序和客户端程序等内容。
5.阐述编程接口API的设计原则、设计方法;概述游戏平台的仿真模型,包括 广东工业大学工程硕士学位
论文场景模型、感知模型、动作模型等内容。
6.介绍游戏平台的关键实现技术,包括服务器程序的控制流程、装载机器人
代码技术、机器人线程调度技术、竞技过程回放技术、网络同步技术、基于FIy3D的三维视图技术和
软件测试等内容。
关键字:编程型竞技游戏;.NET框架;MVC模式 U Abstract Programming Game is a special kind ofcomputer game,usually appearing as SimulationEngine of Robot CompetitimL The birth of Programming Game is marked by the issuance ofRobocode in 2001.7 by IBM.In the past five years,it has reacted significantly on theacceleration ofthe development in educational game field. At present,all typical Programming Games are single—tiered,single—player andTwo—Dimensional games.Further more,there is not SO much research on constructiveprinciples and development technology about game platform,especially onMicrosoft.NET framework,which has confined the further development of ProgrammingGame.As a result,the research about constructive principles and development technologyofProgramming Game is significant and wonhwllile. Based on relevant studies in this field,the dissertation primarily studies theMicrosoft NET.Framework·based constructive principles,design approach andimplemental technology of Game Platform which supports for Muiriple·player with 3Deffect. Main tasks of this dissertation: 1.Stating the purpose and significance of the study on Programming Gamesplatform and its present conditions at home and abroad. 2.Summarizing the characteristics,classification,forms and course ofProgramming Game. 3.Introducing its background and tools,including software structure based on“Model—View·Controller or MVC”,“Peer to Peer’’and“Client/Server”,the choice ofnetwork about Programming Games,MicrosoR NET.ftamework,rrogrammmg Language,Managed Module,Assembly and the concept ofthread,the basic thought,internal strtmture andthe step ofcompilation about bottom engine ofGame Platform.-FIy3D,the integration ofGame ill £奎三些查兰三堡璧圭主竺兰銮Platform based on.NET and Fly3D.etc. 4.The dissertation analyzes and designs the game platform with MVC in ObjectOriented idea and method.It also illustrates the main function modules of ProgrammingGames Platform,the relation between each module,logical structure,SCl’ver application andclient application and 80 on. 5。
The dissertation expounds design principles and design methods of programminginterface API,then summarizes simulation models for programming games platform,including scene model,perception model,action model and SO on. 6.The paper introduces the implementation of the key technology,including serverprogram control procedure,techniques of loading robot code,playback in competition,network synchronization and implementation of 3-D view,software testing,and SO on.Key Words:Programming Games, .NET Framework, MVC Model 广东工业大学工程硕士学位
论文 独创性声明 秉承学校严谨的学风与优良的科学道德,本人声明所呈交的
论文是我个人在导师的指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写过的研究成果,不包含本人或其他用途使用过的成果。
与我一同
工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明,并表示了谢意。
本学位
论文成果是本人在广东工业大学读书期间在导师的指导下取得的,
论文成果归广东工业大学所有。
申请学位
论文与资料若有不实之处,本人承担一切相关责任,特此声明。
指导教师签字
论文作者签字: ;)舡匆 砷年J-月7日 第一章绪论 第一章绪论1.1编程型竞技游戏平台的发展及研究意义 编程型竞技游戏(Programming Game)是一类特殊的电脑游戏,通常以“机器人竞技仿真引擎”的形式出现。
编程型竞技游戏可以作为计算机语言课程有效的教学辅助工具,也可以作为人工智能领域的强大研究工具,其游戏平台的研制具有重要的现实意义。
1.1.1典型编程型竞技游戏简介 1.Roboeode:该游戏由美国IBM公司开发,使用Java作为编程语言(仅支持Java语言),机器人为坦克形状,每个坦克有个从竞技场上收集信息的感应器(雷达),并且它们还有一个执行动作的传动器,其规则和原理类似于现实中的坦克竞技。
可以通过http://roboeode.sourceforge.net/下载该游戏,目前该游戏项目已经开放源
代码(http://soureeforge.net/projects/robocode)a 2.AI.TANK:国内公司开发的一款类似Robocode的“智能坦克”教育游戏,并在Roboeode基础上做了很多的改进,封装了一些函数模块,让开发者更侧重于算法和程序设计的学习。
AI.TANK不仅支持Java语言,而且支持C、C++和C捍语言。
游戏为基础不同的使用者提供了“机器人快车(虚拟版)”和“CodeCanvas”两种层次的编程环境,其中,机器人快车(虚拟版)通过图形化编程方式实现机器人,而CodeCanvas是通过
代码编写机器人的。
在初级阶段,学生可以运用机器人快车,通过流程图式的图形化编程方式掌握程序设计的结构和算法,这种
图形化的编程方式已经同实体机器人编程方式实现了整合,使教师可以方便地组织机器人、信息技术、通用技术相关方面知识的教学,让学生既可以在虚拟机器人平台上学习知识、比赛竞技,也可以很快地过渡到实体机器人编程当中。
学生有了一定的程序 广东工业大学工程硕士学位
论文设计基础,就可以利用
代码编辑器(CodeCanvas)转换到C、C++、iava等
常用语言下的
代码编写学习。
不同语言方式编写的虚拟机器人可以在运行环境中同台竞技。
另外,使用者可以通过AIMapEditor对游戏的地图环境进行设计,迸一步提高游戏竞技的难度和趣味性。
同时,该游戏支持不同的机器人组队比赛,可以体现多人协作的团体精神。
3.AI.RCJ:AI.RCJ与AI.TANK出自同一公司,是一款以“智能足球”为主题、以虚拟足球机器人为控制对象进行程序设计和比赛竞技的游戏。
与AI.TANK相似,游戏提供了“机器人快车(虚拟版)”和“CodeCanvas”两种层次的编程环境。
除以上述3款游戏之外,还有一些优秀的游戏,如CodeRuler等。
1.1.2国内外研究现状 编程型竞技游戏以美国IBM公司在2001年7月发布的Robocode游戏为其诞生的标志,发展至今已经有五年多时间,从无到有,日趋成熟,对教育游戏行业的发展起到了重要的推动作用。
国内外的研究机构和商业公司根据不同的背景题材,研制出形式各异的编程型竞技游戏。
到目前为止,典型的编程型竞技游戏(如Robocode、AI.TANK、AI.RCJ等)都是单机版、单玩家的二维游戏软件,除了已
开源的Robocode以外,其它几款游戏的核心技术没有公开,关于此类游戏平台构造原理和开发技术的中文资料也很少。
近年来,在国内相近的研究主要集中在对机器人足球仿真系统的仿真策略、智能决策模型以及机器人硬件的研究上,但是关于编程型竞技游戏平台的软件开发技术,特别是基于Microsoft.NET框架构建游戏平台方面的研究比较少,限制了编程型竞技游戏的进一步发展。
目前,
电脑游戏正在往“智能化、三维化、网络化”方向发展,这也是编程型竞技游戏平台的发展趋势。
2 第一章绪论1.1.3编程型竞技游戏平台的研究目的及意义 教育游戏是近年来教育技术领域的一个研究热点,编程型竞技游戏是教育游戏的一种类型。
编程型竞技游戏能够将编写较为抽象的计算机程序与形象、有趣的游戏主题结合起来,为用户提供了强大的教学功能,教师可以将编程型竞技游戏作为计算机语言
课程的教学辅助工具,通过利用游戏的这种互动性和操作性,让学生在玩游戏的同时学习
程序设计及算法设计,这有望改变传统程序
设计课程教学中单一的教学方式,可以引导学生带着问题去学习,在实践中理解所学知识的功能,使学生的学习兴趣更浓烈,使教师的教学更为轻松,有助于进一步加强教师与学生之间以及学生与学生之间的交流互动,达到寓教于乐的目的。
实践证实,这种愉快学习、寓教于乐的特色教育在学生中是很受欢迎的,而且也是很有成效的。
多智能体系统(MuRi.Agent System)是近年来在智能机器人领域兴起的一个新课题,它主要研究多机器人在各种不利环境条件下,如何相互配合和合作来达到某一目的【l】。
编程型竞技游戏为研究多智能体系统理论提供了良好实验平台,是研究
人工智能的强大工具。
编程型竞技游戏平台的研制涉及软件工程、人工智能、机器人学、计算机仿真、网络技术等诸多领域的研究。
目前,国内关于此类游戏平台开发的资料比较少,这大大制约了编程型竞技游戏的应用范围。
因此,探索编程型竞技游戏平台的构造原理和开发技术,具有重要的研究意义和价值。
1.2本
论文的主要研究内容 本
论文在借鉴国内外相关研究成果的基础上,重点研究基于Microsott.NET框架的,实现三维视图效果的,支持多玩家在线游戏的编程型竞技游戏平台的构造原理、设计方法和实现技术,具体内容如下: 1.编程型竞技游戏平台的研究目的、研究意义和国内外研究现状。
2.编程型竞技游戏的特点、分类、游戏形式和游戏过程。
广东工业大学工程硕士学位
论文 3.开发游戏平台的相关基础知识和软件工具,包括基于 “Model.View.Controller(模式一视图一控制器),或MVC”的
软件体系结构;“Peerto Peer(点对点)”和“Client/Server(客户端/ill务器1”两种网络管理模式及游戏平台网络管理模式的选择:Microsoit.NET框架、编程语言、托管模块、程序集和线程的概念;底层游戏引擎Fly3D的基本编程思想、插件内部结构、编写插件的方法步骤;Fly3D与基于.NET框架的游戏平台的集成等内容。
4.游戏平台的主要模块功能、各模块间相互关系及协作、游戏平台的逻辑结构、服务器程序和客户端程序等内容。
5.编程接口API的设计原则和设计方法。
6.游戏平台的仿真模型,包括场景模型、感知模型、动作模型等内容。
7.游戏平台的关键实现技术,包括服务器程序的控制流程、装载机器人
代码技术、机器人线程调度技术、竞技过程回放技术、网络同步技术和基于Fly3D的三维视图技术等内容。
1.3本
论文的组织结构 第一章阐述编程型竞技游戏平台的发展及研究意义,介绍本
论文的主要研究内容及主要组织结构。
第二章介绍编程型竞技游戏的特点、分类、游戏形式和游戏过程。
第三章介绍游戏平台设计的基础知识及工具。
第四章游戏平台分析与设计。
第五章关键技术的实现。
4 第二章编程型竞技游戏平台概述 第二章编程型竞技游戏平台概述2.1编程型竞技游戏的特点 编程型竞技游戏是一类特殊的电脑游戏,通常以“机器人竞技仿真引擎”的形式出现,它们有如下特点: 1.游戏玩家在游戏平台(或其它开发平台)上使用某种编程语言创建和控制自己的机器人,把它放到竞技场上同其他机器人比赛,直至分出胜负。
游戏玩家的最终目标就是编制一个高效的机器人控制程序来取胜。
2.在游戏过程中,游戏玩家不能对机器人的行为施加任何控制。
机器人的行为不是由键盘、鼠标或操纵杆来控制,而是由游戏玩家为它设计的智能来自动指挥。
2.2编程型竞技游戏的分类2.2.1按机器人的执行方式分类 根据机器人在每一个时间点上的执行方式,编程型竞技游戏可分成“并行式”和“串行式”两类。
(1)并行式,参与竞技的所有机器人在每一个时间点上是并发执行的,例如游戏Robocode。
(2)串行式,参与竞技的所有机器人是轮流交替进行竞技的,例如下棋类游戏。
2.2.2按玩家的物理位置分布分类 根据游戏玩家的物理位置分布情况,编程型竞技游戏可分成“单机版”和“网络版”两类。
(1)单机版,游戏软件只运行在一位游戏玩家的
计算机上,并且只允许一位游戏 广东工业大学工程硕士学位
论文玩家参与游戏。
(2)网络版,允许多位游戏玩家参与游戏,游戏玩家的计算机上各运行一个游戏软件,通过网络进行
通信。
此类游戏需要考虑网络延迟等
问题,实现起来难度较大。
2.2.3按游戏实现方式分类 根据游戏虚拟世界的实现方式以及游戏采用的图形技术,编程型竞技游戏可分成“二维视角”和“三维视角”两类。
一个典型的编程型竞技游戏可以同时具备上述几种类型的特征。
本
论文重点研究综合了并行式、网络版、三维视角3种类型的特征的编程型竞技游戏。
2.3编程型竞技游戏的游戏形式 编程型竞技游戏采用“回合比赛(对抗)”的游戏形式,竞技各方在一个竞技场中进行一场比赛(对抗)。
一场比赛(对抗)可以有多个回合,每个回合耗时约1~3分钟。
每个回合开始时,参加比赛(对抗)的各方机器人被随机地安排在竞技场的某一个位置,或由
系统公平地初始布局,当某一方机器人胜利时回合结束。
某个回合结束时,游戏平台给竞技各方打分,对于有多个回合的比赛(对抗),游戏平台为竞技各方累记得分。
2.4游戏过程 游戏过程分成三个阶段一一准备游戏、进行游戏、回顾游戏。
2.4.1准备游戏 游戏玩家利用游戏平台提供的SDK,在开发平台(如:Visual Studi02005、c群Builder、游戏平台提供的
代码逻辑器等开发工具)上使用某种编程语言(如C群或其 6 苎三耋苎堡至耋垫墼塑兰垒堡鎏它语言)创建、调试机器人,生成机器人的已编译
代码单元一一程序集。
2.4.2进行游戏 1.对于单机型的游戏,只需在游戏玩家的计算机上运行游戏软件,然后装载机器人的已编译
代码单元,即可开始游戏。
2.对于
网络型的游戏,大致按如下步骤进行: (1)游戏玩家A登录服务器,创建一个竞技场,设置竞技场的相关参数,并在其上召集一场比赛(对抗),然后等待其它游戏玩家加入比赛(对抗); (2)其它游戏玩家,如玩家B登录服务器,加入比赛(对抗); (3)各游戏玩家将机器人上传至服务器,准备开始比赛(对抗): (4)游戏玩家A开启比赛(对抗); (5)比赛(对抗)结束; (6)选择继续比赛(对抗)或退出。
2.4.3回顾游戏 游戏玩家通过“回放比赛(对抗)”功能,回顾整场比赛(对抗)的过程,总结经验和不足,改进自已的机器人。
7 广东工业大学工程硕士学位
论文 第三章游戏平台设计的基础知识及工具3.1基于MVC模式的软件体系结构3.1.I MVC模式简介 为了获得更好的软件系统结构,人们提出了一种宏观的、面向对象的软件设计模式一一MVc模式, MVC是“Model—View—Controller(模型一视图一控制器)”的缩写,其核心思想是将整个应用程序的
代码分成相对独立而又能协同工作的3个组成部分一一模型、视图和控制器,三个部分的关系及主要功能如图3-1所示。
——◆方法调用 …一◆事件 图3.1 blVC设计模式的结构 ofMVC Design Pattern Figure 3-1 Structure 模型代表从现实世界中挖掘出来的对象模型,是应用逻辑的反映。
模型封装了 8 第三章游戏平台设计的基础知识及工具数据和对数据的操作,是实际进行数据处理的计算的地方。
模型接受视图请求的数据,并返回最终的处理结果。
模型从概念上可以分为两类一一系统的内部状态和改变系统状态的动作。
视图是模型的表示,提供了用户交互界面,通常实现数据的输入和输出功能。
控制器本身不做任何数据处理,主要负责模型和视图之间的交互,把用户的请求分发到相应的模型,或将模型的改变及时反应到视图上。
3.1.2 MVC模式的优点 1.模型、视图与控制器的分离,能够实现一个模型在运行时同时建立和使用多个视图。
变化一传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。
2.视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。
3.模型的可移植性。
因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。
需要做的只是在新平台上对视图和控制器进行新的修改。
4.组件的可重用性。
模型、视图与控制器的分离有利于组件的重用,如控制器可独立成一个可用的组件,视图可做成通用的操作界面。
3.2网络版编程型竞技游戏的网络管理模式 网络版编程型竞技游戏属于多玩家游戏(multi.player game),这类游戏可以同时让两个或两个以上玩家通过网络参与游戏,每个玩家在各自的计算机上运行游戏软件并控制着各自的游戏角色。
在游戏过程中,每个游戏角色的状态变化将通过网络同步发送给其他玩家。
由于网络传输会出现某种程度的延迟,所以可能会影响游戏运行的流畅性。
为尽量消除“网络延迟”所带来的影响,游戏平台必须采用合适的网络管理模式。
典型的网络管理模式包括“端对端”模式和“客户/服务器”模 9 广东工业大学工程硕士学位
论文式。
3.2.1“端对端”模式 “端对端”(Peerto Peer或P2P)模式是一种比较简单的网络管理模式,具有网状的逻辑结构,如图3.2所示: 昌黥0且躲 玩家 图3-2“端对端”网络管理模式 Figure 3-2 Network Management Schemas of‘’Peer to Peer’’ 因为多玩家游戏必须保证同一时刻所有玩家的游戏状态是一致的,所以很多游戏运行时会在内部维护统一的游戏状态数据库。
在“端对端”模式中,每个玩家的计算机上保持一份游戏状态数据库的完整副本,并各自独立地处理着游戏的全部逻辑。
当某个玩家的游戏状态发生变化时,修改的数据会发送给其他玩家以便及时更新他们的数据库。
如果有N个玩家同时参与游戏,那么一个玩家的一次变动必须发送给其他(N一1)个玩家;如果所有的玩家都发生变动,那么将有N(N一1)条消息需要传输,当玩家人数增加时,由网络传输引起的延迟时间将呈二次方的比例增长。
3.2.2“客户/服务器”模式 “客户/服务器”(Client/Server或c/S)模式是目前大多数应用软件系统采用的体系结构,该模式具有星形的逻辑结构,如图3.3所示。
10 第三章游戏平台设计的基础知iP,及I具 玩家\ 、 ./。
凰稼 ./’ 服务器 。
\. .