游戏录制处理方法和装置的制造方法

文档序号:10655000阅读:228来源:国知局
游戏录制处理方法和装置的制造方法
【专利摘要】本发明公开了一种游戏录制处理方法和装置。其中,该方法包括:接收对游戏进行录制的命令;至少同步采集游戏中产生变化对象对应的同步网络包,其中,同步网络包采用预定的网络协议;将采集到的同步网络包按照预定的数据结构进行保存作为游戏的录像,其中,录像能够根据网络协议进行解释,以实现对录制的游戏进行回放。本发明解决了现有技术中录制的游戏录像不能完整显示所有玩家的游戏过程的技术问题。
【专利说明】
游戏录制处理方法和装置
技术领域
[0001]本发明涉及数据处理领域,具体而言,涉及一种游戏录制处理方法和装置。
【背景技术】
[0002]在现有社会中,随着网络游戏的发展,每个游戏玩家更喜欢观看其他游戏玩家的比赛过程视频,以更好地促进网络游戏中各玩家之间的交流和经验的分享。因此,游戏过程的录像,尤其是在游戏比赛过程录像的直播和点播是非常有意义的。
[0003]目前主流的游戏录像技术主要分两类,第一类是游戏客户端进程(GameClient,简称GAC)通过游戏屏幕进行视频转码,然后压缩音频源和视频源,并通过流媒体的方式将音频源和视频源进行上传,或者将上述音频源和视频源保存在本地,其中,上传后的视频资源可以存放在服务器中,以为其他视频客户端提供游戏视频的点播或直播业务。第二类是GAC通过记录游戏服务端进程(Game Server,简称GAS)发送下来的数据包构造相应的录像指令,并将录像指令记录下来,并将构造的录像指令进行压缩并上传。当用户请求播放游戏视频时,该用户所在的游戏客户端重新解释上述录像指令,并结合使用游戏客户端进行更新和渲染,以重现游戏过程。具体如图1所示,游戏客户端I发送行为指令至游戏服务器GAS,GAS接受到指令后进行游戏逻辑操作,并且将相应的同步网络包发送到观察到玩家角色I的其他游戏客户端中(例如,游戏客户端I和游戏客户端2),其他GAC解释网络包之后,更新各自屏幕中玩家I的位置和状态,并进行渲染,从而实现相互的同步。
[0004]采用上述第一类方案来录制游戏的视频时,采用了视频流格式作为存储和传输内容,但是该方式会造成游戏客户端的带宽占用高,存储量大等的问题,例如,采用上述方案容易在游戏播放过程中,或者游戏的直播过程中因为网络带宽不足导致游戏客户端出现顿卡等现象。同时,GAS或GAC大量存储这些录像文件也会消耗过多的硬盘容量。
[0005]采用上述第二类方案来录制游戏的视频时,是通过GAC录制游戏定义的录像指令,在播放游戏的录像时,是通过GAC解释上述录像指令来实现的。由于上述录像指令对比与上述第一类方案中采集视频流来说,空间占用非常少,因此可以解决第一类方案中游戏录像的录制过程中的出现的传输和保存问题。但是由于上述第二类方案中是通过游戏客户端录制游戏录像,因此游戏录像中没有包含该游戏客户端没有同步的区域发生的事件。假设需要录制一个大面积的游戏场景,GAS只会发送每个游戏客户端视野范围附近的数据到该游戏客户端,而不能录制该游戏中的全部情况。从而使录制的游戏录像不能完整显示所有玩家的游戏过程。
[0006]针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0007]本发明实施例提供了一种游戏录制处理方法和装置,以至少解决现有技术中录制的游戏录像不能完整显示所有玩家的游戏过程的技术问题。
[0008]根据本发明实施例的一个方面,提供了一种游戏录制处理方法,包括:接收对游戏进行录制的命令;至少同步采集所述游戏中产生变化对象对应的同步网络包,其中,所述同步网络包包含所述游戏中的对象的状态和/或行为的数据,所述同步网络包采用预定的网络协议;将采集到的所述同步网络包按照预定的数据结构进行保存作为所述游戏的录像,其中,所述录像能够根据所述网络协议进行解释,以实现对录制的游戏进行回放。
[0009]可选地,所述数据结构包括至少一个单元,每个单元均用于保存在预定时长内的同步网络包。
[0010]可选地,所述数据结构还包括:头信息,所述头信息包括以下至少之一:所述录像的标识信息、所述录像所包括的单元的数量、所述录像的总时长、所述录像的大小;所述每个单元的内容均包括:该单元的所有的同步网络包以及该单元的头部信息,其中,所述头部信息包括该单元内容的大小。
[0011]可选地,至少同步采集所述游戏中产生变化对象对应的同步网络包包括:至少将所述游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化;通过所述虚拟玩家将采集到的所述同步网络包发送至录像服务器,所述录像服务器用于保存所述录像。
[0012]可选地,通过录像服务器对所述录像进行保存,所述录像服务器不同于所述游戏的游戏服务器。
[0013]可选地,所述录像服务器为多个。
[0014]可选地,至少同步采集所述游戏中产生变化对象对应的同步网络包包括:判断是否满足预先设置的条件;在判断结果为是的情况下,触发所述游戏的游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集,所述初始化同步网络包用于创建所述游戏中的对象并同步其当前时刻的状态;在判断结果为否的情况下,采集所述游戏中产生变化对象对应的更新同步网络包,所述更新同步网络包用于同步所述游戏中的对象的状态变化。
[0015]可选地,所述预先设置的条件包括以下至少之一:触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的时间间隔或者时间点、触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的频率。
[0016]可选地,触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并进行采集包括:模拟虚拟玩家加入所述游戏的过程,以触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并发送给所述虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化。
[0017]根据本发明实施例的另一方面,还提供了一种游戏录制处理装置,包括:接收模块,用于接收对游戏进行录制的命令;采集模块,用于至少同步采集所述游戏中产生变化对象对应的同步网络包,所述同步网络包包含所述游戏中的对象的状态和/或行为的数据,所述同步网络包采用预定的网络协议;保存模块,用于将采集到的所述同步网络包按照预定的数据结构进行保存,所述录像可根据所述网络协议进行解释,以实现对录制的游戏进行回放。
[0018]可选地,所述数据结构包括至少一个单元,每个单元均用于保存在预定时长内的同步网络包。
[0019]可选地,所述数据结构还包括:头信息,所述头信息包括以下至少之一:所述录像的标识信息、所述录像所包括的单元的数量、所述录像的总时长、所述录像的大小;所述每个单元的内容均包括:该单元的所有的同步网络包以及该单元的头部信息,其中,所述头部信息包括该单元内容的大小。
[0020]可选地,所述采集模块用于:至少将所述游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化;通过所述虚拟玩家将采集到的所述同步网络包发送至录像服务器,所述录像服务器用于保存所述录像。
[0021]可选地,所述保存模块设置于录像服务器中,所述录像服务器不同于所述游戏的游戏服务器。
[0022]可选地,所述保存模块设置于多个录像服务器中。
[0023]可选地,所述采集模块用于:判断是否满足预先设置的条件;在判断结果为是的情况下,触发所述游戏的游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集,所述初始化同步网络包用于创建所述游戏中的对象并同步其当前时刻的状态;在判断结果为否的情况下,采集所述游戏中产生变化对象对应的更新同步网络包,所述更新同步网络包用于同步所述游戏中的对象的状态变化。
[0024]可选地,所述预先设置的条件包括以下至少之一:触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的时间间隔或者时间点、触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的频率。O
[0025]可选地,所述采集模块在判断满足预先设置的条件的情况下用于:模拟虚拟玩家加入所述游戏的过程,以触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并发送给所述虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化。
[0026]在本发明实施例中,采用接收对游戏进行录制的命令;至少同步采集所述游戏中产生变化对象对应的同步网络包,其中,所述同步网络包包含所述游戏中的对象的状态和/或行为的数据,所述同步网络包采用预定的网络协议;将采集到的所述同步网络包按照预定的数据结构进行保存作为所述游戏的录像,其中,所述录像能够根据所述网络协议进行解释,以实现对录制的游戏进行回放方式,通过同步采集游戏中产生变化的对象对应的同步网络包,然后将上述采集到的同步网络包按照预定的数据结构进行保存,保存的网络包用于游戏录像的回放,在本发明实施例中,由于采集到的网络包中游戏中产生变化对象对应同步网络包,因此,本申请相对于现有技术中游戏录像的录制方法,达到了在游戏录像中完整显示所有玩家的游戏过程的目的,从而实现了用户在游戏客户端中能够观看完整游戏录像的技术效果,进而解决了现有技术中录制的游戏录像不能完整显示所有玩家的游戏过程的技术问题。
【附图说明】
[0027]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0028]图1是根据现有技术的一种游戏录制处理方法的流程图;
[0029]图2是根据本发明实施例的一种游戏录制处理方法的流程图;
[0030]图3是根据本发明实施例的一种可选地数据结构的示意图;[0031 ]图4是根据本发明实施例的另一种可选地游戏录制处理方法的流程图;
[0032]图5是根据本发明实施例的另一种可选地游戏录制处理方法的流程图;
[0033]图6是根据本发明实施例的另一种可选地游戏录制处理方法的流程图;以及
[0034]图7是根据本发明实施例的一种游戏录制处理装置的示意图。
【具体实施方式】
[0035]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0036]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0037]根据本发明实施例,提供了一种游戏录制处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0038]图2是根据本发明实施例的一种游戏录制处理方法的流程图,如图2所示,该方法包括如下步骤:
[0039]步骤S202,接收对游戏进行录制的命令。
[0040]步骤S204,至少同步采集游戏中产生变化对象对应的同步网络包,其中,同步网络包采用预定的网络协议。
[0041]步骤S206,将采集到的同步网络包按照预定的数据结构进行保存作为游戏的录像,其中,录像能够根据网络协议进行解释,以实现对录制的游戏进行回放。
[0042]采用本发明上述实施例,通过同步采集游戏中产生变化的对象对应的同步网络包,然后将上述采集到的同步网络包按照预定的数据结构进行保存,保存的同步网络包用于游戏录像的回放,在本发明实施例中,由于采集到的网络包中包括游戏中产生变化对象对应同步网络包,因此,本申请相对于现有技术中游戏录像的录制方法,达到了在游戏录像中完整显示所有玩家的游戏过程的目的,从而实现了用户在游戏客户端中能够观看完整游戏录像的技术效果,进而解决了现有技术中录制的游戏录像不能完整显示所有玩家的游戏过程的技术问题。
[0043]在本发明实施例中,采集到的网络包中包括游戏中产生变化对象对应的同步网络包。同步网络包由游戏的游戏服务器通过预定的网络协议发送至游戏的客户端,用于使客户端同步游戏中的对象的状态;例如,在游戏场景中,某一游戏客户端GAC通过向游戏服务器GAS发送角色行为指令来所控制的对象的行为和/或状态的发生了变化(具体为,GAS根据GAC所发送的角色行为指令,结合游戏逻辑进行操作,改变该对象的行为或状态),此时,游戏服务器GAS将创建并发送包含该对象的行为和/或状态变化的网络包至观察到该对象的各个游戏客户端GAC。上述网络包通过预定的网络协议进行传输,例如,建立在TCP或UDP协议之上的应用层自定义协议。由于不同的应用有各自不同的协议,因此,在本发明实施例中,只要是游戏客户端GAC能够解释的协议,都可以作为上述预定的网络协议。
[0044]除了复用GAS向GAC传输网络包所采用的网络协议之外,还可以重新编制一套服务器录制协议,并且在每个场景对象发生表现更变时,记录下相应的录制协议包,但是该做法会增加开发和维护成本。
[0045]在采集到产生变化对象对应的同步网络包之后,可以将上述同步网络包按照预定的数据结构进行保存作为游戏的录像,其中,当通过预定的网络协议解释上述同步网络包时,可以实现录制的游戏进行回放。例如,某用户A通过用户A所在的游戏客户端发送请求回放游戏的录像的指令时,可以在该用户A所在的游戏客户端中通过预定的网络协议对上述采集到的同步网络包进行解释,以实现游戏录像的回放。
[0046]需要说明的是,在本发明实施例中,采集通过预定的网络协议传输的同步网络包,并根据采集到的网络包生成游戏的录像的方法,不需要随着游戏功能的扩展额外编织新的录像指令,具有广泛的使用性和可维护性,同时,具有占用的内存小,以及占用的带宽低等优点。
[0047]在另一可选实施方式中,至少同步采集游戏中产生变化对象对应的同步网络包包括:通过游戏服务器GAS至少将游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,虚拟玩家用于监听游戏中所有对象的变化,然后,通过虚拟玩家将采集到的同步网络包发送至录像服务器(TV Server,简称TVS),接下来,录像服务器将采集到的网络包按照预定的数据结构进行保存。在本发明可选实施例中,通过不同的服务器将采集和保存分别部署,可以加快每个服务器的处理速率,不会导致过多的用户请求观看游戏的录像或者游戏的直播导致服务器出现瘫痪的情况。
[0048]当用户A所在的游戏客户端向录像服务器发送请求回放游戏的录像的指令时,录像服务器可以将上述同步网络包发送给用户A所在的游戏客户端,以使用户A所在的游戏客户端对上述采集到的同步网络包进行解释,以实现游戏的录像的回放。
[0049]将同步采集到的网络包转发至录像服务器的方式可以有很多中,在本发明可选实施方式中,可以在游戏服务器中创建一个虚拟玩家,其中,虚拟玩家用于在游戏中监听所有对象的变化;通过游戏的同步机制,游戏中的对象行为或状态变化时,GAS会将相应的网络包会发送给看到该对象的所有玩家,其中必然包含能看到所有对象的虚拟玩家;然后通过虚拟玩家将采集到的网络包转发至录像服务器进行保存。
[0050]本发明实施例中,在上述游戏的游戏场景中加入了虚拟摄像机,该虚拟摄像机可以认为是上述游戏服务器GAS虚拟出来的玩家,只负责监听游戏场景中所有对象的状态和/或行为,不做任何行为,因此,上述虚拟摄像机又可以称为虚拟玩家。综上,该虚拟玩家具有以下特点:虚拟玩家拥有一个虚拟的网络连接,其中,该网络连接可以为与游戏服务器GAS之间的网络连接,以便虚拟玩家通过该网络连接采集上述同步网络包;并且该虚拟玩家不需要游戏客户端GAC的驱动;该虚拟玩家没有角色行为,即不执行对游戏进行控制的操作;以及该虚拟玩家不会被其真实玩家看到,但是虚拟玩家能看到游戏场景内所有的交互对象,例如,游戏服务器GAS控制的角色,也包括游戏客户端GAC控制的真实玩家。
[0051]虚拟玩家在采集上述通过预定的网络协议传输的同步网络包之后,可以将上述网络包发送至用于保存网络包的服务器,例如,可以发送到上述录像服务器(即TVS)中进行保存,其中,TVS在接收到上述同步网络包之后,对同步网络包进行组织,以便在接收到用户的录像回放请求时,能够将网络包传输至该用户所在的游戏客户端,以使该游戏客户端能够正确解释上述同步网络包,实现游戏的录像的回放。
[0052]在一个可选的实施方式中,将采集到的同步网络包按照预定的数据结构进行保存作为游戏的录像时,可以为同步采集到的每个网络包设置时间戳,然后,将设置时间戳的每个网络包按照预定数据结构进行保存得到游戏录像,其中,数据结构包括至少一个单元,每个单元均用于保存在预定长内的网络包。
[0053]在本发明实施例中,由于将采集到的网络包进行保存,并将保存的网络包作为游戏的录像,因此,在同步采集每个游戏客户端的网络包时,需要为采集到的每个网络包设置一个时间戳,通过该时间戳表示该网络包在采集的所有的网络包中的时间标识。
[0054]对采集到的同步网络包设置完时间戳之后,可以将设置完时间戳的同步网络包按照预定的数据结构进行保存,并将保存的同步网络包作为游戏的录像。
[0055]上述采集到的游戏的录像同步网络包,可以以“帧”的形式组织起来,其中,“帧”相当于为每个采集下来的网络包标记的时间戳,一般来说16毫秒为一帧。虚拟玩家在采集网络包时,每组织一个“帧”就创建一个新的单元,然后把采集下来的网络包写进该单元中。因此,在本发明实施例中,当组织得到多个“帧”时,即得到多个上述单元,每个单元保存预定时长内的网络包,例如,16毫秒内采集到的网络包。
[0056]上述数据结构包括:头信息,头信息包括以下至少之一:录像的标识信息、录像所包括的单元的数量、录像的总时长、录像的大小;每个单元的内容均包括:该单元的所有的网络包以及该单元的头部信息,其中,头部信息包括该单元内容的大小。
[0057]下面结合图3对数据结构进行说明。如图3所示的为一种可选的数据结构的示意图。在如图3所示的数据结构中,包括该录像的头信息(Video Head),在该头信息中包括录像的标识信息(User I dent i f i cat i on,简称UID)、包括单元的数量,即“帧”的数量、包括游戏录像的总时长,例如,该游戏的总时长为2小时、包括游戏录像的大小等信息、还可以包括该游戏录像的名称,例如“星际大战I”等信息。
[0058]如图3所示,“第I帧”、“第2帧”、……“第η帧”即为上述至少一个单元,“第I帧的内容大小”、“第2帧的内容大小”、……“第η帧的内容大小”即为上述至少一个单元中每个单元内容的大小。也就是说,图3中所示的“第I帧的内容大小”、“第2帧的内容大小”、……“第η帧的内容大小”又可以称为单元的头部信息(Video FrameHead)。如图3所示,与头部信息“第I帧的内容大小”对应的单元为“第I帧的同步网络包”;与头部信息“第2帧的内容大小”对应的单元为“第2帧的同步网络包”;与头部信息“第η帧的内容大小”对应的单元为“第η帧的同步网络包”。
[0059]需要说明的是,在本发明实施例中,可以通过虚拟玩家将同步网络包按照预定的数据结构进行组织得到录像,接下来可以将按照预定的数据结构组织的网络包发送至录像服务器TVS进行保存,录像服务器在接收到用户A所在的客户端请求回放游戏录像的情况下,将按照预定的数据结构存储的网络包发送至该用户A所在的客户端,以使该客户端在播放游戏的录像时,对上述每个单元进行解释。上述游戏录像是根据“帧”来控制播放速度,例如,每16毫秒解释一个“帧”单元里的所有同步网络包,因此,通过控制这个解释时间间隔可以实现播放速度控制。
[0060]可选地,上述虚拟玩家在采集到网络包之后,还可以不对网络包按照预定数据结构进行组织,可以将采集到的网络包发送至录像服务器,然后录像服务器对接收到的网络包按照预定数据结构进行保存。录像服务器在接收到用户A所在的客户端请求回放游戏录像的情况下,将按照预定数据结构存储的网络包发送至该用户A所在的客户端,以使该客户端在播放游戏的录像时,对上述每个单元进行解释。
[0061]在一个可选的实施方式中,可以通过多个录像服务器将采集到的网络包进行保存。
[0062]在本发明实施例中,上述录像服务器的数量可以为一个,还可以为多个。如图4所示,在一个游戏服务器GAS中,设置了一个虚拟玩家,该虚拟玩家用于采集游戏中产生变化对象对应的同步网络包。游戏服务器GAS分别与录像服务器I和录像服务器2网络连接,上述两个录像服务器之间没有相互耦合,路由服务器分担了游戏服务器对于录像系统的主要I/O和网络带宽的负载,基本不影响游戏服务器的正常工作。每个录像服务器可以支持多个游戏客户端(例如,图4中,游戏客户端I至游戏客户端n+1)同时观看录像或者观看直播,而且不增加GAS的CPU和网络带宽消耗,不影响GAS的正常工作,同时兼顾了观看录像和游戏的体验。
[0063]在对采集到的同步网络包按照预定数据结构进行保存作为游戏的录像之后,就可以通过解释网络包实现游戏录像的回放或者直播。但是,由于网络包的解释重现游戏过程是一个增量的解释过程,因此,如果没有解释前面的数据,直接解释后面数据便会出错。例如,tl时刻,在游戏的游戏场景中加入一个真实玩家I,该真实玩家I在建造房子;t2时刻,在游戏场景中除了包括真实玩家I之外,还加入了另一个玩家即真实玩家2,其中,真实玩家I在攻击tl时刻之前的在游戏场景中的玩家,真实玩家2在种树。如果用户在观看游戏录像时,想由tl时刻之间的某一时刻直接跳至t2时刻,由于网络包的解释重现游戏过程是一个增量的解释过程,因此,如果没有解释tl时刻的网路包,则不能正确解释t2时刻的网络包。因此,想要实现录像播放过程中的随意跳转就需要特殊的方法。
[0064]实现录像播放过程中的随意跳转的方法可以有很多种,在一个可选的实施方式中,至少同步采集游戏中产生变化对象对应的同步网络包包括:判断是否满足预先设置的条件;在判断结果为是的情况下,触发游戏的游戏服务器生成游戏中的所有对象所对应的初始化同步网络包并进行采集,初始化同步网络包用于创建游戏中的对象并同步其当前时刻的状态;在判断结果为否的情况下,采集游戏中产生变化对象对应的更新同步网络包,其中,更新同步网络包用于同步游戏中的对象的状态变化。
[0065]在本发明可选实施方式中,采集到的初始化网络包由游戏的游戏服务器通过预定的网络协议发送给游戏的客户端,初始化网络包用于使客户端创建游戏中的对象并更新其当前时刻的状态。
[0066]具体地,在本发明实施例中,引用了录像关键帧,通过引入录像关键帧既可以解决游戏的录像的任意跳转。下面对录像关键帧进行详细说明。
[0067]在一般的网络游戏中,某真实玩家I加入到游戏的游戏场景中时,游戏服务器GAS会将真实玩家在游戏中控制的角色的视野范围内的其他对象的当前的状态同步到该真实玩家所在的游戏客户端GAC中,此时,将这种真实玩家加入到游戏场景中时接收的网络包称为前置网络包。真实玩家I的GAC I解释完前置网络包,创建同步范围内的对象,然后便可以正确解释后续的同步网络包。例如,如图5所示的流程图中,真实玩家I和真实玩家3已在游戏的游戏场景中,当真实玩家2所在的游戏客户端GAC 2所控制的真实玩家2进入游戏场景中时,游戏服务器GAS将真实玩家I的前置网络包和真实玩家3的前置网络包同步到真实玩家2所在的游戏客户端GAC 2中。此时真实玩家2所在的游戏客户端GAC 2可以创建当前所有的同步对象(例如,真实玩家I和真实玩家3),并更新当前真实玩家I和真实玩家3的状态。
[0068]利用上述已有的这个机制,可以为虚拟玩家设置一个刷新模式,当触发该刷新模式时,游戏服务器GAS就可以模拟虚拟玩家加入游戏的过程,将游戏的中的所有对象所对应的同步网络包发送给虚拟玩家,上述前置数据包的集合定义为“录像关键帧”。其中,上述“所有对象对应的初始化同步网络包”即为“所有对象对应的前置网络包”,也就是“录像关键帧”,其中,虚拟玩家用于监听游戏中所有对象的变化。
[0069]上述预先设置的条件可以为以下至少之一:触发游戏服务器生成游戏中的所有对象所对应的初始化网络包并进行采集的时间间隔或者时间点、触发游戏服务器生成游戏中的所有对象对应的初始化同步网络包并进行采集的频率。因此,判断是否满足预先设置的条件也可以理解为,判断是否满足采集所有对象对应的初始化同步网络包的时间间隔或者时间点,或者判断是够满足采集所有对象对应的初始化同步网络包的频率。如果判断出满足上述预先设置的条件,则可以触发游戏服务器生成初始化同步网络包,并采集初始化同步网络包(即,上述“录像关键帧”),并将采集到的初始化同步网络包进行保存;如果判断出未满足上述预先设置的条件,则可以采集游戏中产生变化对象对应的更新同步网络包。
[0070]需要说明的是,录像关键帧的采集频率越密,游戏的录像回放时进行跳转的精度越高,因为录像回放只能跳转至目标进度附近的录像关键帧处。如果游戏的场景中的对象过多,则会导致录像关键帧的数据相应地增多,在此情况下,采集录像关键帧过于频繁会增加游戏的录像文件的容量。假设在游戏的场景中包含10个同步对象,游戏的录像总时间为20分钟,作为优选,可以设置每3秒采集一次录像关键帧,按照此方式录制的游戏的录像文件大约在2MB以内,此时,播放时的可跳转点就是O、3、6、9……秒,其中,上述预定时间可以根据应用实际情况进行调节。
[0071]需要说明的是,为了解决游戏的录像的任意跳转的问题,可以不采用录像关键帧的方法。在本发明实施例中,还可以通过快速重新解释前面的同步网络包,增量地更新到当前时间后继续播放,但是这种方案会让向前跳转变得效率低下,因为每次跳转都要重新解释。
[0072]图6是根据本发明实施例的另一种可选地游戏录制处理方法的流程图。在本发明实施例中,在游戏服务器GAS中建立了一个虚拟玩家,该虚拟玩家有如下特点:虚拟玩家拥有一个虚拟的网络连接,虚拟玩家可以通过该网络连接采集游戏中游戏服务器GAS发送给游戏客户端GAC的游戏中所有对象的行为或状态改变所对应的同步网络包,虚拟玩家还用于将采集到的网络包发送到录像服务器TVS中,虚拟玩家不需要游戏客户端GAC的驱动,并且虚拟玩家没有角色行为,也即,该虚拟玩家不执行任何对游戏进行控制的操作、同时该虚拟玩家不会被其他真实玩家看到,但是虚拟玩家能看到所在游戏场景内所有的交互对象,其中,包括了游戏服务器GAS控制的角色,也包括游戏客户端GAC控制的真实玩家。
[0073]如图6所示,基于图1中的一般网络游戏同步交互方式,对于游戏场景中任何的游戏玩家的控制行为,游戏服务器GAS必然会将相应的同步网络包发送到虚拟玩家虚拟的网络连接上,但是该虚拟的网络连接并没有将同步网络包发送出去,而是将同步网络包采集下来,发送到录像服务器TVS中,保存成游戏的录像文件。
[0074]本发明提供的游戏录制处理,通过使用游戏服务器GAS创建虚拟玩家同步采集游戏中产生变化对象对应的同步网络包,由于上述同步网络包是通过已存在的网络协议进行传输,因此本发明提供的游戏录制处理能适用于一般的网络游戏。同时,对于游戏后续开发,录像系统也不会增加维护成本。此外,由于本发明实施例中,是获取通过预定的网络协议传输的网络包(又可称为,协议录像),因此,本发明提供的协议录像的方法,相对于视频录像,兼备了录像内容小,占用硬盘空间小和网络带宽小的特点。
[0075]同时,使用游戏服务器GAS中的虚拟玩家可以采集到整个游戏场景中的所有对象的初始同步网络包,因此录像的内容不再局限于场景的某些位置,观看者可以在观看录像时根据需要观看任意位置的游戏回放。
[0076]同时,本发明引入了上述“录像关键帧”的机制,并复用了如图5中所示的网络游戏中加入场景的刷新逻辑以进行“录像关键帧”的采集,通过采集“录像关键帧”能够实现观看游戏的录像时时间轴的跳转。因为支持了时间轴的跳转,因此也可以实现观众随时加入观看最新的直播录像。
[0077]本发明还引入录像服务器TVS,录像服务器TVS负责接收虚拟玩家转发的网络包,并对接收到的网络包进行组织、保存和管理。同时还可以将游戏的录像内容传输到其他的游戏客户端GAC中,以进行游戏录像的点播或直播。如上述图4所示,录像服务器TVS的数量可以为多个,并且多个录像服务器TVS之间没有相互耦合,因此可以根据观看录像的需求,部署多个TVS JVS分担了GAS对于录像系统的主要I/O和网络带宽的负载,基本不影响GAS正常工作。
[0078]本发明实施例还提供了一种游戏录制处理装置,该处理装置主要用于执行本发明实施例上述内容所提供的游戏录制处理方法,以下对本发明实施例所提供的游戏录制处理装置做具体介绍。
[0079]图7是根据本发明实施例的一种游戏录制处理装置的示意图,如图7所示,该游戏录制处理装置主要包括接收模块71、采集模块73和保存模块75,其中:
[0080]接收模块71,用于接收对游戏进行录制的命令。
[0081 ]采集模块73,用于至少同步采集游戏中产生变化对象对应的同步网络包,其中,同步网络包包含游戏中的对象的状态和/或行为的数据,同步网络包采用预定的协议。
[0082]保存模块75,用于将采集到的网络包按照预定的数据结构进行保存作为游戏的录像,其中,录像能够根据协议进行解释,以实现对录制的游戏进行回放。
[0083]采用本发明上述实施例,通过同步采集游戏中产生变化的对象对应的同步网络包,然后将上述采集到的同步网络包按照预定的数据结构进行保存,保存的网络包用于游戏录像的回放,在本发明实施例中,由于采集到的网络包中游戏中产生变化对象对应同步网络包,因此,本申请相对于现有技术中游戏录像的录制方法,达到了在游戏录像中完整显示所有玩家的游戏过程的目的,从而实现了用户在游戏客户端中能够观看完整游戏录像的技术效果,进而解决了现有技术中录制的游戏录像不能完整显示所有玩家的游戏过程的技术问题。
[0084]除了复用GAS向GAC传输网络包所采用的网络协议之外,还可以重新编制一套服务器录制协议,并且在每个场景对象发生表现更变时,记录下相应的录制协议包,但是该做法会增加开发和维护成本。
[0085]在采集到产生变化对象对应的同步网络包之后,可以将上述同步网络包按照预定的数据结构进行保存作为游戏的录像,其中,当通过预定的网络协议解释上述同步网络包时,可以实现录制的游戏进行回放。例如,某用户A通过用户A所在的游戏客户端发送请求回放游戏的录像的指令时,可以在该用户A所在的游戏客户端中通过预定的网络协议对上述采集到的同步网络包进行解释,以实现游戏录像的回放。
[0086]需要说明的是,在本发明实施例中,采集通过预定的网络协议传输的网络包,并根据采集到的网络包生成游戏的录像的方法,不需要随着游戏功能的扩展额外编织新的录像指令,具有广泛的使用性和可维护性,同时,具有占用的内存小,以及占用的带宽低等优点。
[0087]可选地,数据结构包括至少一个单元,每个单元均用于保存在预定时长内的同步网络包。
[0088]可选地,数据结构还包括:头信息,头信息包括以下至少之一:录像的标识信息、录像所包括的单元的数量、录像的总时长、录像的大小;每个单元的内容均包括:该单元的所有的同步网络包以及该单元的头部信息,其中,头部信息包括该单元内容的大小。
[0089]可选地,采集模块用于:至少将游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,虚拟玩家用于监听游戏中所有对象的变化;通过虚拟玩家将采集到的所述同步网络包发送至录像服务器,录像服务器用于保存录像。
[0090]可选地,保存模块设置于录像服务器中,录像服务器不同于游戏的游戏服务器。[0091 ]可选地,保存模块设置于多个录像服务器中。
[0092]可选地,采集模块用于:判断是否满足预先设置的条件;在判断结果为是的情况下,触发游戏的游戏服务器生成游戏中的所有对象所对应的初始化同步网络包并进行采集,初始化同步网络包用于创建游戏中的对象并同步其当前时刻的状态;在判断结果为否的情况下,采集游戏中产生变化对象对应的更新同步网络包,更新同步网络包用于同步游戏中的对象的状态变化。
[0093]可选地,预先设置的条件包括以下至少之一:触发游戏服务器生成游戏中的所有对象所对应的初始化同步网络包并进行采集的时间间隔或者时间点、触发游戏服务器生成游戏中的所有对象所对应的初始化同步网络包并进行采集的频率。
[0094]可选地,采集模块在判断满足预先设置的条件的情况下用于:模拟虚拟玩家加入游戏的过程,以触发游戏服务器生成游戏中的所有对象所对应的初始化网络包并发送给虚拟玩家,其中,虚拟玩家用于监听游戏中所有对象的变化。
[0095]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0096]在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0097]在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0098]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0099]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0100]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(R0M,Read-0nly Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0101]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种游戏录制处理方法,其特征在于,包括: 接收对游戏进行录制的命令; 至少同步采集所述游戏中产生变化对象对应的同步网络包,其中,所述同步网络包采用预定的网络协议; 将采集到的所述同步网络包按照预定的数据结构进行保存作为所述游戏的录像,其中,所述录像能够根据所述网络协议进行解释,以实现对录制的游戏进行回放。2.根据权利要求1所述的方法,其特征在于,所述数据结构包括至少一个单元,每个单元均用于保存在预定时长内的同步网络包。3.根据权利要求2所述的方法,其特征在于, 所述数据结构还包括:头信息,所述头信息包括以下至少之一:所述录像的标识信息、所述录像所包括的单元的数量、所述录像的总时长、所述录像的大小; 所述每个单元的内容均包括:该单元的所有的同步网络包以及该单元的头部信息,其中,所述头部信息包括该单元内容的大小。4.根据权利要求1至3中任一项所述的方法,其特征在于,至少同步采集所述游戏中产生变化对象对应的同步网络包包括: 至少将所述游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化; 通过所述虚拟玩家将采集到的所述同步网络包发送至录像服务器,所述录像服务器用于保存所述录像。5.根据权利要求1至3中任一项所述的方法,其特征在于,通过录像服务器对所述录像进行保存,所述录像服务器不同于所述游戏的游戏服务器。6.根据权利要求5所述的方法,其特征在于,所述录像服务器为多个。7.根据权利要求1所述的方法,其特征在于,至少同步采集所述游戏中产生变化对象对应的同步网络包包括: 判断是否满足预先设置的条件; 在判断结果为是的情况下,触发所述游戏的游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集,所述初始化同步网络包用于创建所述游戏中的对象并同步其当前时刻的状态; 在判断结果为否的情况下,采集所述游戏中产生变化对象对应的更新同步网络包,所述更新同步网络包用于同步所述游戏中的对象的状态变化。8.根据权利要求7的所述方法,其特征在于,所述预先设置的条件包括以下至少之一: 触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的时间间隔或者时间点、触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的频率。9.根据权利要求7或8所述的方法,其特征在于,触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并进行采集包括: 模拟虚拟玩家加入所述游戏的过程,以触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并发送给所述虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化。10.一种游戏录制处理装置,其特征在于,包括: 接收模块,用于接收对游戏进行录制的命令; 采集模块,用于至少同步采集所述游戏中产生变化对象对应的同步网络包,所述同步网络包采用预定的网络协议; 保存模块,用于将采集到的所述同步网络包按照预定的数据结构进行保存作为所述游戏的录像,所述录像可根据所述网络协议进行解释,以实现对录制的游戏进行回放。11.根据权利要求10所述的装置,其特征在于,所述数据结构包括至少一个单元,每个单元均用于保存在预定时长内的同步网络包。12.根据权利要求11所述的装置,其特征在于, 所述数据结构还包括:头信息,所述头信息包括以下至少之一:所述录像的标识信息、所述录像所包括的单元的数量、所述录像的总时长、所述录像的大小; 所述每个单元的内容均包括:该单元的所有的同步网络包以及该单元的头部信息,其中,所述头部信息包括该单元内容的大小。13.根据权利要求10至12中任一项所述的装置,其特征在于,所述采集模块用于: 至少将所述游戏中产生变化对象对应的同步网络包发送至虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化; 通过所述虚拟玩家将采集到的所述同步网络包发送至录像服务器,所述录像服务器用于保存所述录像。14.根据权利要求10至12中任一项所述的装置,其特征在于, 所述保存模块设置于录像服务器中,所述录像服务器不同于所述游戏的游戏服务器。15.根据权利要求14所述的装置,其特征在于,所述保存模块设置于多个录像服务器中。16.根据权利要求10所述的装置,其特征在于,所述采集模块用于: 判断是否满足预先设置的条件; 在判断结果为是的情况下,触发所述游戏的游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集,所述初始化同步网络包用于创建所述游戏中的对象并同步其当前时刻的状态; 在判断结果为否的情况下,采集所述游戏中产生变化对象对应的更新同步网络包,所述更新同步网络包用于同步所述游戏中的对象的状态变化。17.根据权利要求16所述的装置,其特征在于,所述预先设置的条件包括以下至少之 触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的时间间隔或者时间点、触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化同步网络包并进行采集的频率。18.根据权利要求16或17所述的装置,其特征在于,所述采集模块在判断满足预先设置的条件的情况下用于: 模拟虚拟玩家加入所述游戏的过程,以触发所述游戏服务器生成所述游戏中的所有对象所对应的初始化网络包并发送给所述虚拟玩家,其中,所述虚拟玩家用于监听所述游戏中所有对象的变化。
【文档编号】A63F13/77GK106039710SQ201610512177
【公开日】2016年10月26日
【申请日】2016年6月28日
【发明人】张功胜, 冯进华
【申请人】网易(杭州)网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1