CN112245904A - 支持跨服游戏的方法、系统、存储介质及计算机设备 - Google Patents

支持跨服游戏的方法、系统、存储介质及计算机设备 Download PDF

Info

Publication number
CN112245904A
CN112245904A CN202011230489.3A CN202011230489A CN112245904A CN 112245904 A CN112245904 A CN 112245904A CN 202011230489 A CN202011230489 A CN 202011230489A CN 112245904 A CN112245904 A CN 112245904A
Authority
CN
China
Prior art keywords
server
game
cross
mirror image
remote procedure
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
CN202011230489.3A
Other languages
English (en)
Other versions
CN112245904B (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202011230489.3A priority Critical patent/CN112245904B/zh
Publication of CN112245904A publication Critical patent/CN112245904A/zh
Application granted granted Critical
Publication of CN112245904B publication Critical patent/CN112245904B/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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • 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/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本申请实施例公开了一种支持跨服游戏的方法、系统、存储介质及计算机设备。该方法包括:网关服务器接收玩家角色所在终端发送的玩法请求;网关服务器根据玩法请求携带的协议号判断玩家角色所在终端是否请求进行游戏跨服玩法;若玩家角色所在终端是请求进行游戏跨服玩法,则网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至玩家角色所在的原游戏服务器;镜像服务器将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器。本申请实施例提供的技术方案使得即使参与的是跨服玩法,玩家仍然感同身受是在原游戏服务器进行游戏玩法,从而实现了同时参与游戏跨服玩法和游戏原服玩法。

Description

支持跨服游戏的方法、系统、存储介质及计算机设备
技术领域
本申请涉及计算机技术领域,尤其涉及电子游戏领域,具体涉及一种支持跨服游戏的方法、系统、存储介质及计算机设备。
背景技术
所谓跨服游戏,是指不在同一个服务器的玩家可同时参与一款游戏的玩法,例如,在原服务器进行游戏玩法的玩家可以跨越到其他服务器进行游戏跨服玩法。现有的支持跨服游戏的方法是选取一台服务器作为中心服务器,将需要参与游戏跨服玩法的玩家的数据打包发送至中心服务器。玩家从游戏原服务器下线,登录中心服务器,所有参与跨服玩法的玩家都在中心服务器进行对战等玩法。游戏结束后,需要保存的数据传回游戏原服务器进行保存,玩家从中心服务器下线,登录游戏原服务器继续游戏。
显然,现有的支持跨服游戏的方法,玩家需要频繁登录登出游戏原服务器和/或中心服务器,给玩家带来较大的不便。
发明内容
本申请实施例提供一种支持跨服游戏的方法、系统、存储介质及计算机设备,可以免去参与游戏跨服玩法的玩家来回登录多种服务器,操作简便。
本申请实施例提供了一种支持跨服游戏的方法,包括:
网关服务器接收玩家角色所在终端发送的玩法请求,所述玩法请求携带协议号;
所述网关服务器根据所述协议号判断所述玩家角色所在终端是否请求进行游戏跨服玩法;
若所述玩家角色所在终端是请求进行游戏跨服玩法,则所述网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至所述玩家角色所在的原游戏服务器;
所述镜像服务器将所述玩家角色参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器。
可选的,所述镜像服务器将所述玩家参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器,包括:通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第一数据传输至对应玩家角色所在的原游戏服务器;或者通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第二数据传输至对应玩家角色所在的原游戏服务器,使所述原游戏服务器将所述玩家角色数据修改为与所述第二数据一致。
可选的,所述通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器,包括:所述镜像服务器接收所述原游戏服务器通过会话发送的远程过程调用请求;所述镜像服务器处理所述远程过程调用请求;若所述镜像服务器处理所述远程过程调用请求的时间达到预设时长,则通过所述会话发送通知消息至所述原游戏服务器,所述设定的值小于所述会话超时时间的值;响应于所述远程过程调用请求,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
可选的,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器,包括:所述镜像服务器根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理,并将初始化后的接口实例存储至镜像服务器的本地缓存;响应于所述原游戏服务器发送的远程过程调用请求,在确定所述本地缓存存在所述远程过程调用请求所调用服务对应的接口实例后,所述镜像服务器使用所述远程过程调用请求所调用服务对应的接口实例对所述远程过程调用请求进行处理;根据所述远程过程调用请求的处理结果,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
可选的,所述方法还包括:在所述玩家角色参与所述游戏跨服玩法之前,所述镜像服务器查询是否已将所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器;若未将所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器,则通过远程过程调用,所述镜像服务器使所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器。
可选的,所述通过远程过程调用,所述镜像服务器使所述玩家数据从所述原游戏服务器传输至所述镜像服务器,包括:所述镜像服务器创建与远程过程对应的信标,所述信标的初始状态为无信号状态;所述镜像服务器将所述远程过程对应的线程挂起,等待所述原游戏服务器根据所述远程过程调用请求返回玩家角色数据;在接收到所述玩家角色数据时,所述镜像服务器将所述信标的状态变更为有信号状态。
可选的,所述通过远程过程调用,所述镜像服务器将所述玩家数据从所述原游戏服务器传输至所述镜像服务器,包括:所述镜像服务器将远程过程调用请求封装成数据结构存储在消息队列中,在检测到所述消息队列中有消息需要处理时,从所述消息队列的头部取出第一个远程过程调用请求;所述镜像服务器对所述远程过程调用请求进行编码,得到远程过程调用请求编码序列,并在所述远程过程调用请求编码序列长度大于预设长度时对所述远程过程调用请求编码序列进行截断,按照截断所得片段向所述原游戏服务器发送所述远程过程调用请求编码序列,每个所述片段具有截断标志位,用于表征该片段是否为远程过程调用消息的所有片段中最后一个片段;所述镜像服务器接收所述原游戏服务器根据所述远程过程调用请求编码序列返回的所述玩家角色数据。
本申请实施例还提供一种支持跨服游戏的系统,所述系统包括网关服务器、镜像服务器和至少一个原游戏服务器,所述网关服务器包括接收模块、判断模块和发送模块,所述镜像服务器包括第一数据输送模块,其中:
所述接收模块,用于接收玩家角色所在终端发送的玩法请求,所述玩法请求携带协议号;
所述判断模块,用于根据所述协议号判断所述玩家角色所在终端是否请求进行游戏跨服玩法;
所述发送模块,用于若所述判断模块的判断结果为所述玩家角色所在终端是请求进行游戏跨服玩法,则所述网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至所述玩家角色所在的原游戏服务器;
所述第一数据输送模块,用于将所述玩家角色参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的支持游戏多服务器玩法的方法中的步骤。
本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的支持游戏多服务器玩法的方法中的步骤。
从上述本申请实施例提供的技术方案可知,一方面,玩家只需要将玩法请求发送至网关服务器,后续由网关服务器触发游戏跨服玩法或游戏原服玩法,换言之,玩家只需要登录网关服务器即可实现游戏跨服玩法或游戏原服玩法,无需来回登录镜像服务器和原游戏服务器,于玩家而言,操作流程大大简化;另一方面,镜像服务器将参与游戏跨服玩法时产生的数据同步或传输至对应玩家角色所在的原游戏服务器,即使参与的是跨服玩法,玩家仍然感同身受是在原游戏服务器进行游戏玩法,从而实现了同时参与游戏跨服玩法和游戏原服玩法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的支持跨服游戏的系统示意图。
图2为本申请实施例提供的支持跨服游戏的方法的流程示意图。
图3为本申请实施例提供的通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器的流程示意图。
图4为本申请另一实施例提供的通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器的流程示意图。
图5为本申请实施例提供的通过远程过程调用,镜像服务器使玩家角色数据从原游戏服务器传输至镜像服务器的流程示意图。
图6为本申请另一实施例提供的通过远程过程调用,镜像服务器使玩家角色数据从原游戏服务器传输至镜像服务器的流程示意图。
图7本申请实施例提供的支持跨服游戏的系统的结构示意图。
图8为本申请另一实施例提供的支持跨服游戏的系统的结构示意图。
图9为本申请另一实施例提供的支持跨服游戏的系统的结构示意图。
图10为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种支持跨服游戏的方法、装置、存储介质及计算机设备。具体地,本申请实施例的支持跨服游戏的方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当该支持跨服游戏的方法运行于终端时,终端设备存储有游戏应用程序并用于呈现游戏画面中的虚拟场景。终端设备用于通过图形用户界面与用户进行交互,例如通过终端设备下载安装游戏应用程序并运行。该终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
例如,当该支持跨服游戏的方法运行于服务器时,可以为云游戏。云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏应用程序的运行主体和游戏画面呈现主体是分离的,支持跨服游戏的方法的储存与运行是在云游戏服务器上完成的。而游戏画面呈现是在云游戏的客户端完成的,云游戏客户端主要用于游戏数据的接收、发送以及游戏画面的呈现,例如,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑、个人数字助理等,但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
请参阅图1,图1为本申请实施例提供的支持跨服游戏的系统示意图。该系统可以包括至少一个终端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。用户持有的终端1000可以通过网络4000连接到不同游戏的服务器。终端1000是具有计算硬件的任何设备,该计算硬件能够支持和执行与游戏对应的软件产品。另外,终端1000具有用于感测和获得用户通过在一个或者多个触控显示屏的多个点执行的触摸或者滑动操作的输入的一个或者多个多触敏屏幕。另外,当系统包括多个终端1000、多个服务器2000、多个网络4000时,不同的终端1000可以通过不同的网络4000、通过不同的服务器2000相互连接。网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的终端1000之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端1000在线从而通过适当网络连接并且相互同步,以支持多玩家游戏。另外,该系统可以包括多个数据库3000,多个数据库3000耦合到不同的服务器2000,并且可以将与游戏环境有关的信息在不同用户在线进行多玩家游戏时连续地存储于数据库3000中。
本申请实施例提供了一种支持跨服游戏的方法,该方法可以由终端或服务器执行。本申请实施例以支持跨服游戏的方法由终端执行为例来进行说明。其中,该终端包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。用户通过触控显示屏对图形用户界面进行操作时,该图形用户界面可以通过响应于接收到的操作指令控制终端本地的内容,也可以通过响应于接收到的操作指令控制对端服务器的内容。例如,用户作用于图形用户界面产生的操作指令包括用于启动游戏应用程序的指令,处理器被配置为在接收到用户提供的启动游戏应用程序的指令之后启动游戏应用程序。此外,处理器被配置为在触控显示屏上渲染和绘制与游戏相关联的图形用户界面。触控显示屏是能够感测屏幕上的多个点同时执行的触摸或者滑动操作的多触敏屏幕。用户在使用手指在图形用户界面上执行触控操作,图形用户界面在检测到触控操作时,控制游戏的图形用户界面中的不同虚拟对象执行与触控操作对应的动作。例如,该游戏可以为休闲游戏、动作游戏、角色扮演游戏、策略游戏、体育游戏、益智游戏等游戏中的任一种。其中,游戏可以包括在图形用户界面上绘制的游戏的虚拟场景。此外,游戏的虚拟场景中可以包括由用户(或玩家)控制的一个或多个虚拟对象,诸如虚拟角色。另外,游戏的虚拟场景中还可以包括一个或多个障碍物,诸如栏杆、沟壑、墙壁等,以限制虚拟对象的移动,例如将一个或多个对象的移动限制到虚拟场景内的特定区域。可选地,游戏的虚拟场景还包括一个或多个元素,诸如技能、分值、角色健康状态、能量等,以向玩家提供帮助、提供虚拟服务、增加与玩家表现相关的分值等。此外,图形用户界面还可以呈现一个或多个指示器,以向玩家提供指示信息。例如,游戏可以包括玩家控制的虚拟对象和一个或多个其他虚拟对象(诸如敌人角色)。在一个实施例中,一个或多个其他虚拟对象由游戏的其他玩家控制。例如,一个或多个其他虚拟对象可以由计算机控制,诸如使用人工智能(AI)算法的机器人,实现人机对战模式。例如,虚拟对象拥有游戏玩家用来实现目标的各种技能或能力。例如虚拟对象拥有可用于从游戏中消除其他对象的一种或多种武器、道具、工具等。这样的技能或能力可由游戏的玩家使用与终端的触控显示屏的多个预设触控操作之一来激活。处理器可以被配置为响应于用户的触控操作产生的操作指令来呈现对应的游戏画面。
请参阅图2,为本申请实施例提供的支持跨服游戏的方法的流程示意图,主要包括步骤S201至步骤S204,详细说明如下:
步骤S201,网关服务器接收玩家角色所在终端发送的玩法请求,其中,玩法请求携带协议号。
在本申请实施例中,网关服务器与玩家角色所在终端连接,同时也与原游戏服务器、镜像服务器连接。与现有技术的玩家需要反复在原游戏服务器和中心服务器来回登录登出不同,在本申请实施例中,玩家角色只需要通过其所在终端登录到网关服务器,后续由网关服务器与原游戏服务器、镜像服务器交互,不需要再由玩家登录登出原游戏服务器和服务器。玩家角色所在终端发送的玩法请求表明该玩家请求哪种游戏玩法,例如,游戏原服玩法或游戏跨服玩法,玩法请求中携带协议号,一个协议号与一种游戏玩法相对应。
步骤S202,网关服务器根据玩法请求携带的协议号判断玩家角色所在终端是否请求进行游戏跨服玩法。
由于一个协议号与一种游戏玩法相对应,因此,网关服务器收到玩家角色所在终端发送的玩法请求后,将其中的协议号解析出来,根据协议号判断玩家角色所在终端是否请求进行游戏跨服玩法。
步骤S203,若玩家角色所在终端是请求进行游戏跨服玩法,则网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至玩家角色所在的原游戏服务器。
网关服务器将游戏跨服玩法协议号发送至镜像服务器,即让镜像服务器知悉此时应按照游戏跨服玩法协议与原游戏服务器交互,而将游戏原服玩法协议号发送至玩家所在的原游戏服务器时,则玩家角色数据仅仅在原游戏服务器处理。
步骤S204,镜像服务器将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器。
在本申请一个实施例中,镜像服务器将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器可以是:通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第一数据传输至对应玩家角色所在的原游戏服务器;或者通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第二数据传输至对应玩家角色所在的原游戏服务器,使原游戏服务器将玩家数据修改为与第二数据一致。此处的第一数据可以是参与游戏跨服玩法的玩家角色获得的奖励等虚拟资源,而第二数据则是玩家角色在参与游戏跨服玩法时,系统对玩家角色在镜像服务器一侧对玩家角色数据进行修改后的修改数据,修改数据不仅保存在镜像服务器,而且还要回传至原游戏服务器,使原游戏服务器将玩家角色数据修改为与在镜像服务器一侧所保存的玩家角色数据一致。至于本申请实施例提及的远程过程调用(Remote Procedure Calls,RPC),是一个进程调用另外一个进程所提供的方法,但是在调用者(caller)的角度仍然跟调用本进程的函数是一致的。在远程过程调用中,将要提供给被调用者(callee)进程的所有参数序列化为一个网络消息,然后通过网络传输发送到被调用者进程中。被调用者处理完成相应的服务后,将产生的结果也序列化成一个网络消息,发送到调用者进程。
作为本申请一个实施例,上述通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器可通过如附图3实例的步骤S301至步骤S304实现,详细说明如下:
步骤S301:镜像服务器接收原游戏服务器通过会话发送的远程过程调用请求。
作为RPC的调用者,原游戏服务器可通过一个会话(session)向被调用者即镜像服务器发送。进一步地,通过该会话,镜像服务器与原游戏服务器可以相互宣告具有通知能力,这个能力允许镜像服务器在处理远程过程调用请求未完成前向原游戏服务器发送消息的能力。
步骤S302:镜像服务器处理远程过程调用请求远程过程调用请求。
步骤S303:若镜像服务器处理远程过程调用请求的时间达到预设时长,则通过会话发送通知消息至原游戏服务器,其中,设定的值小于会话超时时间的值。
具体地,在本申请实施例中,镜像服务器在处理远程过程调用请求的过程中,对处理的时间进行计时,当处理的时间达到预设时长时,通过原游戏服务器发送上述远程过程调用请求时的会话,发送通知消息至上述原游戏服务器,以确保会话不会因超时而关闭,从而提升会话稳定性。发送通知消息之后,可以重新对处理该远程过程调用请求的时间进行计时。在本申请一个实施例中,上述通知消息还可以携带上述远程过程调用请求的当前处理状态等信息,其中,上述处理状态可以包括当前处理的进度和处理中出现的过程信息等。如此,原游戏服务器在收到通知消息之后就可以获知自身发送的远程过程调用请求在服务器端的执行状况,由此可以解决原游戏服务器无法持续获知和/或追踪远程过程调用请求的执行状态这一技术问题。
步骤S304:响应于远程过程调用请求,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
从上述附图3示例的技术方案可知,镜像服务器处理远程过程调用请求的时间达到预设时长,则通过会话发送通知消息至原游戏服务器,从而避免了会话因超时而关闭,从而提升远程过程调用的稳定性。
对于镜像服务器将游戏跨服玩法时产生的第一数据,原游戏服务器在接收到之后,可供玩家角色查询之用,例如,第一数据是参与游戏跨服玩法的玩家角色获得的奖励等虚拟资源时,该奖励通过原游戏服务器发放,玩家角色查看背包等操作都可以在原游戏服务器进行,此时玩家角色虽然是参与游戏跨服玩法,但从其感受来看,与游戏原服玩法没有任何区别。第二数据发送至对应玩家角色所在的原游戏服务器,原游戏服务器将第二数据替代之前的第二数据,实现数据的更新,与镜像服务器保存的第二数据一致。
作为本申请一个实施例,上述通过远程过程调用,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器可通过如附图4实例的步骤S401至步骤S403实现,详细说明如下:
步骤S401:镜像服务器根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理,并将初始化后的接口实例存储至镜像服务器的本地缓存。
在本申请实施例中,镜像服务器的工作状态不同,对应需要预先进行初始化处理的接口实例的群体也不同,其中,镜像服务器刚刚开启时,则需对全部的RPC服务的调用接口进行初始化处理,镜像服务器处于运行中,则仅需对已增加的RPC服务的调用接口进行初始化处理。因此,需要对镜像服务器的工作状态做一个判断,然后,根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理。具体地,若镜像服务器处于刚刚开启状态,从镜像服务器的配置数据库中依次读取各个远程过程调用服务的配置信息,针对任一远程过程调用服务,根据该任一远程过程调用服务的配置信息对远程过程调用服务的调用接口进行初始化处理。若镜像服务器处于运行状态,则按照预设固定时间从镜像服务器的配置数据库中依次读取各个远程过程调用服务的配置信息,根据各个远程过程调用服务的配置信息判断是否存在新增加远程过程调用服务,若是,则根据新增加远程过程调用服务的配置信息对新增加远程过程调用服务的调用接口进行初始化处理。
步骤S402:响应于原游戏服务器发送的远程过程调用请求,在确定本地缓存存在远程过程调用请求所调用服务对应的接口实例后,镜像服务器使用远程过程调用请求所调用服务对应的接口实例对远程过程调用请求进行处理。
响应于原游戏服务器发送的远程过程调用请求,镜像服务器判断本地缓存中是否存在远程过程调用请求所调用服务对应的接口实例,若本地缓存中存在远程过程调用请求所调用服务对应的接口实例,则使用远程过程调用请求所调用服务对应的接口实例对远程过程调用请求进行调用处理。若本地缓存中不存在远程过程调用请求所调用服务对应的接口实例,则进一步判断镜像服务器的配置数据库中是否存在远程过程调用请求所调用服务的配置信息。若镜像服务器的配置数据库中不存在远程过程调用请求所调用服务的配置信息,则获取远程过程调用请求所调用服务的配置信息并写入至镜像服务器的配置数据库中;以及对远程过程调用接口进行初始化处理,并利用初始化后的远程过程调用的接口实例进行对对远程过程调用请求进行处理。
步骤S403:根据远程过程调用请求的处理结果,镜像服务器将游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
从上述附图4的技术方案可知,镜像服务器根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理,相当于完成对所有当前已注册的远程过程调用服务的预处理,并且,若本地缓存存在远程过程调用请求所调用服务对应的接口实例,则可直接使用。因此,通过对远程过程调用服务进行预处理,减少调用接口初始化的耗时,进而可以提供稳定的服务。
在本申请实施例中,原游戏服务器在对玩家角色数据进行修改时,例如,战力提升、技能等级提升、出战宠物、出战斗伙伴等玩家数据进行修改时,为了减轻镜像服务器的负担,这些修改的玩家角色数据不会立即传档到镜像服务器,而是将这些玩家数据的“已传档标志”这样一个标志删除,如此,下场跨服战斗检查时,镜像服务器就会检查玩家角色数据是否还存在“已传档标志”,若不存在,则将玩家角色数据传档到镜像服务器,然后再开启战斗。因此,在上述附图2实例的本申请技术方案中,还包括:在玩家参与游戏跨服玩法之前,镜像服务器查询是否已将玩家角色数据从原游戏服务器传输至镜像服务器;若未将玩家角色数据从原游戏服务器传输至镜像服务器,则通过远程过程调用,镜像服务器使玩家角色数据从原游戏服务器传输至镜像服务器。上述方案中,镜像服务器查询是否已将玩家角色数据从原游戏服务器传输至镜像服务器的具体方法就是查询玩家角色数据是否还存在已传档标志,若不存在,说明未将玩家角色数据从原游戏服务器传输至镜像服务器。至于通过远程过程调用,镜像服务器使玩家角色数据从原游戏服务器传输至镜像服务器,一个实施例是如附图5示例的步骤实现,包括步骤S501至步骤S504,说明如下:
步骤S501:镜像服务器创建与远程过程对应的信标,其中,信标的初始状态为无信号状态。
在本申请实施例中,镜像服务器可以同时调用一个或多个远程过程,即可以通过远程过程调用函数进行一个或多个远程过程的调用。在调用一个远程过程时,可以为创建与该远程过程对应的信标,并对该信标分配一唯一标识符。在调用多个远程过程时,则对于每个远程过程都创建一个对应的信标,且为每个信标都分配一个唯一标识符,远程过程和信标存在对应关系,信标和唯一标识符存在对应关系,再将每个信标以及每个信标对应的唯一标识符存储在一个映射表中,方便以后查找。
步骤S502:镜像服务器将远程过程调用请求发送至原游戏服务器。
在本申请实施例中,远程过程调用请求用于请求调用某个远程过程。如前所述,由于每个远程过程都创建一个对应的信标,且为每个信标都分配一个唯一标识符,远程过程和信标存在对应关系,信标和唯一标识符存在对应关系,因此,镜像服务器将远程过程调用请求发送至原游戏服务器具体可以是:镜像服务器先与原游戏服务器建立网络连接,然后,将该远程过程调用请求所请求调用的远程过程的唯一标识符连同该远程调用请求一起发送至原游戏服务器。
步骤S503:镜像服务器将远程过程对应的线程挂起,等待原游戏服务器根据远程过程调用请求返回玩家角色数据。
具体地,可通过调用系统提供的函数或预设函数将远程过程对应的线程挂起。该系统提供的函数或预设函数被调用后,会一直等待信标变为有信号状态。若该信标变为有信号状态,则系统提供的函数或预设函数将重启该信标对应的远程过程的线程。
步骤S504:在接收到原游戏服务器根据远程过程调用请求返回的玩家角色数据时,镜像服务器将信标的状态变更为有信号状态。
具体地,在接收到原游戏服务器根据远程过程调用请求返回的玩家角色数据时,从玩家角色数据中提取唯一标识符;基于该唯一标识符,在映射表中查找对应的信标;调用信标重设函数将信标的状态变更为有信号状态,从而使得系统提供的函数或预设函数重启该信标对应的远程过程的线程。
从上述附图5示例的技术方案可知,由于在远程过程对应的线程被挂起后,该线程停止运行,并且被剥夺掉中央处理单元的执行权,如此,能够降低中央处理单元资源的浪费,保证程序性能,尤其在进行多个远程过程的调用时,效果更加显著。
作为本申请另一实施例,上述通过远程过程调用,镜像服务器使玩家角色数据从原游戏服务器传输至镜像服务器可通过如附图6实例的步骤S601至步骤S603实现,详细说明如下:
步骤S601:镜像服务器将远程过程调用请求封装成数据结构存储在消息队列中,在检测到消息队列中有消息需要处理时,从消息队列的头部取出第一个远程过程调用请求。
步骤S602:镜像服务器对远程过程调用请求进行编码,得到远程过程调用请求编码序列,并在远程过程调用请求编码序列长度大于预设长度时对远程过程调用请求编码序列进行截断,按照截断所得片段向原游戏服务器发送远程过程调用请求编码序列,其中,每个片段具有截断标志位,用于表征该片段是否为远程过程调用消息的所有片段中最后一个片段。
在本申请实施例中,当远程过程调用请求编码时,若所得远程过程调用请求编码序列的长度小于或等于预设长度时,则将该远程过程调用请求编码序列作为一个片段,并将片段标志位设置为表征当前片段是完整远程过程调用请求编码序列所有片段中最后一个片段,如此,通过一个片段完成该远程过程调用请求的发送。当远程过程调用请求编码时,若所得远程过程调用请求编码序列长度大于预设长度时,则将片段标志位设置为表征当前片段不是完整远程过程调用请求编码序列的所有片段中最后一个片段,然后继续执行编码步骤,直至编码后所得远程过程调用请求编码序列长度不大于预设长度时,发送远程过程调用请求编码序列,并将片段标志位设置为表征当前片段是完整远程过程调用请求编码序列的所有片段中最后一个片段。
需要说明的是,当远程过程调用请求为定长数据时,还可以预先申请内存缓存区,用于存储远程过程调用请求编码序列。具体地,内存缓存区可以包括数据区和等候处理区,其中,数据区的字节数等于片段的字节数,等候处理区的字节数不小于最大定长数据编码后的字节数。基于此,在本申请一个实施例中,若等候处理区存储有数据,则将等候处理区的数据移动至数据区;若在内存缓存区耗尽之前,对远程过程调用请求的编码已完成,则发送远程过程调用请求编码序列,并将片段标志位设置为表征当前片段是完整远程过程调用请求编码序列的所有片段中最后一个片段;若在内存缓存区耗尽时对远程过程调用请求的编码仍未完成,则发送指定长度的已编码数据,其中,指定长度等于片段的字节数,并将片段标志位设置为表征当前片段不是完整远程过程调用请求编码序列的所有片段中最后一个片段。
步骤S603:镜像服务器接收原游戏服务器根据远程过程调用请求编码序列返回的玩家角色数据。
从上述附图6示例的技术方案可知,在远程过程调用请求编码序列较大时,通过将其进行截断处理,并按照截断所得片段发送,避免镜像服务器占用大量的系统内存,使得内存使用保持平稳可控,并且通过序列截断技术实现了将文件作为进程参数传输给原游戏服务器,并且,每一个片段被发送出去之后,可以立即进行下一个片段的编码工作,无需等待整个远程过程调用请求编码完成,因而提高了内容的传输效率。
上述本申请实施例提供的支持跨服游戏的方法,一方面,玩家只需要将玩法请求发送至网关服务器,后续由网关服务器触发游戏跨服玩法或游戏原服玩法,换言之,玩家只需要登录网关服务器即可实现游戏跨服玩法或游戏原服玩法,无需来回登录镜像服务器和原游戏服务器,于玩家而言,操作流程大大简化;另一方面,镜像服务器将参与游戏跨服玩法时产生的数据同步或传输至对应玩家角色所在的原游戏服务器,即使参与的是跨服玩法,玩家仍然感同身受是在原游戏服务器进行游戏玩法,从而实现了同时参与游戏跨服玩法和游戏原服玩法。
为便于更好的实施本申请实施例的支持跨服游戏的方法,本申请实施例还提供一种支持跨服游戏的系统。请参阅图7,为本申请实施例提供的支持跨服游戏的系统的结构示意图。该系统包括网关服务器701、镜像服务器702和至少一个原游戏服务器703,其中:
网关服务器701,用于接收玩家角色所在终端704发送的携带协议号的玩法请求,根据协议号判断玩家是否请求进行游戏跨服玩法,若玩家是请求进行游戏跨服玩法,则将游戏跨服玩法协议发送至镜像服务器702,否则,将游戏原服玩法协议发送至玩家角色所在的原游戏服务器703,其中,玩法请求携带协议号;
镜像服务器702,用于将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器703。
请参阅图8,为本申请另一实施例提供的支持跨服游戏的系统的结构示意图。该支持游戏多服务器玩法的系统可以包括网关服务器801、镜像服务器802和至少一个原游戏服务器803,网关服务器801包括接收模块804、判断模块805和发送模块806,镜像服务器802包括第一数据输送模块807,其中:
接收模块804,用于接收玩家角色所在终端发送的玩法请求,其中,玩法请求携带协议号;
判断模块805,用于根据所述协议号判断玩家角色所在终端是否请求进行游戏跨服玩法;
发送模块806,用于若判断模块805的判断结果为玩家角色所在终端是请求进行游戏跨服玩法,则将游戏跨服玩法协议号发送至镜像服务器802,否则,将游戏原服玩法协议号发送至玩家角色所在的原游戏服务器803;
第一数据输送模块807,用于将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器803。
可选的,图8示例的第一数据输送模块807具体用于通过远程过程调用,将游戏跨服玩法时产生的第一数据传输至对应玩家角色所在的原游戏服务器803;或者通过远程过程调用,将游戏跨服玩法时产生的第二数据传输至对应玩家角色所在的原游戏服务器803,使原游戏服务器803将玩家角色数据修改为与第二数据一致。
可选的,上述图8示例的第一数据输送模块807中,其通过远程过程调用,将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器803可以是:接收原游戏服务器803通过会话发送的远程过程调用请求,处理远程过程调用请求,若处理远程过程调用请求的时间达到预设时长,则通过会话发送通知消息至原游戏服务器803,响应于远程过程调用请求,将游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器803,其中,设定的值小于会话超时时间的值。
可选的,上述图8示例的第一数据输送模块807中,其通过远程过程调用,将游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器803可以是:根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理,并将初始化后的接口实例存储至镜像服务器802的本地缓存,响应于原游戏服务器803发送的远程过程调用请求,在确定本地缓存存在远程过程调用请求所调用服务对应的接口实例后,使用远程过程调用请求所调用服务对应的接口实例对远程过程调用请求进行处理,根据远程过程调用请求的处理结果,将游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器803。
请参阅图9,为本申请另一实施例提供的支持跨服游戏的系统的结构示意图。图9与图8在区别在于:镜像服务器802还包括查询模块901和第二数据传输模块903,其中:
查询模块901,用于在玩家角色参与游戏跨服玩法之前,查询是否已将玩家角色数据从原游戏服务器803传输至镜像服务器802;
第二数据传输模块903,用于若未将玩家角色数据从原游戏服务器803传输至镜像服务器802,则通过远程过程调用,使玩家角色数据从原游戏服务器803传输至镜像服务器802。
可选的,上述图9示例的第二数据传输模块903具体用于创建与远程过程对应的信标,将远程过程调用请求发送至原游戏服务器803,将远程过程对应的线程挂起,等待原游戏服务器803根据远程过程调用请求返回玩家角色数据,在接收到玩家角色数据时,将信标的状态变更为有信号状态,其中,信标的初始状态为无信号状态。
可选的,上述图9示例的第二数据传输模块903具体用于将远程过程调用请求封装成数据结构存储在消息队列中,在检测到消息队列中有消息需要处理时,从消息队列的头部取出第一个远程过程调用请求,对远程过程调用请求进行编码,得到远程过程调用请求编码序列,并在远程过程调用请求编码序列长度大于预设长度时对远程过程调用请求编码序列进行截断,按照截断所得片段向原游戏服务器803发送远程过程调用请求编码序列,接收原游戏服务器803根据远程过程调用请求编码序列返回的玩家角色数据,其中,每个片段具有截断标志位,用于表征该片段是否为远程过程调用消息的所有片段中最后一个片段。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的支持跨服游戏的系统,一方面,玩家只需要将玩法请求发送至网关服务器,后续由网关服务器触发游戏跨服玩法或游戏原服玩法,换言之,玩家只需要登录网关服务器即可实现游戏跨服玩法或游戏原服玩法,无需来回登录镜像服务器和原游戏服务器,于玩家而言,操作流程大大简化;另一方面,镜像服务器将参与游戏跨服玩法时产生的数据同步或传输至对应玩家角色所在的原游戏服务器,即使参与的是跨服玩法,玩家仍然感同身受是在原游戏服务器进行游戏玩法,从而实现了同时参与游戏跨服玩法和游戏原服玩法。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图10所示,图10为本申请实施例提供的计算机设备的结构示意图。该计算机设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是计算机设备400的控制中心,利用各种接口和线路连接整个计算机设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备400的各种功能和处理数据,从而对计算机设备400进行整体监控。
在本申请实施例中,计算机设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
网关服务器接收玩家角色所在终端发送的玩法请求,其中,玩法请求携带协议号;网关服务器根据玩法请求携带的协议号判断玩家角色所在终端是否请求进行游戏跨服玩法;若玩家角色所在终端是请求进行游戏跨服玩法,则网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至玩家角色所在的原游戏服务器;镜像服务器将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图10所示,计算机设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
在本申请实施例中,通过处理器401执行游戏应用程序在触控显示屏403上生成图形用户界面,图形用户界面上的虚拟场景中包含至少一个技能控制区域,技能控制区域中包含至少一个技能控件。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一计算机设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给计算机设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图10中未示出,计算机设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,一方面,玩家只需要将玩法请求发送至网关服务器,后续由网关服务器触发游戏跨服玩法或游戏原服玩法,换言之,玩家只需要登录网关服务器即可实现游戏跨服玩法或游戏原服玩法,无需来回登录镜像服务器和原游戏服务器,于玩家而言,操作流程大大简化;另一方面,镜像服务器将参与游戏跨服玩法时产生的数据同步或传输至对应玩家角色所在的原游戏服务器,即使参与的是跨服玩法,玩家仍然感同身受是在原游戏服务器进行游戏玩法,从而实现了同时参与游戏跨服玩法和游戏原服玩法。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种支持跨服游戏的方法中的步骤。例如,该计算机程序可以执行如下步骤:
网关服务器接收玩家角色所在终端发送的玩法请求,其中,玩法请求携带协议号;网关服务器根据玩法请求携带的协议号判断玩家角色所在终端是否请求进行游戏跨服玩法;若玩家角色所在终端是请求进行游戏跨服玩法,则网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至玩家角色所在的原游戏服务器;镜像服务器将玩家角色参与游戏跨服玩法时产生的数据同步或传输至玩家角色所在的原游戏服务器。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种支持跨服游戏的方法中的步骤,因此,可以实现本申请实施例所提供的任一种支持游戏多服务器玩法的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种支持跨服游戏的方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种支持跨服游戏的方法,其特征在于,包括:
网关服务器接收玩家角色所在终端发送的玩法请求,所述玩法请求携带协议号;
所述网关服务器根据所述协议号判断所述玩家角色所在终端是否请求进行游戏跨服玩法;
若所述玩家角色所在终端是请求进行游戏跨服玩法,则所述网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至所述玩家角色所在的原游戏服务器;
所述镜像服务器将所述玩家角色参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器。
2.如权利要求1所述支持跨服游戏的方法,其特征在于,所述镜像服务器将所述玩家角色参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器,包括:
通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第一数据传输至对应玩家角色所在的原游戏服务器;或者
通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第二数据传输至对应玩家角色所在的原游戏服务器,使所述原游戏服务器将所述玩家角色数据修改为与所述第二数据一致。
3.如权利要求2所述支持跨服游戏的方法,其特征在于,所述通过远程过程调用,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器,包括:
所述镜像服务器接收所述原游戏服务器通过会话发送的远程过程调用请求;
所述镜像服务器处理所述远程过程调用请求;
若所述镜像服务器处理所述远程过程调用请求的时间达到预设时长,则通过所述会话发送通知消息至所述原游戏服务器,所述设定的值小于所述会话超时时间的值;
响应于所述远程过程调用请求,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
4.如权利要求2所述支持跨服游戏的方法,其特征在于,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据传输至对应玩家角色所在的原游戏服务器,包括:
所述镜像服务器根据其工作状态对一个或多个远程过程调用接口预先进行初始化处理,并将初始化后的接口实例存储至镜像服务器的本地缓存;
响应于所述原游戏服务器发送的远程过程调用请求,在确定所述本地缓存存在所述远程过程调用请求所调用服务对应的接口实例后,所述镜像服务器使用所述远程过程调用请求所调用服务对应的接口实例对所述远程过程调用请求进行处理;
根据所述远程过程调用请求的处理结果,所述镜像服务器将所述游戏跨服玩法时产生的第一数据或第二数据发送至对应玩家角色所在的原游戏服务器。
5.如权利要求1所述支持跨服游戏的方法,其特征在于,所述方法还包括:
在所述玩家角色参与所述游戏跨服玩法之前,所述镜像服务器查询是否已将所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器;
若未将所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器,则通过远程过程调用,所述镜像服务器使所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器。
6.如权利要求5所述支持跨服游戏的方法,其特征在于,所述通过远程过程调用,所述镜像服务器使所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器,包括:
所述镜像服务器创建与远程过程对应的信标,所述信标的初始状态为无信号状态;
所述镜像服务器将远程过程调用请求发送至所述原游戏服务器;
所述镜像服务器将所述远程过程对应的线程挂起,等待所述原游戏服务器根据所述远程过程调用请求返回玩家角色数据;
在接收到所述玩家角色数据时,所述镜像服务器将所述信标的状态变更为有信号状态。
7.如权利要求5所述支持跨服游戏的方法,其特征在于,所述通过远程过程调用,所述镜像服务器使所述玩家角色数据从所述原游戏服务器传输至所述镜像服务器,包括:
所述镜像服务器将远程过程调用请求封装成数据结构存储在消息队列中,在检测到所述消息队列中有消息需要处理时,从所述消息队列的头部取出第一个远程过程调用请求;
所述镜像服务器对所述远程过程调用请求进行编码,得到远程过程调用请求编码序列,并在所述远程过程调用请求编码序列长度大于预设长度时对所述远程过程调用请求编码序列进行截断,按照截断所得片段向所述原游戏服务器发送所述远程过程调用请求编码序列,每个所述片段具有截断标志位,用于表征该片段是否为远程过程调用消息的所有片段中最后一个片段;
所述镜像服务器接收所述原游戏服务器根据所述远程过程调用请求编码序列返回的所述玩家角色数据。
8.一种支持跨服游戏的系统,其特征在于,所述系统包括网关服务器、镜像服务器和至少一个原游戏服务器,所述网关服务器包括接收模块、判断模块和发送模块,所述镜像服务器包括第一数据输送模块,其中:
所述接收模块,用于接收玩家角色所在终端发送的玩法请求,所述玩法请求携带协议号;
所述判断模块,用于根据所述协议号判断所述玩家角色所在终端是否请求进行游戏跨服玩法;
所述发送模块,用于若所述判断模块的判断结果为所述玩家角色所在终端是请求进行游戏跨服玩法,则所述网关服务器将游戏跨服玩法协议号发送至镜像服务器,否则,将游戏原服玩法协议号发送至所述玩家角色所在的原游戏服务器;
所述第一数据输送模块,用于将所述玩家角色参与所述游戏跨服玩法时产生的数据同步或传输至所述玩家角色所在的原游戏服务器。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1至7任意一项所述的支持跨服游戏的方法中的步骤。
10.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1至7任意一项所述的支持跨服游戏的方法中的步骤。
CN202011230489.3A 2020-11-06 2020-11-06 支持跨服游戏的方法、系统、存储介质及计算机设备 Active CN112245904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011230489.3A CN112245904B (zh) 2020-11-06 2020-11-06 支持跨服游戏的方法、系统、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011230489.3A CN112245904B (zh) 2020-11-06 2020-11-06 支持跨服游戏的方法、系统、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN112245904A true CN112245904A (zh) 2021-01-22
CN112245904B CN112245904B (zh) 2024-03-12

Family

ID=74265360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011230489.3A Active CN112245904B (zh) 2020-11-06 2020-11-06 支持跨服游戏的方法、系统、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN112245904B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127570A (zh) * 2021-05-18 2021-07-16 上海莉莉丝科技股份有限公司 分布式服务器的数据操作方法、系统、设备及存储介质
CN113209608A (zh) * 2021-05-21 2021-08-06 珠海金山网络游戏科技有限公司 跨服务器系统及方法
CN113244607A (zh) * 2021-05-13 2021-08-13 北京畅游天下网络技术有限公司 Mmorpg游戏的对象匹配方法、服务器群组及相关设备
CN113476856A (zh) * 2021-07-30 2021-10-08 网易(杭州)网络有限公司 信息获取方法、装置、设备及存储介质
CN113476831A (zh) * 2021-07-27 2021-10-08 北京果仁互动科技有限公司 跨服方法、系统和相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556491A (zh) * 2003-12-30 2004-12-22 北京金山数字娱乐科技有限公司 服务器系统
US20130274021A1 (en) * 2012-04-11 2013-10-17 Meteor Entertainment, Inc. Computing platform for supporting massively multi-player online games
CN109936539A (zh) * 2017-12-15 2019-06-25 腾讯科技(深圳)有限公司 帐号信息的传输方法
CN110585697A (zh) * 2019-09-09 2019-12-20 网易(杭州)网络有限公司 一种游戏中的跨服控制方法及装置
CN111282262A (zh) * 2020-01-13 2020-06-16 网易(杭州)网络有限公司 游戏服务器通信的方法及装置
CN111530074A (zh) * 2020-04-21 2020-08-14 上海莉莉丝科技股份有限公司 游戏服务器系统及游戏服务器的数据处理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556491A (zh) * 2003-12-30 2004-12-22 北京金山数字娱乐科技有限公司 服务器系统
US20130274021A1 (en) * 2012-04-11 2013-10-17 Meteor Entertainment, Inc. Computing platform for supporting massively multi-player online games
CN109936539A (zh) * 2017-12-15 2019-06-25 腾讯科技(深圳)有限公司 帐号信息的传输方法
CN110585697A (zh) * 2019-09-09 2019-12-20 网易(杭州)网络有限公司 一种游戏中的跨服控制方法及装置
CN111282262A (zh) * 2020-01-13 2020-06-16 网易(杭州)网络有限公司 游戏服务器通信的方法及装置
CN111530074A (zh) * 2020-04-21 2020-08-14 上海莉莉丝科技股份有限公司 游戏服务器系统及游戏服务器的数据处理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113244607A (zh) * 2021-05-13 2021-08-13 北京畅游天下网络技术有限公司 Mmorpg游戏的对象匹配方法、服务器群组及相关设备
CN113244607B (zh) * 2021-05-13 2023-02-24 北京畅游天下网络技术有限公司 Mmorpg游戏的对象匹配方法、服务器群组及相关设备
CN113127570A (zh) * 2021-05-18 2021-07-16 上海莉莉丝科技股份有限公司 分布式服务器的数据操作方法、系统、设备及存储介质
CN113127570B (zh) * 2021-05-18 2022-11-04 上海莉莉丝科技股份有限公司 分布式服务器的数据操作方法、系统、设备及存储介质
CN113209608A (zh) * 2021-05-21 2021-08-06 珠海金山网络游戏科技有限公司 跨服务器系统及方法
CN113476831A (zh) * 2021-07-27 2021-10-08 北京果仁互动科技有限公司 跨服方法、系统和相关装置
CN113476856A (zh) * 2021-07-30 2021-10-08 网易(杭州)网络有限公司 信息获取方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112245904B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN112245904B (zh) 支持跨服游戏的方法、系统、存储介质及计算机设备
EP4029582A1 (en) Information processing method, system and apparatus, and device and storage medium
KR20190103307A (ko) 정보 처리 방법 및 장치 그리고 서버
CN113101652A (zh) 信息展示方法、装置、计算机设备及存储介质
WO2022247540A1 (zh) 设备控制方法、装置、计算机设备及存储介质
JP2015139565A (ja) ゲームに関わるサーバコンピュータ及びゲームプログラム
CN113350782A (zh) 处理网络游戏异常的方法、装置、存储介质及计算机设备
CN113398590A (zh) 声音处理方法、装置、计算机设备及存储介质
CN112169327A (zh) 一种云游戏的控制方法以及相关装置
CN115040873A (zh) 一种游戏分组处理方法、装置、计算机设备及存储介质
CN111880929A (zh) 一种实例管理方法及装置、计算机设备
CN113398566A (zh) 游戏的显示控制方法、装置、存储介质及计算机设备
CN113181632A (zh) 一种信息提示方法、装置、存储介质及计算机设备
WO2024051148A1 (zh) 云游戏控制方法、装置、电子设备及存储介质
CN115501581A (zh) 一种游戏控制方法、装置、计算机设备及存储介质
CN115888101A (zh) 虚拟角色的状态切换方法、装置、存储介质及电子设备
CN114225412A (zh) 信息处理方法、装置、计算机设备及存储介质
CN115193043A (zh) 一种游戏信息发送方法、装置、计算机设备及存储介质
CN113413600A (zh) 信息处理方法、装置、计算机设备及存储介质
CN113332721A (zh) 一种游戏控制方法、装置、计算机设备及存储介质
CN113426115A (zh) 游戏角色的展示方法、装置和终端
CN112799754A (zh) 信息处理方法、装置、存储介质及计算机设备
CN116212366A (zh) 游戏登入方法、装置、系统、计算机设备和存储介质
CN115531876A (zh) 画面渲染方法、装置、存储介质及电子设备
CN114632328A (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
GR01 Patent grant
GR01 Patent grant