基于分布式服务器的回合制网络游戏的实现方法技术

技术编号:3876281 阅读:663 留言:0更新日期:2012-04-11 18:40
本发明专利技术公布了一种基于分布式服务器的回合制网络游戏的实现方法,当需要开启一场回合制战斗时,首先通过创建域的方式在战斗处理服务器上创建一个战斗域,随后将需要参加回合制战斗的玩家对象上与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理服务器上的战斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然后进行战斗流程处理直至战斗结束,最后,将玩家对象镜像的数据抽取出来,通过远程调用的方式发送到其对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有的数据;本发明专利技术能够更加轻松地处理回合制战斗游戏过程中的逻辑和数据,极大地降低了开发成本,提升了开发速度。

【技术实现步骤摘要】

本专利技术涉及网络游戏领域,尤其是一种基于分布式服务器的回合制网络游戏的实现方法
技术介绍
基于分布式服务器的网络游戏中,所有的游戏资源都分布在各个不同的服务器 上,如果访问不在当前主机的数据资源,就需要通过访问域的方式进行远程调用,而不能像 传统单一服务器下开发的网络游戏,以直接通过访问对象的方式进行。这样就给开发工作 带来不便利性,使得开发人员需要通过更多更复杂的逻辑代码才能实现原来在单一服务器 下很容易达成的目标。同时,由于大量数据访问和接口调用需要通过远程访问的方式,若网 络突然出现中断,导致通信不可用,就会增加了系统的不可靠性,这样在需要实现对可靠性 有较高要求的系统时,复杂度增大了很多。
技术实现思路
为了解决上述问题,本专利技术提供一种具有高度可靠性和易于开发的基于分布式服务器的回合制网络游戏的实现方法。 为达成上述目的,本专利技术的技术方案是 —种,当需要开启一场回合制战 斗时,首先通过创建域的方式在战斗处理服务器上创建一个战斗域,随后将需要参加回合 制战斗的玩家对象上与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理 服务器上的战斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然 后进行战斗流程处理直至战斗结束,最后,将玩家对象镜像上与战斗有关的数据抽取出来, 通过远程调用的方式发送到其对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有 的数据。 采用本专利技术的技术方案后,由于将所有参与回合制战斗的玩家对象的与战斗相关 的数据发送到同一台服务器上,并在该服务器上还原了玩家镜像对象,所以开发者可以在 内存中直接以面向玩家对象的方式访问数据,编写战斗控制逻辑。这样比每次需要访问数 据时都通过远程调用的方式从另一台主机获取便利了很多,程序人员无需考虑远程调用的 异步性、不可靠性,从而能够更加轻松地处理回合制战斗过程中的逻辑和数据,极大地降低 了开发成本,提升了开发速度。附图说明 图1是本专利技术中数据处理流程图; 图2是本专利技术中数据处理关系图; 图3是本专利技术中网络拓扑图。 以下结合附图和具体实施例对本专利技术作进一步详述。具体实施例方式如图3,本专利技术一种,主要包括多 个玩家(客户端)、若干存储有玩家对象数据的服务器(玩家服务器)、至少一个用于承载 回合制战斗过程的服务器(战斗处理服务器)。 所述的玩家对象数据是与用来表示玩家在网络游戏实现过程中的实例化对象相关的数据,即与存储于玩家服务器中玩家对象相应的数据段数据和代码段数据。 如图2所示,当存储于玩家服务器A的玩家对象1、玩家对象2和存储于玩家服务器B的玩家对象3、玩家对象4共同开启一场回合制战斗时,在战斗处理服务器C创建一个战斗域,并将所有需要进入回合制战斗的玩家对象在该战斗域中生成玩家对象镜像,将该玩家对象数据传输给该战斗域中对应的玩家对象镜像,即在战斗域内根据接收到的数据重新还原成对应逻辑对象和数据,与真正玩家对象一一映射;在战斗过程中,只针对所有的玩家对象镜像进行访问,并且在战斗结束后,再将与玩家对象镜像相关的数据回传至其对应的玩家对象所在的玩家服务器并覆盖该玩家对象的数据。所述的玩家对象和玩家对象镜像的不同之处主要在于 1、数据段不同 玩家对象镜像的数据段所拥有的数据部分和玩家对象的重叠;在玩家对象战斗过 程中所需要访问使用到的数据段且玩家对象拥有的部分即为重叠部分数据;而玩家对象所 拥有的与战斗无关的数据则是玩家对象的独有数据;在战斗过程中,因为战斗过程所产生 的其他临时性数据则为玩家对象镜像的独有数据。 —般来讲,玩家对象和玩家对象镜像都有表示该玩家对象的生命力、行动力、攻击 力等相关数据,这是重叠数据部分;但是玩家对象上用来记录玩家游戏时间、游戏坐标等与 战斗过程无关的数据是玩家对象的独有数据;在战斗过程中,需要记录当前玩家对象状态 的数据,比如中毒、禁制等数据则是玩家对象镜像的独有数据。 另外,玩家对象数据中需要记录玩家的网络连接端口号,而玩家对象镜像数据中 需要记录对应玩家对象的目标数据。 2.代码段不同 由于玩家对象是用来表示玩家游戏过程中的实例化对象,所以其逻辑代码需要涉 及到游戏过程中的所有操作;而玩家对象镜像只用来处理玩家对象在回合制战斗过程中的 操作逻辑,所以其代码段的内容与玩家对象的不同。其中最明显的区别在于玩家对象需要 提供一个发送数据包的逻辑功能,该段逻辑代码的主要作用就是将需要发送给玩家对象镜 像的数据按照玩家对象上记录的网络连接端口号发送过去;而玩家对象镜像明显不具有该 段逻辑代码,且也不可能与玩家存在网络连接关系,所以玩家对象的逻辑代码其主要功能 是将需要发送给玩家的数据通过远程通信调用的方式先发送给玩家对象,再由玩家对象通 过网络连接发送给玩家。 如图l所示,本专利技术需要开启一场回合制战斗时,首先通过创建域的方式在战斗 处理服务器上创建一个战斗域,随后将需要参加回合制战斗的玩家对象上标注战斗标记, 然后将与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理服务器上的战 斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然后,进行战斗流程处理直至战斗结束,最后,将玩家对象镜像上与战斗有关的数据抽取出来,通过远程调用 的方式发送到该对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有的数据,同时 去掉玩家对象上的战斗标记。权利要求一种,其特征在于当需要开启一场回合制战斗时,首先通过创建域的方式在战斗处理服务器上创建一个战斗域,随后将需要参加回合制战斗的玩家对象上与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理服务器上的战斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然后进行战斗流程处理直至战斗结束,最后,将玩家对象镜像上与战斗有关的数据抽取出来,通过远程调用的方式发送到其对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有的数据。全文摘要本专利技术公布了一种,当需要开启一场回合制战斗时,首先通过创建域的方式在战斗处理服务器上创建一个战斗域,随后将需要参加回合制战斗的玩家对象上与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理服务器上的战斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然后进行战斗流程处理直至战斗结束,最后,将玩家对象镜像的数据抽取出来,通过远程调用的方式发送到其对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有的数据;本专利技术能够更加轻松地处理回合制战斗游戏过程中的逻辑和数据,极大地降低了开发成本,提升了开发速度。文档编号G06F19/00GK101751513SQ20091011310公开日2010年6月23日 申请日期2009年12月23日 优先权日2009年12月23日专利技术者卢竑岩, 叶振华 申请人:厦门市吉比特网络技术有限公司本文档来自技高网...

【技术保护点】
一种基于分布式服务器的回合制网络游戏的实现方法,其特征在于:当需要开启一场回合制战斗时,首先通过创建域的方式在战斗处理服务器上创建一个战斗域,随后将需要参加回合制战斗的玩家对象上与战斗相关的数据抽取出来,通过远程调用的方式发送到该战斗处理服务器上的战斗域中,并在该战斗域中根据接收到的数据创建相对应的玩家对象镜像,然后进行战斗流程处理直至战斗结束,最后,将玩家对象镜像上与战斗有关的数据抽取出来,通过远程调用的方式发送到其对应的玩家对象所在的玩家服务器上,并覆盖玩家对象原有的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:卢竑岩叶振华
申请(专利权)人:厦门市吉比特网络技术有限公司
类型:发明
国别省市:92[中国|厦门]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1