一种集约型网络游戏平台系统及其运行多个游戏应用程序的方法转让专利

申请号 : CN200810029578.4

文献号 : CN101329706B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘自生

申请人 : 广州盈正信息技术有限公司

摘要 :

本发明公开了一种集约型网络游戏平台系统及其运行多个游戏应用程序的方法。本发明基于游戏应用服务端和客户端,将游戏逻辑中的游戏应用核心逻辑模块与其它逻辑模块、核心数据分离,每个网络游戏的游戏应用核心逻辑通过标准接口连接到业务实现平台,各游戏应用的网络通讯代理、数据访问、公共业务逻辑等功能统一由业务实现平台完成。本发明突破了传统游戏应用架构的局限,通过具有标准应用架构和运行架构以及相关接口定义的业务实现平台,使得多个网络游戏能够同时运行,并能够被统一地、全局地被加以监控和管理,从而实现了多个网络游戏的集约运营。

权利要求 :

1.一种集约型网络游戏平台系统,包括游戏应用程序终端和网络,所述游戏应用程序终端包括游戏应用核心逻辑服务端以及游戏应用核心逻辑客户端;其特征在于:所述游戏应用程序终端具有一个或一个以上,并且构成游戏应用集合;

所述系统还包括业务实现平台,主要由平台服务端、平台中心数据库和一个或一个以上平台客户端构成;

所述各游戏应用程序终端,其游戏应用核心逻辑服务端通过各自的标准接口统一连接到平台服务端上,其游戏应用核心逻辑客户端均分别对应于各平台客户端并通过标准接口连接,使得业务实现平台能够与各游戏应用程序终端之间进行交互并提供各种公共服务;

所述平台服务端和平台客户端之间通过所述网络连接传输数据信息;

所述平台中心数据库,用于存储运行在平台上的所有游戏应用和正在使用平台的用户的信息,为所述平台服务端提供访问。

2.根据权利要求1所述的集约型网络游戏平台系统,其特征在于:所述平台服务端包括服务端通用通讯模块、服务端公共业务逻辑模块、服务端数据访问模块;所述平台客户端包括客户端通用通讯模块、客户端公共业务逻辑模块;

通过所述服务端公共业务逻辑模块和客户端公共业务逻辑模块,提供游戏应用及用户所需的公共业务逻辑代理服务,监控游戏应用程序终端的运行状态,收集用户的行为记录;

所述服务端通用通讯模块和客户端通用通讯模块之间通过所述网络建立通讯链路,建立和管理会话过程;

所述服务端数据访问模块用于访问平台中心数据库。

3.根据权利要求1或2所述的集约型网络游戏平台系统,其特征在于:所述业务实现平台为标准化的平台,其标准化的内容包括:各功能模块的过程定义和规范、使用前提的定义和规范、被调用函数的原形定义和规范、数据类型的定义和规范、边界条件的定义和规范。

4.根据权利要求3所述的集约型网络游戏平台系统,其特征在于:所述业务实现平台与游戏应用程序终端的交互方式为:业务实现平台通过调用“事件消息传递函数”的方式向游戏应用核心逻辑服务端、游戏应用核心逻辑客户端传递指令或信息;游戏应用核心逻辑服务端、游戏应用核心逻辑客户端通过调用“公共服务函数”的方式向业务实现平台传递信息或获得某种公共服务。

5.根据权利要求3所述的集约型网络游戏平台系统,其特征在于:所述业务实现平台通过“抽象消息对象”的方式向游戏应用程序终端提供通用的网络通讯代理服务;所述“抽象消息对象”的方式为,首先构键一个抽象的消息对象,然后根据游戏应用核心逻辑服务端、游戏应用核心逻辑客户端的消息结构协议向抽象消息对象中写入数据内容,最后把整个抽象消息对象作为参数传递给平台的代理通讯服务函数。

6.根据权利要求3所述的集约型网络游戏平台系统,其特征在于:所述游戏应用程序终端的数据库采用抽象的数据结构,所述业务实现平台通过界面提供对这套抽象的数据结构的访问;所述游戏应用程序终端的数据库的数据采集点被分散到平台标准接口中所定义的各种与用户行为有关的事件侦听函数中,从而实现跨越单个产品的全局运营管理。

7.根据权利要求3所述的集约型网络游戏平台系统,其特征在于:所述业务实现平台的通讯通过使用自定义的和加密的应用层通讯协议来执行,并支持在同一个游戏应用内进行。

8.根据权利要求3所述的集约型网络游戏平台系统,其特征在于:所述游戏应用集合中包括由游戏引擎、其它辅助的代码逻辑组成的呈统一逻辑整体的游戏应用程序,该游戏引擎满足平台定义的接口规范。

9.一种集约运行多个游戏应用程序的方法,其特征在于包括以下步骤:

a)建立一集约型网络游戏平台系统,包括具有一个或一个以上游戏应用程序终端的游戏应用集合、网络和业务实现平台,其中所述游戏应用集合中的每个游戏应用程序终端均包括游戏应用核心逻辑服务端以及游戏应用核心逻辑客户端;所述业务实现平台,主要由平台服务端、平台中心数据库和一个或一个以上平台客户端构成;

所述每个游戏应用程序终端,其游戏应用核心逻辑服务端通过各自的标准接口统一连接到平台服务端上,其游戏应用核心逻辑客户端均分别对应于各平台客户端并通过标准接口连接,使得业务实现平台能够与各游戏应用程序终端之间进行交互并提供各种公共服务;

所述平台服务端和平台客户端之间通过所述网络连接传输数据信息;

所述平台中心数据库,用于存储运行在平台上的所有游戏应用和正在使用平台的用户的信息,为所述平台服务端提供访问;

b)启动所述平台服务端,扫描检测游戏集合中的所有游戏应用核心逻辑服务端,载入并进行初始化,所述游戏应用核心逻辑服务端进入等待状态;

c)用户启动所述游戏应用核心逻辑客户端,通过标准接口调用平台客户端;

d)所述平台客户端启动后,与平台服务端进行交互,为游戏应用核心逻辑客户端和游戏应用核心逻辑服务端建立通讯链路,并建立和管理会话过程;

e)所述平台客户端接收来自游戏应用核心逻辑客户端的所有通讯请求,并把相关消息传送到平台服务端;所述游戏应用核心逻辑服务端接收来自平台服务端的相关消息并进行处理,然后把处理结果通过平台服务端回传到平台客户端,再由平台客户端通知游戏应用客户端接收。

10.根据权利要求9所述的集约运行多个游戏应用程序的方法,其特征在于:所述步骤b)中,平台服务端通过验证游戏应用核心逻辑服务端是否满足平台定义的接口标准和规范进行检测,如果符合则依次载入并启动各游戏应用核心逻辑服务端;游戏应用核心逻辑服务端在进行初始化时,执行本游戏要用到的所有特定资源的申请、分配和载入的操作,并初始化游戏应用服务端程序与平台服务端进行交互的环境,从而进入就绪等待状态。

说明书 :

一种集约型网络游戏平台系统及其运行多个游戏应用程序

的方法

技术领域

[0001] 本发明涉及计算机网络技术领域,尤其涉及一种网络游戏系统及其运行方法。

背景技术

[0002] 随着我国互联网网络游戏市场的迅猛发展,吸引了众多大大小小的互联网内容和服务提供商和投资人进入该市场领域,使得网络游戏市场中各游戏运营商之间的竞争日趋激烈。一方面,网络游戏产品的种类和数量与日俱增;另一方面,若要运营好一款网络游戏,所需投入的资源也越来越多。为此,现有的靠单独运营一款网络游戏而取得持续的商业成功的个案将很难再现。目前,众多运营商已经意识到,在未来的网络游戏商业运营中,只有通过统一地、集约地同时运营各种种类的多个网络游戏产品,才能够把用户吸引并留存下来,并使运营资源的配置和市场策略的制订达到最优效果,从而在日后的竞争中处于有利的位置。
[0003] 但是,目前现有的几乎所有大型网络游戏产品的运营商,都是围绕一个单独的产品展开运营的,如图1所示,其运营管理系统是针对所运营的游戏产品特制的,游戏应用逻辑和运营管理逻辑互相依赖的程度非常高,运营管理逻辑的通用性很低。因此,当每增加运营多一款游戏产品时,就要单独运行一套与产品相匹配的专用的运营管理系统,并为之配备专用的运营资源(人员、设备、安全措施等),从而严重地制约了运营的效率和性能价格比的优化。
[0004] 如图1所示,一个网络游戏应用的逻辑(包括服务端和客户端),包括了能让它独立运行的所有的逻辑部件,其中有游戏核心逻辑、通讯模块、数据访问模块和其它支持模块。所有这些逻辑部件都是与特定游戏应用紧密关联的,因此每个特定的游戏应用都有这样为其专门开发的一套逻辑部件。不同的游戏应用之间,它们的任何逻辑部件通常是不能被互相交换使用的,也就是说游戏应用中的逻辑部件通用性很差。
[0005] 另一方面,每个游戏应用均有专门设计的数据库系统,不同游戏应用之间的数据库系统的结构几乎是完全不兼容的,因此它们不存在通用的数据库结构,从而导致各游戏应用的运营管理系统也需要专门开发,也即不同游戏之间不存在通用性和数据共享的能力。因此,基于现有技术运营商不可能获得有助于分析同时运营多个游戏产品时其运营效果的全局性的运营信息。例如,运营商很难知道有哪些用户是同时使用两个或更多的游戏产品的,以及这些用户分配在不同产品上的时间和消费的比例等信息。然而,在未来的网络游戏运营中,这些全局性的运营信息对于指导运营商制订正确的运营策略是至关重要的。
[0006] 如上所述,由于现有的网络游戏应用其结构存在缺陷,从而造成运营商很难具备集约性地、高效地同时运营多个大型网络游戏应用产品的能力。此外,由于需要为每个网络游戏专门开发很多在本质上相同的逻辑部件,因而造成游戏应用开发资源以及时间的严重浪费。

发明内容

[0007] 本发明的目的在于克服现有技术的不足,提供一种定义了标准应用架构和运行架构的、可运营和管理多个同时运行的网络游戏应用程序的集约型网络游戏平台系统,使得多个网络游戏在同时运行时能够被统一地、全局地加以监控和管理,从而实现网络游戏的集约运营。本发明的另一目的在于提供一种集约运行多个游戏应用程序的方法。
[0008] 本发明的目的通过以下技术方案予以实现:
[0009] 本发明提供的一种集约型网络游戏平台系统,包括游戏应用程序和网络,所述游戏应用程序包括游戏应用核心逻辑服务端以及游戏应用核心逻辑客户端;其中,所述游戏应用程序为一个或一个以上而构成游戏应用集合;
[0010] 此外,所述系统还包括业务实现平台,主要由平台服务端、平台中心数据库和一个或一个以上平台客户端构成;
[0011] 所述每个游戏应用程序,其游戏应用核心逻辑服务端通过各自的标准接口统一连接到平台服务端上,其游戏应用核心逻辑客户端均分别对应于各平台客户端并通过标准接口连接,使得业务实现平台能够与各游戏应用程序之间进行交互并提供各种公共服务;
[0012] 所述平台服务端和平台客户端之间通过所述网络连接传输数据信息;
[0013] 所述平台中心数据库,用于存储运行在平台上的所有游戏应用和正在使用平台提供的任意产品和服务的用户的信息,为所述平台服务端提供访问。
[0014] 本发明系统基于游戏应用服务端和客户端,将游戏逻辑中的游戏应用核心逻辑模块与其它逻辑模块、核心数据分离,每个网络游戏的游戏应用核心逻辑通过标准接口连接到业务实现平台,而各网络游戏的原先由其它逻辑模块实现的功能(如网络通讯代理、数据访问、公共业务逻辑等)则统一由业务实现平台完成;所有网络游戏应用的核心数据存放于平台中心数据库中。这样,本发明系统突破了传统游戏应用架构的局限,通过具有标准应用架构和运行架构的业务实现平台,使得多个网络游戏在同时运行时能被统一地、全局地被加以监控和管理,从而实现了网络游戏的集约运营。
[0015] 本发明系统可采取如下进一步措施:所述平台服务端包括服务端通用通讯模块、服务端公共业务逻辑模块、服务端数据访问模块;所述平台客户端包括客户端通用通讯模块、客户端公共业务逻辑模块;
[0016] 通过所述公共业务逻辑模块,提供游戏应用及用户所需的公共业务逻辑代理服务,监控游戏应用程序的运行状态,收集用户的行为记录;
[0017] 所述服务端通用通讯模块和客户端通用通讯模块之间通过所述网络建立通讯链路,建立和管理会话过程;
[0018] 所述服务端数据访问模块用于访问平台中心数据库。
[0019] 本发明系统在把游戏核心逻辑与其它逻辑模块分离后,其它逻辑模块的功能由业务实现平台完成。为使平台能够被运行在其上的所有游戏应用作为公共服务使用,需要将业务实现平台标准化,其标准化的内容包括:各功能模块的过程定义和规范、使用前提的定义和规范、被调用函数的原形定义和规范、数据类型的定义和规范、边界条件的定义和规范。
[0020] 此外,也需要将业务实现平台与游戏应用核心逻辑的交互方式标准化,本发明系统采用以下交互方式:业务实现平台通过调用“事件消息传递函数”的方式向游戏应用核心逻辑传递指令或信息;游戏应用核心逻辑通过调用“公共服务函数”的方式向传递信息或获得某种公共服务。
[0021] 为彻底屏蔽服务端与客户端之间的网络通讯细节,以简化游戏核心逻辑的通讯工作,本发明系统所述业务实现平台通过“抽象消息对象”的方式向游戏应用核心逻辑提供通用的网络通讯代理服务。使得在整个过程中,游戏核心逻辑无需定位消息的接收点,维护各接收点的通讯链路和会话过程,所有这些工作都由平台来完成。
[0022] 为实现核心逻辑与物理数据存储方式的彻底分离,本发明系统所述游戏应用程序其数据库采用抽象的数据结构,所述业务实现平台通过界面提供对这套抽象的数据结构的访问;数据库的数据采集点被分散到平台标准接口中所定义的各种与用户行为有关的事件侦听函数中,从而实现跨越单个产品的全局运营管理。
[0023] 为实现了游戏应用逻辑与底层通讯方式的彻底分离,本发明系统所述业务实现平台的通讯通过使用自定义的和加密的应用层通讯协议来执行,并支持在同一个游戏应用内进行。
[0024] 为支持游戏引擎的应用,本发明系统所述游戏应用集合中还可以包括由游戏引擎、其它辅助的代码逻辑组成的呈统一逻辑整体的游戏应用程序,该游戏引擎应用程序满足平台定义的接口规范。这样,便可以支持各种针对特定类型游戏而开发的游戏引擎在其上运行。
[0025] 本发明的另一目的通过以下技术方案予以实现:
[0026] 本发明提供的一种集约运行多个游戏应用程序的方法,包括以下步骤:
[0027] a)建立一集约型网络游戏平台系统,包括具有一个或一个以上游戏应用程序的游戏应用集合、网络和业务实现平台,其中所述游戏应用集合中的每个游戏应用程序均包括游戏应用核心逻辑服务端以及游戏应用核心逻辑客户端;所述业务实现平台,主要由平台服务端、平台中心数据库和一个或一个以上平台客户端构成;
[0028] 所述每个游戏应用程序,其游戏应用核心逻辑服务端通过各自的标准接口统一连接到平台服务端上,其游戏应用核心逻辑客户端均分别对应于各平台客户端并通过标准接口连接,使得业务实现平台能够与各游戏应用程序之间进行交互并提供各种公共服务;
[0029] 所述平台服务端和平台客户端之间通过所述网络连接传输数据信息;
[0030] 所述平台中心数据库,用于存储运行在平台上的所有游戏应用和正在使用平台提供的任意产品和服务的用户的信息,为所述平台服务端提供访问;
[0031] b)启动所述平台服务端,扫描检测游戏集合中的所有游戏应用核心逻辑服务端,载入并进行初始化,所述游戏应用核心逻辑服务端进入等待状态;
[0032] c)用户启动所述游戏应用核心逻辑客户端,通过标准接口调用平台客户端;
[0033] d)所述平台客户端启动后,与平台服务端进行交互,为游戏应用核心逻辑客户端和游戏应用核心逻辑服务端建立通讯链路,并建立和管理会话过程;
[0034] e)所述平台客户端接收来自游戏应用核心逻辑客户端的所有通讯请求,并把相关消息传送到平台服务端;所述游戏应用核心逻辑服务端接收来自平台服务端的相关消息并进行处理,然后把处理结果通过平台服务端回传到平台客户端,再由平台客户端通知游戏应用客户端接收。
[0035] 本发明方法所述步骤b)中,平台服务端通过验证游戏应用核心逻辑服务端是否满足平台定义的接口标准和规范进行检测,如果符合则依次载入并启动各游戏应用核心逻辑服务端;游戏应用核心逻辑服务端在进行初始化时,执行本游戏要用到的所有特定资源的申请、分配和载入的操作,并初始化游戏应用服务端程序与平台服务端进行交互的环境,从而进入就绪等待状态。
[0036] 本发明具有以下有益效果:
[0037] (1)本发明突破了传统游戏应用架构的局限性,通过具有标准应用架构和运行架构以及相关接口定义的业务实现平台,使得多个网络游戏能够同时运行,并能够被统一地、全局地被加以监控和管理,从而实现了多个网络游戏的集约运营。
[0038] (2)实现了核心逻辑与物理数据存储方式的彻底分离,采用抽象的数据结构,数据采集点被分散到平台标准接口中所定义的各种与用户行为有关的事件侦听函数中,从而实现跨越单个产品的全局运营管理。
[0039] (3)彻底屏蔽了服务端与客户端之间的网络通讯细节,简化了游戏核心逻辑的通讯工作。
[0040] (4)平台通过接口能够向所有运行其内的网络游戏应用程序提供透明化的、全局的、安全的、集中的和统一的数据存取服务。支持各种类型、各种参数组合的网络游戏应用程序、游戏引擎在其内运行。
[0041] (5)平台能够向游戏运营方提供全局的、超越于任何特定游戏应用程序的产品使用及运行记录数据,以及经过加工后的产品运营状态信息。

附图说明

[0042] 下面将结合实施例和附图对本发明作进一步的详细描述:
[0043] 图1是现有技术网络游戏的应用架构示意图;
[0044] 图2是本发明实施例集约型网络游戏平台系统的应用架构示意图;
[0045] 图3是本发明实施例中平台服务端及某游戏应用服务端的启动过程示意图;
[0046] 图4是本发明实施例中用户请求登录某游戏应用的过程示意图;
[0047] 图5是本发明实施例中用户请求购买某游戏应用中的虚拟物品的过程示意图;
[0048] 图6是本发明实施例中用户请求离开某游戏应用的过程示意图。

具体实施方式

[0049] 图2~图6所示为本发明的实施例。如图2所示,本实施例一种集约型网络游戏平台系统,包括具有一个或一个以上游戏应用程序的游戏应用集合、网络和业务实现平台。其中,业务实现平台主要由平台服务端、平台中心数据库和一个或一个以上平台客户端构成。
[0050] 如图2所示,游戏应用集合中,每个游戏应用程序均具有游戏应用核心逻辑服务端和游戏应用核心逻辑客户端。各游戏应用核心逻辑服务端通过各自的标准接口统一连接到平台服务端上,各游戏应用核心逻辑客户端均分别对应于各平台客户端并通过标准接口连接,使得业务实现平台能够与各游戏应用程序之间进行交互并提供各种公共服务。
[0051] 如图2所示,平台服务端包括服务端通用通讯模块、公共业务逻辑服务端模块、服务端数据访问模块。平台客户端包括客户端通用通讯模块、公共业务逻辑客户端模块。通过公共业务逻辑模块,提供游戏应用及用户所需的公共业务逻辑代理服务,监控游戏应用程序的运行状态,收集用户的行为记录。服务端通用通讯模块和客户端通用通讯模块之间通过网络建立通讯链路,建立并管理会话过程。
[0052] 服务端数据访问模块用于访问平台中心数据库。平台中心数据库用于存储和提供运行在平台上的所有游戏应用和正在使用平台提供的任意产品和服务的用户的信息。
[0053] 本实施例通过以下方面确定业务实现平台的整体应用架构,以具备集约运营多个游戏应用的环境和条件。
[0054] 一、业务实现平台的标准化
[0055] 本实施例系统基于游戏应用服务端和游戏应用客户端,将原先游戏逻辑中的游戏应用核心逻辑模块与其它逻辑模块、核心数据分离,原先其它逻辑模块实现的功能(如网络通讯代理、数据访问、公共业务逻辑等)统一由业务实现平台完成。为此,需要将业务实现平台标准化,以便能够被运行在平台上的所有游戏应用作为公共服务使用。标准化的内容包括:各功能模块的过程定义和规范、使用前提的定义和规范、被调用函数的原形定义和规范、数据类型的定义和规范、边界条件的定义和规范。
[0056] 二、定义业务实现平台和游戏应用核心逻辑的标准接口
[0057] 标准化业务实现平台后,必须经过一个标准界面的封装,才能最后与游戏应用核心逻辑进行交互,并向游戏应用核心逻辑提供各种公共服务。通过标准接口,业务实现平台向游戏应用核心逻辑开放了平台的应用架构、交互协议和公共服务。
[0058] 三、制订游戏应用核心逻辑与业务实现平台的交互方式和协议
[0059] 游戏应用核心逻辑与业务实现平台的交互方式和协议包括两部分:
[0060] 一方面,当业务实现平台要向游戏应用核心逻辑传递指令或信息时,通过对预定义的、被标准接口封装并向游戏应用核心逻辑开放的“事件消息传递函数”的调用,把相关指令和信息传递给游戏应用核心逻辑。业务实现平台定义多种预定义的事件,对于每种事件,都有专门的事件消息传递函数,每个函数都有特定类型的事件参数。当游戏应用核心逻辑接收到特定的事件消息函数调用时,会根据事件调用协议执行相应的响应逻辑代码。
[0061] 业务实现平台通过标准接口定义的预定义事件包括以下类型:
[0062] ●游戏应用服务端初始化事件
[0063] ●游戏应用服务端用户进入游戏事件
[0064] ●游戏应用服务端接收到来自用户消息的事件
[0065] ●游戏应用服务端用户离开游戏事件
[0066] ●游戏应用服务端关闭事件
[0067] ●游戏应用服务端的时钟信号事件
[0068] ●游戏应用客户端初始化事件
[0069] ●游戏应用客户端中断事件
[0070] ●游戏应用客户端退出事件
[0071] ●游戏引用客户端接收到来自游戏应用服务端的消息的事件
[0072] ●游戏应用客户端的时钟信号事件
[0073] 另一方面,当游戏应用核心逻辑需要向业务实现平台传递信息或获得某种公共服务时,则通过对预定义的、被标准接口封装并向游戏核心逻辑开放的“公共服务函数”的调用,把相关的公共服务请求或信息传递给平台。业务实现平台定义多种预定义的公共服务,对于每种公共服务,都有专门的公共服务函数,每个函数都有特定类型的对象参数。当平台接收到特定的公共服务函数调用时,会根据预定义的协议执行相应的响应逻辑代码,并把执行结果回传给游戏应用核心逻辑。
[0074] 业务实现平台通过标准接口向游戏应用程序提供以下公共业务逻辑代理服务:
[0075] ●游戏应用产品的生命周期的管理
[0076] ●各种事件的生成和传递
[0077] ●统一的平台用户帐号的建立和管理
[0078] 用户只需要使用一个平台范围内的帐号,即可获得平台提供的、超越了任何特定游戏应用的所有公共服务,包括:进入运行在平台上的所有游戏应用中进行游戏、与已注册到平台的所有其他用户进行跨单个游戏应用的虚拟物品(道具)的交易、建立好友关系、组队对抗、查询信息、对帐号进行充值、享受运营方提供的把多个游戏产品进行组合的优惠服务等。
[0079] ●线程池管理和线程分配
[0080] ●虚拟游戏空间的分配和管理(大厅、房间、桌子等)
[0081] ●用户游戏角色的建立和分配
[0082] ●透明的用户属性数据、用户行为数据、用户状态数据的处理和存取服务[0083] ●透明的游戏应用程序属性数据、游戏应用程序运行及状态数据的处理和存取服务
[0084] ●平台用户之间的关系的管理服务(好友关系的建立、维护、邀请、寻找等功能)[0085] ●通用的、独立于任一特定游戏应用程序的虚拟货币的发行和流通(开户、充值、计费、结算、帐单)
[0086] 定义统一的虚拟货币单位以及虚拟货币的发行、支付和结算的标准和流程,从而使得用户能通过对平台虚拟货币的使用来购买所有运营在平台上的游戏应用的虚拟物品及服务,并在用户之间进行交易。
[0087] ●通用的游戏内物品(道具)的创建
[0088] ●通用的游戏内物品(道具)的交易(购买、卖出、交换、拍卖)
[0089] ●可扩展的收费渠道接口
[0090] ●用户群体(工会,组队)的建立和管理
[0091] 四、制订应用层通讯的方式和协议
[0092] 业务实现平台向游戏应用核心逻辑提供通用的网络通讯代理服务,彻底屏蔽服务端与客户端之间的网络通讯细节。平台通过“抽象消息对象”来实现这个功能。通过抽象消息对象,游戏应用核心逻辑以任意顺序来传递各种预定义的数据类型,使用时非常方便。具体地说,当游戏应用核心逻辑要求平台提供代理通讯服务时,首先构键一个抽象的消息对象,然后根据游戏应用逻辑本身的消息结构协议向抽象消息对象中写入数据内容,最后把整个抽象消息对象作为参数传递给平台的代理通讯服务函数。业务实现平台即可把消息传送到相应的接收点。在整个过程中,游戏应用核心逻辑无需定位消息的接收点以及维护各接收点的通讯链路和会话过程,所有这些工作都由业务实现平台来完成。因此,通讯工作对于游戏应用核心逻辑来说十分简单。
[0093] 五、制订平台中心数据库的结构
[0094] 平台中心数据库结构的核心思想是:把运行在平台上的所有游戏应用和正在使用平台提供的任意产品和服务的用户都作为平台的全局资源和数据来对待。具体地说,平台中的任意用户可以与平台中的任意产品或服务产生由标准接口所定义的一切关联、每一个用户都可以对任意产品或服务执行由标准接口中所定义和开放的任何操作。另一方面,平台中的任意产品或服务都可以对平台中的任意用户的行为进行有效的记录和跟踪。
[0095] 六、制订游戏应用的数据库数据标准结构,为游戏应用核心逻辑提供透明的数据存取访问接口
[0096] 平台定义一套标准的、能满足大多数游戏类型的抽象的数据结构,并通过界面提供对这套抽象的数据结构的访问方法。这样,平台就可以向游戏应用核心逻辑完全屏蔽游戏应用的物理存取机制,屏蔽了运行其上的游戏应用程序对物理数据源的直接访问。数据库的数据采集点被分散到平台标准接口中所定义的各种与用户行为有关的事件侦听函数中,从而实现了跨越单个产品的全局运营管理。对于游戏应用核心逻辑来说,当它需要对游戏内部数据进行存取操作时,只需向平台发出相应的函数调用请求。平台接到请求后,实际发生的数据操作可能是在本地缓存里,也有可能向其它物理网络节点发出数据操作请求或直接向物理数据源发出数据操作请求。这套抽象的数据结构的物理映像的实现方式不受限制,只要满足标准接口协议上相应的数据处理功能即可,可以是关系型数据库,也可以是XML文件,或者是其它格式的数据存储文件。通过这种方式,实现了游戏应用逻辑与物理数据存取的彻底分离。
[0097] 平台的网络通讯代理服务通过使用自定义的和加密的应用层通讯协议来执行,以屏蔽消息结构和执行过程,从而提供安全的通讯服务。平台的网络通讯代理服务可同时支持各种基于TCP/IP族的通讯方式,包括:单工的socket、双工的socket以及http等方式。并支持在同一个游戏应用内,允许使用上述各种通讯方式的客户端进行交互,从而实现游戏应用逻辑与底层通讯方式的彻底分离。
[0098] 平台支持各种针对特定类型游戏而开发的游戏引擎在其上运行。实际上,平台把一个游戏引擎和其它辅助的、能与游戏引擎一起组成一个游戏应用的代码逻辑统一地视为一个游戏应用的逻辑整体,只要这个逻辑整体能满足平台定义的接口规范,则能被放在平台上运行。
[0099] 运行在平台上的游戏应用程序的特性和种类可以不受限制。具体地支持以下所有类型的游戏应用程序:
[0100] ●各种不同的客户端终端类型,包括(但不限于):个人计算机(PC)、移动电话(手机)、PDA、数字电视机顶盒等。且不同类型的客户端终端可以同时运行同一个游戏应用程序并互相在同一个游戏应用中进行交互。
[0101] ●各种不同表达方式的客户端应用,包括(但不限于):PC视频、WEB页面、Java手机视频、Brew手机视频、Symbians手机视频、其它第三方手机视频、WAP页面等。
[0102] ●各种大小的游戏世界模型,包括:小型桌子类休闲游戏(棋牌类、小型竞技类休闲游戏)、大型的多人同时在线角色扮演类游戏(MMORPG)。
[0103] 本实施例基于上述系统集约运行多个游戏应用程序的方法,包括以下步骤:
[0104] 1)启动平台服务端,扫描检测游戏应用核心逻辑服务端,载入并进行初始化,游戏应用核心逻辑服务端进入等待状态;
[0105] 启动平台服务端,则自动扫描所有要求被平台服务端启动的网络游戏应用的服务端程序。当平台服务端检测到要被平台服务端启动的游戏应用服务端程序时,会自动验证游戏应用服务端程序是否满足平台定义的接口标准和规范。如果是,平台则依次载入并启动各游戏应用的服务端程序。当一个游戏应用的服务端程序被载入后,平台服务端向该游戏应用服务端程序发送由接口规范预定义的、在游戏应用服务端本次生命周期中的第一个事件消息:“初始化事件”。游戏应用服务端程序在接收到“初始化事件”后,执行本游戏要用到的所有特定资源的申请、分配和载入的操作,并初始化游戏应用服务端程序与平台服务端进行交互的环境。此后,游戏应用服务端程序进入就绪等待状态,并准备通过与平台的标准接口响应来自平台的其它预定义的事件请求。
[0106] 2)用户启动游戏应用核心逻辑客户端,通过标准接口调用平台客户端;
[0107] 3)平台客户端与平台服务端进行交互,为游戏应用核心逻辑客户端和游戏应用核心逻辑服务端建立通讯链路,建立并管理会话过程;
[0108] 4)平台客户端接收来自游戏应用核心逻辑客户端的所有通讯请求,并把相关消息通过网络传送到平台服务端;再由平台服务端以事件的方式通知游戏应用核心逻辑服务端;游戏应用核心逻辑服务端处理完相关的消息后,把处理结果通过平台的网络通讯代理服务回传到平台客户端,再由平台客户端以接口预定义事件的方式通知游戏应用核心逻辑客户端接收。
[0109] 通过以下三个具体操作实例进一步说明本实施例系统的实现方法与过程。
[0110] (一)某用户发起的请求登录某特定游戏应用的执行过程
[0111] 首先,启动平台服务端,如图3所示,其步骤如下:
[0112] 1、在安装了平台服务端的物理服务器上启动平台服务端。
[0113] 2、平台服务端初始化平台中央数据库,建立数据库访问连接池,并建立平台中央数据库访问的代理对象。
[0114] 3、平台服务端初始化各种公共服务,该步骤涉及到为各种公共服务建立连接池和分发工作线程,并建立远程服务代理对象。
[0115] 4、平台服务端扫描其游戏应用集合容器,当发现有游戏应用服务端程序存在于容器中时,按顺序把每个游戏应用服务端程序装载入内存。在该过程中,平台检查各游戏应用服务端是否满足平台定义的接口标准,如果发现有不满足接口标准的应用存在,平台不予装载该应用,并向监控中心发送出错或警告信息。当一个游戏应用被启动后,平台把该事件操作写入中央数据库的平台日志数据里。
[0116] 5、当一个游戏应用服务端被平台服务端成功装载入内存后,平台服务端通过标准接口,以事件消息传递函数调用的方式向游戏应用发送其本次生命周期的第一个事件消息:“初始化事件消息”。游戏应用服务端在接收到初始化事件消息后,将执行游戏应用服务端的资源载入,及启动各逻辑线程的工作。
[0117] 6、平台服务端启动通用通讯模块,准备接收来自平台客户端的通讯连接请求。
[0118] 7、游戏应用服务端至此进入等待状态,准备接收来自平台服务端的其它消息事件并执行相应的逻辑处理。
[0119] 平台和包含其内的各游戏应用逻辑的服务端启动完毕后,等待用户的连接请求和处理各种来自用户的事件处理请求。如图4所示,用户U请求登录某游戏应用A的过程如下:
[0120] 1、用户U启动某游戏应用A的客户端。由于游戏应用客户端的核心逻辑是被平台客户端逻辑所包裹的,其生命周期也受到平台客户端的控制,因此当用户U启动A所在的客户端时,首先被执行的是平台的客户端逻辑。
[0121] 2、平台客户端被启动后,首先向平台服务端为自身所在的客户端申请一个通讯链路。
[0122] 3、当平台服务端接收到来自客户端A的连接请求时,为客户端A建立通讯链路,并为客户端A建立专用的会话过程管理结构。此后,新建立的通讯链路和会话过程结构被放入平台服务端的通用通讯模块中统一管理,然后通过通用通讯模块向客户端A回传通讯链路建立成功的信息。此后,该通讯链路就会一直被用做游戏应用A的客户端与平台服务端和与游戏应用A所对应的服务端的专用通讯链路,直到游戏应用A的客户端发出断开连接的请求被执行完毕。
[0123] 4、当平台客户端接收到来自平台服务端的“通讯链路建立成功”的消息后,会通过平台客户端的通用通讯模块把用户U的平台用户ID和游戏应用A的产品ID发到平台服务端。
[0124] 5、当平台服务端接收到用户U的ID和游戏应用A的产品ID后,会在平台服务端为用户U建立其在平台服务端的缓存结构,并通过访问中央数据库把用户U的属性数据载入到其缓存结构中;另外,平台还会把用户U登录平台的事件记录到中心数据库的用户日志数据中。此后,平台服务端会把“平台登录成功”的消息通过通用通讯模块发回到平台客户端A。
[0125] 6、当平台客户端A接收到“平台登录成功”的消息后,将向用户U开放终端设备的按键输入响应。这时,用户U可通过平台客户端的图形界面选择“进入游戏”的菜单项来请求进入游戏。
[0126] 7、当用户U通过平台客户端的图形界面选择“进入游戏”后,平台客户端通过通用通讯模块向平台服务端发送“请求进入游戏逻辑”的消息。
[0127] 8、平台服务端在接收到来自平台客户端的“请求进入游戏逻辑”的消息后,会构建一个“用户进入游戏事件”,把用户U的ID放进该事件中,然后把该事件作为参数通过事件消息传递函数的调用把该事件消息传递到游戏应用A的服务端。游戏应用A的服务端在接收到“用户进入游戏事件”后,首先把用户U的ID提取出来,然后为用户U建立游戏逻辑内部的缓存结构。此后,游戏应用逻辑服务端通过标准接口定义的透明的数据存取服务向平台服务端请求获取用户U在游戏应用A中的各种属性值。
[0128] 9、当平台服务端接收到来自游戏应用A服务端的数据服务请求后,把用户U在游戏应用A中的属性数据从中心数据库中提取出来,并回送到游戏应用A的服务端。另外,把用户U进入游戏应用A的事件记录到中心数据库的相关日志数据中。
[0129] 10、当游戏应用A的服务端接收到来自平台服务端的用户U在游戏应用A中的属性数据后,把相关属性数据载入到先前为用户U建立的缓存结构中,然后再执行一些其它的与用户U有关的操作。然后把一些与用户U相关的状态数放入一个“抽象消息对象中”,然后请求平台服务端把该消息对象发送到用户U的客户端。
[0130] 11、平台服务端接收到来自游戏应用A的服务端点的抽象消息对象发送请求后,把消息对象中的数据和信息通过通用通讯模块传送到用户U的客户端平台。
[0131] 12、用户U的客户端平台在接收到相关的数据和消息后,重组一个“抽象消息对象”,并把接收到的数据封装到消息对象中;然后,把该消息对象作为一个“事件消息”的参数,通过事件消息传递函数的调用把该事件消息传递到游戏应用A的客户端。然后,游戏应用服务端回复至等待状态,准备接收来自平台服务端的下一个消息事件,并执行相应的逻辑处理。
[0132] 13、游戏应用A的客户端在接收到消息事件后,把抽象消息对象里面的状态数据取出来,然后进行处理,最后把相关状态通过游戏应用的图形界面输出到用户U面前。
[0133] 至此,完成了整个用户登录游戏的过程。在此过程中,平台彻底地向游戏核心逻辑屏蔽了所有底层通讯服务和公共逻辑服务的执行过程,并通过标准定义的接口向游戏核心逻辑提供交互和相关的公共服务。
[0134] (二)从某用户发起的请求购买某特定游戏应用中的某特定虚拟物品(道具)的执行过程
[0135] 平台服务端与游戏应用A的服务端被成功启动、用户U成功登录游戏应用A后,若用户U请求购买某特定游戏应用A中的某特定虚拟物品(如道具)X,如图5所示,其步骤如下:
[0136] 1、用户U通过游戏应用客户端中的界面项选择购买道具X。
[0137] 2、游戏应用A的客户端接收到用户U的请求后,通过标准接口调用平台客户端的一个与购买道具有关的公共服务函数,并将与用户U及道具X有关的属性作为参数放进函数中。
[0138] 3、当平台客户端接收到来自游戏应用A的客户端的函数调用后,生成一个抽象消息结构,并把相关函数中的参数值放进抽象消息结构中。然后,平台客户端通过其通用通讯模块把来自用户U的购买道具X的请求发送到平台服务端。
[0139] 4、平台服务端接收到相关请求后,构造一个“消息事件对象”,把用户U及道具X的属性参数放入对象中,然后通过标准接口以事件消息传递函数调用的方式通知游戏应用服务端。
[0140] 5、游戏应用服务端接收到相关的事件消息调用后,首先检查一下游戏应用的当前状态,当确认相关请求可以执行后,通过标准接口调用平台的与用户虚拟交易相关的公共服务函数,把用户U及道具X的属性数据、购买数量等作为参数放入被调用的函数中。
[0141] 6、平台服务端在接收到相应的公共服务函数调用后,执行购买过程,通过透明的数据存取服务更新中心数据库中的有关表中的记录。然后把执行结果返回给游戏应用A的服务端。
[0142] 7、游戏应用A的服务端接收到执行结果后,更新用户U的缓存结构,然后把更新后的状态放入一个“抽象消息对象”中,然后通过平台服务端的通用通讯模块把该消息对象传送到平台的客户端。
[0143] 8、平台客户端在接收到状态更新的消息后,构造一个“抽象消息对象”,把更新后的状态值封装到抽象消息对象中,然后通过标准接口以事件消息传递函数调用的方式传送到游戏应用客户端。
[0144] 9、游戏应用客户端在接收到相应的“消息事件”后,把新的状态值提取出来,然后更新用户U的本地缓存及其它相关的状态值。
[0145] 至此,用户U购买游戏应用A中的道具X的行为同时反映到游戏应用A的服务端和客户端、以及平台的中央数据库中。
[0146] (三)从某用户发起的请求离开某特定游戏应用的执行过程
[0147] 当用户U用户已成功登录游戏应用A并在其中执行了若干操作后,若其请求离开某特定游戏应用A时,如图6所示,其步骤如下:
[0148] 1、用户U通过游戏应用客户端中的界面项选择离开游戏A。
[0149] 2、游戏应用A的客户端接收到用户U的请求后,将通过标准接口调用平台客户端的一个与离开游戏有关的公共服务函数,并将与用户U属性作为参数放进函数中。
[0150] 3、当平台客户端接收到来自游戏应用A的客户端的公共服务函数调用后,生成一个抽象消息结构,并把相关函数中的参数值放进抽象消息结构中。然后,平台客户端通过其通用通讯模块把来自用户U的请求发送到平台服务端。
[0151] 4、平台服务端接收到相关请求后,构造一个“消息事件对象”,把用户U的属性参数放入对象中,然后通过标准接口以事件消息传递函数调用的方式通知游戏应用服务端。
[0152] 5、游戏应用服务端接收到相关的事件消息调用后,会首先检查一下游戏应用的当前状态,当确认相关请求可以执行后,清除用户U在游戏应用A的服务端的缓存结构;然后,通过标准接口调用平台的与用户退出游戏相关的公共服务函数,把用户U及游戏应用A的属性数据作为参数放入被调用的函数中。
[0153] 6、平台服务端在接收到相应的函数调用后,更新用户U在平台的缓存结构里面的状态值,然后通过透明的数据存取服务把用户U退出游戏应用A的事件写入中心数据库的有关日志数据表中。然后通过通用通讯模块把“成功退出”的消息回传到用户U所在的平台客户端。
[0154] 7、平台客户端在接收成功退出的消息后,构造一个“抽象消息对象”,然后通过标准接口以事件消息传递函数调用的方式传送到游戏应用客户端。
[0155] 8、游戏应用客户端在接收到相应的“消息事件”后,执行一系列资源回收工作,然后把控制权交回到平台客户端。
[0156] 平台客户端接收到控制权后,进一步执行一些资源回收工作,然后等待用户U的进一步指令(再次进入游戏、执行平台的其它功能或退出平台等)。