CN111773738B - 一种游戏观战方法和装置 - Google Patents

一种游戏观战方法和装置 Download PDF

Info

Publication number
CN111773738B
CN111773738B CN202010814532.4A CN202010814532A CN111773738B CN 111773738 B CN111773738 B CN 111773738B CN 202010814532 A CN202010814532 A CN 202010814532A CN 111773738 B CN111773738 B CN 111773738B
Authority
CN
China
Prior art keywords
sightseeing
server
data
player
request
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.)
Active
Application number
CN202010814532.4A
Other languages
English (en)
Other versions
CN111773738A (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 CN202010814532.4A priority Critical patent/CN111773738B/zh
Publication of CN111773738A publication Critical patent/CN111773738A/zh
Application granted granted Critical
Publication of CN111773738B publication Critical patent/CN111773738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • 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/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/577Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player for watching a game played by other players

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供了一种游戏观战方法和装置,涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:战斗服务器接收大厅服务器发送的观战请求;战斗服务器根据观战请求获取针对预设被观战玩家的观战数据;战斗服务器向数据库集群发送观战数据;数据库集群用于向与预设被观战玩家对应的观战频道发布观战数据;战斗服务器响应观战请求生成请求结果,并向大厅服务器发送请求结果;大厅服务器用于根据请求结果订阅相应的观战频道。通过采用数据库集群的订阅‑发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。

Description

一种游戏观战方法和装置
技术领域
本发明涉及网络游戏技术领域,特别是涉及一种游戏观战方法和一种游戏观战装置。
背景技术
在现有的网络游戏中,可以为玩家提供观战模式。观战模式指的是网络游戏中玩家观看正在进行中的竞技比赛的一种途径;进入观战模式可以让观战的玩家欣赏和学习其他玩家的游戏操作,以及增强战斗外与战斗内的玩家之间的互动,同时还能为一场战斗提供裁判视角等其他功能。以及为了保证正在进行中的竞技比赛的公平性,观战玩家观看到的一般是战斗内情况的延时画面,即所谓的延时观战。
现有的观战方案主要可以有两种方式,第一种方式可以是观战玩家的游戏客户端直接接入用于进行竞技比赛的战斗服务器,战斗服务器对正常游戏数据包进行过滤和加工后得到观战数据,并直接将观战数据发送给游戏客户端,然后由观战玩家的游戏客户端回放观战数据从而实现观战;第二种方式可以是游戏服务器为观战玩家分配和管理观战代理服务器,并由观战玩家的游戏客户端接入所分配的观战代理服务器,然后通过观战代理服务器连接到用于进行竞技比赛的战斗服务器以及向游戏客户端转发观战数据,最后由游戏客户端回放观战数据从而实现观战。
然而若采用上述第一种游戏客户端-战斗服务器的通信逻辑方式,观战玩家通过战斗服务器进行观战的观战逻辑,与通过战斗服务器进行战斗的战斗逻辑之间进行耦合,随着观战玩家增多,即接入战斗服务器的游戏客户端增多,战斗服务器所需要向游戏客户端发送的观战数据包也增多,导致战斗服务器的性能下降,影响正在进行竞技战斗的玩家的游戏体验;若采用上述第二种游戏客户端-观战代理服务器-战斗服务器的通信逻辑方式,由于观战代理服务器的设计、部署和管理比较复杂,战斗服务器需要向多个观战代理服务器发送观战数据包,随着观战代理服务器的增加将会造成战斗服务器的性能下降。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种游戏观战方法和相应的一种游戏观战装置。
为了解决上述问题,本发明实施例公开了一种游戏观战方法,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述战斗服务器接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
所述战斗服务器根据所述观战请求获取针对所述预设被观战玩家的观战数据;
所述战斗服务器向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
所述战斗服务器响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
可选地,在所述战斗服务器接收所述大厅服务器发送的观战请求之前,还包括:
所述战斗服务器确定被观战玩家,以及获取与所述被观战玩家对应的观战元数据;
所述战斗服务器向所述数据库集群发送所述观战元数据;所述数据库集群用于向大厅服务器提供所述观战元数据;所述大厅服务器用于根据所述观战元数据在所述游戏客户端的界面展示被观战玩家以及被观战玩家信息;所述被观战玩家信息用于所述游戏客户端确定预设被观战玩家。
可选地,所述战斗服务器向所述数据库集群发送所述观战数据,包括:
所述战斗服务器根据所述观战请求建立与所述预设被观战玩家对应的数据缓存对象;
所述战斗服务器向所述数据缓存对象写入所述观战数据;所述观战数据具有时间戳;
当所述观战数据的时间戳小于或等于预设时间戳时,所述战斗服务器通过所述数据缓存对象向所述数据库集群发送所述观战数据。
可选地,在所述战斗服务器向所述数据库集群发送所述观战数据之后,还包括:
当检测到所述预设被观战玩家退出或战斗结束时,所述战斗服务器生成被观战玩家切换消息,并向所述数据库集群发送所述被观战玩家切换消息;所述数据库集群用于向所述预设被观战玩家对应的观战频道发布所述被观战玩家切换消息。
本发明实施例还公开了一种游戏观战方法,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述游戏客户端生成针对预设被观战玩家的观战请求;
所述游戏客户端通过所述大厅服务器向所述战斗服务器发送所述观战请求;
所述游戏客户端接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
所述游戏客户端根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
所述游戏客户端根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
可选地,所述游戏客户端生成针对预设被观战玩家的观战请求,包括:
所述游戏客户端接收所述大厅服务器发送的针对被观战玩家的观战元数据;所述观战元数据为所述大厅服务器向所述数据库集群拉取的数据;
所述游戏客户端对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
所述游戏客户端从所述被观战玩家中确定预设被观战玩家,并生成针对所述预设被观战玩家的观战请求。
可选地,所述游戏客户端包括对应的玩家实体以及对应的观战数据重播器,所述游戏客户端根据所述请求结果观看观战频道发送的针对所述预设被观战玩家的观战数据,包括:
所述游戏客户端通过所述对应的玩家实体接收所述观战频道发送的所述预设被观战玩家的观战数据;所述观战数据包括时间戳信息;
所述游戏客户端通过所述对应的观战数据重播器,并按照所述时间戳信息对所述预设被观战玩家的观战数据进行回放。
本发明实施例还公开了一种游戏观战方法,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述大厅服务器接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
所述大厅服务器向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
所述大厅服务器根据所述请求结果订阅所述数据库集群的观战频道;
所述大厅服务器通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
可选地,在所述大厅服务器接收所述游戏客户端发送的观战请求之前,还包括:
所述大厅服务器向所述数据库集群拉取针对被观战玩家的观战元数据;所述观战元数据为所述战斗服务器向所述数据库集群写入的数据;
所述大厅服务器向所述游戏客户端发送所述被观战玩家的观战元数据;所述游戏客户端用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家。
本发明实施例还公开了一种游戏观战装置,应用于战斗服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求接收模块,用于接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
观战数据获取模块,用于根据所述观战请求获取针对所述预设被观战玩家的观战数据;
观战数据发送模块,用于向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
请求结果发送模块,用于响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
可选地,在所述战斗服务器接收所述大厅服务器发送的观战请求之前,还包括:
观战元数据获取模块,用于确定被观战玩家,以及获取与所述被观战玩家对应的观战元数据;
观战元数据发送模块,用于向所述数据库集群发送所述观战元数据;所述数据库集群用于向大厅服务器提供所述观战元数据;所述大厅服务器用于根据所述观战元数据在所述游戏客户端的界面展示被观战玩家以及被观战玩家信息;所述被观战玩家信息用于所述游戏客户端确定预设被观战玩家。
可选地,所述观战数据发送模块包括:
数据缓存对象建立子模块,用于根据所述观战请求建立与所述预设被观战玩家对应的数据缓存对象;
观战数据写入子模块,用于向所述数据缓存对象写入所述观战数据;所述观战数据具有时间戳;
数据缓存对象发送子模块,用于当所述观战数据的时间戳小于或等于预设时间戳时,通过所述数据缓存对象向所述数据库集群发送所述观战数据。
可选地,在所述战斗服务器向所述数据库集群发送所述观战数据之后,还包括:
被观战玩家切换消息发送子模块,用于当检测到所述预设被观战玩家退出或战斗结束时,生成被观战玩家切换消息,并向所述数据库集群发送所述被观战玩家切换消息;所述数据库集群用于向所述预设被观战玩家对应的观战频道发布所述被观战玩家切换消息。
本发明实施例还公开了一种游戏观战装置,应用于游戏客户端,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求生成模块,用于生成针对预设被观战玩家的观战请求;
观战请求发送模块,用于通过所述大厅服务器向所述战斗服务器发送所述观战请求;
请求结果接收模块,用于接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道获取模块,用于根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
观战数据观看模块,用于根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
可选地,所述观战请求生成模块包括:
观战元数据接收子模块,用于接收所述大厅服务器发送的针对被观战玩家的观战元数据;所述观战元数据为所述大厅服务器向所述数据库集群拉取的数据;
被观战玩家展示子模块,用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
观战请求生成子模块,用于从所述被观战玩家中确定预设被观战玩家,并生成针对所述预设被观战玩家的观战请求。
可选地,所述游戏客户端包括对应的玩家实体以及对应的观战数据重播器,所述观战数据观看模块包括:
观战数据接收子模块,用于通过所述对应的玩家实体接收所述观战频道发送的所述预设被观战玩家的观战数据;所述观战数据包括时间戳信息;
观战数据回放子模块,用于通过所述对应的观战数据重播器,并按照所述时间戳信息对所述预设被观战玩家的观战数据进行回放。
本发明实施例还公开了一种游戏观战装置,应用于大厅服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求接收模块,用于接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
请求结果接收模块,用于向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道订阅模块,用于根据所述请求结果订阅所述数据库集群的观战频道;
观战数据发送模块,用于通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
可选地,在所述大厅服务器接收所述游戏客户端发送的观战请求之前,还包括:
观战元数据拉取模块,用于向所述数据库集群拉取针对被观战玩家的观战元数据;所述观战元数据为所述战斗服务器向所述数据库集群写入的数据;
观战元数据发送模块,用于向所述游戏客户端发送所述被观战玩家的观战元数据;所述游戏客户端用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述游戏观战方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述游戏观战方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,战斗服务器在接收大厅服务器发送的观战请求之后,可以根据观战请求获取针对预设被观战玩家的观战数据,然后战斗服务器可以向数据库集群发送观战数据,以及向大厅服务器发送请求结果,以使得数据库集群向对应的观战频道发布观战数据,且大厅服务器可以根据请求结果订阅相应的观战频道。通过大厅服务器订阅数据库集群提供的观战频道,以使得大厅服务器可以通过观战频道获取战斗服务器所发布的观战数据,即通过采用数据库集群的订阅-发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。
附图说明
图1是本发明实施例中的一种消息发布-订阅模式示意图;
图2是本发明的一种游戏观战方法实施例一的步骤流程图;
图3是本发明实施例中的一种收集观战元数据的流程图;
图4是本发明实施例中的一种写入观战元数据的过程示意图;
图5是本发明实施例中的一种建立数据缓存对象的流程图;
图6是本发明实施例中的一种切换被观战玩家的流程图;
图7是本发明实施例中的一种进行定期轮询的流程图;
图8是本发明的一种游戏观战方法实施例二的步骤流程图;
图9是本发明实施例中的一种元数据读取和解析过程的示意图;
图10是本发明实施例中的一种请求观战的过程示意图;
图11是本发明实施例中的一种客户端解析观战数据的步骤流程图;
图12是本发明的一种游戏观战方法实施例三的步骤流程图;
图13是本发明实施例中的一种订阅观战频道的过程示意图;
图14是本发明的一种游戏观战装置实施例一的结构框图;
图15是本发明的一种游戏观战装置实施例二的结构框图;
图16是本发明的一种游戏观战装置实施例三的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在现有技术中,对于进行观战模式的方案主要有以下两种:
第一种方案是基于游戏客户端-战斗服务器的通信逻辑,即可以将观战玩家的游戏客户端直接接入用于进行竞技比赛的战斗服务器,战斗服务器对正常游戏数据包进行过滤和加工后得到观战数据,并可以直接将观战数据发送给游戏客户端,然后由观战玩家的游戏客户端回放观战数据从而实现观战;
第二种方案是基于游戏客户端-观战代理服务器-战斗服务器的通信逻辑,即可以通过游戏服务器为观战玩家分配和管理观战代理服务器,并由观战玩家的游戏客户端接入所分配的观战代理服务器,然后通过观战代理服务器连接到用于进行竞技比赛的战斗服务器以及向游戏客户端转发观战数据,最后由游戏客户端回放观战数据从而实现观战。
然而,在第一种方案中观战玩家通过战斗服务器进行观战的观战逻辑,与通过战斗服务器进行战斗的战斗逻辑之间进行耦合,随着观战玩家增多,即接入战斗服务器的游戏客户端增多,战斗服务器所需要向游戏客户端发送的观战数据包也增多,导致战斗服务器的性能下降,影响正在进行竞技战斗的玩家的游戏体验;在第二种方案中由于观战代理服务器的设计、部署和管理比较复杂,战斗服务器需要向多个观战代理服务器发送观战数据包,随着观战代理服务器的增加将会造成战斗服务器的性能下降。
基于上述由于多人观战的观战功能所引起的战斗服务器性能下降的问题,本发明实施例提出的一种游戏观战方法和一种游戏观战装置,本发明实施例的核心思想是通过大厅服务器订阅数据库集群提供的观战频道,以使得大厅服务器可以通过观战频道获取战斗服务器所发布的观战数据,即通过采用数据库集群的订阅-发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。
在本发明实施例的游戏观战方法,可以涉及到游戏客户端、战斗服务器、大厅服务器以及数据库集群。
其中,游戏客户端指的是游戏玩家使用游戏账号进行登录的客户端,即为游戏玩家的使用端,可以用于连接相应的服务器为游戏玩家进行服务;
战斗服务器指的是游戏玩家在通过游戏客户端进行游戏的登录之后,可以为游戏客户端提供进行竞技比赛类玩法的服务器;
大厅服务器指的是游戏玩家在通过客户端进行游戏的登录之后,可以为游戏客户端提供进行角色选取以及一些常规玩法的服务器;
数据库集群可以指的是利用至少两台或者多台数据库服务器所构成的一个虚拟单一数据库的逻辑映像,在本发明实施例中,所采用的用于构成集群的数据库可以是一种开源的基于内存的同时也具备可持久化能力的键-值数据库Redis,则由至少两台或者多台键-值数据库Redis所构成的虚拟单一数据库可以是Redis集群Redis Cluster。其中,Redis集群Redis Cluster可以是一种去中心化且具备高可用性的Redis集群。
参照图1,示出了本发明实施例中的一种消息发布-订阅模式示意图,该消息发布-订阅模式可以通过在数据库集群(指的是Redis集群)的发布-订阅消息通信模式之上进行封装实现。如图1所示,该消息发布-订阅模式可以涉及到发布者、频道以及订阅者,即可以基于数据库集群的发布-订阅消息通信模式,通过发布者向频道发布消息,以及通过订阅者订阅频道以获取在该频道发布的消息。其中,发布者在不同频道发布的消息可以相同,也可以不同,以及订阅者在不同的频道进行接收的消息可以相同,也可以不同,对此,本发明实施例不加以限制。
以下,通过具体实施例对本发明实施例的实现的消息订阅-发布进行说明。
参照图2,示出了本发明的一种游戏观战方法实施例一的步骤流程图,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下步骤:
步骤201,所述战斗服务器确定被观战玩家,以及获取与所述被观战玩家对应的观战元数据;
在本发明的一种实施例中,玩家在进行观战模式以观看正在进行竞技比赛中的玩家的比赛操作时,首先需要选择参与竞技比赛中的某个玩家为目标被观战玩家,即游戏客户端需要对目标被观战玩家进行选择,此时战斗服务器可以首先确定被观战玩家,以及获取与被观战玩家对应的观战元数据,以将被观战玩家的观战元数据写入数据库集群。
在实际应用中,假设正在进行竞技比赛的网络游戏为MOBA类型游戏,即为一种涉及到多人在线的战术竞技游戏,由于正在进行竞技比赛中的玩家可以有多人,此时战斗服务器确定的被观战玩家也可以有多人,且被观战玩家可以是在参与竞技比赛中允许被观战的玩家,那么战斗服务器获取的观战元数据可以指的是被允许观战的玩家所对应的观战元数据。
其中,战斗服务器所获取的被观战玩家的观战元数据,可以包括描述网络游戏中一场竞技比赛的战斗编号、参赛玩家、服务器地址等信息数据,其可以用来展示在玩家的客户端界面,以供玩家查看和开启观战模式;战斗服务器可以通过收集观战元数据的方式,对被观战玩家的观战元数据进行获取。
在一种优选的实施例中,参照图3,示出了本发明实施例中的一种收集观战元数据的流程图,战斗服务器对观战元数据收集的过程可以包括如下步骤:
(1)当战斗服务器在对观战元数据进行收集时,为了将收集到的观战元数据发送至数据库集群(这里指的是Redis集群),可以初始化一个用于存储Redis命令的临时变量列表,例如将该临时变量列表命名为pipeline_commands;
(2)战斗服务器内部具有对应的战场实体Battle,该战场实体Battle可以用于负责网络游戏中的某场竞技比赛,此时可以通过战场实体Battle的管理逻辑对正在进行竞技比赛的所有参赛玩家对应的玩家实体进行获取;
(3)判断获取的所有玩家实体是否能被观战,只有允许被观战的玩家,才需要对其进行观战元数据的收集,其中,对所有玩家实体进行判断可以通过逻辑循环的方式进行判断,例如,可以存在用于表示循环的次数i和用于表示参与竞技比赛的场内玩家数量j这两个变量,即通过变量i以及变量j对所有实体玩家进行循环判断;
(4)在对所有玩家实体通过逻辑循环的方式进行判断时,若该玩家实体允许被观战,可以准备该玩家的观战元数据,即对该被观战玩家的观战元数据进行收集。战场实体Battle中可以包含用于维护观战的实体SpectateManager,此时可以通过实体SpectateManager将某个被观战玩家的观战元数据划分为简要部分以及详细部分进行收集,简要部分可以指的是竞技比赛的比赛类型、参赛玩家角色等少量信息,可以用于展示在玩家的客户端界面上供玩家进行浏览;详细部分可以指的是比赛对应服务器地址、地图类型等信息,可以用于仅当玩家在客户端界面上滑动到某个被观战玩家时,大厅服务器才会向数据库集群拉取针对该被观战玩家的详细信息,并对与被观战玩家对应的详细信息进行展示;其中,当点击客户端界面上该被观战玩家的信息时,客户端将解析接收到针对该被观战玩家的详细部分数据,从而开启观战。
(5)在分别对所有允许被观战的玩家所对应的观战元数据的简要部分以及详细部分进行收集之后,可以将当前收集的简要部分以及详细部分组织成Redis命令的参数形式,并加入用于存储Redis命令的临时变量列表pipeline_commands;
(6)当将所有允许被观战的玩家所对应的观战元数据临时保存在临时变量列表pipeline_commands之后,可以将临时变量列表pipeline_commands中的命令,即所有观战元数据的简要部分以及详细部分,发送给数据库集群Redis Cluster,以便数据库集群写入接收的观战元数据。
在本发明的实施例中,战斗服务器可以遍历参与正在进行竞技比赛的所有参赛玩家,在确定参赛玩家可以被观战,即确定允许被观战的参赛玩家之后,可以分为简要部分以及详细部分对与允许被观战的参赛玩家对应的观战元数据进行准备,并以Redis命令的形式加入到pipeline_commands临时保存;当所有允许被观战的参赛玩家对应的观战元数据均临时进行保存之后,可以通过Redis pipeline管道命令将临时保存在pipeline_commands的数据一次性发送给数据库集群Redis cluster,以提高观战元数据写入数据库集群Redis cluster的写入效率。
步骤202,所述战斗服务器向所述数据库集群发送所述观战元数据;所述数据库集群用于向大厅服务器提供所述观战元数据;所述大厅服务器用于根据所述观战元数据在所述游戏客户端的界面展示被观战玩家以及被观战玩家信息;所述被观战玩家信息用于所述游戏客户端确定预设被观战玩家;
在本发明的一种实施例中,战斗服务器在对参与竞技比赛中的所有允许被观战的玩家进行确定,以及对被观战玩家对应的观战元数据进行收集之后,可以向数据库集群发送收集的观战元数据,以便数据库集群向大厅服务器提供观战元数据,以及大厅服务器用于根据所提供的观战元数据在玩家游戏客户端的界面上展示所有允许被观战的玩家以及允许被观战玩家的被观战玩家信息;其中,被观战玩家信息可以用来给游戏客户端选择目标被观战玩家。
在实际应用中,战斗服务器在向数据库集群发送收集的观战元数据之后,数据库集群可以写入并存储所接收的观战元数据,以便当大厅服务器向数据库集群拉取观战元数据时,数据库集群可以向大厅服务器提供观战元数据。
在一种优选的实施例中,参照图4,示出了本发明实施例中的一种写入观战元数据的过程示意图,数据库集群Redis Cluster在写入观战元数据时,可以通过Redis数据库的访问代理Redis Proxy,以及以Redis管道命令的形式向Redis Cluster进行发送,对观战元数据进行写入的过程可以如下所示:
(1)战斗服务器内部具有对应的战场实体Battle,该战场实体Battle可以用于负责网络游戏中的某场竞技比赛,而战场实体Battle中可以包含用于维护观战的实体SpectateManager,当战场实体Battle检测到竞技比赛开始战斗时,其内部的实体SpectateManager可以准备本次战斗的观战元数据,即准备参与本次竞技比赛中所有允许被观战玩家的观战元数据,准备观战元数据的过程可以如图3所示;(2)在对本次战斗的观战元数据进行准备之后,实体SpectateManager可以将收集的观战元数据发送给Redis数据库的访问代理Redis Proxy,由访问代理Redis Proxy将接收到的观战元数据写入数据库集群Redis Cluster。
步骤203,所述战斗服务器接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
在本发明的一种实施例中,用于提供进行竞技比赛类玩法的战斗服务器可以与用于提供进行角色选取的大厅服务器连接,战斗服务器可以接收大厅服务器发送的观战请求,以便根据观战请求获取预设被观战玩家的观战数据;其中,观战请求可以是游戏客户端针对预设被观战玩家生成的,即根据选定的目标被观战玩家生成的请求。
在实际应用中,战斗服务器在对所有允许被观战玩家的观战元数据进行收集以及写入数据库集群之后,大厅服务器可以向数据库集群拉取所写入的观战元数据,并根据拉取的观战元数据将被观战玩家以及被观战玩家信息展示在玩家游戏客户端界面;玩家在游戏客户端界面的被观战玩家中确定目标被观战玩家之后,可以生成针对确定的目标被观战玩家的观战请求,并通过大厅服务器向战斗服务器发送观战请求。
步骤204,所述战斗服务器根据所述观战请求获取针对所述预设被观战玩家的观战数据;
在本发明的一种实施例中,在接收经由大厅服务器转发的针对目标被观战玩家的观战请求之后,战斗服务器可以根据接收的观战请求,对目标被观战玩家的观战数据进行获取,以便向数据库集群发送以及存储观战数据。
其中,观战数据与上述提到的观战元数据不同,观战数据可以是参与竞技比赛的参赛玩家在进行游戏时产生的原始数据,并在原始数据的基础上经过过滤以及添加额外信息等处理过程后,用于玩家游戏客户端实现游戏回放的数据集合,而不是用于玩家游戏客户端进行浏览和开启观战模式的数据。
在具体实现中,由于战斗服务器可以具有对应的用于负责网络游戏中的某场竞技比赛的战场实体Battle,且战场实体Battle可以包含用于维护观战的实体SpectateManager,请求观战数据的形成过程可以是当实体Spectate Manager接收到针对目标被观战玩家的观战请求之后,战斗内目标被观战玩家可以收到正常同步的消息,此时可以对目标被观战玩家在进行游戏时所产生的原始数据进行额外处理,在进行处理之后得到目标被观战玩家的观战数据。其中,原始数据可以是根据目标被观战玩家所在范围内的所有实体信息构建的快照snapshot,所构建的快照中可以包括为游戏客户端提供重新构建观战所需场景和实体的信息;对原始数据进行额外处理,可以表示为对快照信息进行添加类型msg_type、添加时间戳信息time,以及进行压缩等处理。
需要说明的是,观战数据的类型可以包括快照信息、RPC(Remote Procedure CallProtocol,远程过程调用协议,可以为通信程序之间携带信息数据)方法调用、切换观战目标、战斗结束等,对此,本发明实施例不加以限制。
步骤205,所述战斗服务器向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
在实际应用中,由于观战数据需要采用数据库集群的消息订阅-发布的模式进行发布,战斗服务器在对玩家确定的目标被观战玩家的观战数据进行获取之后,可以向数据库集群发送观战数据,以便数据库集群向与目标被观战玩家对应的观战频道发布观战数据。
在本发明的一种实施例中,步骤205可以包括如下子步骤:
子步骤S11,所述战斗服务器根据所述观战请求建立与所述预设被观战玩家对应的数据缓存对象;
子步骤S12,所述战斗服务器向所述数据缓存对象写入所述观战数据;所述观战数据具有时间戳;
具体的,在根据观战请求对目标被观战玩家的观战数据进行获取之后,战斗服务器还可以根据接收到的观战请求建立与目标被观战玩家对应的数据缓存对象,以便将目标玩家的观战数据写入数据缓存对象,并通过数据库集群向与目标被观战玩家对应的观战频道发布数据缓存对象中的观战数据。其中,所写入到数据缓存对象的观战数据可以具有时间戳。
在一种优选的实施例中,参照图5,示出了本发明实施例中的一种建立数据缓存对象的流程图,其建立数据缓存对象的流程可以如下所示:
(1)当实体Spectate Manager接收到针对目标被观战玩家的观战请求,即假设接收到玩家Soul1被观战请求时,为了对目标被观战玩家的观战数据进行处理,此时可以为目标被观战玩家(即玩家Soul1)建立数据缓存对象Message Cache,并将缓存对象加入到实体Spectate Manager的管理中;
(2)当实体Spectate Manager对目标被观战玩家在游戏进行时产生的原始数据,例如根据目标被观战玩家所在范围内的所有实体信息构建的快照snapshot,进行添加类型msg_type、添加时间戳信息time,以及进行压缩等处理之后,可以将处理过的快照信息,即处理得到的观战数据写入到数据缓存对象Message Cache的内部缓存中;
(3)在将观战数据写入数据缓存对象Message Cache的内部缓存之后,还可以对Message Cache设置时间戳tick_time,且可以周期性地更新这个时间戳。其中,当第一条观战数据写入时,此时可以记录第一条观战数据写入的时间为时间戳tick_time;由于Message Cache的内部缓存采用的是双端队列数据结构,双端队列数据结构指的是当内部缓存的后端加入新数据时,其前端可以查看和移除旧数据,这些操作对应的时间复杂度均为O(1),当将任意一条写入的观战数据发布给玩家时,Message Cache可以及时移除旧数据,可以表现为当某一条观战数据发布给玩家之后,即可移除该条已发布的观战数据,所以时间复杂度均为O(1)表示的是其内部缓存进行数据添加、删除、查看操作所消耗的时间是常量,不会随着写入观战数据的数量增加而导致内部缓存的计算量或缓存时间持续增大。
其中,上述所涉及到的模块包括在战斗实体Battle中具体维护观战的两个模块Spectate Manager以及Message Cache,参照表1,示出了本发明实施例中的一种战斗服务器内部模块的相应代码,即为关于两个模块所对应的UML类图(指的是一般元素和特殊元素之间的分类,可以用于根据该类图来产生相应代码),由于Spectate Manager为一种可以用于维护战斗内观战请求和数据处理的实体,且Message Cache为一种可以用于处理目标被观战玩家的延时观战数据的缓存对象,其两个模块所对应的功能不同,那么其所对应的相应代码也不同。
子步骤S13,当所述观战数据的时间戳小于或等于预设时间戳时,所述战斗服务器通过所述数据缓存对象向所述数据库集群发送所述观战数据;
在本发明的一种实施例中,为了保证正在进行中的竞技比赛的公平性,玩家所观看的一般是战斗内情况的延时画面,即所谓的延时观战,而为了满足延时观战的条件,可以当观战数据的时间戳小于或等于预设时间戳时,战斗服务器可以通过该数据缓存对象向数据库集群发送观战数据,以便通过数据库集群向与目标被观战玩家对应的观战频道发布数据缓存对象中的观战数据。
在实际应用中,预设时间戳可以指的是目标观战对象对应的数据缓存对象的时间戳信息tick_time,在持续将观战数据写入数据缓存对象Message Cache的内部缓存时,需要判断其内部缓存是否缓存够了延时观战中指定延时对应的观战数据,只有当观战数据的时间戳time小于或者等于Message Cache的时间戳信息tick_time,即满足延时观战的指定时长时,才能对满足延时观战条件的观战数据进行发布。
其中,从实体Spectate Manager发布观战数据到数据库集群Redis Cluster的过程,可以与向数据库集群Redis Cluster写入观战元数据的流程一致,具体可以参照图4;在向数据库集群Redis Cluster发布观战数据之后,可以对已经发布的观战数据从数据缓存对象中移除,这个移除过程可以持续发布缓存中的观战数据,直到数据缓存对象的内部缓存为空,或者内部缓存的观战数据不满足延时观战条件时为止。
在一种优选的实施例中,在判断目标被观战玩家的观战数据满足延时观战条件时,还可以修改该观战数据对应的发布标记,以表明目标被观战玩家的观战数据符合延时观战条件,可以对该观战数据进行发布。
子步骤S14,当检测到所述预设被观战玩家退出或战斗结束时,所述战斗服务器生成被观战玩家切换消息,并向所述数据库集群发送所述被观战玩家切换消息;所述数据库集群用于向所述预设被观战玩家对应的观战频道发布所述被观战玩家切换消息。
在本发明的一种实施例中,由于战斗实体Battle中包含的实体Spectate Manager在接收到针对目标被观战玩家的观战请求之后,战斗内目标被观战玩家可以收到正常同步的消息,当检测到目标被观战玩家退出或战斗结束时,此时战斗服务器可以生成针对目标被观战玩家的被观战玩家切换消息,并向数据库集群发送被观战玩家切换消息,以便数据库集群可以向与原本目标被观战玩家对应的观战频道发布接收到的被观战玩家切换消息,以完成在原本的观战频道对目标被观战玩家进行切换。
在一种优选的实施例中,参照图6,示出了本发明实施例中的一种切换被观战玩家的流程图,在通过实体Spectate Manager对目标被观战玩家所构建的快照信息snapshot进行处理得到观战数据,以及对观战数据的发布标记进行修改表示可以进行发布之后,当检测到目标被观战玩家退出,即接收到目标玩家的死亡或退出消息时,可以在进行竞赛比赛的战场内选择另一个允许被观战的玩家作为目标被观战玩家的切换对象,并向原先目标被观战玩家所在的观战频道发布一条切换目标类型消息;然后可以为新选择的目标观战对象建立快照消息,并修改观战频道的频道信息,表明将新选择的目标观战对象的观战数据发布到原先目标被观战玩家所在的观战频道,以实现目标被观战玩家的切换。
在一种优选的实施例中,由于正在进行竞技比赛的网络游戏可以为多人在线的网络游戏,请求观战该竞技比赛的玩家可以有多人,被请求观战的玩家(即目标被观战玩家)可以有多人,而实体Spectate Manager在接收到不同玩家游戏按客户端所发送的针对不同目标被观战玩家的观战请求之后,都将会建立一个数据缓存对象Message Cache与一个目标被观战玩家进行对应,即可以存在多个数据缓存对象Message Cache,此时需要实体Spectate Manager对多个数据缓存对象Message Cache进行遍历,以将满足延时观战条件的缓存对象中的观战数据发布到数据库集群Redis Cluster中,以便数据库集群向与目标被观战玩家对应的观战频道发布观战数据。
在具体实现中,实体Spectate Manager对多个数据缓存对象Message Cache进行遍历,可以通过对数据缓存对象Message Cache定期执行轮询的方式实现,参照图7,示出了本发明实施例中的一种进行定期轮询的流程图,其过程可以如下:
(1)实体Spectate Manager可以对多个数据缓存对象Message Cache进行遍历,并判断是否有缓存对象中的观战数据需要进行处理,即判断是否存在满足延时观战要求的观战数据还未被发布;(2)若存在满足延时观战要求的观战数据还未被发布,则可以将对应的缓存对象取出,并更新当前缓存对象的时间戳,此时还可以加上时间偏量delta;其中,时间偏量delta可以用于表示数据库集群向与目标被观战玩家对应的观战频道发布观战数据的时间间隔。例如,假设时间偏量delta的值为0.5s,则表示数据库集群每隔0.5s,向与目标被观战玩家对应的观战频道发布观战数据,以便向玩家客户端发送一次满足延时观战条件的观战数据。那么,时间偏量delta保证的是使得可以按照设置的固定时间间隔进行观战数据的发送,且使得玩家客户端在接收发送的观战数据后可以按照一定的帧速度进行回放,实现玩家客户端对观战画面的流畅播放。(3)在将对应的缓存对象取出之后,如果缓存对象中有观战数据,则可以取出内部缓存前端,即头部的一条观战数据message,并比较观战数据messsage中的时间戳time和缓存对象的时间戳tick_time,以判断该观战数据messsage是否满足延时观战条件,若观战数据messsage的时间戳time小于或者等于tick_time,即当该观战数据messsage满足延时观战条件时,则发布这条观战数据,并在发布之后,将这条观战数据从缓存对象的内部缓存中移除。
步骤206,所述战斗服务器响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
在本发明的一种实施例中,在战斗服务器向数据库集群发送目标对象的观战数据,且数据库集群向与目标被观战玩家对应的观战频道发布观战数据之后,战斗服务器可以生成请求结果,并向大厅服务器发送请求结果,该请求结果可以包括目标观战对象所对应的观战频道信息,以便大厅服务器根据请求结果订阅相应的观战频道。
在实际应用中,大厅服务器可以与玩家游戏客户端连接,在大厅服务器根据请求结果订阅相应的观战频道之后,游戏客户端可以接收在订阅的观战频道所发送的针对目标被观战玩家的观战数据,以及对观战数据进行观看。
在本发明实施例中,涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,战斗服务器在接收大厅服务器发送的观战请求之后,可以根据观战请求获取针对预设被观战玩家的观战数据,然后战斗服务器可以向数据库集群发送观战数据,以及向大厅服务器发送请求结果,以使得数据库集群向对应的观战频道发布观战数据,且大厅服务器可以根据请求结果订阅相应的观战频道。通过大厅服务器订阅数据库集群提供的观战频道,以使得大厅服务器可以通过观战频道获取战斗服务器所发布的观战数据,即通过采用数据库集群的订阅-发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。
参照图8,示出了本发明的一种游戏观战方法实施例二的步骤流程图,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下步骤:
步骤801,所述游戏客户端生成针对预设被观战玩家的观战请求;
在本发明的一种实施例中,玩家在进行观战模式以观看正在进行竞技比赛中的玩家的比赛操作时,游戏客户端可以对目标被观战玩家进行选择,并生成针对选择的目标被观战玩家的观战请求,以便将观战请求发送给大厅服务器。
在本发明的一种实施例中,步骤801可以包括如下子步骤:
子步骤S21,所述游戏客户端接收所述大厅服务器发送的针对被观战玩家的观战元数据;所述观战元数据为所述大厅服务器向所述数据库集群拉取的数据;
子步骤S22,所述游戏客户端对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
子步骤S23,所述游戏客户端从所述被观战玩家中确定预设被观战玩家,并生成针对所述预设被观战玩家的观战请求。
具体的,游戏客户端可以接收大厅服务器向数据库集群拉取的针对被观战玩家的观战元数据,然后对观战元数据进行解析,并在客户端界面展示与观战元数据对应的被观战玩家以及被观战玩家的信息,游戏客户端可以在客户端界面所展示的被观战玩家中确定目标被观战玩家,并生成针对目标被观战玩家的观战请求。
在一种优选的实施例中,参照图9,示出了本发明实施例中的一种元数据读取和解析过程的示意图,当玩家游戏客户端连接到大厅服务器之后,大厅服务器中对应的玩家实体Server Avatar可以通过向Redis数据库的访问代理Redis Proxy异步读取目标被观战玩家的观战元数据,然后访问代理Redis Proxy可以向数据库集群Redis Cluster直接读取观战元数据,并再次通过访问代理Redis Proxy向玩家实体Server Avatar返回读取的观战元数据;在读取完毕之后,大厅服务器中对应的玩家实体Server Avatar可以向游戏客户端对应的玩家实体Client Avatar进行观战元数据的转发;游戏客户端在接收到转发的观战元数据之后,可以对观战元数据进行解码,并将解码后的数据,即提供参与竞技比赛的所有允许被观战的被观战玩家展示在客户端界面上,以便提供给玩家进行浏览。
需要说明的是,在大厅服务器通过访问代理Redis Proxy从数据库集群RedisCluster读取观战元数据时,可以跟在战斗服务器通过访问代理Redis Proxy向数据库集群Redis Cluster写入观战元数据时一样,将观战元数据分为简要部分以及详细部分进行读取,且其读取流程可以与写入流程的通信方向相反,且由于观战元数据的简要部分以及详细部分是通过组织成Redis命令,即参数形式写入数据库集群的,此时游戏客户端所请求传输的参数,可以表明所接收到的数据是哪种类型,即可以根据参数确定简要部分以及详细部分。
其中,简要部分可以指的是竞技比赛的比赛类型、参赛玩家角色等少量信息,可以用于展示在玩家的客户端界面上供玩家进行浏览;详细部分可以指的是比赛对应服务器地址、地图类型等信息,可以用于仅当玩家在客户端界面上滑动到某个被观战玩家时,大厅服务器才会向数据库集群拉取针对该被观战玩家的详细信息,并对与被观战玩家对应的详细信息进行展示;其中,当点击客户端界面上该被观战玩家的信息时,客户端将解析接收到针对该被观战玩家的详细部分数据,从而开启观战。
步骤802,所述游戏客户端通过所述大厅服务器向所述战斗服务器发送所述观战请求;
在本发明的一种实施例中,由于游戏客户端不直接接入战斗服务器,而用于登录游戏账号的游戏客户端可以与用于提供进行角色选取的大厅服务器连接,且用于提供进行竞技比赛类玩法的战斗服务器可以与用于提供进行角色选取的大厅服务器连接,在确定目标被观战玩家,并生成针对目标被观战玩家的观战请求之后,可以通过大厅服务器向战斗服务器转发观战请求,以便接收战斗服务器所发送的针对目标被观战玩家的请求结果。
步骤803,所述游戏客户端接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
步骤804,所述游戏客户端根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
步骤805,所述游戏客户端根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
在本发明的一种实施例中,游戏客户端在接收所述大厅服务器发送的请求结果,游戏客户端可以根据请求结果从大厅服务器获取针对目标被观战玩家的观战频道,并根据请求结果观看在观战频道发布的针对目标被观战玩家的观战数据;其中,观战数据可以是战斗服务器向数据库集群的观战频道进行发布的数据,观战频道可以是大厅服务器根据请求结果向数据库集群进行订阅的频道。
在一种优选的实施例中,参照图10,示出了本发明实施例中的一种请求观战的过程示意图,当游戏客户端连接到大厅服务器时,游戏客户端对应的玩家实体Client Avatar在确定目标被观战玩家之后,可以生成针对目标被观战玩家的观战请求,并向大厅服务器对应的玩家实体Server Avatar发送观战请求;然后玩家实体Server Avatar可以通过与战斗服务器对应的战场实体Battle的代理Battle Stub进行观战请求的转发,以转发至战场服务器对应的用于具体负责该场竞技比赛的战场实体Battle处理,而Battle内部可以包含用于维护观战的实体Spectate Manager,此时可以由实体Spectate Manager对观战请求进行处理,并按图10所示顺序返回请求结果;当请求观战成功时,大厅服务器可以为玩家注册到所请求的战斗内被观战玩家将要发布观战数据的观战频道。其中,代理Battle Stub是战场实体的代理,大厅服务器可以通过它与战斗服务器进行通信,即Battle Stub并不是观战服务器的代理。
在本发明的一种实施例中,所述游戏客户端包括对应的玩家实体以及对应的观战数据重播器,步骤805可以包括如下子步骤:
子步骤S31,所述游戏客户端通过所述对应的玩家实体接收所述观战频道发送的所述预设被观战玩家的观战数据;所述观战数据包括时间戳信息;
子步骤S32,所述游戏客户端通过所述对应的观战数据重播器,并按照所述时间戳信息对所述预设被观战玩家的观战数据进行回放。
在实际应用中,游戏客户端可以通过对应的玩家实体Client Avatar对在观战频道所发布的针对目标被观战玩家的观战数据进行接收,并通过对应的观战数据重播器,按照时间戳信息对目标观战晚间的观战数据进行回放。
在一种优选的实施例中,参照图11,示出了本发明实施例中的一种客户端解析观战数据的步骤流程图,其中,对于不同的观战数据类型,例如快照信息、RPC(RemoteProcedure Call Protocol,远程过程调用协议,可以为通信程序之间携带信息数据)方法调用、切换观战目标、战斗结束等,回放器Spectate Replayer可以采取不同动作。
当接收到快照类型的观战数据时,可以对场景以及实体进行初始化,当接收到对收到的RPC方法调用类型的观战数据时,可以通过RPC方法调用重新调用对应的RPC函数;当观战的目标被观战玩家被淘汰时,将可以接收到切换目标类型的观战数据,则可以自动切换到下一个允许被观战的目标被观战玩家;当比赛结束时,可以接收到战斗结束类型的观战数据,游戏客户端可以展示结算界面,从而结束观战。
在本发明的实施例中,涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,游戏客户端在生成针对目标被观战玩家的观战请求之后,可以通过大厅服务器向战斗服务器发送的观战请求,并接收大厅服务器转发的由战斗服务器生成的请求结果,然后通过大厅服务器对与目标被观战玩家相应的观战频道进行订阅,游戏客户端可以观看在订阅的观战频道由数据库集群发布观战数据。通过大厅服务器订阅数据库集群提供的观战频道,以使得大厅服务器可以通过观战频道获取战斗服务器所发布的观战数据,即通过采用数据库集群的订阅-发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。
参照图12,示出了本发明的一种游戏观战方法实施例三的步骤流程图,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下步骤:
步骤1201,所述大厅服务器向所述数据库集群拉取针对被观战玩家的观战元数据;所述观战元数据为所述战斗服务器向所述数据库集群写入的数据;
在本发明的一种实施例中,玩家在进行观战模式以观看正在进行竞技比赛中的玩家的比赛操作时,首先需要选择参与竞技比赛中的某个玩家为目标被观战玩家,即游戏客户端需要对目标被观战玩家进行选择,此时大厅服务器可以向数据库集群拉取针对被观战玩家的观战元数据。其中,拉取的观战元数据可以是战斗服务器向数据库集群写入的数据。
步骤1202,所述大厅服务器向所述游戏客户端发送所述被观战玩家的观战元数据;所述游戏客户端用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
在本发明的一种实施例中,大厅服务器可以向游戏客户端发送被观战玩家的观战元数据,以便游戏客户端对观战元数据进行解析,并在客户端界面展示与观战元数据对应的被观战玩家以及被观战玩家的信息。
具体的,游戏客户端可以接收大厅服务器向数据库集群拉取的针对被观战玩家的观战元数据,然后对观战元数据进行解析,并在客户端界面展示与观战元数据对应的被观战玩家以及被观战玩家的信息,游戏客户端可以在客户端界面所展示的被观战玩家中确定目标被观战玩家,并生成针对目标被观战玩家的观战请求。
步骤1203,所述大厅服务器接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
在本发明的一种实施例中,大厅服务器在向游戏客户端发送从数据库集群拉取的针对目标被观战玩家的观战元数据之后,大厅服务器可以接收游戏客户端发送的观战请求,以便将接收的观看请求转发是战斗服务器,以及接收战斗服务器发送的请求结果。其中,观战请求可以是游戏客户端根据确定的目标被观战玩家生成的请求。
具体的,由于游戏客户端不直接接入战斗服务器,而用于登录游戏账号的游戏客户端可以与用于提供进行角色选取的大厅服务器连接,且用于提供进行竞技比赛类玩法的战斗服务器可以与用于提供进行角色选取的大厅服务器连接,在确定目标被观战玩家,并生成针对目标被观战玩家的观战请求之后,可以通过大厅服务器向战斗服务器转发观战请求,以便接收战斗服务器所发送的针对目标被观战玩家的请求结果。
步骤1204,所述大厅服务器向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
在本发明的一种实施例中,大厅服务器在接收游戏客户端发送的观战请求之后,可以向战斗服务器发送游戏客户端生成的观战请求,并接收战斗服务器发送的请求结果,以便根据战斗服务器响应观战请求生成的结果,对数据库集群中用于发布观战数据的观战频道进行订阅。
在实际应用中,大厅服务器可以与玩家游戏客户端连接,在大厅服务器根据请求结果订阅相应的观战频道之后,游戏客户端可以接收在订阅的观战频道所发送的针对目标被观战玩家的观战数据,以及对观战数据进行观看。
步骤1205,所述大厅服务器根据所述请求结果订阅所述数据库集群的观战频道;
在本发明的一种实施例中,大厅服务器在向战斗服务器发送游戏客户端生成的观战请求,并接收战斗服务器发送的请求结果之后,可以根据战斗服务器响应观战请求生成的结果,对数据库集群中用于发布观战数据的观战频道进行订阅,以便接收在观战频道发布的观战数据。
步骤1206,所述大厅服务器通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
在本发明的一种实施例中,大厅服务器在根据战斗服务器响应观战请求生成的结果,并对数据库集群中用于发布观战数据的观战频道进行订阅之后,可以通过订阅的观战频道接收针对目标被观战玩家的观战数据,并向游戏客户端发送接收的观战数据,以便游戏客户端通过观战频道对接收的观战数据进行观看。其中,观战数据可以是战斗服务器向数据库集群的观战频道进行发布的数据。
在一种优选的实施例中,参照图13,示出了本发明实施例中的一种订阅观战频道的过程示意图,大厅服务器中对应的玩家实体Server Avatar在请求观战成功之后,可以通过Redis数据库的订阅代理Spectate Subscribe对与目标被观战玩家对应的观战频道channel进行订阅,然后数据库集群Redis Cluster可以向对应的观战频道channel发布观战数据;订阅代理Spectate Subscribe可以对发布的观战数据进行检查和调用回调函数,在触发回调函数之后,可以向玩家实体Server Avatar发送该发布的观战数据,进而大厅服务器对应的玩家实体Server Avatar向游戏客户端对应的玩家实体Client Avatar发送观战数据;最后由游戏客户端对应的观战数据重播器Spectate Player进行观战数据的回放。其中,代理Spectate Subscribe是订阅到Redis Cluster的代理,负责将大厅服务器连接到指定的目标被观战玩家的观战频道,以接收该观战频道发布的观战数据。
在本发明的实施例中,涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,大厅服务器可以向数据库集群拉取针对被观战玩家的观战元数据,并向游戏客户端发送被观战玩家的观战元数据之后,可以接收游戏客户端发送的观战请求,并向战斗服务器发送游戏客户端生成的观战请求,最后可以通过接收由战斗服务器发送的请求结果,以对数据库集群中用于发布观战数据的观战频道进行订阅。通过大厅服务器订阅数据库集群提供的观战频道,以使得大厅服务器可以通过观战频道获取战斗服务器所发布的观战数据,即通过采用数据库集群的订阅-发布模式来转发观战数据,在实现多人观战的情况下,降低观战功能对战斗服务器的消耗。
在本发明一种优选的实施例中,当玩家未进入观战模式,在浏览有哪些被观战玩家允许被观战的客户端界面时,游戏客户端只需要从大厅服务器通信拉取允许被观战的被观战玩家的观战元数据,在这个拉取观战元数据过程中,大厅服务器与战斗服务器之间不存在没有交互,因而不消耗战斗服务器的性能。
在本发明一种优选的实施例中,当存在同一个被观战玩家被多方玩家游戏客户端进行观战时,战斗服务器不需要将该同一个被观战玩家的观战数据接发送给多个玩家游戏客户端,也不需要发送给多个观战服务器的代理服务器,而是只需向数据库集群RedisCluster发送一次即可。且当当观战数据发送到Redis Cluster后,可以由Redis Cluster使用发布-订阅模式将其发送给多个玩家游戏客户端,减少了战斗服务器发送观战数据的数据量。
在本发明一种优选的实施例中,当新加入的观看被观战玩家的玩家时,首先玩家游戏客户端可以请求观战,当请求观战成功时,只需要订阅所请求的目标被观战玩家对应的观战频道后,即可收到由数据集群Redis Cluster发送的观战数据;且在请求过程中,战斗服务器只参与了判断所请求被观战玩家是否能被观战这个步骤,不参与后续的观战数据频道订阅和观战数据发送的过程,对战斗服的性能消耗很小。
在本发明一种优选的实施例中,为了实现延时观战,通过采用数据缓存对象Message Cache,只针对战斗内被请求观战的玩家,即每个被请求观战的被观战玩家具有对应的缓存数据对象,由于这些玩家是从参与战斗的玩家中选择的,数量有限,那么缓存数据对象所使用的缓存数量与战斗外被观战玩家的数量无关。同时只缓存了指定延时时长的数据量,一旦观战数据发布到Redis Cluster,观战数据所使用的缓存数量即被回收,因而消耗的缓存数量在整场战斗中基本上是固定的。同时,数据缓存对象的内部缓存采用双端队列数据结构实现,在加入新的观战数据时,可以对旧的观战数据进行读取以及移除,其时间复杂度均为O(1)。
需要说明的是,在请求观战的流程中涉及到的战场代理BattleStub,以及战斗实体Battle等逻辑实体,可能由于不同服务器架构实现而有所不同,这些方面不影响本方案的实施,但集成到现有的具体项目时需要注意;且本方案中实现的发布-订阅模式,是基于Redis的消息通信模式之上的,具体项目可以独立实现这种模式或者采用类似Redis的产品代替,不影响本方案的实施。对此,本发明实施例不加以限制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图14,示出了本发明的一种游戏观战装置实施例一的结构框图,应用于战斗服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下模块:
观战元数据获取模块1401,用于确定被观战玩家,以及获取与所述被观战玩家对应的观战元数据;
观战元数据发送模块1402,用于向所述数据库集群发送所述观战元数据;所述数据库集群用于向大厅服务器提供所述观战元数据;所述大厅服务器用于根据所述观战元数据在所述游戏客户端的界面展示被观战玩家以及被观战玩家信息;所述被观战玩家信息用于所述游戏客户端确定预设被观战玩家;
观战请求接收模块1403,用于接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
观战数据获取模块1404,用于根据所述观战请求获取针对所述预设被观战玩家的观战数据;
观战数据发送模块1405,用于向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
请求结果发送模块1406,用于响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
在本发明的一种实施例中,观战数据发送模块1402可以包括如下子模块:
数据缓存对象建立子模块,用于根据所述观战请求建立与所述预设被观战玩家对应的数据缓存对象;
观战数据写入子模块,用于向所述数据缓存对象写入所述观战数据;所述观战数据具有时间戳;
数据缓存对象发送子模块,用于当所述观战数据的时间戳小于或等于预设时间戳时,通过所述数据缓存对象向所述数据库集群发送所述观战数据。
在本发明的一种实施例中,在所述战斗服务器向所述数据库集群发送所述观战数据之后,还包括:
被观战玩家切换消息发送子模块,用于当检测到所述预设被观战玩家退出或战斗结束时,生成被观战玩家切换消息,并向所述数据库集群发送所述被观战玩家切换消息;所述数据库集群用于向所述预设被观战玩家对应的观战频道发布所述被观战玩家切换消息。
参照图15,示出了本发明的一种游戏观战装置实施例二的结构框图,应用于游戏客户端,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下模块:
观战请求生成模块1501,用于生成针对预设被观战玩家的观战请求;
观战请求发送模块1502,用于通过所述大厅服务器向所述战斗服务器发送所述观战请求;
请求结果接收模块1503,用于接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道获取模块1504,用于根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
观战数据观看模块1505,用于根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
在本发明的一种实施例中,观战请求生成模块1501可以包括如下子模块:
观战元数据接收子模块,用于接收所述大厅服务器发送的针对被观战玩家的观战元数据;所述观战元数据为所述大厅服务器向所述数据库集群拉取的数据;
被观战玩家展示子模块,用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
观战请求生成子模块,用于从所述被观战玩家中确定预设被观战玩家,并生成针对所述预设被观战玩家的观战请求。
在本发明的一种实施例中,所述游戏客户端包括对应的玩家实体以及对应的观战数据重播器,观战数据观看模块1505可以包括如下子模块:
观战数据接收子模块,用于通过所述对应的玩家实体接收所述观战频道发送的所述预设被观战玩家的观战数据;所述观战数据包括时间戳信息;
观战数据回放子模块,用于通过所述对应的观战数据重播器,并按照所述时间戳信息对所述预设被观战玩家的观战数据进行回放。
参照图16,示出了本发明的一种游戏观战装置实施例三的结构框图,应用于大厅服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,具体可以包括如下模块:
观战元数据拉取模块1601,用于向所述数据库集群拉取针对被观战玩家的观战元数据;所述观战元数据为所述战斗服务器向所述数据库集群写入的数据;
观战元数据发送模块1602,用于向所述游戏客户端发送所述被观战玩家的观战元数据;所述游戏客户端用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
观战请求接收模块1603,用于接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
请求结果接收模块1604,用于向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道订阅模块1605,用于根据所述请求结果订阅所述数据库集群的观战频道;
观战数据发送模块1606,用于通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述游戏观战方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对游戏观战方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种游戏观战方法和一种游戏观战装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种游戏观战方法,其特征在于,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述战斗服务器接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
所述战斗服务器根据所述观战请求获取针对所述预设被观战玩家的观战数据;
所述战斗服务器向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
所述战斗服务器响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
2.根据权利要求1所述的方法,其特征在于,在所述战斗服务器接收所述大厅服务器发送的观战请求之前,还包括:
所述战斗服务器确定被观战玩家,以及获取与所述被观战玩家对应的观战元数据;
所述战斗服务器向所述数据库集群发送所述观战元数据;所述数据库集群用于向大厅服务器提供所述观战元数据;所述大厅服务器用于根据所述观战元数据在所述游戏客户端的界面展示被观战玩家以及被观战玩家信息;所述被观战玩家信息用于所述游戏客户端确定预设被观战玩家。
3.根据权利要求1所述的方法,其特征在于,所述战斗服务器向所述数据库集群发送所述观战数据,包括:
所述战斗服务器根据所述观战请求建立与所述预设被观战玩家对应的数据缓存对象;
所述战斗服务器向所述数据缓存对象写入所述观战数据;所述观战数据具有时间戳;
当所述观战数据的时间戳小于或等于预设时间戳时,所述战斗服务器通过所述数据缓存对象向所述数据库集群发送所述观战数据。
4.根据权利要求3所述的方法,其特征在于,在所述战斗服务器向所述数据库集群发送所述观战数据之后,还包括:
当检测到所述预设被观战玩家退出或战斗结束时,所述战斗服务器生成被观战玩家切换消息,并向所述数据库集群发送所述被观战玩家切换消息;所述数据库集群用于向所述预设被观战玩家对应的观战频道发布所述被观战玩家切换消息。
5.一种游戏观战方法,其特征在于,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述游戏客户端生成针对预设被观战玩家的观战请求;
所述游戏客户端通过所述大厅服务器向所述战斗服务器发送所述观战请求;
所述游戏客户端接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
所述游戏客户端根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
所述游戏客户端根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
6.根据权利要求5所述的方法,其特征在于,所述游戏客户端生成针对预设被观战玩家的观战请求,包括:
所述游戏客户端接收所述大厅服务器发送的针对被观战玩家的观战元数据;所述观战元数据为所述大厅服务器向所述数据库集群拉取的数据;
所述游戏客户端对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家;
所述游戏客户端从所述被观战玩家中确定预设被观战玩家,并生成针对所述预设被观战玩家的观战请求。
7.根据权利要求5所述的方法,其特征在于,所述游戏客户端包括对应的玩家实体以及对应的观战数据重播器,所述游戏客户端根据所述请求结果观看观战频道发送的针对所述预设被观战玩家的观战数据,包括:
所述游戏客户端通过所述对应的玩家实体接收所述观战频道发送的所述预设被观战玩家的观战数据;所述观战数据包括时间戳信息;
所述游戏客户端通过所述对应的观战数据重播器,并按照所述时间戳信息对所述预设被观战玩家的观战数据进行回放。
8.一种游戏观战方法,其特征在于,所述方法涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述方法包括:
所述大厅服务器接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
所述大厅服务器向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
所述大厅服务器根据所述请求结果订阅所述数据库集群的观战频道;
所述大厅服务器通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
9.根据权利要求8所述的方法,其特征在于,在所述大厅服务器接收所述游戏客户端发送的观战请求之前,还包括:
所述大厅服务器向所述数据库集群拉取针对被观战玩家的观战元数据;所述观战元数据为所述战斗服务器向所述数据库集群写入的数据;
所述大厅服务器向所述游戏客户端发送所述被观战玩家的观战元数据;所述游戏客户端用于对所述观战元数据进行解析,并在客户端界面展示与所述观战元数据对应的被观战玩家。
10.一种游戏观战装置,其特征在于,应用于战斗服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求接收模块,用于接收所述大厅服务器发送的观战请求;所述观战请求为所述游戏客户端针对预设被观战玩家生成的请求;
观战数据获取模块,用于根据所述观战请求获取针对所述预设被观战玩家的观战数据;
观战数据发送模块,用于向所述数据库集群发送所述观战数据;所述数据库集群用于向与所述预设被观战玩家对应的观战频道发布所述观战数据;
请求结果发送模块,用于响应所述观战请求生成请求结果,并向所述大厅服务器发送所述请求结果;所述大厅服务器用于根据所述请求结果订阅相应的观战频道。
11.一种游戏观战装置,其特征在于,应用于游戏客户端,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求生成模块,用于生成针对预设被观战玩家的观战请求;
观战请求发送模块,用于通过所述大厅服务器向所述战斗服务器发送所述观战请求;
请求结果接收模块,用于接收所述大厅服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道获取模块,用于根据所述请求结果,从所述大厅服务器获取针对所述预设被观战玩家的观战频道;
观战数据观看模块,用于根据所述请求结果观看在观战频道发布的针对所述预设被观战玩家的观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据;所述观战频道为所述大厅服务器根据所述请求结果向所述数据库集群进行订阅的频道。
12.一种游戏观战装置,其特征在于,应用于大厅服务器,所述装置涉及游戏客户端、战斗服务器、大厅服务器以及数据库集群,所述装置包括:
观战请求接收模块,用于接收所述游戏客户端发送的观战请求;所述观战请求为所述游戏客户端根据预设被观战玩家生成的请求;
请求结果接收模块,用于向所述战斗服务器发送所述观战请求,并接收所述战斗服务器发送的请求结果;所述请求结果为所述战斗服务器响应所述观战请求生成的结果;
观战频道订阅模块,用于根据所述请求结果订阅所述数据库集群的观战频道;
观战数据发送模块,用于通过所述观战频道接收针对所述预设被观战玩家的观战数据,并向所述游戏客户端发送所述观战数据;所述游戏客户端用于通过所述观战频道观看所述观战数据;所述观战数据为所述战斗服务器向所述数据库集群的观战频道进行发布的数据。
13.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4或5至7或8至9中任一项所述游戏观战方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4或5至7或8至9中任一项所述游戏观战方法的步骤。
CN202010814532.4A 2020-08-13 2020-08-13 一种游戏观战方法和装置 Active CN111773738B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010814532.4A CN111773738B (zh) 2020-08-13 2020-08-13 一种游戏观战方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010814532.4A CN111773738B (zh) 2020-08-13 2020-08-13 一种游戏观战方法和装置

Publications (2)

Publication Number Publication Date
CN111773738A CN111773738A (zh) 2020-10-16
CN111773738B true CN111773738B (zh) 2024-04-26

Family

ID=72761888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010814532.4A Active CN111773738B (zh) 2020-08-13 2020-08-13 一种游戏观战方法和装置

Country Status (1)

Country Link
CN (1) CN111773738B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113457172A (zh) * 2021-06-24 2021-10-01 网易(杭州)网络有限公司 游戏中的信息处理方法、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015341A (ko) * 1999-07-14 2001-02-26 이리마지리 쇼우이치로 통신 게임 시스템 및 통신 게임 처리 방법
CN104580294A (zh) * 2013-10-16 2015-04-29 博雅网络游戏开发(深圳)有限公司 展示服务器信息的方法及装置
CN106161644A (zh) * 2016-08-12 2016-11-23 珠海格力电器股份有限公司 数据处理的分布式系统及其数据处理方法
CN107707938A (zh) * 2017-10-11 2018-02-16 湖南机友科技有限公司 降低直播视频播放延迟的方法及装置
CN109525627A (zh) * 2017-09-20 2019-03-26 腾讯科技(上海)有限公司 数据传输方法、装置、存储介质及电子装置
CN110090449A (zh) * 2019-04-26 2019-08-06 网易(杭州)网络有限公司 一种游戏观战方法及游戏观战系统
CN111182321A (zh) * 2019-12-31 2020-05-19 广州博冠信息科技有限公司 处理信息的方法、装置和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010015341A (ko) * 1999-07-14 2001-02-26 이리마지리 쇼우이치로 통신 게임 시스템 및 통신 게임 처리 방법
CN104580294A (zh) * 2013-10-16 2015-04-29 博雅网络游戏开发(深圳)有限公司 展示服务器信息的方法及装置
CN106161644A (zh) * 2016-08-12 2016-11-23 珠海格力电器股份有限公司 数据处理的分布式系统及其数据处理方法
CN109525627A (zh) * 2017-09-20 2019-03-26 腾讯科技(上海)有限公司 数据传输方法、装置、存储介质及电子装置
CN107707938A (zh) * 2017-10-11 2018-02-16 湖南机友科技有限公司 降低直播视频播放延迟的方法及装置
CN110090449A (zh) * 2019-04-26 2019-08-06 网易(杭州)网络有限公司 一种游戏观战方法及游戏观战系统
CN111182321A (zh) * 2019-12-31 2020-05-19 广州博冠信息科技有限公司 处理信息的方法、装置和系统

Also Published As

Publication number Publication date
CN111773738A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
KR102430130B1 (ko) 스트리밍 비디오 데이터의 관리
CN111767503B (zh) 一种游戏数据处理方法、装置、计算机及可读存储介质
CN104915542B (zh) 一种基于数据同步的网游录像与回放的方法
CN110312145B (zh) 基于直播弹幕与观众进行互动游戏的方法、存储介质
CN107659825B (zh) 一种直播视频留存的方法、装置、服务器、主播端及介质
US11260295B2 (en) Cloud-based game streaming
US20080268961A1 (en) Method of creating video in a virtual world and method of distributing and using same
EP2438758B1 (en) Addition of supplemental multimedia content and interactive capability at the client
US7446772B2 (en) Spectator experience for networked gaming
JP6378849B1 (ja) サーバおよびプログラム
TW201119400A (en) System and method for selecting a video encoding format based on feedback data
JP2015013101A (ja) 情報処理システム、情報処理装置、サーバ装置、情報処理プログラム、サーバプログラム及び情報処理方法
KR20130103817A (ko) 비디오 클립을 자동으로 기록하고 저장하기 위한 시스템, 방법 및 컴퓨터 판독가능 매체
CN111182321B (zh) 处理信息的方法、装置和系统
TW201041400A (en) Temporary decoder apparatus and method
CN111093087A (zh) 连麦直播的方法、装置、系统、存储介质及电子设备
WO2023279917A1 (zh) 弹幕显示方法、弹幕发送方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
US20190201793A1 (en) Information processing system, information processing method, program, server, and information processing terminal
CN112019905A (zh) 直播回放方法、计算机设备及可读存储介质
CN114082198A (zh) 云游戏直播中的交互方法及装置、存储介质、电子装置
CN112929716A (zh) 一种云应用直播互动的方法、装置及系统
CN110351569A (zh) 一种直播内容处理方法、装置、设备及介质
CN111773738B (zh) 一种游戏观战方法和装置
CN109126130A (zh) 一种网络游戏录像与回放方法
WO2010073874A1 (ja) 配信サーバ、データ配信方法及びプログラム

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