CN112891933A - 一种游戏服务启动方法和相关装置 - Google Patents

一种游戏服务启动方法和相关装置 Download PDF

Info

Publication number
CN112891933A
CN112891933A CN202110321394.0A CN202110321394A CN112891933A CN 112891933 A CN112891933 A CN 112891933A CN 202110321394 A CN202110321394 A CN 202110321394A CN 112891933 A CN112891933 A CN 112891933A
Authority
CN
China
Prior art keywords
game
game service
service
data
dynamic
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.)
Granted
Application number
CN202110321394.0A
Other languages
English (en)
Other versions
CN112891933B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110321394.0A priority Critical patent/CN112891933B/zh
Publication of CN112891933A publication Critical patent/CN112891933A/zh
Application granted granted Critical
Publication of CN112891933B publication Critical patent/CN112891933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种游戏服务启动方法和相关装置,预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,得到游戏服务对应的模板进程;预先实现加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程。在游戏服务启动过程中,加载游戏服务的基础游戏构建数据并初始化第一游戏系统。直接复制模板进程得到游戏服务的游戏进程,该游戏进程可立即使用,无需加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,以加快游戏服务的启动速度,减少启动游戏服务的时间。继续加载游戏服务的动态游戏构建数据并初始化第三游戏系统,启动游戏服务。由此,实现游戏服务的快速启动。

Description

一种游戏服务启动方法和相关装置
技术领域
本申请涉及数据处理领域,特别是涉及一种游戏服务启动方法和相关装置。
背景技术
在通过游戏逻辑和游戏引擎启动游戏服务时,需要加载游戏服务的游戏构建数据,并初始化游戏服务的多个游戏系统。游戏服务的启动速度决定游戏玩家进入游戏服务的等待时间,加快游戏服务的启动速度,可以减少游戏玩家进入游戏服务的等待时间,提升游戏玩家的游戏服务体验。
相关技术中,一般在启动游戏服务的过程中,通过小包加载和并行加载初始化的方式,加快游戏服务的启动速度。例如,将启动游戏服务所需的游戏构建数据划分为多个小数据包,并行加载不具有依赖关系的多个小数据包,并行初始化不具有依赖关系的多个游戏系统。
然而,在游戏服务的游戏构建数据的数量较多,游戏服务的多个游戏系统的关系较为复杂的情况下,例如,针对大世界游戏的游戏服务而言,采用上述小包加载和并行加载初始化的方式,需要精细化控制小包加载和并行加载初始化,工作量较为庞大,游戏服务启动过程中容易出现错误、中断、甚至崩溃,无法满足快速启动游戏服务的需求。
发明内容
为了解决上述技术问题,本申请提供了一种游戏服务启动方法和相关装置,可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
本申请实施例公开了如下技术方案:
一方面,本申请提供一种游戏服务启动方法,所述方法包括:
加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
另一方面,本申请提供一种游戏服务启动装置,所述装置包括:加载初始化单元和复制单元;
所述加载初始化单元,用于加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
所述复制单元,用于复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
所述加载初始化单元,还用于基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
另一方面,本申请提供一种用于游戏服务启动的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。用于游戏服务启动的设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该用于游戏服务启动的设备执行上述方面所述的方法。
由上述技术方案可以看出,在启动游戏服务之前,预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,得到游戏服务对应的模板进程;该模板进程预先实现了加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程。在游戏服务启动过程中,加载游戏服务的基础游戏构建数据并初始化第一游戏系统,以实现游戏服务的基础游戏环境构建。在此基础上,直接复制上述模板进程得到游戏服务的游戏进程,该游戏进程可立即使用,使得游戏服务启动过程中,不需要加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,以减少启动游戏服务的时间。继续加载游戏服务的动态游戏构建数据并初始化第三游戏系统,实现游戏服务的游戏进程动态构建,即可启动游戏服务。基于此,在启动游戏服务过程中,通过复制游戏服务对应的模板进程,可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的游戏服务启动方法的应用场景示意图;
图2为本申请实施例提供的一种游戏服务启动方法的流程示意图;
图3为本申请实施例提供的一种将数据划分为多个数据包的示意图;
图4为本申请实施例提供的一种串行初始化游戏系统与并行初始化不具有依赖关系的游戏系统的对比示意图;
图5为本申请实施例提供的一种复制模板进程获得游戏进程的示意图;
图6为本申请实施例提供的一种基于游戏进程加载游戏服务的动态游戏构建数据并初始化第三游戏系统的示意图;
图7为本申请实施例提供的一种启动游戏服务所需的游戏构建数据的布局图;
图8为本申请实施例提供的一种启动游戏服务方法的整体流程图;
图9为本申请实施例提供的一种游戏服务启动管理方法的流程示意图;
图10为本申请实施例提供的一种用于管理游戏服务启动流程的状态机中多个状态的示意图;
图11为本申请实施例提供的另一种用于管理游戏服务启动流程的状态机中多个状态的示意图;
图12为本申请实施例提供的一种游戏服务启动装置的示意图;
图13为本申请实施例提供的服务器的结构示意图;
图14为本申请实施例提供的终端设备的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
在启动游戏服务的相关技术中,通常是采用小包加载和并行加载初始化的方式,加快游戏服务的启动速度,减少游戏玩家进入游戏服务的等待时间,提升游戏玩家的游戏服务体验。例如,将启动游戏服务A所需的游戏构建数据按照类别划分为物理数据包、场景数据包、人工智能(Artificial Intelligence,AI)数据包和导航数据包等多个小数据包;在加载上述多个小数据包时,并行加载不具有依赖关系的多个小数据包;在初始化多个游戏系统时,并行初始化不具有依赖关系的多个游戏系统。
在游戏服务A所需的游戏构建数据较多的情况下,采用上述小包加载的方式,需要更加精细地确定游戏构建数据所划分的多个小数据包,工作量较为庞大;在游戏服务A的多个游戏系统的关系较为复杂的情况下,采用上述并行加载初始化的方式,需要更加精细地确定多个游戏系统的是否可以并行初始化,同样工作量较为庞大;导致游戏服务启动过程中,容易出现错误、中断、甚至崩溃,无法满足快速启动游戏服务的需求。
基于此,本申请实施例提供一种游戏服务启动方法和相关装置,即使游戏服务的游戏构建数据的较多、游戏服务的多个游戏系统的关系较为复杂,也可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
本申请实施例所提到的启动游戏服务所需的游戏构建数据包括游戏框架、游戏资源、玩家数据等等。其中,游戏框架是指启动游戏服务时游戏系统所需的函数库等;游戏资源是指启动游戏服务时通过游戏逻辑和游戏引擎构建游戏世界、形成游戏玩法所需的资源型数据;玩家数据是指启动游戏服务时与游戏玩家相关的数据。
本申请实施例所提到的第一游戏系统是指与基础游戏构建数据相关的游戏系统,第二游戏系统是指与公共游戏构建数据相关的游戏系统,第三游戏系统是指与动态游戏构建数据相关的游戏系统。其中,第一游戏系统、第二游戏系统和第三游戏系统中任意两者之间可能存在部分重叠,也可能不存在重叠。
本申请提供的游戏服务启动方法可以应用于具有数据处理能力的游戏服务启动设备,如服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,但并不局限于此等。
为了便于理解本申请的技术方案,下面结合实际应用场景,对本申请实施例提供的游戏服务启动方法进行介绍。
参见图1,图1为本申请实施例提供的游戏服务启动方法的应用场景示意图。在图1所示的应用场景中,该应用场景包括终端设备101和服务器102,其中,服务器102作为前述游戏服务启动设备,用于启动游戏服务。
某游戏的游戏服务A、游戏服务B和游戏服务C的游戏构建数据之间的重合度较大,表示是游戏服务A、游戏服务B和游戏服务C是同类游戏服务。以用户a通过终端设备101向服务器102发送启动上述游戏的游戏服务A的请求为例进行说明。
服务器102预先加载上述同类游戏服务的公共游戏构建数据并初始化第二游戏系统,获得新进程作为模板进程;上述同类游戏服务的公共游戏构建数据例如可以包括上述同类游戏服务的物理资源、场景资源等等相对静态的公共游戏资源等等,对应地,第二游戏系统例如可以包括物理系统、场景系统等等。该模板进程对应游戏服务A、游戏服务B和游戏服务C;该模板进程的获得使得服务器102预先实现了加载同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程。
首先,服务器102需要加载游戏服务A的基础游戏构建数据并初始化第一游戏系统,实现游戏服务A的基础游戏环境构建。
其次,服务器102在实现游戏服务A的基础游戏环境构建的基础上,响应于用户a通过终端设备101向服务器102发送启动上述游戏的游戏服务A的请求,需要复制游戏服务A对应的模板进程,获得游戏服务A的游戏进程。该游戏进程在游戏服务A启动过程中可立即使用,因此,该游戏进程使得游戏服务A启动过程中,不需要再加载游戏服务A所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,从而大大减少启动游戏服务的时间。
然后,在游戏服务A的游戏进程的基础上,需要基于游戏进程加载游戏服务A的动态游戏构建数据并初始化第三游戏系统,实现游戏服务A的游戏进程构建,以启动游戏服务A。
基于此,在上述游戏服务A启动过程中,通过复制游戏服务A对应的模板进程,可大幅度地加快游戏服务A的启动速度,从而能够实现游戏服务A的快速启动。
下面结合附图,以服务器作为游戏服务启动设备,对本申请实施例提供的一种游戏服务启动方法进行介绍。
参见图2,图2为本申请实施例提供的一种游戏服务启动方法的流程示意图。如图2所示,该游戏服务启动方法包括以下步骤:
S201、加载游戏服务的基础游戏构建数据并初始化第一游戏系统。
在本申请中,针对游戏包括的每个游戏服务而言,服务器存储有启动该游戏服务所需的游戏构建数据。启动游戏服务过程中,首先需要实现游戏服务的基础游戏环境构建,该基础游戏环境构建是指加载游戏服务的基础游戏构建数据并初始化第一游戏系统;其中,基础游戏构建数据例如可以是基础游戏框架、基础游戏资源和基础玩家数据的一种或多种;例如,游戏管理(GameSvr)服务、网络平台(Net)服务、日志(Log)服务等等。
在本申请中,上述基础游戏环境构建的过程,例如可以是先通过游戏服务的基础游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定游戏服务的基础游戏构建数据,并对该基础游戏构建数据进行加载;再利用加载的基础游戏构建数据对第一游戏系统进行初始化,以实现游戏服务的基础游戏环境构建。因此,本申请提供了一种可能的实现方式,S201例如可以包括以下步骤中S2011-S2012:
S2011、根据所述游戏服务的基础游戏构建参数,加载所述游戏服务的基础游戏构建数据。
其中,为了加快基础游戏构建数据的加载速度,在通过游戏服务的基础游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定游戏服务的基础游戏构建数据之后,对于加载游戏服务的基础游戏构建数据而言,可以采用小包加载和并行加载相结合的方式。即,可以将基础游戏构建数据划分为多个基础数据包;例如,如图3所示的一种将数据划分为多个数据包的示意图,将数据X按照一定策略划分为数据包1、数据包2、数据包3和数据包4等等。确定多个基础数据包之间的依赖关系,在加载多个基础数据包过程中,并行加载不具有依赖关系的基础数据包。该小包加载和并行加载相结合的方式可以减少游戏服务的基础游戏环境构建所需时间,从而加快游戏服务的启动速度。
S2012、根据所述基础游戏构建数据,初始化第一游戏系统。
其中,为了加快第一游戏系统的初始化速度,对于初始化第一游戏系统而言,可以采用并行初始化的方式。即,在加载游戏服务的基础游戏构建数据之后,可以确定与基础游戏构建数据相关的第一游戏系统的依赖关系,在初始化第一游戏系统过程中,并行初始化不具有依赖关系的第一游戏系统,该并行初始化的方式也可以减少游戏服务的基础游戏构建所需时间,从而加快游戏服务的启动速度。例如,如图4所示的一种串行初始化游戏系统与并行初始化不具有依赖关系的游戏系统的对比示意图,游戏系统2、游戏系统3和游戏系统4三个游戏系统相互之间不具有依赖关系,并行初始化游戏系统2、游戏系统3和游戏系统4。
上述S201中加载的游戏服务的基础游戏构建数据,以及初始化的第一游戏系统,能够被后续游戏服务的继续启动所继承并使用,为后续游戏服务的继续启动奠定了基础。
S202、复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的。
为了解决相关技术中所存在的技术问题,在本申请中,游戏中同类游戏服务的游戏构建数据具有一定的重合度,重合的游戏构建数据称为同类游戏服务的公共游戏构建数据。针对同类游戏服务中多个游戏服务而言,在启动游戏服务的过程中,加载公共游戏构建数据并初始化第二游戏系统的执行步骤是一致的。因此,可以预先加载同类游戏服务的公共游戏构建数据并初始化第二游戏系统,以便在启动同类游戏服务中某个游戏服务时,无需再加载公共游戏构建数据并初始化第二游戏系统。
即,S202中游戏服务对应的模板进程,是在启动游戏服务之前,预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,获得新进程作为游戏服务对应的模板进程。其中,公共游戏构建数据例如可以是公共游戏框架、公共游戏资源和公共玩家数据的一种或多种。
基于此,在由S201加载游戏服务的基础游戏构建数据并初始化第二游戏系统,实现游戏服务的基础游戏环境构建之后,可以对上述游戏服务的模板进程进行复制,得到相同的模板进程副本作为游戏服务的游戏进程,该游戏进程在游戏服务启动过程中可立即使用,但并不实例化游戏服务的游戏逻辑。因此,S202复制游戏服务对应的模板进程获得游戏服务的游戏进程,使得游戏服务启动过程中,不需要再执行加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的步骤,以减少执行该步骤所需的时间,从而大大减少启动游戏服务的时间。
例如,如图5所示的一种复制模板进程获得游戏进程的示意图,模板进程表示为预先加载游戏服务所属同类游戏服务的公共游戏构建数据,例如,公共游戏框架、公共游戏资源和公共玩家数据,并初始化第二游戏系统获得的。对模板进程进行复制得到游戏进程,该游戏进程同样表示为预先加载游戏服务所属同类游戏服务的公共游戏构建数据,例如,公共游戏框架、公共游戏资源和公共玩家数据,并初始化第二游戏系统获得的。
上述S202中游戏服务的模板进程中预先加载的所属同类游戏服务的公共游戏构建数据,以及初始化的第二游戏系统,同样能够被后续游戏服务的继续启动所继承并使用,为后续游戏服务的继续启动提供了基础。作为一种示例,游戏服务A的模板进程中预先加载的所属同类游戏服务的物理资源以及初始化的物理系统,可以在复制游戏服务A的模板进程所得到的游戏服务A的游戏进程中继承并使用。
在实际应用中,同类游戏服务是指游戏构建数据之间的重合度较大的多个游戏服务,例如,类似游戏玩法或者同系列游戏玩法对应的多个游戏服务。则可以预先设置一个重合度阈值作为预设重合度,用于衡量重合度是否较大,同类游戏服务的游戏构建数据之间的重合度至少大于等于该预设重合度。游戏服务所属同类游戏服务的游戏构建数据之间的重合度越大,通过预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统获得模板进程方式,所减少的启动游戏服务的时间越多,即,在加快游戏服务的启动速度上更加明显。
在本申请中,关于上述游戏服务对应的模板进程的获得过程,例如可以是先通过游戏服务所属同类游戏服务的公共游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定游戏服务所属同类游戏服务的公共游戏构建数据,并对该公共游戏构建数据进行加载;再利用加载的公共游戏构建数据对第二游戏系统进行初始化。因此,本申请提供了一种可能的实现方式,S202中模板进程的获得步骤,例如可以包括以下步骤中S1-S2:
S1、根据所述游戏服务所属同类游戏服务的公共游戏构建参数,加载所述游戏服务所属同类游戏服务的公共游戏构建数据。
由于游戏服务对应的模板进程是加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的,即,S1是预先执行的,并不在游戏服务启动过程中执行;则S1中加载游戏服务所属同类游戏服务的公共游戏构建数据所需时间的长短,对于游戏服务启动而言并不重要。为了避免对上述公共游戏构建数据,进行精细化控制小包加载和并行加载所产生的工作量,以及可能引入的游戏逻辑错误;可以在通过游戏服务所属同类游戏服务的公共游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定游戏服务所属同类游戏服务的公共游戏构建数据后,将上述公共游戏构建数据打包为一个公共数据包,通过直接加载该公共数据包,实现游戏服务所属同类游戏服务的公共游戏构建数据的加载。因此,本申请提供了一种可能的实现方式,S1例如可以包括以下步骤中S11-S12:
S11、根据所述游戏服务所属同类游戏服务的公共游戏构建参数,确定所述游戏服务所属同类游戏服务的公共游戏构建数据。
S12、将所述公共游戏构建数据打包为一个公共数据包,加载所述公共数据包。
上述S11-S12将游戏服务所属同类游戏服务的公共游戏构建数据打包为一个公共数据包一同加载的方式,无需将游戏服务所属同类游戏服务的公共游戏构建数据划分为多个小数据包,也无需确定多个小数据包的加载顺序,在一定程度上减轻精细化控制小包加载和并行加载的复杂度,以减少精细化控制小包加载和并行加载可能引入的游戏逻辑错误,降低出现错误、中断、甚至崩溃的概率。
S2、根据所述公共游戏构建数据,初始化所述第二游戏系统获得所述模板进程。
同理,S2也是预先执行的,也并不在游戏服务启动过程中执行;则S2中初始化第二游戏系统所需时间的长短,对于游戏服务启动而言也并不重要。为了避免对第二游戏系统进行精细化控制并行初始化所产生的工作量,以及可能引入的游戏逻辑错误;可以在确定第二游戏系统的依赖关系的基础上,串行初始化第二游戏系统以获得游戏服务对应的模板进程。因此,本申请提供了一种可能的实现方式,S2例如可以包括:根据所述公共游戏构建数据和所述第二游戏系统的依赖关系,串行初始化所述第二游戏系统获得所述模板进程。
上述S2与公共游戏构建数据相关的第二游戏系统串行初始化的方式,无需考虑哪些第二游戏系统需要并行初始化的问题,在一定程度上减轻精细化控制并行初始化的复杂度,以减少精细化控制并行初始化可能引入的游戏逻辑错误,降低出现错误、中断、甚至崩溃的概率;且通过减少并行初始化第二游戏系统的数量,以减少并行初始化所需的CPU资源。
在本申请中,在预先获得游戏服务对应的模板进程之后,为了使得该游戏服务对应的模板进程成为一个只占用内存空间而不占用CPU资源的进程,可以设置游戏服务对应的模板进程进入休眠状态,以节省CPU资源。因此,本申请提供了一种可能的实现方式,在所述获得所述模板进程之后,所述方法例如还可以包括:S3、设置所述模板进程进入休眠状态。
上述S3中设置游戏服务对应的模板进程进入休眠状态后,在执行S202中复制游戏服务对应的模板进程步骤时,还需要激活模板进程,即,设置模板进程进入运行状态。
S203、基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
由S202复制游戏服务对应的模板进程获得游戏服务的游戏进程之后,虽然表示加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程已完成,但是,该游戏进程并不实例化游戏服务的游戏逻辑。不同游戏服务因其游戏逻辑不同而具有不同的游戏细节,则还需要实现游戏服务的游戏进程动态构建,以启动游戏服务从而提供游戏服务。该游戏进程动态构建是指基于该游戏进程加载游戏服务的动态游戏构建数据并初始化第三游戏系统;其中,动态游戏构建数据例如可以是动态游戏框架、动态游戏资源和动态玩家数据的一种或多种。
上述游戏进程动态构建的过程,例如,如图6所示的一种基于游戏进程加载游戏服务的动态游戏构建数据并初始化第三游戏系统的示意图,在将由游戏服务所确定的游戏服务的动态游戏构建参数,通过模板进程同步传递至游戏进程后;基于游戏进程先通过游戏服务的动态游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定游戏服务的动态游戏构建数据,并对该动态游戏构建数据进行加载;再利用加载的动态游戏构建数据对第三游戏系统进行初始化,以实现游戏服务的游戏进程动态构建。因此,本申请提供了一种可能的实现方式,S203例如可以包括以下步骤中S2031-S2032:
S2031、根据所述游戏服务的动态游戏构建参数,基于所述游戏进程加载所述游戏服务的动态游戏构建数据,所述动态游戏构建参数是由所述游戏服务确定、通过所述模板进程同步传递至所述游戏进程的。
其中,复制获得的游戏进程还具有模板进程的相关身份和配置等,将由游戏服务所确定的游戏服务的动态游戏构建参数,通过模板进程同步传递至游戏进程,基于该动态游戏构建参数,能够清理游戏进程具有的模板进程的相关身份和配置等。
加载游戏服务的动态游戏构建数据之前,需要通过数据刷新协议刷新游戏服务的动态游戏构建数据,以保证后续加载的游戏服务的动态游戏构建数据是准确的。
其中,为了加快动态游戏构建数据的加载速度,在通过动态游戏构建参数,从启动该游戏服务所需的游戏构建数据中,确定刷新的游戏服务的动态游戏构建数据之后,对于加载游戏服务的动态游戏构建数据而言,也可以采用小包加载和并行加载相结合的方式。即,可以参见图3中将数据划分为多个数据包方式,将动态游戏构建数据划分为多个动态数据包。确定多个动态数据包之间的依赖关系,在加载多个动态数据包过程中,并行加载不具有依赖关系的动态数据包。该小包加载和并行加载相结合的方式可以减少游戏服务的游戏进程动态构建所需时间,从而加快游戏服务的启动速度。
因此,本申请提供了一种可能的实现方式,S2031例如可以包括:根据所述游戏服务的动态游戏构建参数,确定刷新的所述游戏服务的动态游戏构建数据;将所述动态游戏构建数据划分为多个动态数据包;基于所述游戏进程加载所述多个动态数据包过程中,并行加载不具有依赖关系的动态数据包。
S2032、根据所述动态游戏构建数据,初始化所述第三游戏系统以启动所述游戏服务。
其中,为了加快第三游戏系统的初始化速度,对于初始化第三游戏系统而言,也可以采用并行初始化的方式。即,参见图4中并行初始化不具有依赖关系的游戏系统的方式,在加载游戏服务的动态游戏构建数据之后,可以确定与动态游戏构建数据相关的第三游戏系统的依赖关系,在初始化第三游戏系统过程中,并行初始化不具有依赖关系的第三游戏系统,该并行初始化的方式可以减少游戏服务的游戏进程动态构建所需时间,从而加快游戏服务的启动速度。因此,本申请提供了一种可能的实现方式,S2031例如可以包括:根据所述动态游戏构建数据,初始化相关系统过程中并行初始化不具有依赖关系的第三游戏系统,以启动所述游戏服务。
此外,在本申请中,在游戏服务的游戏构建数据的数量较多,游戏服务的多个游戏系统的关系较为复杂的情况下,例如,针对大世界游戏的游戏服务而言;为了能够更准确、更流畅地提供游戏服务,启动的游戏服务通常需要加入与其相关的游戏服务集群。因此,本申请提供了一种可能的实现方式,在S203之后所述方法例如还可以包括:S204、将所述游戏服务加入与所述游戏服务相关的游戏服务集群。
上述S201-S203的游戏服务启动的实现方式,通过复制游戏服务对应的模板进程,在启动游戏服务过程中,无需再执行加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的步骤,可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
且上述S201-S203的游戏服务启动的实现方式,在异常游戏服务替换、崩溃游戏服务恢复的情况下,通过复制游戏服务对应的模板进程,无需再执行加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的步骤,大幅度地加快异常游戏服务的替换速度、崩溃游戏服务的恢复速度,能够实现异常游戏服务的快速替换、崩溃游戏服务的快速恢复。
综合上述说明,参见图7,图7为本申请实施例提供的一种启动游戏服务所需的游戏构建数据的布局图。图中主要包括资源集、工具集、框架集、配置集、脚本集和程序集。其中,资源集存储在resource目录下,该资源集可以在resource目录中根据资源类别建立不同的一级子目录,还可以在各个资源类别对应的一级子目录中根据游戏玩法类别、游戏系统等建立不同的二级子目录,使得资源集在resource目录下的分布更加明晰。工具集存储在tools目录下,可以根据工具类别建立不同的一级子目录,例如,启停工具、管理工具、状态数据搜集工具等,使得工具集在tools目录下的分布更加明晰。框架库存储在libs目录下,框架库主要是指启动游戏服务时游戏系统所需要的一些基本函数库,主要是动态链接库,以便后续启动游戏服务时按需解析加载。配置集存储在config目录下,可以根据游戏玩法类别、游戏系统等建立不同的一级子目录,以便后续启动游戏服务时按需解析加载。脚本集存储在script目录下,可以根据游戏玩法类别、游戏系统等建立不同的一级子目录,以便后续启动游戏服务时按需解析加载。
参见图8,图8为本申请实施例提供的一种启动游戏服务方法的整体流程图。图中启动游戏服务方法的整体流程主要分为预先获得模板进程、构建基础游戏环境、复制模板进程和动态构建游戏进程共四个主要流程。其中,预先获得模板进程是指预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统;构建基础游戏环境是指加载游戏服务的基础游戏构建数据并初始化第一游戏系统;复制模板进程是指复制游戏服务对应的模板进程获得游戏服务的游戏进程;动态构建游戏进程是指基于游戏进程加载游戏服务的动态游戏构建数据并初始化第三游戏系统。
上述实施例提供的游戏服务启动方法,在启动游戏服务之前,预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,得到游戏服务对应的模板进程;该模板进程预先实现了加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程。在游戏服务启动过程中,加载游戏服务的基础游戏构建数据并初始化第一游戏系统,以实现游戏服务的基础游戏环境构建。在此基础上,直接复制上述模板进程得到游戏服务的游戏进程,该游戏进程可立即使用,使得游戏服务启动过程中,不需要加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,以减少启动游戏服务的时间。继续加载游戏服务的动态游戏构建数据并初始化第三游戏系统,实现游戏服务的游戏进程动态构建,即可启动游戏服务。基于此,在启动游戏服务过程中,通过复制游戏服务对应的模板进程,可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
在本申请中,对应于上述游戏服务启动方法实施例,为了使得游戏服务的启动流程中逻辑更加清晰、功能更加内聚,可以引入状态机管理机制,将游戏服务的启动流程划分为多个启动阶段,每个启动阶段对应一个状态,得到多个状态,该多个状态形成状态机,将游戏服务的启动流程梳理为状态机的流转,从而以该状态机管理游戏服务的启动流程。
参见图9,该图为本申请实施例提供的一种游戏服务启动管理方法的流程示意图。如图9所示,对应于上述游戏服务启动实施例,该游戏服务启动管理方法包括以下步骤:
S901、将所述游戏服务的启动流程划分为多个状态形成状态机,所述状态的组成部分包括状态进入、状态处理、状态切换和状态离开。
在本申请中,状态机是由多个状态组成的,每个状态例如可以由状态进入(Enter)、状态处理(StateJob)、状态切换(IsJobFinished)和状态离开(Leave)这四个组成部分所组成。
在本申请中,状态机中多个状态的流转,用于管理游戏服务的启动流程,则可以将上述游戏服务启动方法实施例中S201、S202、S203分别作为一个启动阶段,每个启动阶段对应一个状态。例如,S201用于实现游戏服务的基础游戏环境构建,则将S201作为的启动阶段对应基础游戏环境构建状态;S202用于实现游戏服务对应的模板进程复制,则将S202作为的启动阶段对应模板进程复制状态;S203用于实现游戏服务的游戏进程动态构建,则将S202作为的启动阶段对应游戏进程动态构建状态。因此,本申请提供了一种可能的实现方式,所述多个状态包括基础游戏环境构建状态、模板进程复制状态和游戏进程动态构建状态。
作为一种示例,参见图10,图10为本申请实施例提供的一种用于管理游戏服务启动流程的状态机中多个状态的示意图。图中状态机包括基础游戏环境构建状态、模板进程复制状态和游戏进程动态构建状态共3个状态。其中,基础游戏环境构建状态对应的是游戏服务启动过程中加载游戏服务的基础游戏构建数据并初始化第一游戏系统这一启动阶段;模板进程复制状态对应的是游戏服务启动过程中复制游戏服务对应的模板进程,获得游戏服务的游戏进程这一启动阶段,模板进程是预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;游戏进程动态构建状态对应的是游戏服务启动过程中基于游戏进程加载游戏服务的动态游戏构建数据并初始化第三游戏系统这一启动阶段。
作为另一种示例,参见图11,图11为本申请实施例提供的另一种用于管理游戏服务启动流程的状态机中多个状态的示意图。图中状态机包括守护进程初始化状态、共享框架与资源加载状态、模板进程激活状态、游戏环境构建状态、战斗资源初始化状态、游戏正常服务状态共6个状态。守护进程初始化状态对应的是解析启动参数,初始化第一游戏系统的配置,进行守护进程初始化,并连接游戏管理(GameSvr)服务、网络平台(Net)服务、日志(Log)服务等这一启动阶段。共享框架与资源加载对应的是根据前一状态中第一游戏系统配置,初始化第一游戏系统,并加载通用框架与资源这一启动阶段。模板进程激活状态对应的是根据相关游戏逻辑通知模板进程进行复制,并根据从模板进程传递初始参数,为后续加载初始化阶段的执行作准备这一启动阶段。游戏环境构建状态对应的是根据激活后的参数,为后续加载初始化阶段加载引导资源,动态更新一些游戏配置、刷新最新参数表、注册加入集群等游戏环境的准备工作这一启动阶段。战斗资源初始化状态对应的是补齐创建或恢复游戏副本/对局/服务的动态对象、执行各部的初始化流程,使动态游戏场景完全就绪这一启动阶段。游戏正常服务状态对应的是正常提供游戏服务,包含游戏的事件主循环、串联各大系统的事件这一启动阶段。
S902、利用所述状态机管理所述游戏服务的启动流程。
上述实施例提供的游戏服务启动管理方法,将游戏服务的启动流程划分为多个状态形成状态机,每个状态的组成部分包括状态进入、状态处理、状态切换和状态离开;利用状态机管理所述游戏服务的启动流程。通过引入状态机管理机制,将游戏服务的启动流程梳理为状态机的流转,以该状态机管理游戏服务的启动流程,使得游戏服务的启动流程中逻辑更加清晰、功能更加内聚。
在某个游戏的游戏玩法a、游戏玩法b和游戏玩法c是类似游戏玩法的场景下,游戏玩法a对应游戏服务A、游戏玩法b对应游戏服务B和游戏玩法c对应游戏服务C,游戏服务A、游戏服务B和游戏服务C的游戏构建数据之间的重合度大于预设重合度,表示上述游戏服务A、游戏服务B和游戏服务C属于同类游戏服务。服务器预先加载上述同类游戏服务的公共游戏构建数据并初始化第二游戏系统,获得新进程作为模板进程;该模板进程对应游戏服务A、游戏服务B和游戏服务C。
服务器加载游戏服务A的基础游戏构建数据并初始化第一游戏系统;在任一用户通过任一终端设备向服务器发送启动游戏服务A的请求时,服务器响应于该请求复制游戏服务A对应的模板进程,获得游戏服务A的游戏进程;服务器基于游戏进程加载游戏服务A的动态游戏构建数据并初始化第三游戏系统,以启动游戏服务A。
该复制游戏服务A对应的模板进程获得游戏服务A的游戏进程的方式,使得游戏服务A的启动过程中,不需要再加载游戏服务A所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,大大减少启动游戏服务的时间,可大幅度地加快游戏服务A的启动速度,从而能够实现游戏服务A的快速启动。
针对上述实施例提供的游戏服务启动方法,本申请实施例还提供了一种游戏服务启动装置。
参见图12,该图为本申请实施例提供的一种游戏服务启动装置的示意图。如图12所示,该游戏服务启动装置1200包括:加载初始化单元1201和复制单元1202;
所述加载初始化单元1201,用于加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
所述复制单元1202,用于复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
所述加载初始化单元1201,还用于基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
作为一种可能的实现方式,所述装置1200还包括获得单元,所述获得单元,用于:
根据所述游戏服务所属同类游戏服务的公共游戏构建参数,加载所述游戏服务所属同类游戏服务的公共游戏构建数据;
根据所述公共游戏构建数据,初始化所述第二游戏系统获得所述模板进程。
作为一种可能的实现方式,所述获得单元,用于:
根据所述游戏服务所属同类游戏服务的公共游戏构建参数,确定所述游戏服务所属同类游戏服务的公共游戏构建数据;
将所述公共游戏构建数据打包为一个公共数据包,加载所述公共数据包。
作为一种可能的实现方式,所述获得单元,用于:
根据所述公共游戏构建数据和所述第二游戏系统的依赖关系,串行初始化所述第二游戏系统获得所述模板进程。
作为一种可能的实现方式,所述装置1200还包括设置单元,在所述获得所述模板进程之后,所述设置单元,用于:
设置所述模板进程进入休眠状态。
作为一种可能的实现方式,所述游戏服务所属同类游戏服务的游戏构建数据之间的重合度大于等于预设重合度。
作为一种可能的实现方式,所述加载初始化单元1201,用于:
根据所述游戏服务的动态游戏构建参数,基于所述游戏进程加载所述游戏服务的动态游戏构建数据,所述动态游戏构建参数是由所述游戏服务确定、通过所述模板进程同步传递至所述游戏进程的。
根据所述动态游戏构建数据,初始化所述第三游戏系统以启动所述游戏服务。
作为一种可能的实现方式,所述加载初始化单元1201,用于:
根据所述游戏服务的动态游戏构建参数,确定刷新的所述游戏服务的动态游戏构建数据;
将所述动态游戏构建数据划分为多个动态数据包;
基于所述游戏进程加载所述多个动态数据包过程中,并行加载不具有依赖关系的动态数据包。
作为一种可能的实现方式,所述加载初始化单元1201,用于:
根据所述动态游戏构建数据,初始化相关系统过程中并行初始化不具有依赖关系的所述第三游戏系统,以启动所述游戏服务。
作为一种可能的实现方式,所述装置1200还包括管理单元,所述管理单元,用于:
将所述游戏服务的启动流程划分为多个状态形成状态机,所述状态的组成部分包括状态进入、状态处理、状态切换和状态离开;
利用所述状态机管理所述游戏服务的启动流程。
作为一种可能的实现方式,所述多个状态包括基础游戏环境构建状态、模板进程复制状态和游戏进程动态构建状态。
作为一种可能的实现方式,所述装置1200还包括加入单元,在启动所述游戏服务之后,所述加入单元,用于:
将所述游戏服务加入与所述游戏服务相关的游戏服务集群。
上述实施例提供的游戏服务启动装置,在启动游戏服务之前,预先加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,得到游戏服务对应的模板进程;该模板进程预先实现了加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统的过程。在游戏服务启动过程中,加载游戏服务的基础游戏构建数据并初始化第一游戏系统,以实现游戏服务的基础游戏环境构建。在此基础上,直接复制上述模板进程得到游戏服务的游戏进程,该游戏进程可立即使用,使得游戏服务启动过程中,不需要加载游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统,以减少启动游戏服务的时间。继续加载游戏服务的动态游戏构建数据并初始化第三游戏系统,实现游戏服务的游戏进程动态构建,即可启动游戏服务。基于此,在启动游戏服务过程中,通过复制游戏服务对应的模板进程,可大幅度地加快游戏服务的启动速度,从而能够实现游戏服务的快速启动。
本申请实施例还提供了一种用于游戏服务启动的设备,下面将从硬件实体化的角度对本申请实施例提供的用于游戏服务启动的设备进行介绍。
参见图13,图13是本申请实施例提供的一种服务器结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。
服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图13所示的服务器结构。
其中,CPU 1322用于执行如下步骤:
加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
针对上文描述的游戏服务启动方法,本申请实施例还提供了一种用于游戏服务启动的终端设备,以使上述游戏服务启动方法在实际中实现以及应用。
参见图14,图14为本申请实施例提供的一种终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,简称PDA)等任意终端设备,以终端设备为手机为例:
图14示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图14,该手机包括:射频(Radio Frequency,简称RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(wireless fidelity,简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图14对手机的各个构成部件进行具体的介绍:
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。通常,RF电路1410包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称LNA)、双工器等。此外,RF电路1410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(GeneralPacket Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long Term Evolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而实现手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入设备1432。触控面板1431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1431上或在触控面板1431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1480,并能接收处理器1480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1431。除了触控面板1431,输入单元1430还可以包括其他输入设备1432。具体地,其他输入设备1432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1440可包括显示面板1441,可选的,可以采用液晶显示器(LiquidCrystal Display,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板1441。进一步的,触控面板1431可覆盖显示面板1441,当触控面板1431检测到在其上或附近的触摸操作后,传送给处理器1480以确定触摸事件的类型,随后处理器1480根据触摸事件的类型在显示面板1441上提供相应的视觉输出。虽然在图14中,触控面板1431与显示面板1441是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1431与显示面板1441集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1441的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1460、扬声器1461,传声器1462可提供用户与手机之间的音频接口。音频电路1460可将接收到的音频数据转换后的电信号,传输到扬声器1461,由扬声器1461转换为声音信号输出;另一方面,传声器1462将收集的声音信号转换为电信号,由音频电路1460接收后转换为音频数据,再将音频数据输出处理器1480处理后,经RF电路1410以发送给比如另一手机,或者将音频数据输出至存储器1420以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图14示出了WiFi模块1470,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1480可包括一个或多个处理单元;优选的,处理器1480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1480中。
手机还包括给各个部件供电的电源1490(比如电池),优选的,电源可以通过电源管理系统与处理器1480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的存储器1420可以存储程序代码,并将所述程序代码传输给所述处理器。
该手机所包括的处理器1480可以根据所述程序代码中的指令执行上述实施例提供的游戏服务启动方法。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的游戏服务启动方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。用于游戏服务启动的设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该用于游戏服务启动的设备执行上述方面的各种可选实现方式中提供的游戏服务启动方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种游戏服务启动方法,其特征在于,所述方法包括:
加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
2.根据权利要求1所述的方法,其特征在于,所述模板进程的获得步骤,包括:
根据所述游戏服务所属同类游戏服务的公共游戏构建参数,加载所述游戏服务所属同类游戏服务的公共游戏构建数据;
根据所述公共游戏构建数据,初始化所述第二游戏系统获得所述模板进程。
3.根据权利要求2所述的方法,其特征在于,所述根据所述游戏服务所属同类游戏服务的公共游戏构建参数,加载所述游戏服务所属同类游戏服务的公共游戏构建数据,包括:
根据所述游戏服务所属同类游戏服务的公共游戏构建参数,确定所述游戏服务所属同类游戏服务的公共游戏构建数据;
将所述公共游戏构建数据打包为一个公共数据包,加载所述公共数据包。
4.根据权利要求2所述的方法,其特征在于,所述根据所述公共游戏构建数据,初始化所述第二游戏系统获得所述模板进程,包括:
根据所述公共游戏构建数据和所述第二游戏系统的依赖关系,串行初始化所述第二游戏系统获得所述模板进程。
5.根据权利要求2所述的方法,其特征在于,在所述获得所述模板进程之后,所述方法还包括:
设置所述模板进程进入休眠状态。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述游戏服务所属同类游戏服务的游戏构建数据之间的重合度大于等于预设重合度。
7.根据权利要求1所述的方法,其特征在于,所述基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务,包括:
根据所述游戏服务的动态游戏构建参数,基于所述游戏进程加载所述游戏服务的动态游戏构建数据,所述动态游戏构建参数是由所述游戏服务确定、通过所述模板进程同步传递至所述游戏进程的;
根据所述动态游戏构建数据,初始化所述第三游戏系统以启动所述游戏服务。
8.根据权利要求7所述的方法,其特征在于,所述根据所述游戏服务的动态游戏构建参数,基于所述游戏进程加载所述游戏服务的动态游戏构建数据,包括:
根据所述游戏服务的动态游戏构建参数,确定刷新的所述游戏服务的动态游戏构建数据;
将所述动态游戏构建数据划分为多个动态数据包;
基于所述游戏进程加载所述多个动态数据包过程中,并行加载不具有依赖关系的动态数据包。
9.根据权利要求7所述的方法,其特征在于,所述根据所述动态游戏构建数据,初始化所述第三游戏系统以启动所述游戏服务,包括:
根据所述动态游戏构建数据,初始化相关系统过程中并行初始化不具有依赖关系的所述第三游戏系统,以启动所述游戏服务。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述游戏服务的启动流程划分为多个状态形成状态机,所述状态的组成部分包括状态进入、状态处理、状态切换和状态离开;
利用所述状态机管理所述游戏服务的启动流程。
11.根据权利要求9所述的方法,其特征在于,所述多个状态包括基础游戏环境构建状态、模板进程复制状态和游戏进程动态构建状态。
12.根据权利要求1所述的方法,其特征在于,在启动所述游戏服务之后,所述方法还包括:
将所述游戏服务加入与所述游戏服务相关的游戏服务集群。
13.一种游戏服务启动装置,其特征在于,所述装置包括:加载初始化单元和复制单元;
所述加载初始化单元,用于加载游戏服务的基础游戏构建数据并初始化第一游戏系统;
所述复制单元,用于复制所述游戏服务对应的模板进程,获得所述游戏服务的游戏进程,所述模板进程是预先加载所述游戏服务所属同类游戏服务的公共游戏构建数据并初始化第二游戏系统所获得的;
所述加载初始化单元,还用于基于所述游戏进程加载所述游戏服务的动态游戏构建数据并初始化第三游戏系统,以启动所述游戏服务。
14.一种用于游戏服务启动的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-12任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-12任意一项所述的方法。
CN202110321394.0A 2021-03-25 2021-03-25 一种游戏服务启动方法和相关装置 Active CN112891933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110321394.0A CN112891933B (zh) 2021-03-25 2021-03-25 一种游戏服务启动方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110321394.0A CN112891933B (zh) 2021-03-25 2021-03-25 一种游戏服务启动方法和相关装置

Publications (2)

Publication Number Publication Date
CN112891933A true CN112891933A (zh) 2021-06-04
CN112891933B CN112891933B (zh) 2022-12-02

Family

ID=76106476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110321394.0A Active CN112891933B (zh) 2021-03-25 2021-03-25 一种游戏服务启动方法和相关装置

Country Status (1)

Country Link
CN (1) CN112891933B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1371043A (zh) * 2002-02-04 2002-09-25 钟林 数码操作系统
IES20160168A2 (en) * 2016-06-22 2017-12-27 Keoghan Vincent A transit chess case
CN111028348A (zh) * 2019-12-24 2020-04-17 北京法之运科技有限公司 一种大批量模型快速加载的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1371043A (zh) * 2002-02-04 2002-09-25 钟林 数码操作系统
IES20160168A2 (en) * 2016-06-22 2017-12-27 Keoghan Vincent A transit chess case
CN111028348A (zh) * 2019-12-24 2020-04-17 北京法之运科技有限公司 一种大批量模型快速加载的方法

Also Published As

Publication number Publication date
CN112891933B (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
US11025963B2 (en) Data processing method, apparatus, and system for live streaming page
US10635449B2 (en) Method and apparatus for running game client
CN110141864B (zh) 一种游戏自动测试方法、装置及终端
CN106686396B (zh) 一种切换直播间的方法和系统
US10824449B2 (en) Application running method and device
CN110032512B (zh) 一种小程序的调试方法、相关设备及终端
CN108388451B (zh) 移动终端启动方法、装置和移动终端
CN110569078B (zh) 一种网页级程序的预加载方法和装置
US10754684B2 (en) Method for controlling process and related device
CN112328492B (zh) 一种主播间的互动控制方法、装置和电子设备
CN112245903A (zh) 云应用中网络状态指示方法、操作系统、装置及存储介质
CN109002547B (zh) 日志文件存储方法、移动终端及计算机可读存储介质
CN106919458B (zh) Hook目标内核函数的方法及装置
CN107193551B (zh) 一种生成图像帧的方法和装置
CN111367502A (zh) 一种数值处理方法和装置
CN112891933B (zh) 一种游戏服务启动方法和相关装置
US20160119695A1 (en) Method, apparatus, and system for sending and playing multimedia information
WO2015184959A2 (en) Method and apparatus for playing behavior event
WO2015124060A1 (en) Login interface displaying method and apparatus
CN107741895B (zh) 服务器管理方法、装置及设备
KR102263977B1 (ko) 정보 제공을 수행하기 위한 방법, 장치, 및 시스템
CN114510417A (zh) 一种图像渲染效果测试方法、装置、电子设备和存储介质
CN109002535B (zh) 一种数据更新方法和装置
CN106358070B (zh) 多媒体文件上传方法及装置
CN111625283A (zh) 硬件更新方法、装置、系统和计算机可读存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046851

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant