CN117065342A - 一种云游戏联机对战方法、装置及电子设备 - Google Patents

一种云游戏联机对战方法、装置及电子设备 Download PDF

Info

Publication number
CN117065342A
CN117065342A CN202311154919.1A CN202311154919A CN117065342A CN 117065342 A CN117065342 A CN 117065342A CN 202311154919 A CN202311154919 A CN 202311154919A CN 117065342 A CN117065342 A CN 117065342A
Authority
CN
China
Prior art keywords
game
participants
cloud game
instruction frame
cloud
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.)
Pending
Application number
CN202311154919.1A
Other languages
English (en)
Inventor
李文星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
MIGU Interactive Entertainment Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Interactive Entertainment Co Ltd
MIGU Culture Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, MIGU Interactive Entertainment Co Ltd, MIGU Culture Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202311154919.1A priority Critical patent/CN117065342A/zh
Publication of CN117065342A publication Critical patent/CN117065342A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开涉及一种云游戏联机对战方法、装置及电子设备,该方法包括:获取联机对战的各参与方的用户终端分别对应的位置;基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例;通过中间服务器获取指令帧消息;指令帧消息包括各参与方用户终端发送的指令帧消息;中间服务器基于各参与方用户终端对应的位置确定;基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。该方法能够为各参与方分别分配云端游戏实例,由分配的云端游戏实例输出游戏视频流,解决视频流延迟问题,并通过中间服务器接收各参与方的指令帧消息,基于指令帧消息云端游戏实例进行同步控制,使得各参与方的云端游戏实例能够同步,提高了游戏对战的公平性。

Description

一种云游戏联机对战方法、装置及电子设备
技术领域
本公开涉及云游戏领域,尤其涉及一种云游戏联机对战方法、装置及电子设备。
背景技术
目前,云游戏已经实现了单机类游戏的联网对战功能。相关技术中,通过在云端启动一个云端游戏实例,并将多个用户的终端连接该云端游戏实例,可以实现多个用户进行联机对战。
然而,在相关技术提供的多人联机对战的方式中,由于云端游戏实例通常会分配距离游戏发起的一方较近的实例,如果两个用户之间的距离较远,会导致参与游戏的另一方或几方的延迟较大,使得有些用户的游戏体验较差,导致无法保证相对公平的进行多人联机对战。
发明内容
本公开提供了一种云游戏联机对战方法、装置、电子设备及存储介质。
根据本公开的第一方面,提供了一种云游戏联机对战方法,所述方法包括:获取联机对战的各参与方的用户终端分别对应的位置信息;基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例;通过中间服务器获取指令帧消息;其中,指令帧消息包括各参与方的用户终端发送的指令帧消息;中间服务器基于各参与方的用户终端分别对应的位置信息确定;基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。
根据本公开的第二方面,提供了一种云游戏联机对战装置,装置包括:获取模块,用于获取联机对战的各参与方的用户终端分别对应的位置信息;分配模块,用于基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例;获取模块还用于通过中间服务器获取指令帧消息;其中,指令帧消息包括各参与方的用户终端发送的指令帧消息;中间服务器基于各参与方的用户终端分别对应的位置信息确定;同步模块,用于基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开的上述方法。
本公开实施例提供的一种云游戏联机对战方法、装置、电子设备及存储介质,通过获取联机对战的各参与方的用户终端分别对应的位置信息,基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例;通过中间服务器获取指令帧消息基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。能够为各参与方分别分配云端游戏实例,各参与方的游戏视频流由分配的云端游戏实例输出,解决视频流延迟问题,同时通过中间服务器接收各参与方的指令帧消息,基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制,使得各参与方的云端游戏实例能够同步,提高了对战游戏的公平性。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1为本公开一示例性实施例提供的云游戏联机对战的***架构图;
图2为本公开一示例性实施例提供的云游戏联机对战的时钟同步图;
图3为本公开一示例性实施例提供的云游戏联机对战的指令帧同步图;
图4为本公开一示例性实施例提供的云游戏联机对战的方法流程图;
图5为本公开一示例性实施例提供的云游戏联机对战装置的功能模块示意性框图;
图6为本公开一示例性实施例提供的电子设备的结构框图;
图7为本公开一示例性实施例提供的计算机***的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
目前,云游戏已经实现了单机类游戏的联网对战功能。相关技术中,通过在云端启动一个云端游戏实例,并将多个用户的终端连接该云端游戏实例,可以实现多个用户进行联机对战。
然而,在相关技术提供的多人联机对战的方式中,由于云端游戏实例通常会分配距离游戏发起的一方较近的实例,如果两个用户之间的距离较远,会导致参与游戏的另一方或几方的延迟较大,使得有些用户的游戏体验较差,导致无法保证相对公平的进行多人联机对战。
基于此,本公开实施例首先提供了一种云游戏多实例作战方法,如图1所示,首先在用户匹配服务器完成用户匹配,匹配完成后同时各自拉起对战双方就近的游戏实例,用户客户端和游戏实例建立点对点的音视频流连接,保障视频流质量和时延,同时两个云端实例需要进行进度校准,待校准两端实例进度一致时,指令中转服务器开始接收客户端指令,并将接收到的指令同时向两个实例进行转发,保证两个实例在相同游戏进度同时接收到相同的指令,从而确保两个用户的实例内游戏表现一致,达到异地用户联网对战的目的。
下面按步骤对本公开提供的方法进行详细说明:
步骤1、用户匹配。
用户在云游戏客户端选择联机对战游戏模式启动云游戏,客户端与匹配服务器建立长连接,传入用户及游戏信息开始用户匹配,匹配用户成功后,同时通知匹配成功双方客户端启动云游戏。同时启动云端游戏实例,能尽量使双方云端游戏进度保持一致。
步骤2、启动实例。
两个联机用户分别根据自己的调度策略调度到各自最优云端游戏实例,并按云游戏正常模式进行启动。其中,在调度云端游戏实例的过程中,云端服务器与客户端的距离最近,云端游戏实例的性能最佳。
步骤3、进行进度校准。
由于各种因素影响,不同云端游戏实例启动时长可能存在差异,为了确保两个云端游戏实例画面进度以及接收到任意一方的操作指令后双方的游戏表现一致,在允许用户操作之前,需要在游戏启动后进行一次云端游戏实例进度同步校准。
步骤3.1:将每个游戏较有识别性的等待画面作为进度校准页面预先存储到中间服务器。
一般FTG(格斗)类游戏启动成功之后会有一个页面等待用户操作(该画面出现之前游戏进度与用户操作无关,该画面为等待画面,接收操作后,游戏进度和用户操作相关),可以将该页面作为有识别性的等待画面,进行存储。
在一种可能的实现方式中,在识别游戏基准帧时,还可将图像对比方案修改为智能识别图案上的文字来实现,例如识别图片上有“按任意键继续”“continue”等字段。
步骤3.2:待云游戏启动时,向中间服务器请求该图片,并与云端游戏实例上画面采集服务采集到的游戏画面进行对比,在对比成功之前中间服务器均不接收客户端的操作请求。
步骤3.3:当画面比对相似度高于预设阈值(如98%)时,云端服务器向中间服务发送校准成功消息通知。
步骤3.4中间服务器在收到对战双方云端服务器发送的校准成功消息通知后,同时向对战双方云端服务器及客户端发送同步通知。
步骤4、进行时钟校准。
步骤4.1:如图2所示,客户端向服务器发送一个请求包,其中包含了该包离开客户机的时间戳T1。
步骤4.2:当服务器接收到该包时,依次填入包到达的时间戳T2、包离开的时间戳T3,然后立即把包返回给客户端。
步骤4.3:客户端在接收到响应包时,记录包返回的时间戳T4。
步骤4.4:客户端计算客户端和服务端时钟偏差t。
假设请求和回复包传送延时相等(毫秒级误差忽略不计),即d1=d2,则可解得
步骤4.5:客户端以时钟偏差t调整本地时钟,以使其时间与服务器时间一致。
步骤5、进行图像编解码。
在云端图像采集服务采集图像后,将步骤4中校准后的基准时钟的时间戳和图片信息一起进行编码,用于标识每帧图像采集时间,并在客户端解码时将该时间戳解码后用于识别图像采集的时间;
步骤6、进行指令转发及同步。
步骤6.1在完成时钟同步后将客户端收到步骤3的进度校准消息作为起始时间点,通过客户端和中转服务器间的长连接进行指令帧方式的消息发送,以每秒30帧或60帧的速率向中间服务器发送指令帧消息,示例性的,该消息示意如下:
{clientTimestamp:1668767756029,
imagTimestamp:1668767756000,
ctrlAction:[指令A1]}
clientTimestamp:校准后的时间戳信息
imagTimestamp:客户端解码渲染的最近一帧图像里携带的时间戳信息
ctrlAction:在当前帧和上一帧之前用户的所有操控指令信息。
步骤6.2、中间服务器在接收到对战双方的指令帧时,根据双方客户端时间戳进行帧同步,如果接收到双方帧的客户端时间戳相差小于1000/帧数(ms)时,则两个操作帧指令复制后同时转发到双方云端服务器,否则,说明有一方帧消息有延迟,需要等待网络较慢的一端的指令帧到达。如图3中间部分所示,将双方指令帧对齐合并后再同时将指令复制转发到双方云端游戏实例上。同时中转服务器端,为了实现云实例崩溃重启或游戏画面重放等功能,需将所有指令帧消息进行持久化保存。
步骤7、客户端画面同步。
在双方游戏画面不同步时,如步骤6所述,指令帧消息里会携带客户端当前图像帧的时间戳,如果对战双方同步后的指令帧里携带的图像时间戳间隔超过预设阈值(如125ms)时,说明一端客户端图像延迟较大,将画面不同步的时间点上接收到的操控指令丢弃,不进行转发,画面同步后再进行指令转发,确保游戏公平。如出现长时间画面不同步,如不同步时长超过1S,可提示用户对方网络异常,请等待。
步骤8、云端游戏同步。
由于云服务器本身性能差异、游戏运行过程中本身可能出现卡顿等原因,也可能出现云端游戏画面本身就不同步的问题。将云端采集的游戏画面帧同步到中间服务器,中间服务器根据图像时间戳同步后进行前后画面逐一对比,如果N张图片对比相似度均小于预设阈值(如98%),则认为云端游戏不同步,此时可暂停指令转发,待云端画面同步后,则继续接受指令输入。
步骤9、客户端掉线重连。
如果中间服务器连续未收到30帧(1s)指令帧消息,则提示客户端,对方掉线,请等待,同时禁止接受指令操作。
步骤10、云端游戏崩溃重启。
在步骤6中,将所有指令帧消息进行持久化存储到中间服务器,如有云端实例奔溃后重启,则在重启实例完成步骤3进度校准后,将保持的指令按原有帧间隔时间的10倍速进行快速回放,以达到该重启实例游戏画面与对方游戏同步,待指令重放完成后,开启接受双方指令。
基于上述实施例,本公开还提供了一种云游戏联机对战的方法,如图4所示,该方法包括以下步骤:
在步骤S100中,获取联机对战的各参与方的用户终端分别对应的位置信息。
其中,联机对战的各参与方至少包括两方。在用户知情并且同意的情况下,获取用户终端的地理位置信息。可选地,可通过北斗卫星***、全球定位***等获取用户终端的位置信息,本公开实施例对此不做限定。
在步骤S200中,基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例。
其中,目标游戏为各参与方的用户终端启动的游戏。云端游戏实例为云端运行目标游戏的实例。
在步骤S300中,通过中间服务器获取指令帧消息。
其中,指令帧消息包括各参与方的用户终端发送的指令帧消息。中间服务器基于各参与方的用户终端分别对应的位置信息确定
在一种可能的实现方式中,指令帧消息包括用户终端在当前帧和上一帧之前用户的所有操控指令信息。
在步骤S400中,基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。
在一种可能的实现方式中,通过中间服务器将各参与方的用户终端发送的指令帧消息同步发送给各参与方的云端游戏实例,实现对目标游戏的云端游戏实例进行同步控制。
通过上述方法,能够为各参与方分别分配云端游戏实例,各参与方的游戏视频流由分配的云端游戏实例输出,解决视频流延迟问题,同时通过中间服务器接收各参与方的指令帧消息,基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制,使得各参与方的云端游戏实例能够同步,提高了对战游戏的公平性。
为了更清楚地对本公开进行说明,基于上述实施例,在步骤S200中,还包括:
在步骤S210中,分别为各参与方分别对应用户终端分配游戏实例。
在一种可能的实现方式中,为各参与方的用户终端就近分配云端游戏实例,例如,为第一用户终端分配与第一用户终端距离最近的第一云端游戏实例,为第二用户终端分配与第二用户距离最近的第二云端游戏实例。
其中,各云端游戏实例所在的服务器距离对应参与方的用户终端之间的距离小于第一预设距离。
通过上述方法,能够为各参与方就近分配游戏实例,各参与方的游戏视频流由最近的云端游戏实例输出,解决了多个用户连接同一游戏实例造成的视频流延迟的问题,提高了用户的体验感。
为了更清楚地对本公开进行说明,基于上述实施例,在步骤S300中,还包括:
在步骤S310中,基于各参与方的用户终端分别对应的位置信息,确定出中间服务器。
在一种可能的实现方式中,为保障对战双方指令尽量同时到达中转服务器,中转服务器可分布式部署于全国各地机房,用户匹配完成后,调度到接近用户各方地理位置中间的机房。其中,中间服务器分别与各参与方的用户终端之间的距离小于第二预设距离。
在步骤S320中,通过中间服务器获取各参与方的用户终端分别发送的指令帧消息。
示例性的,通过中间服务器获取第一用户终端发送的第一指令帧信息和第二用户终端发送的第二指令帧信息。
为了更清楚地对本公开进行说明,上述参与方包括第一用户终端和第二用户终端,指令帧消息携带用户终端的指令对应的画面帧的时间戳,在上述步骤S400中,包括:
在步骤S410中,基于指令帧消息分别获取第一用户终端对应的第一时间戳和第二用户终端对应的第二时间戳。
其中,第一时间戳包括第一用户终端操作指令对应的的画面帧的时间戳,第二时间戳第一用户终端操作指令对应的的画面帧的时间戳。
在步骤S420中,在第一时间戳与第二时间戳之间的时间间隔小于预设时间间隔的情况下,通过中间服务器将向第一用户终端对应的第一云端游戏实例发送第一指令帧消息和第二指令帧消息,并同时向第二用户终端对应的第二云端游戏实例发送第一指令帧消息和第二指令帧消息。
在一种可能的实现方式中,中间服务器在接收或发送指令帧消息前,先对第一云端游戏实例、第二云端游戏实例和第一用户终端和第二用户终端进行画面同步和时钟同步,同步完成后,云端服务器开始按同步后时钟将时间戳编码到视频帧内,中转服务器开始接收来自用户端的操作指令,并进行转发,云端游戏实例同时收到相同的操作指令,确保双方游戏进度保持一致。
下面对画面同步和时钟同步的方式进行说明。
在步骤S500中,在游戏等待过程中,获取第一云端游戏实例当前的第一游戏画面和第二云端游戏实例当前的第二游戏画面。
在步骤S510中,在第一游戏画面和第二游戏画面分别与预先存储的游戏等待画面的相似度大于预设阈值的情况下,通过中间服务器同时向第一用户终端、第二用户终端、第一云端游戏实例以及第二云端游戏实例发送游戏开始的通知信息。
一般FTG类游戏启动成功之后会有一个页面等待用户操作(该画面出现之前游戏进度与用户操作无关,该画面为等待画面,接收操作后,游戏进度和用户操作相关),在一种可能的实现方式中,可以将该页面作为有识别性的等待画面,进行存储。
为了更清楚地对本公开进行说明,基于上述实施例,在通过中间服务器同时向第一用户终端、第二用户终端、第一云端游戏实例以及第二云端游戏实例发送游戏开始的通知信息之前,上述方法还包括:
在步骤S600中,分别获取第一用户终端、第二用户终端、第一云端游戏实例和第二云端游戏实例时钟信息。
在一种可能的实现方式中,时钟信息包括时间戳信息。示例性的,第一用户终端向第一云端游戏实例的服务器发送一个请求包,其中包含了该包离开第一用户终端的时间戳T1。当第一云端游戏实例的服务器接收到该包时,依次填入包到达的时间戳T2、包离开的时间戳T3,然后立即把包返回给第一用户终端,并记录包返回的时间戳T4。
在步骤S610中,基于时钟信息对第一用户终端、第二用户终端、第一云端游戏实例和第二云端游戏实例之间进行时钟同步。
用户终端与云端游戏实例之间的时钟同步可参考本公开实施例中图2的相关说明,此处不再赘述。
在一种可能的实现方式中,可以先对各用户终端进行时钟同步,再通过上述方式实现用户终端和云端游戏实例之间的时钟同步。可选地,可以通过同时获取各用户终端的时钟,确定各用户终端之间的时钟偏差,并通知客户终端基于时钟偏差来调整时钟。
通过上述方法,中间服务器向云端游戏实例和用户终端发送校准成功通知前,先通过时钟校准,确保四端时钟同步,为后续进行画面及指令同步提供时钟依据。
为了更清楚地对本公开进行说明,基于上述实施例,该方法还包括:
在步骤S700中,在游戏对战过程中,获取联机对战的各参与方的用户终端当前图像帧的时间戳。
在步骤S710中,在存在任意两个参与方的用户终端当前图像帧的时间戳间隔大于预设间隔的情况下,中间服务器停止接收和/或发送指令帧消息。
在一种可能的实现方式中,如图5所示,用户A网络情况较好,有正常网络延时,但画面未出现帧延迟和掉帧情况,而用户B网络有波动,导致出现帧延迟和掉帧情况。导致用户A看到第1帧画面时,B用户出现了卡顿,仍然显示第0帧画面,此时用户A做了A2操作应用于第1帧画面,但此时用户B并没有看到这一帧画面,导致B无法做出反应,因此会对B用户不公平。
在双方游戏画面不同步时,上述指令帧消息里会携带客户端当前图像帧的时间戳,如果对战双方同步后的指令帧里携带的图像时间戳间隔过大,当间隔超过125ms,说明发生一次大卡顿,一端用户端图像延迟较大,如图5所示,时间点2和3双方画面不同步,直到时间点4,画面重新同步,在时间点2用户A有指令A2应用到第1帧画面上,此时可将画面不同步的时间点2、3上接收到的操控指令丢弃(即指令A2),不进行转发,画面同步后再进行指令转发,确保游戏公平。如出现长时间画面不同步,例如不同步时长超过1S,可提示用户对方网络异常,请等待。
为了更清楚地对本公开进行说明,基于上述实施例,该方法还包括:
在步骤S720中,在中间服务器持续预设时间未接收到参与方中任一方的用户终端发送的指令帧消息的情况下,停止接收和/或发送指令帧消息。
示例性的,如果中间服务器连续1s(30帧)未收到第一用户终端的指令帧消息,则提示第二用户终端,对方掉线,请等待,同时禁止接受和/或发送指令操作。
为了更清楚地对本公开进行说明,基于上述实施例,该方法还包括:
在步骤S800中,将获取的指令帧消息存储到中间服务器。
在步骤S810中,在存在参与方中任一方重启云端游戏实例的情况下,将存储的指令帧消息在重启的云端游戏实例上按照预设的速度进行回放。
在一种可能的实现方式中,将所有指令帧消息进行持久化存储到中间服务器,如有云端实例奔溃后重启,则在重启实例完成进度校准后,将保存的指令按原有帧间隔时间的预设倍速进行快速回放,例如10倍速回放,以达到该重启实例游戏画面与其他参与方的游戏同步,待指令重放完成后,开启接受各参与方的指令。
为了更清楚地对本公开进行说明,基于上述实施例,该方法还包括:
在步骤S900中,获取各参与方分别对应的云端游戏实例当前的图像。
在一种可能的实现方式中,在游戏过程中,可定期传输I帧云端游戏实例的图像至中间服务器。
在步骤S910中,在存在任意两个参与方对应的云端游戏实例的图像之间的相似度小于预设阈值情况下,中间服务器停止接收和/或发送指令帧消息。
在一种可能的实现方式中,中间服务器根据图像时间戳同步后,进行前后画面逐一对比,例如进行前后5帧进行图像对比,如果10张图片对比相似度均小于98%,则认为云端游戏不同步,此时可暂停指令转发,由于云端游戏行为仅和操作相关,停止操控后,最终游戏画面将保持一致,待云端画面同步后,即相近时间戳采集的云端画面相似度大于98%,则继续接受指令输入。
通过上述方法,在游戏过程中,存在用户终端的游戏画面不同步、云端游戏实例的画面不同步或者用户掉线重启时,中间服务器都不接收和/或发送指令帧消息,避免存在参与方之间指令不同步的问题,提高了游戏对战的公平性,进一步提高了用户的体验感。
通过本公开实施例提供的方法,为各参与方的用户终端分别分配云端游戏实例,并在在游戏开始前进行各参与方以及各云端游戏实例的画面同步以及时钟同步,为后续的指令同步提供了基础,在游戏过程中,通过中间服务器接收和转发各参与方用户终端的指令帧消息,使得指令帧消息能够同时到达各用户终端对应的云端游戏实例,并且在用户终端、或云端游戏实例的画面不同步的情况下,停止接收和/或发送指令帧消息,提高了游戏对战的公平性,进一步提高了用户的体验感。
在采用对应各个功能划分各个功能模块的情况下,本公开实施例提供了一种云游戏联机对战装置,该装置可以为服务器或应用于服务器的芯片。图5为本公开一示例性实施例提供的云游戏联机对战装置的功能模块示意性框图。如图5所示,该装置包括:
获取模块201,用于获取联机对战的各参与方的用户终端分别对应的位置信息;
分配模块202,用于基于位置信息分别为各参与方的用户终端分别分配目标游戏的云端游戏实例;获取模块还用于通过中间服务器获取指令帧消息;其中,指令帧消息包括各参与方的用户终端发送的指令帧消息;中间服务器基于各参与方的用户终端分别对应的位置信息确定;
同步模块203,用于基于指令帧消息对目标游戏的云端游戏实例进行游戏同步控制。
在一种可能的实现方式中,分配模块还用于,分别为各参与方分别对应用户终端分配游戏实例;其中,各游戏实例所在的服务器距离对应参与方的用户终端之间的距离小于第一预设距离。
在一种可能的实现方式中,上述装置还包括:确定模块,用于基于各参与方的用户终端分别对应的位置信息,确定出中间服务器;中间服务器分别与各参与方的用户终端之间的距离小于第二预设距离;获取模块还用于通过中间服务器获取各参与方的用户终端分别发送的指令帧消息。
在一种可能的实现方式中,参与方包括第一用户终端和第二用户终端,指令帧消息携带用户终端的指令对应的画面帧的时间戳;获取模块还用于基于指令帧消息分别获取第一用户终端对应的第一时间戳和第二用户终端对应的第二时间戳;
同步模块还用于在第一时间戳与第二时间戳之间的时间间隔小于预设时间间隔的情况下,通过中间服务器将向第一用户终端对应的第一云端游戏实例发送第一指令帧消息和第二指令帧消息,并同时向第二用户终端对应的第二云端游戏实例发送第一指令帧消息和第二指令帧消息。
在一种可能的实现方式中,获取模块还用于在游戏等待过程中,获取第一云端游戏实例当前的第一游戏画面和第二云端游戏实例当前的第二游戏画面;
同步模块还用于在第一游戏画面和第二游戏画面分别与预先存储的游戏等待画面的相似度大于预设阈值的情况下,通过中间服务器同时向第一用户终端、第二用户终端、第一云端游戏实例以及第二云端游戏实例发送游戏开始的通知信息。
在一种可能的实现方式中,获取模块还用于分别获取第一用户终端、第二用户终端、第一云端游戏实例和第二云端游戏实例时钟信息;
同步模块还用于基于时钟信息对第一用户终端、第二用户终端、第一云端游戏实例和第二云端游戏实例之间进行时钟同步。
在一种可能的实现方式中,获取模块还用于在游戏对战过程中,获取联机对战的各参与方的用户终端当前图像帧的时间戳,
同步模块还用于在存在任意两个参与方的用户终端当前图像帧的时间戳间隔大于预设间隔的情况下,中间服务器停止接收和/或发送指令帧消息。
在一种可能的实现方式中,同步模块还用于:在中间服务器持续预设时间未接收到参与方中任一方的用户终端发送的指令帧消息的情况下,停止接收和/或发送指令帧消息。
在一种可能的实现方式中,上述装置还包括:存储模块,用于将获取的指令帧消息存储到中间服务器;
同步模块还用于在存在参与方中任一方重启云端游戏实例的情况下,将存储的指令帧消息在重启的云端游戏实例上按照预设的速度进行回放。
在一种可能的实现方式中,获取模块还用于获取各参与方分别对应的云端游戏实例当前的图像;
同步模块还用于在存在任意两个参与方对应的云端游戏实例的图像之间的相似度小于预设阈值情况下,中间服务器停止接收和/或发送指令帧消息。
本公开实施例还提供一种电子设备,包括:至少一个处理器;用于存储所述至少一个处理器可执行指令的存储器;其中,所述至少一个处理器被配置为执行所述指令,以实现本公开实施例公开的上述方法。
图6为本公开一示例性实施例提供的电子设备的结构示意图。如图6所示,该电子设备1800包括至少一个处理器1801以及耦接至处理器1801的存储器1802,该处理器1801可以执行本公开实施例公开的上述方法中的相应步骤。
上述处理器1801还可以称为中央处理单元(central processing unit,CPU),其可以是一种集成电路芯片,具有信号的处理能力。本公开实施例公开的上述方法中的各步骤可以通过处理器1801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1801可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器1802中,例如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。处理器1801读取存储器1802中的信息,结合其硬件完成上述方法的步骤。
另外,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机***,例如图7所示的计算机***1900安装构成该软件的程序,该计算机***在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图7为本公开一示例性实施例提供的计算机***的结构框图。
计算机***1900旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,计算机***1900包括计算单元1901,该计算单元1901可以根据存储在只读存储器(ROM)1902中的计算机程序或者从存储单元1908加载到随机存取存储器(RAM)1903中的计算机程序,来执行各种适当的动作和处理。在RAM1903中,还可存储计算机***1900操作所需的各种程序和数据。计算单元1901、ROM1902以及RAM1903通过总线1904彼此相连。输入/输出(I/O)接口1905也连接至总线1904。
计算机***1900中的多个部件连接至I/O接口1905,包括:输入单元1906、输出单元1907、存储单元1908以及通信单元1909。输入单元1906可以是能向计算机***1900输入信息的任何类型的设备,输入单元1906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1908可以包括但不限于磁盘、光盘。通信单元1909允许计算机***1900通过网络诸如因特网的与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1901执行上文所描述的各个方法和处理。例如,在一些实施例中,本公开实施例公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1908。在一些实施例中,计算机程序的部分或者全部可以经由ROM1902和/或通信单元1909而被载入和/或安装到电子设备1900上。在一些实施例中,计算单元1901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例公开的上述方法。
本公开实施例还提供一种计算机可读存储介质,其中,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例公开的上述方法。
本公开实施例中的计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。上述计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。更具体的,上述计算机可读存储介质可以包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本公开实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开实施例公开的上述方法。
在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

Claims (13)

1.一种云游戏联机对战方法,其特征在于,所述方法包括:
获取联机对战的各参与方的用户终端分别对应的位置信息;
基于所述位置信息分别为所述各参与方的用户终端分别分配目标游戏的云端游戏实例;
通过中间服务器获取指令帧消息;其中,所述指令帧消息包括各参与方的用户终端发送的指令帧消息;所述中间服务器基于所述各参与方的用户终端分别对应的位置信息确定;
基于所述指令帧消息对所述目标游戏的云端游戏实例进行游戏同步控制。
2.根据权利要求1所述的方法,其特征在于,所述基于所述位置信息分别为所述各参与方的用户终端分别分配目标游戏的云端游戏实例,包括:
分别为所述各参与方分别对应用户终端分配游戏实例;其中,各游戏实例所在的服务器距离对应参与方的用户终端之间的距离小于第一预设距离。
3.根据权利要求1所述的方法,其特征在于,所述通过中间服务器获取指令帧消息,包括:
基于所述各参与方的用户终端分别对应的位置信息,确定出中间服务器;所述中间服务器分别与所述各参与方的用户终端之间的距离小于第二预设距离;
通过所述中间服务器获取所述各参与方的用户终端分别发送的所述指令帧消息。
4.根据权利要求1所述的方法,其特征在于,所述参与方包括第一用户终端和第二用户终端,所述指令帧消息携带用户终端的指令对应的画面帧的时间戳;所述基于所述指令帧消息对所述目标游戏的云端游戏实例进行游戏同步控制,包括:
基于所述指令帧消息分别获取所述第一用户终端对应的第一时间戳和所述第二用户终端对应的第二时间戳;
在所述第一时间戳与所述第二时间戳之间的时间间隔小于预设时间间隔的情况下,通过所述中间服务器将向所述第一用户终端对应的第一云端游戏实例发送所述第一指令帧消息和所述第二指令帧消息,并同时向所述第二用户终端对应的第二云端游戏实例发送所述第一指令帧消息和所述第二指令帧消息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在游戏等待过程中,获取第一云端游戏实例当前的第一游戏画面和第二云端游戏实例当前的第二游戏画面;
在所述第一游戏画面和第二游戏画面分别与预先存储的游戏等待画面的相似度大于预设阈值的情况下,通过所述中间服务器同时向所述第一用户终端、所述第二用户终端、所述第一云端游戏实例以及所述第二云端游戏实例发送游戏开始的通知信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
分别获取所述第一用户终端、所述第二用户终端、所述第一云端游戏实例和所述第二云端游戏实例时钟信息;
基于所述时钟信息对所述第一用户终端、所述第二用户终端、所述第一云端游戏实例和所述第二云端游戏实例之间进行时钟同步。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在游戏对战过程中,获取所述联机对战的各参与方的用户终端当前图像帧的时间戳,
在存在任意两个参与方的用户终端当前图像帧的时间戳间隔大于预设间隔的情况下,所述中间服务器停止接收和/或发送指令帧消息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述中间服务器持续预设时间未接收到所述参与方中任一方的用户终端发送的指令帧消息的情况下,停止接收和/或发送指令帧消息。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将获取的指令帧消息存储到中间服务器;
在存在所述参与方中任一方重启云端游戏实例的情况下,将存储的指令帧消息在重启的云端游戏实例上按照预设的速度进行回放。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述各参与方分别对应的云端游戏实例当前的图像;
在存在任意两个参与方对应的云端游戏实例的图像之间的相似度小于预设阈值情况下,所述中间服务器停止接收和/或发送指令帧消息。
11.一种云游戏联机对战装置,其特征在于,所述装置包括:
获取模块,用于获取联机对战的各参与方的用户终端分别对应的位置信息;
分配模块,用于基于所述位置信息分别为所述各参与方的用户终端分别分配目标游戏的云端游戏实例;
所述获取模块还用于通过中间服务器获取指令帧消息;其中,所述指令帧消息包括各参与方的用户终端发送的指令帧消息;所述中间服务器基于所述各参与方的用户终端分别对应的位置信息确定;
同步模块,基于所述指令帧消息对所述目标游戏的云端游戏实例进行游戏同步控制。
12.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器被配置为执行所述指令,以实现如权利要求1-10中任一项所述的内存故障处理方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-10中任一项所述的内存故障处理方法。
CN202311154919.1A 2023-09-07 2023-09-07 一种云游戏联机对战方法、装置及电子设备 Pending CN117065342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311154919.1A CN117065342A (zh) 2023-09-07 2023-09-07 一种云游戏联机对战方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311154919.1A CN117065342A (zh) 2023-09-07 2023-09-07 一种云游戏联机对战方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117065342A true CN117065342A (zh) 2023-11-17

Family

ID=88708006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311154919.1A Pending CN117065342A (zh) 2023-09-07 2023-09-07 一种云游戏联机对战方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117065342A (zh)

Similar Documents

Publication Publication Date Title
US9282232B2 (en) Collaborative image control
CN111837399B (zh) 一种用于同步媒体内容的回放方法、服务器和介质
JP6469279B1 (ja) コンテンツ配信サーバ、コンテンツ配信システム、コンテンツ配信方法及びプログラム
US9485467B2 (en) Information processing system and information processing devices
CN113457123B (zh) 基于云游戏的互动方法、装置、电子设备及可读存储介质
CN113423018A (zh) 一种游戏数据处理方法、装置及存储介质
CN107484011B (zh) 一种视频资源解码方法及装置
JP2008152625A (ja) 画像表示装置、画像データ処理システムおよび画像データ処理方法
US11523146B2 (en) Live broadcast method and apparatus, electronic device, and storage medium
WO2022017007A1 (zh) 音频数据处理方法、服务器及存储介质
US20230396829A1 (en) Methods, systems, and media for synchronized media content playback on multiple devices
CN112702557A (zh) 一种基于通话的屏幕共享方法、装置、设备及存储介质
CN112057846A (zh) 云游戏服务调度的交互方法、装置、设备和存储介质
KR20160021449A (ko) 비디오 재생 제어 방법, 장치 및 시스템
US20220021715A1 (en) Live streaming method and apparatus, device and computer readable storage medium
KR20130099515A (ko) 키 프레임을 이용하여 컨텐츠를 재생하는 단말기의 장치 및 방법
CN117065342A (zh) 一种云游戏联机对战方法、装置及电子设备
EP3934257A1 (en) Livestreaming method, apparatus and device, and computer-readable storage medium
CN114144758B (zh) 显示方法、显示控制方法、显示终端、服务器和显示***
CN111803924B (zh) 云游戏的多终端同步显示方法、装置及可读存储介质
CN113726534A (zh) 会议控制方法、装置、电子设备及存储介质
KR20140108082A (ko) 게임 플레이에 대한 인터랙션을 제공하기 위한 방법, 장치 및 시스템
CN108667795B (zh) 一种虚拟现实视频的多人分享***及虚拟现实设备
US20230379529A1 (en) Distributed media stream playback suspension and synchronization
KR20200080041A (ko) 모바일 단말을 이용한 다채널 영상 생성 방법 및 장치

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