CN113018845B - 一种操作指令执行方法、客户端、服务端及存储介质 - Google Patents
一种操作指令执行方法、客户端、服务端及存储介质 Download PDFInfo
- Publication number
- CN113018845B CN113018845B CN202110322162.7A CN202110322162A CN113018845B CN 113018845 B CN113018845 B CN 113018845B CN 202110322162 A CN202110322162 A CN 202110322162A CN 113018845 B CN113018845 B CN 113018845B
- Authority
- CN
- China
- Prior art keywords
- game
- frame
- client
- operation instruction
- subset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000005516 engineering process Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000009432 framing Methods 0.000 description 3
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/75—Enforcing rules, e.g. detecting foul play or generating lists of cheating players
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5586—Details of game data or player data management for enforcing rights or rules, e.g. to prevent foul play
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种操作指令执行方法、客户端、服务端及存储介质,所述方法包括:获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;针对每个所述子集设置不同的指定逻辑帧;当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。通过提出操作指令分帧执行的策略,将所有游戏单位分配到不同的逻辑帧中执行操作指令,有效减轻了游戏设备的运算压力,提高游戏运行流畅度。
Description
技术领域
本申请涉及游戏技术领域,尤其涉及一种操作指令执行方法、客户端、服务端及存储介质。
背景技术
随着游戏行业的发展,游戏种类不断增多,为了增加游戏的趣味性,越来越多游戏可以与其他玩家进行联机或在线对战。多人联机游戏的实现需要依靠同步技术,游戏同步技术包括帧同步与状态同步。当游戏存在较多游戏单位时,往往会使用帧同步技术进行同步,以减轻服务器的计算量。但当玩家对大量游戏单位同时进行操作时,会同时产生大量的操作指令,从而严重影响了游戏的运行流畅度。
发明内容
本申请提供了一种操作指令执行方法、客户端、服务端及存储介质,能够对执行大量游戏单位的操作指令时,不影响游戏的流畅度。
根据本申请实施例的第一方面,提供一种操作指令执行方法,所述方法包括:
获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
针对每个所述子集设置不同的指定逻辑帧;
当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
根据本申请实施例的第二方面,提供一种游戏客户端,所述客户端包括:
获取模块,用于获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
设置模块,用于针对每个所述子集设置不同的指定逻辑帧;
执行模块,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
根据本申请实施例的第三方面,提供一种游戏服务端,所述服务端包括:
获取模块,用于通过至少一个客户端获取游戏关键帧中的指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
设置模块,用于针对每个所述子集设置不同的指定逻辑帧;
执行模块,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令;
同步模块,用于执行所述操作指令生成所述子集的状态,并将所述状态同步至所述至少一个客户端。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述第一方面所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供了一种游戏指令执行方法、客户端、服务端及存储介质,提出了操作指令分帧执行的策略,通过在获取游戏单位集的游戏指令后,对游戏单位集包括的子集设置不同的指定逻辑帧,使得不同子集分别在不同逻辑帧执行游戏指令,从而将所有游戏单位分配到不同的逻辑帧中执行操作指令,避免了所有游戏单位都在同一逻辑帧中执行游戏指令,有效减轻了游戏设备的运算压力,提高游戏运行流畅度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请根据一示例性实施例示出的一种操作指令执行方法的网络架构示意图。
图2是本申请根据另一示例性实施例示出的一种操作指令执行方法的流程图。
图3是本申请根据另一示例性实施例示出的一种操作指令执行方法的网络架构示意图。
图4是本申请根据另一示例性实施例示出的一种操作指令执行方法的流程图。
图5是本申请根据另一示例性实施例示出的一种操作指令执行方法的流程图。
图6是本申请根据另一示例性实施例示出的一种操作指令执行方法的流程图。
图7是本申请根据另一示例性实施例示出的一种操作指令执行方法的流程图。
图8是本申请根据一示例性实施例示出的一种游戏客户端的框图。
图9是本申请根据另一示例性实施例示出的一种游戏客户端的框图。
图10是本申请根据另一示例性实施例示出的一种游戏客户端的框图。
图11是本申请根据另一示例性实施例示出的一种游戏服务端的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
游戏的逻辑需要拆分到每个逻辑帧执行,每个逻辑帧都在不停地计算着游戏数据使游戏按照逻辑运行。与逻辑帧不同的是,渲染帧是指游戏在屏幕上所显示的一帧一帧画面。一帧逻辑帧可以渲染为若干帧渲染帧。游戏中还包括若干个游戏单位,游戏单位是指玩家可通过游戏客户端进行操控的对象。游戏单位根据玩家输入的操作指令执行不同的动作。不同游戏的游戏单位数量不同,在一些角色扮演游戏中,玩家只能对一个或少数的游戏单位进行操控,但在一些如战争题材的游戏中,玩家则可以同时对上百个游戏单位进行操控。如今,多人联机或在线对战游戏需要进行游戏同步,这里的同步是指每一逻辑帧中所做的运算,以及得到的运算结果在不同端中均一致。常见的游戏同步技术有帧同步与状态同步。状态同步技术一般应用于大型多人在线角色扮演游戏(Massive Multiplayer OnlineRole-Playing Game,MMORPG)中,如在图1所示的网络架构中,各客户端120将对游戏单位的操作指令上传到服务端110,服务端110计算操作指令的结果,得到各游戏单位的状态,包括血量、位置、Buff状态等,并同步至各客户端120,各客户端120只需接收服务端110发送的状态数据,并更新本地各游戏单位的状态即可。
而帧同步技术则大多应用于即使策略游戏(Real-Time Strategy Game,RTS)中,如在图1所示的网络架构中,各客户端120将对游戏单位的操作指令上传到服务端110后,服务端110只会将所有操作指令广播到各客户端120,各客户端120根据操作指令计算游戏单位的状态并进行显示。实际上,服务端是在接收各客户端发送的多帧逻辑帧中的操作指令后,才会将这些指令广播至各客户端,而广播的数据中包括了各操作指令执行的帧号,用于指示该操作指令应当在哪一帧中执行。服务端广播数据所在的帧为关键帧。例如,在客户端中逻辑帧的帧率为20,即每秒执行20个逻辑帧。而20个逻辑帧中每5帧为一个关键帧,即第5、10、15、20帧逻辑帧为关键帧。客户端将第1-5帧中所发出的操作指令以及对应的执行帧号发送至服务端,服务端则在第5帧时会将在1-5帧中收集的来自各客户端的所有操作指令广播至所有客户端。因此客户端1秒内会执行20个逻辑帧,收到服务器广播的4个关键帧。
状态同步技术中,服务端需要承担大部分甚至是全部的状态运算,安全性较高,但下行(从服务端传输至客户端)数据流量较大。而帧同步技术中,服务端只转发操作指令,状态运算由客户端进行,能有效减轻服务端的运算压力。当游戏中包含大量游戏单位时,若采用状态同步技术,一方面大量游戏单位的状态计算主要由服务端承担会使服务端运算负荷过重,另一方面下行数据量也会急剧增大。因此对于包含大量游戏单位的游戏,如战争题材类游戏,通常采用帧同步技术进行游戏同步,来降低服务端的运算压力以及减少下行数据量。
利用帧同步技术可以将大量游戏单位的状态运算任务转移到客户端进行,因此游戏运行的流畅度严重依赖于客户端所在设备的运算能力。实际上,当玩家对大量游戏单位同时进行操作时,每个游戏单位都可以产生对应的操作指令,导致一个逻辑帧中需要同时处理大量的操作指令,从而严重影响游戏的流畅程度。为了解决因处理大量操作指令影响游戏运行流畅度的问题,本申请提出了一种操作指令执行方法,包括如图2所示的步骤:
步骤210:获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
步骤220:针对每个所述子集设置不同的指定逻辑帧;
步骤230:当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
如上所述,当一个逻辑帧中产生大量的操作指令时会影响游戏运行的流畅度。因此本申请提出了操作指令分帧执行的策略,所述分帧执行,可以理解为通过对游戏单位集包括的子集设置不同的指定逻辑帧,使得不同的子集分别在不同的逻辑帧执行游戏指令,从而将所有游戏单位分配到不同的逻辑帧中执行操作指令,避免了所有游戏单位都在同一逻辑帧中执行游戏指令,有效减轻了游戏设备的运算压力,提高游戏运行流畅度。
本申请所提供的操作指令执行方法,可以应用在帧同步游戏中,即所述方法可以由如图1所示的客户端120执行。客户端120可以是运行在不同电子设备中的游戏客户端,所述电子设备可以是PC(Personal Computer,个人电脑)、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、可穿戴设备、交互智能平板等其他可运行游戏客户端的电子设备。如上所述,在帧同步游戏中,服务端只转发各客户端发送的操作指令,因此在一些实施例中,游戏关键帧中的操作指令可以是客户端120从服务端110获取。值得注意的是,客户端120从服务端110所获取的操作指令可以是操作指令集。例如在两个关键帧之间,客户端A向服务端发送了针对游戏单位集A的操作指令A,客户端B则向服务端发送了针对游戏单位集B的操作指令B,那么在下一关键帧中,服务端会向客户端A、B广播包括操作指令A、B的关键帧数据。客户端A、B再分别先后处理操作指令A、B。
此外,如图3所示,各个客户端320与服务端310之间还可以搭建P2P网络,所有客户端320与服务端310在P2P网络中均为对等结点,数据包在P2P网络中可以共享。客户端320既可以是数据包的接收端,也可以是发送端。因此,游戏关键帧中的操作指令除了可以从服务端310获取,还可以通过其他客户端320获取。
当游戏中包含大量游戏单位时,这些游戏单位可以组成一个游戏单位集,在执行本申请提供的操作指令执行方法时,可以先获取预设数量的游戏单位作为游戏单位集中的一个子集。其中,在一些实施例中,预设数量可以根据客户端所在的电子设备的运算能力确定。若所述电子设备的运算速度较慢,为了保证游戏运行流畅度,所述预设数量可以设置为较小的数值,相应地,所述游戏单位集包含的子集数量较多,即所述游戏单位集会分配到较多不同逻辑帧中执行操作指令,操作指令分帧的数量较多。而若所述电子设备的运算能力较强,则所述预设数量可以设置为较大的数值,相应地,所述游戏单位集包含的子集数量较少,即所述游戏单位集会分配到较少不同逻辑帧中执行操作指令,操作指令分帧的数量较少。在一些实施例中,可以先设置游戏单位集要分为多少个子集,即先确定子集的数量,其中子集的数量可以根据所述电子设备的运算能力确定,运算速度较慢的,则设置的子集数量较多;运算能力较强的,则设置的子集数量较少。然后再确定预设数量的数值,即每个子集所包含的游戏单位的数量。在一些实施例中,也可以直接设置预设数量的数值,即每个子集所包含的游戏单位的数量,而不需要先确定子集的数量。本领域技术人员可以根据实际需要选取不同的方案,本申请在此不做限制。
预设数量根据客户端所在的电子设备的运算能力确定,可以确保游戏运行的流畅度。但在一次联机游戏中,若两个联机的电子设备的运算能力相差较大,则会导致每一逻辑帧中执行操作指令的游戏单位的数量相差较大,即对于运算能力较强的电子设备来说,其某一逻辑帧中有较多的游戏单位执行操作指令,且游戏单位集只需分配到较少的逻辑帧中执行操作指令,操作指令分帧的数量较少。而对于运算能力较差的电子设备来说,其某一逻辑帧中只有较少的游戏单位执行操作指令,且游戏单位集需分配到较多的逻辑帧中执行操作指令,操作指令分帧的数量较多。这样的差异会直接影响到游戏过程甚至是结果。举个例子,当玩家控制多个游戏单位攻击某一目标单位时,此时操作指令包括攻击指令,当客户端对多个游戏单位的攻击指令进行分帧执行的处理时,对于运算能力较强的电子设备来说,可能只需分为5帧,且多个游戏单位可能在第5帧逻辑帧中便击败了目标单位。但对于运算能力较差的电子设备来说,可能需分为8帧,而多个游戏单位可能在第8帧逻辑帧中才击败了目标单位。可见,虽然在两个客户端中均呈现了目标单位被击败的结果,但具体的是在哪一逻辑帧被击败,以及目标单位在每一逻辑帧中包括血量等状态的变化在两个客户端中都是不一样的。同理,在步骤220中对每个子集设置不同的指定逻辑帧时,若同一子集在不同客户端中所设置的指定逻辑帧不同,则同样会导致上述问题。
可见,当操作指令的分帧处理应用在同步游戏中时,可能会引入不同运算能力的客户端在同一逻辑帧计算游戏单位的状态不一致的问题。为了解决该问题,本申请所提供的操作指令执行方法,还包括如图4所示的步骤:
步骤410:从服务端获取随机数种子;
步骤420:基于所述随机数种子确定所述子集包括的游戏单位的数量以及所述指定逻辑帧,以使各客户端中所述子集包含的游戏单位数量以及所述指定逻辑帧一致。
随机数种子通过一定的算法不停地迭代产生随机数,实际上所产生的随机数是一种伪随机数。各客户端只要利用相同的随机数种子,所获取到的第N个随机数必定是相同的。因此通过随机数种子确定子集包括的游戏单位的数量,即预设数量的数值,以及指定逻辑帧的帧号,可以解决不同客户端在同一逻辑帧计算游戏单位的状态不一致的问题。
在获取操作指令,并确定好子集所包含的游戏单位的数量后,需要针对子集设置指定逻辑帧。在一些实施例中,可以直接利用随机数种子指定子集在哪一逻辑帧中执行操作指令,利用随机数种子指定的逻辑帧为所述指定逻辑帧。在一些实施例中,还可以在一帧数区间内确定子集的等待帧数,并基于等待帧数设置指定逻辑帧;其中,所述等待帧数表征在处理所述指定逻辑帧之前需等待处理的帧的数量。在一些实施例中,所述等待帧数可以是在一帧数区间内随机生成。不同子集的等待帧数可以是在不同帧数区间中生成。例如子集A在帧数区间[0,5]中生成等待帧数,而子集B则在帧数区间[5,10]中生成等待帧数。使得不同子集可以分开在不同的逻辑帧中执行操作指令。等待帧数还可以是利用随机数种子生成。此外,等待帧数可以随着当前逻辑帧的推进而递减,或者说可以随着当前逻辑帧帧号的递增而递减。当等待帧数递减为0时,则当前逻辑帧为所述指定逻辑帧,所述子集在当前逻辑帧中执行操作指令。
本申请提供的游戏指令执行方法,提出了操作指令分帧执行的策略,通过在获取游戏单位集的游戏指令后,对游戏单位集包括的子集设置不同的指定逻辑帧,使得不同子集分别在不同逻辑帧执行游戏指令,从而将所有游戏单位分配到不同的逻辑帧中执行操作指令,避免了所有游戏单位都在同一逻辑帧中执行游戏指令,有效减轻了游戏设备的运算压力,提高游戏运行流畅度。
上文提供了本申请提出的操作指令执行方法应用于帧同步游戏的实施例。如上文所述,游戏同步技术有帧同步与状态同步。而状态同步技术由于服务器承担大部分的状态计算因此并不适用于包含多游戏单位的游戏中。但是与帧同步技术相比,状态同步技术正因为状态计算由服务器承担,因此安全性较帧同步技术的高,可以防止玩家外挂和作弊。而利用本申请提供的操作指令执行方法,可以克服状态同步技术应用于包含多游戏单位的游戏中的技术难题,克服了技术偏见。具体地,当本申请提供的操作指令执行方法应用于状态同步游戏时,所述方法可以由如图1所示的服务端110或如图3所示的服务端310执行。服务端与多个客户端连接通信,则操作指令通过至少一个客户端获取。在服务端获取操作指令后,可以将所有游戏单位组成的游戏单位集分为若干个子集,并确定子集所包含的游戏单位的数量。随后针对每个子集设置不同的指定逻辑帧,并在当前逻辑帧到达指定逻辑帧时,对应的子集执行操作指令。上述步骤与过程参见上文提供的实施例,本申请不再赘述。
本申请提供的操作指令执行方法应用于状态同步游戏时,利用操作指令分帧执行的策略,使得服务端原本要在同一逻辑帧计算的指令可以分开到若干逻辑帧中计算,大大降低了服务端在运算速度方面的压力。通过采用本申请提供的操作指令执行方法,使得状态同步技术可以应用到包含多游戏单位的游戏中,克服了技术偏见。同时由于状态同步技术安全性更高,可以防止玩家外挂或作弊,因此当状态同步技术可以应用到一些传统上只能采用帧同步技术的游戏,如RTS游戏时,能进一步地提高游戏的安全性。
在当前逻辑帧到达指定逻辑帧时,对应的子集执行操作指令。操作指令可以分为不同的种类,如移动指令、攻击指令、锁定指令、采集指令等。其中,移动指令是指控制游戏单位集向目标单位或目标位置移动的指令。当游戏单位集距离目标单位或目标位置较远时,还需要先计算移动路径,因此,移动指令中还包括用于计算游戏单位集向目标单位的位置移动的路径的信息。游戏单位集在执行移动指令时,会以目标单位在当前逻辑帧中的位置为终点进行路径的计算。但在多人联机游戏中,目标单位的位置可能在时刻变化,即目标单位的位置在每一逻辑帧中都不一样。而游戏单位集可能需要经过若干逻辑帧后才能从初始位置移动到终点。显然,当游戏单位集按照路径移动到终点时,目标单位可能已经不在终点处,因此需要及时更新目标单位的位置,并根据更新后的位置重新计算路径。如上所述,目标单位的位置在每一逻辑帧中可能都不一样,若游戏单位集每一逻辑帧都根据目标单位更新后的位置重新计算路径,显然客户端或服务端的计算压力或过大,影响到游戏运行流畅度。因此,在一些实施例中,当操作指令包括移动指令时,则游戏单位集向目标单位的位置移动的过程中,如果目标单位或游戏单位集的移动距离大于预设的距离阈值,则在执行所述移动指令时,基于目标单元的位置重新计算所述路径。
其中,目标单位的移动距离大于预设的距离阈值,可以理解为当目标单位在每一逻辑帧的移动距离累积到一定时,即目标单位的当前位置距离路径的终点较远时,会触发路径的重新计算。预设的距离阈值可以根据实际需要设置,本申请在此不做限制。而游戏单位集的移动距离大于预设的距离阈值,可以理解为游戏单位集在按照路径移动到一定距离时,会触发路径的重新计算。如游戏单位集按照路径移动了1/3或一半的路程后,根据目标单位的当前位置重新计算路径。当目标单位或游戏单位集任一满足移动距离大于距离阈值时,就重新计算路径,从而可以智能并及时地调整游戏单位的移动路径,提高用户游戏体验。
操作指令可以包括攻击指令,攻击指令用于控制游戏单位集做出攻击动作。而攻击动作则是由若干动作组成的,例如一个出拳的攻击动作,可以由抬手、转腰、送拳、等待等若干个动作组成。因此在一些实施例中,当操作指令包括攻击指令时,攻击指令可以拆分为至少一个动作指令,而不同的动作指令分别在不同逻辑帧中执行。
在一些情况下,游戏单位集在执行操作指令时,操作指令可能会被中断。例如当游戏单位集执行移动指令向目标单位移动的过程中,目标单位死亡则移动指令会被中断;游戏单位集执行攻击指令时,若攻击目标移动到游戏单位集的攻击范围以外,则攻击指令会被中断;游戏单位集执行采集指令时,若采集资源已被采集完,则采集指令会被中断。在一些实施例中,当操作指令的执行被中断时,则获取游戏单位集的下一个操作指令,并保持游戏单位集的当前状态直到下一个操作指令被执行,而下一个操作指令的执行过程可以遵循本申请提供的操作指令执行方法。在一些情况下,当操作指令的执行被中断后,而下一个操作指令的指定逻辑帧设置在若干逻辑帧之后,那么在达到指定逻辑帧之前,游戏单位集在每一逻辑帧中均保持操作指令被中断时的状态,直到达到下一个操作指令的指定逻辑帧。在一些实施例中,当指定逻辑帧是通过上文实施例中的等待帧数设置时,等待帧数随着当前逻辑帧帧号的递增而递减,则游戏单位集在等待帧数不为0的逻辑帧中,保持操作指令被中断时的状态,直到达到等待帧数为0时,则执行下一操作指令。
此外,本申请还提供了一种操作指令执行方法,应用于帧同步游戏,如图5所示,以服务端10与两个客户端21、22相连为例,实际上服务端还可以与更多的客户端相连,所述方法包括步骤:
步骤510:服务端10向客户端21、22发送随机数种子;
步骤520:客户端21向服务端10发送游戏单位集A的操作指令A;客户端22向服务端10发送游戏单位集B的操作指令B;
其中,游戏单位集A、B分别为客户端21、22的玩家能操控的游戏单位集。
步骤530:服务端10向客户端21、22发送关键帧数据;
其中,关键帧数据包括了操作指令A、B以及操作指令对应的游戏单位集信息。
步骤540:获取游戏关键帧中的操作指令A;
步骤550:基于随机数种子确定子集Ax包括的游戏单位的数量以及指定逻辑帧Yx;
其中游戏单位集A包括X个子集,子集Ax对应于指定逻辑帧Yx。
步骤560:当前逻辑帧到达指定逻辑帧Yx时,子集Ax执行操作指令A;
游戏单位集A的所有子集分别执行步骤540-560后,完成游戏单位集A对操作指令A的执行,然后进行操作指令B的执行,包括:
步骤570:获取游戏关键帧中的操作指令B;
步骤580:基于随机数种子确定子集Bx包括的游戏单位的数量以及指定逻辑帧Zx;
其中游戏单位集B包括X个子集,子集Bx对应于指定逻辑帧Zx。
步骤590:当前逻辑帧到达指定逻辑帧Zx时,子集Bx执行操作指令B。
游戏单位集B的所有子集分别执行步骤570-590后,完成游戏单位集B对操作指令B的执行。
步骤510-590的具体实施方法参见上文的实施例,本申请在此不再赘述。
此外,本申请还提供了一种操作指令执行方法,应用于状态同步游戏,如图6所示,以服务端10与两个客户端21、22相连为例,实际上服务端还可以与更多的客户端相连,所述方法包括步骤:
步骤610:客户端21向服务端10发送游戏单位集A的操作指令A;客户端22向服务端10发送游戏单位集B的操作指令B;
其中,游戏单位集A、B分别为客户端21、22的玩家能操控的游戏单位集。
步骤620:确定子集Ax包括的游戏单位的数量以及指定逻辑帧Yx;
其中游戏单位集A包括X个子集,子集Ax对应于指定逻辑帧Yx。
步骤630:当前逻辑帧到达指定逻辑帧Yx时,子集Ax执行操作指令A;
步骤640:生成子集Ax的状态Ax;
游戏单位集A的所有子集分别执行步骤620-640后,完成游戏单位集A对操作指令A的执行,然后进行操作指令B的执行,包括:
步骤650:确定子集Bx包括的游戏单位的数量以及指定逻辑帧Zx;
其中游戏单位集B包括X个子集,子集Bx对应于指定逻辑帧Zx。
步骤660:当前逻辑帧到达指定逻辑帧Zx时,子集Bx执行操作指令B;
步骤670:生成子集Bx的状态Bx;
游戏单位集B的所有子集分别执行步骤650-670后,完成游戏单位集B对操作指令B的执行。
步骤680:服务端10向客户端21、22发送状态Ax、Bx。
步骤610-680的具体实施方法参见上文的实施例,本申请在此不再赘述。
此外,本申请还提供了一种操作指令执行方法,应用于帧同步游戏,所述方法由客户端执行,包括如图7所示的步骤:
步骤710:从服务端获取随机数种子;
步骤720:接收服务端发送的关键帧数据;
步骤730:判断关键帧数据中是否包括操作指令;
若是则执行步骤740,若否则返回步骤720。
步骤740:基于随机数种子确定子集包括的游戏单位的数量以及等待帧数;
步骤750:判断等待帧数是否为0;
若是则执行步骤770,若否则执行步骤760。
步骤760:等待帧数减1,逻辑帧帧号加1;
步骤770:子集执行操作指令;
步骤780:当操作指令被中断时,则:
步骤790:保持游戏单位集的当前状态,并返回步骤720。
步骤710-790的具体实施方法参见上文的实施例,本申请在此不再赘述。
基于上述任意实施例所述的操作指令方法,本申请还提供了如图8所示的游戏客户端800,所述游戏客户端800为帧同步游戏中的游戏客户端,包括:
获取模块810,用于获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
设置模块820,用于针对每个所述子集设置不同的指定逻辑帧;
执行模块830,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
在一些实施例中,所述操作指令从服务端中获取,所述获取模块810还用于,从所述服务端获取随机数种子;如图9所示,所述获取模块810还包括:
确定子模块811:用于基于所述随机数种子确定所述子集包括的游戏单位的数量以及所述指定逻辑帧,以使各客户端中所述子集包含的游戏单位数量以及所述指定逻辑帧一致。
在一些实施例中,所述预设数量根据所述客户端800所在的电子设备的运算能力确定。
在一些实施例中,如图10所示,所述设置模块820包括:
确定子模块821,用于在一帧数区间内确定所述子集的等待帧数;
设置子模块822,用于基于所述等待帧数设置所述指定逻辑帧;其中,所述等待帧数表征在处理所述指定逻辑帧之前需等待处理的帧的数量。
基于上述任意实施例所述的操作指令方法,本申请还提供了如图11所示的游戏服务端100,所述游戏服务端100为状态同步游戏中的游戏服务端,包括:
获取模块101,用于通过至少一个客户端获取游戏关键帧中的指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;
设置模块102,用于针对每个所述子集设置不同的指定逻辑帧;
执行模块103,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令;
同步模块104,用于执行所述操作指令生成所述子集的状态,并将所述状态同步至所述至少一个客户端。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本申请还提供了一种计算机存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的操作指令执行方法。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
Claims (15)
1.一种操作指令执行方法,其特征在于,所述方法包括:
获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;所述游戏单位是指玩家可通过游戏客户端进行操控的对象;
针对每个所述子集设置不同的指定逻辑帧;其中,若所述方法应用于客户端;所述子集包括的游戏单位的数量和各个子集对应的指定逻辑帧基于从服务端获取的随机数种子确定,以使各客户端中所述子集包含的游戏单位数量和各客户端中所述指定逻辑帧一致;
当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于服务端,所述操作指令通过至少一个客户端获取,执行所述操作指令后还包括步骤:
执行所述操作指令生成所述子集的状态,并将所述状态同步至所述至少一个客户端。
3.根据权利要求1所述的方法,其特征在于,所述客户端从服务端或其他客户端获取所述操作指令。
4.根据权利要求1所述的方法,其特征在于,所述方法应用于客户端,所述预设数量根据所述客户端所在的电子设备的运算能力确定。
5.根据权利要求1所述的方法,其特征在于,所述指定逻辑帧的设置包括步骤:
在一帧数区间内确定所述子集的等待帧数,基于所述等待帧数设置所述指定逻辑帧;其中,所述等待帧数表征在处理所述指定逻辑帧之前需等待处理的帧的数量。
6.根据权利要求5所述的方法,其特征在于,所述等待帧数为随机生成。
7.根据权利要求1所述的方法,其特征在于,所述操作指令包括移动指令;所述移动指令包括用于计算所述游戏单位集向目标单位的位置移动的路径的信息,所述方法还包括:
所述游戏单位集向所述目标单位的位置移动的过程中,如果所述目标单位或所述游戏单位集的移动距离大于预设的距离阈值,则在执行所述移动指令时,基于所述目标单位的位置重新计算所述路径。
8.根据权利要求1所述的方法,其特征在于,所述操作指令包括攻击指令;
所述攻击指令拆分为至少一个动作指令,不同的所述动作指令分别在不同逻辑帧中执行。
9.根据权利要求1所述的方法,其特征在于,当所述操作指令的执行被中断时,获取所述游戏单位集的下一个操作指令,并保持所述游戏单位集的当前状态直到下一个操作指令被执行。
10.一种游戏客户端,其特征在于,所述客户端包括:
获取模块,用于获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;所述游戏单位是指玩家可通过游戏客户端进行操控的对象;
设置模块,用于针对每个所述子集设置不同的指定逻辑帧;其中,所述子集包括的游戏单位的数量和各个子集对应的指定逻辑帧基于从服务端获取的随机数种子确定,以使各客户端中所述子集包含的游戏单位数量和各客户端中所述指定逻辑帧一致;
执行模块,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令。
11.根据权利要求10所述的客户端,其特征在于,所述操作指令从服务端中获取,所述获取模块还用于,从所述服务端获取随机数种子;
所述获取模块还包括:
确定子模块,用于基于所述随机数种子确定所述指定逻辑帧,以使各客户端中所述指定逻辑帧一致。
12.根据权利要求10所述的客户端,其特征在于,所述预设数量根据所述客户端所在的电子设备的运算能力确定。
13.根据权利要求10所述的客户端,其特征在于,所述设置模块包括:
确定子模块,用于在一帧数区间内确定所述子集的等待帧数;
设置子模块,用于基于所述等待帧数设置所述指定逻辑帧;其中,所述等待帧数表征在处理所述指定逻辑帧之前需等待处理的帧的数量。
14.一种游戏服务端,其特征在于,所述服务端包括:
获取模块,用于通过至少一个客户端获取游戏关键帧中的操作指令,所述操作指令由所述游戏关键帧的游戏单位集执行,所述游戏单位集包括至少一个子集,所述子集包括预设数量的游戏单位;所述游戏单位是指玩家可通过游戏客户端进行操控的对象;
设置模块,用于针对每个所述子集设置不同的指定逻辑帧;其中,所述子集包括的游戏单位的数量和各个子集对应的指定逻辑帧基于从服务端下发的随机数种子确定,以使各客户端中所述子集包含的游戏单位数量和各客户端中所述指定逻辑帧一致;
执行模块,用于当前逻辑帧到达所述指定逻辑帧时,所述指定逻辑帧对应的子集执行所述操作指令;
同步模块,用于执行所述操作指令生成所述子集的状态,并将所述状态同步至所述至少一个客户端。
15.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322162.7A CN113018845B (zh) | 2021-03-25 | 2021-03-25 | 一种操作指令执行方法、客户端、服务端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110322162.7A CN113018845B (zh) | 2021-03-25 | 2021-03-25 | 一种操作指令执行方法、客户端、服务端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113018845A CN113018845A (zh) | 2021-06-25 |
CN113018845B true CN113018845B (zh) | 2023-07-28 |
Family
ID=76473975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110322162.7A Active CN113018845B (zh) | 2021-03-25 | 2021-03-25 | 一种操作指令执行方法、客户端、服务端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113018845B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113577761A (zh) * | 2021-07-02 | 2021-11-02 | 深圳迭代如风网络科技有限公司 | 一种基于确定性的高精度同步预测回滚方法 |
CN113827984B (zh) * | 2021-09-27 | 2023-12-12 | �田�浩 | 一种动作类游戏反外挂方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108289246B (zh) * | 2017-11-30 | 2020-09-29 | 腾讯科技(成都)有限公司 | 数据处理方法、装置、存储介质和电子装置 |
CN108939537A (zh) * | 2018-06-29 | 2018-12-07 | 苏州蜗牛数字科技股份有限公司 | 游戏数据处理方法、游戏服务端及游戏客户端 |
CN112169322B (zh) * | 2019-07-04 | 2022-03-25 | 广州虎牙科技有限公司 | 远程渲染方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-03-25 CN CN202110322162.7A patent/CN113018845B/zh active Active
Non-Patent Citations (1)
Title |
---|
王彤主编."数字媒体内容管理技术与实践".2014,(第一版),154. * |
Also Published As
Publication number | Publication date |
---|---|
CN113018845A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113018845B (zh) | 一种操作指令执行方法、客户端、服务端及存储介质 | |
CN111167116B (zh) | 一种平滑显示的方法、终端和计算机存储介质 | |
US11918893B2 (en) | Massive multi-player compute | |
CN111654720B (zh) | 视频编码方法、装置、设备及可读存储介质 | |
EP4095693A1 (en) | Data packet synchronization method and apparatus, device, and storage medium | |
EP3173134B1 (en) | Synchronization object determining method, apparatus, and system | |
CN106385408A (zh) | 运动状态变化的指示、处理方法及装置 | |
EP3934775B1 (en) | Peer-to-peer multiplayer cloud gaming architecture | |
CN108289246A (zh) | 数据处理方法、装置、存储介质和电子装置 | |
CN109474648B (zh) | 一种虚拟现实交互的补偿方法及服务端设备 | |
US9977795B1 (en) | System and method for multiplayer network gaming | |
CN107577808B (zh) | 一种多级列表页排序的方法、装置、服务器及介质 | |
US20220001282A1 (en) | Information processing program, information processing method, and information processing device | |
CN117242462A (zh) | 用于改进人工智能(ai)系统中的ai模型的分布式训练的边缘设备、边缘服务器及其同步 | |
US11167211B2 (en) | Spectating simulation | |
CN116764238B (zh) | 一种网络游戏的游戏数据的共享方法和服务器 | |
CN116650942A (zh) | 业务处理方法、装置、计算机设备和业务处理系统 | |
Nugraha et al. | Cluster Forming of Multiagent Systems in Rolling Horizon Games with Non-uniform Horizons | |
Roughton et al. | Concentus: Applying Stream Processing to Online Collective Interaction | |
CN116764238A (zh) | 一种网络游戏的游戏数据的共享方法和服务器 | |
CN114432693A (zh) | 一种数据同步方法、设备及介质 | |
Paik et al. | Effective message synchronization methods for multiplayer online games with maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |