RGame lock-step技术方案x..DOCX

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RGame lock-step技术方案版本时间修订人员备注Ver1.02011-1-17novaliulock-step技术方案目录RGame lock-step技术方案11Lock-step简介41.1技术背景41.2功能简介42Lock-step和其他方案比较52.1传统CS模式52.2P2P状态同步模式62.3Lock-step模式62.4传统CS模式和Lock-step模式比较73Lock-step技术方案83.1区分一些概念83.2网络连接方式选择83.3抽象模型103.4系统架构113.5逻辑层确定性论证123.6输入系统134Lock-step反外挂方案144.1通用外挂144.2开战争迷雾144.3修改数据144.4私服/免服144.51 v 1判断问题145Lock-step调试方案155.1自动测试155.2出现错误时记录足够的信息155.3回放错误156总结16Lock-step简介技术背景国外的RTS类游戏使用的比较多的技术,知道的有星际、War、帝国等。帧同步分为三个层面,最底层是网络连接,中间层是游戏系统,最高层是同步协议。网络连接方式决定了网络模型,是对等P2P、还是Host-Peer、还是Client-Server。UDP协议的网络库可以使用QQ飞车的方案,用来做Host-Peer或对等P2P。游戏系统需要不同客户端之间严格的确定性,即相同的输入在不同的客户端要有相同的输出,这是lock-step的关键所在,而且因为有了确定性后可以只同步操作,降低了网络流量。这方面没有什么相关资料,搜了一些国外开发网站,只找到了浮点数确定性相关的,没有讲系统整体确定性的。这个方面已经想到了比较好的解决方法,后面会提到具体的解决方案。同步协议用来对客户端的每一帧进行同步,并且有一些辅助协议可以降低客户端之间的配置差异、网络质量差异带来的影响。主要是通过协议同步不同客户端之间的帧速,以及输入命令缓存,这一块有帝国和NBA2K的资料可以参考。功能简介Lock-step是在联网的客户端(可能有主机)之间,一种步进和同步机制,目的是为了让所有客户端只需要同步操作,就能运行出同样的结果。Lock-step的关键在于同步性和确定性,一个客户端获取了所有其他客户端的第N帧输入数据,才会执行第N帧,执行第N帧操作的逻辑过程也保证了确定性,这样每个客户端的状态在第N帧计算结束的时候是完全一致的。一个固定的输入集通过Lock-step系统能产生确定性的固定输出。客户端之间只用同步鼠标键盘的输入消息,每个客户端之间能保证每一帧的一致性。Lock-step和其他方案比较传统CS模式传统的CS模式 各个客户端之间是完全独立的,在执行上各客户端之间没有同步关系,服务器上的状态和各个客户端之间的状态和表现很难确定是在什么时间点是稳定一致的。一些基础体验,客户端一般会先表现,比如行走,客户端会先行走,同时把路径发给服务器,只有服务器觉得出现错误的时候才会被拉扯。这种方案比较适合MMO类的游戏,因为玩家数量多,同步是非常困难的。如果要在传统MMO里增加一些即时性的要素,可以通过增加辅助的P2P状态同步模型来做。P2P状态同步模式P2P状态同步模式 是和其他客户端直接连接,然后传播自己的状态给其他peer,这在状态数据较少时,或者只同步某类有限的数据时,想减少通过服务器处理转发而产生的延时,才会使用,用的最多的是传统的FPS类游戏,如Quake系列。QQ飞车这种竞速类游戏也是用的这类方式。还有cf、dnf等也用了一些类似的方式,配合传统的CS模式,能快速同步表现相关的数据。优点是,同步数据少的时候,速度超过其他模式;缺点是,反外挂在这种模式下很难做。Lock-step模式Lock-step模式 的各个客户端按照严格的帧的概念来同步执行的,客户端之间只需要同步操作,客户端需要保证系统的确定性,这样在相同输入的情况下,才会有相同的输出,这是只同步输入的关键点所在。所以lock-step的关键点在于同步性和确定性。Lock-step的优点在于因为同步性,所以各个客户端表现是一致的,因为确定性,决定了网络只需要传递操作,在有大量数据需要同步的场合,只能用lock-step,如RTS。传统CS模式和Lock-step模式比较P2P状态同步模式一般在网络游戏里用作辅助用途,所以这里部重点讨论,为了有更直观的认识,我们对游戏要实现的一些功能点,对比一下传统CS模型和Lock-Step的具体区别:单位的动态阻挡 这个功能如果用CS的方式实现,会有很多问题,因为角色在移动时,各个客户端的位置都会有差异,QQ轩辕做了这方面的尝试,为了让角色在不同客户端上的状态稳定,需要角色站到一个地方几秒才能算阻挡,还要处理很多因为并行系统带来的竞争问题,显然在效果上和实现成本都会高

您可能关注的文档

文档评论(0)

dsf80fhg0j + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档