- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编程型游戏的通信模型与相关技术
摘要:单机版编程型游戏不支持多人在线游戏,其应用范围受到限制。介绍了网络版编程型游戏的通信模型、软件组成、控制流程和网络同步技术。
关键词:编程型游戏;通信模型;服务器程序;网络同步
Communication Model and Technology Relating to Programming Games
JIANG Geng-hao
(Education Department of Hanshan Normal University, Chaozhou 521041, China)
Abstract: Single-tiered Programming Games do not support multi players online games since its application range is limited. This paper describes the Communication Model,including its software, control flows and network synchronization technology based on the network.
Key words: programming games; communication model; server application; network synchronization
编程型游戏(Programming Game)是一类具有教学、科研功能的计算机游戏,既可用于计算机程序设计课程教学,也可用于人工智能领域研究。编程型游戏通常以“竞技仿真引擎”的形式出现,与其它游戏的主要区别在于其游戏方式:游戏者编写程序控制自己的游戏角色,将其放至竞技场与其它游戏角色进行竞技;在游戏过程中,游戏角色的行为不是由键盘、鼠标或游戏操纵杆等输入设备进行控制,而是由游戏者事先为其设计的程序自动进行控制,面对随机出现的情况作出合理判断并采取相应的反应动作。出于仿真的需要,编程型游戏中每个游戏角色都拥有一个独立的线程,称为角色线程。为了使各个角色线程能够公平获得处理器时间,由游戏引擎的“竞技调度线程”依次对它们进行机会均等的调度。
目前,典型的编程型游戏(如robocode、AI-TANK、AI-RCJ等)都是单机版的,不支持多人在线游戏,其应用范围受到限制。在借鉴相关研究成果基础上,研究支持多人在线游戏的网络版编程型游戏的通信模型和相关技术。
1 网络版编程型游戏的通信模型
网络版编程型游戏属于多人游戏(multi-player game),可以同时让多个游戏者通过网络参与游戏,游戏者在各自的计算机上运行游戏软件并控制着各自的游戏角色。在游戏过程中,游戏状态将通过网络传输进行同步更新。由于网络传输会出现一定程度的延迟,所以可能会影响游戏运行的流畅性。为尽量消除“网络延迟”所带来的影响,游戏引擎必须采用合适的通信模型。典型的通信模型包括“端对端”模型和“客户端/服务器”模型。
1.1 “端对端(P2P)”模型
P2P模型是一种比较简单的通信模型,具有网状的逻辑结构,如图1所示。因为多人游戏必须保证同一时刻所有游戏者的游戏状态是一致的,所以通常会在内部维护统一的游戏状态数据库。在P2P模型中,每个游戏者的计算机上保存一份游戏状态数据库的完整副本,并各自独立地处理着游戏的全部逻辑。当某个游戏者的游戏状态发生变动时,修改的数据会发送给其他游戏者以便及时更新他们的数据库。如果有N个游戏者同时参与游戏,那么一个游戏者的一次变动必须发送给其他(N-1)个游戏者。如果所有的游戏者都发生变动,那么将有N×(N-1)条消息需要传输,当人数增加时,由网络传输引起的延迟时间将呈二次方的比例增长。
1.2 “客户端/服务器(C/S)”模型
C/S模型具有星形的逻辑结构,如图2所示。C/S模型中,服务器扮演了仲裁人的角色,统一处理所有客户端共享的游戏逻辑,收集所有的游戏状态信息并集中存储在一个游戏状态数据库中。每个客户端保持一份游戏状态数据库的子集,并且只处理与自身相关的部分游戏逻辑。游戏过程中,客户端只与服务器进行信息的发送和接收。如果游戏状态发生变动,那么服务器只须发送N条消息即可完成更新。与P2P模型不同的是,C/S模型必须额外在服务器上运行一个服务器程序。
1.3 通信模型的选择
两种通信模型各有优缺点,P2P模型无需额外运行服务器程序,但需要进行较为频繁的网络连接和信息发送。C/S模型集中管理游戏逻辑和状态,在管理多个游戏者的游戏会话方面具有优势,但需要额外运行服务器程序,增加了游戏引擎的复杂度。
文档评论(0)