CN106034129B - 一种用于游戏同步的fbsg方法 - Google Patents
一种用于游戏同步的fbsg方法 Download PDFInfo
- Publication number
- CN106034129B CN106034129B CN201510119580.0A CN201510119580A CN106034129B CN 106034129 B CN106034129 B CN 106034129B CN 201510119580 A CN201510119580 A CN 201510119580A CN 106034129 B CN106034129 B CN 106034129B
- Authority
- CN
- China
- Prior art keywords
- frame
- game
- server
- client
- fbsg
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
- H04L27/2647—Arrangements specific to the receiver only
- H04L27/2655—Synchronisation arrangements
- H04L27/2656—Frame synchronisation, e.g. packet synchronisation, time division duplex [TDD] switching point detection or subframe synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于游戏同步的FBSG方法,涉及通信技术领域。所述方法:游戏服务器按照固定频率输出帧给所有用户端,并且接收所有用户端的客户端的所有输入操作数据,经排序处理后,将所有需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行接收到的操作数据,完成游戏同步的FBSG。本发明方法实现了每个用户端的GSS保证同样的初始状态,同样的操作输入,并且同样的运行机制下,在同样的阶段中获得同样的输出结果,最终达到每个客户端都能自己独立运行游戏逻辑而能保持游戏的公平性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种用于游戏同步的FBSG方法。
背景技术
目前在市场上,大型多人在线角色扮演游戏(以下简称为网络游戏,MultiplayerOnline Role-Playing Game,其英文缩写为mmorpg)普遍使用有2种架构模式,即C/S模式和p2p模式。
现有C/S模式具体为,客户端(用字母C表示)发送所有操作给游戏状态服务器(用字母GSS表示),GSS进行处理,并将处理结果下发给客户端C,当客户端C收到结果数据时,再执行的相应的响应行为,最终反馈给玩家,此模式的缺点是:消耗集中在GSS上,当人数过多时,GSS容易成为性能的瓶颈,为减少性能消耗会简化计算的精度,并且针对一次计算逻辑,GSS和C需要单独处理,增加了沟通成本。
现有p2p模式减少了Server端,将游戏状态服务器集成到每个客户端上,每个客户端的输入都广播给其他的客户端,每个客户端根据其他客户端的所有输入,各自计算运算结果,但这种处理的方式的缺点是:一、涉及广,当客户端数量增加时,网络传输量以指数级增长;二、网络传输的不稳定,导致各个GSS接收的输入次序不一致,计算结果时需要特殊处理。
针对p2p模式中的两个缺点,现有处理方式是:选取一个p2p客户端的GSS作为主机,其他人都往该客户端的GSS发送输入,并接收该GSS的输出,从而减少指数级别的输入增长,而因为只有一个GSS服务器,即能保证GSS的一致,但结果会跟C/S模式一样,GSS和C单独实现,在性能消耗上,可以以玩家队伍为单位分散到多个GSS中,但这种处理方式存在着沟通成本增加的问题。
发明内容
本发明的目的在于提供一种用于游戏同步的FBSG方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明公开的一种用于游戏同步的FBSG方法,具体按照下述步骤实现:游戏服务器按照固定频率输出帧给所有用户端,并且接收所有用户端的客户端的所有输入操作数据,经排序处理后,将所有需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行接收到的操作数据,完成游戏同步的FBSG。
优选地,所述排序处理是指:所述游戏服务器在当前驱动帧时间间隔内,接收所有客户端的所有输入操作数据后,按照输入次序进行排序,绑定当前帧号,得到需要输出的操作数据的先后顺序,即所述固定次序。
更优选地,在所述排序处理过程中,所述游戏服务器还对每一个需要输出的操作数据标注特定驱动帧号,所述特定驱动帧号为当前游戏服务器的驱动帧号。
优选地,所述帧同步方法是每个客户端都按照相同的频率按帧执行,使所有状态服务器的最后一帧的帧数相同,具体按照下述方法实现:
若游戏服务器向所有状态服务器通知下一帧的执行,所有状态服务器按照游戏服务器发出的特定驱动帧号同时执行帧,即当前帧数=前一帧的帧数+1;
若游戏服务器没有向所有状态服务器通知下一帧的执行,所有状态服务器不执行帧,即当前帧数=前一帧的帧数。
更优选地,在帧同步过程中,采用逻辑追帧保证所有客户端的同步状态。
更优选地,所述逻辑追帧,按照下述方法实现:
S1,获取所有客户端的初始状态数据;
S2,所有客户端使用缓冲区接受游戏服务器的输出数据;
S3,判断缓冲区是否为空,如果是“空”,则继续判断缓冲区是否为空;如果不是“空”,则进入S4;
S4,判断缓冲区的驱动帧数量是否大于等于预先设定的阈值,如果大于等于,则进入S5;如果小于,则客户端按照驱动帧的时间间隔正常执行操作,并返回S3;
S5,则客户端缩短当前帧与下一帧的时间间隔,加速执行每帧操作,并返回S3,直至客户端按照驱动帧的时间间隔正常执行操作为止。
更优选地,步骤S5中,所述加速执行每帧操作,具体按照下述方法实现:
A1,根据缓冲区中驱动帧数量确定加速倍率;
A2,将当前帧执行间隔除以加速倍率,得到加速后的帧执行间隔;
A3,按照加速后的帧执行间隔执行下一帧逻辑处理。
优选地,所述游戏服务器与客户端之间、所述游戏服务器与状态服务器之间均采用Udp通讯。
本发明的有益效果是:
本发明所述FBSG方法是游戏服务器接收所有用户端的客户端的所有输入操作数据,经排序处理后,将需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行,在每个用户端的GSS保证同样的初始状态,同样的操作输入,并且同样的运行机制下,在同样的阶段中获得同样的输出结果,最终达到每个客户端都能自己独立运行游戏逻辑而能保持游戏的公平性。在本发明中,若是存在客户端的某一状态不一致,可以通过逻辑追帧的方法实现客户端的最终状态一致。
附图说明
图1是实施例中所述用于游戏同步的FBSG方法中的游戏服务器、客户端和状态服务器的通信连接示意图;
图2是实施例中帧同步方法的示意图;
图3是实施例中逻辑追帧方法的示例图;
图4是实施例中所述逻辑追帧的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例中,所述用于游戏同步的FBSG方法包括:游戏服务器按照固定频率输出帧给所有用户端,并且接收所有用户端的客户端的所有输入操作数据,经排序处理后,将所有需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行接收到的操作数据,完成游戏同步的FBSG。
在本实施例中,所述排序处理是指:所述游戏服务器在当前驱动帧时间间隔内,接收所有客户端的所有输入操作数据后,按照输入次序进行排序,绑定当前帧号,得到需要输出的操作数据的先后顺序,即所述固定次序。所述固定频率是指:帧同步按照一定时间间隔产生下一个帧的驱动帧号,并通知用户端的状态服务器执行下一帧处理逻辑。所述游戏服务器与客户端之间、所述游戏服务器与状态服务器之间均采用Udp通讯。本实施例中所述FBSG是Frame Base Synchronization Game的英文简写。
在本实施例中,在所述排序处理过程中,所述游戏服务器还对每一个需要输出的操作数据标注特定驱动帧号,所述特定驱动帧号为当前游戏服务器的驱动帧号。
在本实施例中,所述帧同步方法是每个客户端都按照相同的频率按帧执行,使所有状态服务器的最后一帧的帧数相同,具体按照下述方法实现:
若游戏服务器向所有状态服务器通知下一帧的执行,所有状态服务器按照游戏服务器发出的特定驱动帧号同时执行帧,即当前帧数=前一帧的帧数+1;
若游戏服务器没有向所有状态服务器通知下一帧的执行,所有状态服务器不执行帧,即当前帧数=前一帧的帧数。
在本实施例中,在帧同步过程中,采用逻辑追帧保证所有客户端的同步状态。所述逻辑追帧,按照下述方法实现:
S1,获取所有客户端的初始状态数据;
S2,所有客户端使用缓冲区接受游戏服务器的输出数据;
S3,判断缓冲区是否为空,如果是“空”,则继续判断缓冲区是否为空;如果不是“空”,则进入S4;
S4,判断缓冲区的驱动帧数量是否大于等于预先设定的阈值,如果大于等于,则进入S5;如果小于,则客户端按照驱动帧的时间间隔正常执行操作,并返回S3;
S5,则客户端缩短当前帧与下一帧的时间间隔,加速执行每帧操作,并返回S3,直至客户端按照驱动帧的时间间隔正常执行操作为止。
步骤S5中,所述加速执行每帧操作,具体按照下述方法实现:
A1,根据缓冲区中驱动帧数量确定加速倍率;
A2,将当前帧执行间隔除以加速倍率,得到加速后的帧执行间隔;
A3,按照加速后的帧执行间隔执行下一帧逻辑处理。
本实施例中所述游戏服务器是中转服务器,其作用在于接收所有客户端的输入,并按照服务器帧数按顺序广播给所有的状态服务器GSS。此外,服务器除了中转客户端的输入之外,还按一定的频率产生驱动帧,所有客户端只有收到相应驱动帧,状态服务器GSS才会往下执行,所述往下执行指帧同步。
用户端包含客户端和状态服务器两部分,本实施例中所述客户端为用户端的表现与操作部分,所述状态服务器GSS是游戏的状态服务器,所有的游戏逻辑都在每个状态服务器GSS上处理。
帧同步的实现原理是将每个客户端都按照一定的频率按帧执行(有如图2上的横向虚线,逻辑分成4帧执行),由服务器端通知下一帧的执行,所有的状态服务器GSS才执行下一帧逻辑,所有操作信息也由服务器指定特定驱动帧号,所有的状态服务器GSS严格按照帧号执行相应的无差别操作,这样,在保证同样的初始状态下,所有的状态服务器GSS将能得到同样的操作结果。如图2,第一帧时,所有的状态服务器GSS中A的初始值都为1;第二帧时,所有状态服务器GSS都执行<加1>操作,当第二帧执行结束时,A的值都为2;第三帧,所有状态服务器GSS都没有操作输入,A保持2不变;第四帧,执行操作<加1>,第四帧执行结束时,A的值都为3。
网络的通讯过程中,通讯质量无法做到100%保障,网络峰刺、网络中断的情况经常发生,理想的情况下,每帧固定时间间隔,网络不稳定时,会导致部分用户延迟累积,此处增加追帧逻辑减少网络波动的影响。实现方案如图3所示,当发生网络波动时,左边客户端帧1、帧2、帧3的信息等到帧3的时间段中才收到,而右边的客户端则网络状况正常,三个帧都按固定间隔执行,为了保证当左边客户端网络恢复时(帧3),左右两边能继续保持同步,则需增加追帧算法,加快帧的播放速率(减少每帧间隔),在较短的时间内恢复到帧3的播放点,以此达到同步状态。
逻辑追帧如图4的流程图,逻辑追帧算法在网络波动时能极大的改善游戏体验,但是波动情况时有发生,每次缓冲队列空时即暂停,有数据时则追帧,会造成游戏体验卡顿非常明显,所以在帧播放过程需要有一定的缓冲区间,当缓冲区空时,继续等待输入,当有数据时,则需先判断缓冲区里的内容,当达到一定的阀值后,才开启追帧算法,直到缓冲区继续空为止,以此增加对网络波动情况的容忍程度。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明所述FBSG方法是游戏服务器接收所有用户端的客户端的所有输入操作数据,经排序处理后,将需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行,在每个用户端的GSS保证同样的初始状态,同样的操作输入,并且同样的运行机制下,在同样的阶段中获得同样的输出结果,最终达到每个客户端都能自己独立运行游戏逻辑而能保持游戏的公平性。在本发明中,若是存在客户端的某一状态不一致,可以通过逻辑追帧的方法实现客户端的最终状态一致。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (7)
1.一种用于游戏同步的Frame Base Synchronization Game方法,其特征在于,所述方法按照下述操作实现:游戏服务器按照固定频率输出帧给所有用户端,并且接收所有用户端的客户端的所有输入操作数据,经排序处理后,将所有需要输出的操作数据按照固定次序广播给所有用户端,用户端的状态服务器根据帧同步方法有序执行接收到的操作数据,完成游戏同步的FBSG;
所述帧同步方法是每个客户端都按照相同的频率按帧执行,使所有状态服务器的最后一帧的帧数相同,具体按照下述方法实现:
若游戏服务器向所有状态服务器通知下一帧的执行,所有状态服务器按照游戏服务器发出的特定驱动帧号同时执行帧,即当前帧数=前一帧的帧数+1;
若游戏服务器没有向所有状态服务器通知下一帧的执行,所有状态服务器不执行帧,即当前帧数=前一帧的帧数。
2.根据权利要求1所述用于游戏同步的FBSG方法,其特征在于,所述排序处理是指:所述游戏服务器在当前驱动帧时间间隔内,接收所有客户端的所有输入操作数据后,按照输入次序进行排序,绑定当前帧号,得到需要输出的操作数据的先后顺序,即所述固定次序。
3.根据权利要求2所述用于游戏同步的FBSG方法,其特征在于,在所述排序处理过程中,所述游戏服务器还对每一个需要输出的操作数据标注特定驱动帧号,所述特定驱动帧号为当前游戏服务器的驱动帧号。
4.根据权利要求1所述用于游戏同步的FBSG方法,其特征在于,在帧同步过程中,采用逻辑追帧保证所有客户端的同步状态。
5.根据权利要求4所述用于游戏同步的FBSG方法,其特征在于,所述逻辑追帧,按照下述方法实现:
S1,获取所有客户端的初始状态数据;
S2,所有客户端使用缓冲区接受游戏服务器的输出数据;
S3,判断缓冲区是否为空,如果是“空”,则继续判断缓冲区是否为空;如果不是“空”,则进入S4;
S4,判断缓冲区的驱动帧数量是否大于等于预先设定的阈值,如果大于等于,则进入S5;如果小于,则客户端按照驱动帧的时间间隔正常执行操作,并返回S3;
S5,则客户端缩短当前帧与下一帧的时间间隔,加速执行每帧操作,并返回S3,直至客户端按照驱动帧的时间间隔正常执行操作为止。
6.根据权利要求5所述用于游戏同步的FBSG方法,其特征在于,步骤S5中,所述加速执行每帧操作,具体按照下述方法实现:
A1,根据缓冲区中驱动帧数量确定加速倍率;
A2,将当前帧执行间隔除以加速倍率,得到加速后的帧执行间隔;
A3,按照加速后的帧执行间隔执行下一帧逻辑处理。
7.根据权利要求1所述用于游戏同步的FBSG方法,其特征在于,所述游戏服务器与客户端之间、所述游戏服务器与状态服务器之间均采用Udp通讯。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510119580.0A CN106034129B (zh) | 2015-03-18 | 2015-03-18 | 一种用于游戏同步的fbsg方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510119580.0A CN106034129B (zh) | 2015-03-18 | 2015-03-18 | 一种用于游戏同步的fbsg方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106034129A CN106034129A (zh) | 2016-10-19 |
CN106034129B true CN106034129B (zh) | 2019-04-12 |
Family
ID=57148643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510119580.0A Expired - Fee Related CN106034129B (zh) | 2015-03-18 | 2015-03-18 | 一种用于游戏同步的fbsg方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106034129B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559426B (zh) * | 2016-11-24 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 一种基于帧同步的数据处理方法和服务器以及客户端 |
WO2018095366A1 (zh) | 2016-11-24 | 2018-05-31 | 腾讯科技(深圳)有限公司 | 视频推荐确定、信息显示、基于帧同步的数据处理方法 |
US11058946B2 (en) * | 2017-01-12 | 2021-07-13 | Mz Ip Holdings, Llc | System and method for managing event data in a multi-player online game |
CN106993200B (zh) | 2017-04-18 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种数据的直播方法、相关设备及系统 |
CN107404514A (zh) * | 2017-06-08 | 2017-11-28 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
CN108379833A (zh) * | 2018-03-05 | 2018-08-10 | 苏州蜗牛数字科技股份有限公司 | 基于对等计算的针对多用户场景的游戏交互方法及系统 |
CN110898425B (zh) * | 2019-11-27 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 信息同步方法和装置、存储介质及电子装置 |
CN111265867B (zh) * | 2020-01-20 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 对局画面的显示方法、装置、终端及存储介质 |
CN111917866B (zh) * | 2020-07-29 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 一种数据同步的方法、装置、设备及存储介质 |
CN117046103A (zh) * | 2023-07-18 | 2023-11-14 | 广州三七极梦网络技术有限公司 | 游戏战斗处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478636A (zh) * | 2009-01-16 | 2009-07-08 | 中兴通讯股份有限公司 | 一种基于iptv的游戏系统及其实现方法 |
CN103780619A (zh) * | 2014-01-08 | 2014-05-07 | 深圳市掌玩网络技术有限公司 | 广域网实时互动游戏同步方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100255916A1 (en) * | 2009-04-06 | 2010-10-07 | Alfred Habib Sioufi Filho | Trusted information management system for virtual environment |
-
2015
- 2015-03-18 CN CN201510119580.0A patent/CN106034129B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478636A (zh) * | 2009-01-16 | 2009-07-08 | 中兴通讯股份有限公司 | 一种基于iptv的游戏系统及其实现方法 |
CN103780619A (zh) * | 2014-01-08 | 2014-05-07 | 深圳市掌玩网络技术有限公司 | 广域网实时互动游戏同步方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
网络游戏引擎中同步技术研究综述;邱航等;《计算机应用研究》;20070101;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106034129A (zh) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106034129B (zh) | 一种用于游戏同步的fbsg方法 | |
US11904233B2 (en) | Method and apparatus for improving efficiency without increasing latency in graphics processing | |
WO2017128961A1 (zh) | 一种分布式系统中的训练模型的方法及设备 | |
US9118765B2 (en) | Agent skill promotion and demotion based on contact center state | |
US20170047069A1 (en) | Voice processing method and device | |
CN105573850B (zh) | 多进程交互方法、系统和服务器 | |
RU2644103C2 (ru) | Способ и система для управления экземплярами игры | |
US9031077B2 (en) | Systems, methods, and computer program products providing a data unit sequencing queue | |
CN108984293B (zh) | 游戏内容的显示方法及装置、存储介质、处理器和终端 | |
US9455907B1 (en) | Multithreaded parallel packet processing in network devices | |
CN108289246A (zh) | 数据处理方法、装置、存储介质和电子装置 | |
WO2013097210A1 (zh) | 基于云应用的在线渲染方法和离线渲染方法及相关装置 | |
CN107613302A (zh) | 解码方法及装置、存储介质、处理器 | |
US20030202516A1 (en) | Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device | |
CN107368324A (zh) | 一种组件升级方法、装置和系统 | |
CN105706441A (zh) | 针对通信会话中的内容共享的自适应采样周期 | |
CN106445651A (zh) | 执行任务的方法及系统 | |
JP2022525880A (ja) | サーバーの負荷予測及び高度なパフォーマンス測定 | |
CN107249144A (zh) | 多媒体文件解码的方法、多媒体播放器和播放设备 | |
CN111858099B (zh) | 消息订阅方法及装置 | |
CN106953933B (zh) | 一种消息推送方法及装置、电子设备 | |
CN111957035A (zh) | 一种虚拟人物的刷新方法及系统、可读存储介质 | |
CN105872667A (zh) | 一种智能终端播放广告的方法和一种智能终端 | |
CN107888677B (zh) | 一种通信实现方法、控制端、智能设备及系统 | |
CN102647622A (zh) | 流媒体剪辑播放进度管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190412 Termination date: 20200318 |
|
CF01 | Termination of patent right due to non-payment of annual fee |