CN113710335A - 事务存储器同步 - Google Patents
事务存储器同步 Download PDFInfo
- Publication number
- CN113710335A CN113710335A CN202080028894.9A CN202080028894A CN113710335A CN 113710335 A CN113710335 A CN 113710335A CN 202080028894 A CN202080028894 A CN 202080028894A CN 113710335 A CN113710335 A CN 113710335A
- Authority
- CN
- China
- Prior art keywords
- memory
- sessions
- session
- game
- virtual space
- 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.)
- Pending
Links
- 230000001360 synchronised effect Effects 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 16
- 230000001902 propagating effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 8
- 239000004575 stone Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000012856 packing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
提供一种具有两个或更多个服务器的在线游戏服务,所述两个或更多个服务器位于两个或更多个数据中心中,所述在线游戏服务包括:跨所述两个或更多个服务器实现的事务层,所述事务层用于处理视频游戏的分别由所述两个或更多个服务器执行的不同会话之间的同步;其中所述视频游戏的所述不同会话分别被配置为通过相应的客户端装置提供对虚拟空间的查看;其中所述事务层被配置为标识提供对所述虚拟空间的近似区域的查看的会话,并且实现所标识的会话的事务存储器同步,使得所述虚拟空间中由所标识的会话生成的事件跨所标识的会话中的每个会话被同步。
Description
技术领域
本公开涉及用于诸如视频游戏之类的交互式应用程序的不同会话之间的事务存储器同步的系统和方法。
背景技术
相关技术的描述
当前快速发展的技术领域是视频游戏领域,现在涵盖众多游戏平台,包括专用游戏控制台、个人计算机(PC)以及最近的云游戏和移动装置。网络游戏服务/系统的一个示例是Network,其包括支持基于控制台和基于云的游戏的各种游戏服务。
在云游戏设置中,用户能够通过网络(诸如因特网)访问云游戏站点上的许多游戏,并且开始进行交互/玩游戏。为了选择可玩的游戏,用户访问他/她在云游戏站点上的帐户,并且启动可供该用户帐户玩的多个游戏中的一个游戏。从云视频游戏生成的视频被传输到客户端装置。云游戏系统的一个示例是Now云游戏服务。
目前,诸如视频游戏之类的模拟可由云服务器计算机执行并且表示虚拟世界。为了便于大型虚拟世界和许多玩家在这样的虚拟世界中进行交互,虚拟世界可由若干不同的服务器计算机处理。可以存在视频游戏的多个会话,每个会话控制虚拟世界的不同部分,并且此类会话由可位于不同数据中心中的不同服务器计算机执行。因此,当玩家在整个虚拟世界中移动时,给定的玩家可连接到不同的服务器计算机(和不同的会话)。因此,虽然可能存在多个会话,但是它们不会同时表示相同的现实或虚拟空间或虚拟世界的一部分。如果两个玩家共享相同的虚拟空间,则他们通常连接到相同的服务器机器。
然而,这可能导致若干问题。例如,当玩家随着他们从虚拟世界的一部分转变到另一部分而从一个服务器切换到另一个服务器时,他们在转变时可能经历滞后或延迟。此外,希望在虚拟世界的特定区域中进行交互的所有用户需要连接到相同的服务器机器或数据中心。这可能是有问题的,因为可能有太多用户希望连接到相同的服务器机器以便访问相同的虚拟空间,并且服务器机器可能没有足够的资源或带宽来处理所有此类连接而不使游戏质量下降。另一个问题是特定服务器机器的位置可能在远离给定玩家的数据中心中,使得建立强网络连接来支持给定玩家的高质量游戏流式传输变得困难。因此,由于服务器的不同位置导致的不同网络条件,从一个服务器切换到另一个服务器可以引起游戏流式传输质量的改变。在一些情况下,游戏流式传输质量可以以增加的延时、降低的视频质量等的形式下降。
总之,目前,不同的服务器机器(以及引申开来,不同的数据中心)在给定的模拟或视频游戏的情境中不同时表示相同的(虚拟)现实。相反,不同的服务器机器处理虚拟世界的不同部分,并且这可产生如上所述的问题。
正是在这种背景下提出本公开的实施方案。
发明内容
本公开的实现方式提供了用于诸如视频游戏或模拟之类的交互式应用程序的不同会话之间的事务存储器同步的方法和系统。
在一些实现方式中,提供了一种方法,其包括以下操作:在第一数据中心中执行视频游戏的第一会话;与第一会话并发地,在第二数据中心中执行视频游戏的第二会话;其中第一会话和第二会话分别独立地生成第一游戏状态和第二游戏状态,第一游戏状态和第二游戏状态同时地表示共享虚拟空间;其中通过关于存储在第一数据中心处的第一组存储器对象的事务来实现共享虚拟空间中经由第一会话实现的事件,第一会话访问第一库,该第一库被配置为基于关于第一组存储器对象的事务来生成第一组更新包,并且将第一组更新包传输到第二数据中心;其中通过关于存储在第二数据中心处的第二组存储器对象的事务来实现共享虚拟空间中经由第二会话实现的事件,第二会话访问第二库,该第二库被配置为基于关于第二组存储器对象的事务来生成第二组更新包,并且将第二组更新包传输到第一数据中心;将第一组更新包应用于第二数据中心处的第二组存储器对象;将第二组更新包应用于第一数据中心处的第一组存储器对象;其中第一组更新包和第二组更新包的生成、传输和应用实现经由第一会话和第二会话在共享虚拟空间中的共享实时交互性。
在一些实现方式中,第一会话和第二会话彼此不通信,使得第一会话通过使用在第一数据中心处接收的输入和第一组存储器对象来执行以连续地更新第一游戏状态,并且第二会话通过使用在第二数据中心处接收的输入和第二组存储器对象来执行以连续地更新第二游戏状态。
在一些实现方式中,在第一数据中心处接收的输入是从第一客户端装置接收的,并且其中在第二数据中心处接收的输入是从第二客户端装置接收的。
在一些实现方式中,第一组更新包和第二组更新包的生成、传输和应用实现第一组存储器对象中的至少一些存储器对象与第二组存储器对象中的对应存储器对象的同步。
在一些实现方式中,应用第一组更新包改变第二组存储器对象中的对应存储器对象的一个或多个值,并且其中应用第二组更新包改变第一组存储器对象中的至少一些存储器对象的一个或多个值。
在一些实现方式中,更新包中的每一者包括时间戳、存储器标识符以及用于由存储器标识符标识的存储器对象的值。
在一些实现方式中,应用更新包中的每一者包括将由存储器标识符标识的存储器对象的值设置为更新包的值。
在一些实现方式中,应用更新包中的每一者包括确定更新包的时间戳是否为用于由存储器标识符标识的存储器对象的最新时间戳,并且如果是,则将由存储器标识符标识的存储器对象的值设置为更新包的值。
在一些实现方式中,共享虚拟空间中经由第一会话实现的事件包括通过第一会话控制的第一虚拟角色的位置的改变,并且其中共享虚拟空间中经由第二会话实现的事件包括通过第二会话控制的第二虚拟角色的位置的改变。
在一些实现方式中,第一会话的执行渲染共享虚拟空间的第一视图,并且其中第二会话的执行渲染共享虚拟空间的第二视图,使得共享虚拟空间中通过第一会话和第二会话实现的事件可通过共享虚拟空间的第一视图和第二视图同时地查看。
在一些实现方式中,提供了一种具有两个或更多个服务器的在线游戏服务,该两个或更多个服务器位于两个或更多个数据中心中,该在线游戏服务包括:跨两个或更多个服务器实现的事务层,所述事务层用于处理视频游戏的分别由两个或更多个服务器执行的不同会话之间的同步;其中视频游戏的不同会话分别被配置为通过相应的客户端装置提供对虚拟空间的查看;其中事务层被配置为标识提供对虚拟空间的近似区域的查看的会话,并且实现所标识的会话的事务存储器同步,使得虚拟空间中由所标识的会话生成的事件跨所标识的会话中的每个会话被同步。
在一些实现方式中,视频游戏的每个会话独立于视频游戏的其他会话来执行,使得视频游戏的每个会话不管理与视频游戏的其他会话的通信,并且使得视频游戏的每个会话不知道视频游戏的其他会话。
在一些实现方式中,实现所标识的会话的事务存储器同步包括标识导致虚拟空间中由所标识的会话中的一个会话生成的事件的存储器事务,以及将该存储器事务传播到所标识的会话中的其他会话。
在一些实现方式中,将存储器事务传播到所标识的会话中的其他会话包括生成更新包,该更新包包括存储器事务的时间戳、存储器事务被应用于的存储器对象的标识符,以及由存储器事务设置的值。
在一些实现方式中,事务层被配置为通过分析虚拟空间中分别与视频游戏的不同会话相关联的虚拟位置来标识提供对虚拟空间的近似区域的查看的会话。
在一些实现方式中,提供了一种具有两个或更多个服务器的在线游戏服务,这两个或更多个服务器位于两个或更多个数据中心中,该在线游戏服务包括:跨两个或更多个服务器实现的事务层,所述事务层用于处理视频游戏的分别由两个或更多个服务器执行的不同会话之间的同步;其中视频游戏的不同会话分别被配置为通过相应的客户端装置提供对虚拟空间的查看;其中事务层被配置为实现不同会话的事务存储器同步,使得虚拟空间中由不同会话生成的事件跨不同会话中的每个会话被同步;其中视频游戏的每个会话独立于视频游戏的其他会话来执行,使得视频游戏的每个会话不管理与视频游戏的其他会话的通信,并且使得视频游戏的每个会话不知道视频游戏的其他会话。
在一些实现方式中,实现所标识的会话的事务存储器同步包括标识导致虚拟空间中由会话中的一个会话生成的事件的存储器事务,以及将该存储器事务传播到会话中的其他会话。
在一些实现方式中,将存储器事务传播到会话中的其他会话包括生成更新包,该更新包包括存储器事务的时间戳、存储器事务被应用于的存储器对象的标识符,以及由存储器事务设置的值。
通过结合附图以示例方式示出本公开原理进行的以下详细描述,本公开的其他方面和优点将变得显而易见。
附图说明
通过参考结合附图进行的以下描述可以最好地理解本公开及其另外的优点。
图1概念性地示出了根据本公开的实现方式的用于采用跨数据中心的事务存储器同步的云游戏的系统。
图2示出了根据本公开的实现方式的用于应用程序会话之间的存储器对象的同步的系统。
图3概念性地示出了根据本公开的实现方式的其中基于虚拟地理接近度来过滤更新的系统。
图4A示出了根据本公开的实现方式的用于加载通过云游戏站点可获得的游戏的游戏文件的示例性系统。
图4B是概念性地示出根据本公开的实现方式的为将云视频游戏流式传输到客户端装置而执行的各种操作的流程图。
图5示出了根据本公开的实现方式的信息服务提供商架构的实施方案。
具体实施方式
在以下描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,对于本领域的技术人员将明显的是,可在没有一些或所有这些具体细节的情况下实践本公开。在其他情况下,未详细描述众所周知的过程步骤,以免模糊本公开。
目前,可以在多个不同数据中心中的多个服务器计算机/机器在给定视频游戏或模拟的情景中不表示相同的(虚拟)现实,而是各自表示虚拟世界的不同部分。这可能是有问题的,因为希望访问虚拟世界的特定部分的所有用户都需要连接到相同的服务器/数据中心,并且因为数据中心中的资源是有限的,这可能导致如前所述的资源问题。
为了解决此类问题,根据本公开的实现方式提供跨多个数据中心的事务存储器同步,使得它们可表示相同的现实。为了在数据中心之间共享现实,创建事务层,该事务层跟踪变化并跨数据中心复制这些变化。广义地讲,给定事务包括指示事务时间的时间戳、存储器位置以及值或值的变化(例如,要更新的变量)。通过实现跨数据中心的事务存储器同步,多个数据中心可表示相同的现实,从而使得能够跨数据中心展开资源利用,并且还通过允许用户连接到更靠近其位置的数据中心来为用户提供更好的网络连接性。
此外,本公开的实现方式通过提供创建、传输、接收和应用存储器事务的自动化的系统来帮助开发者。因此,应用程序开发者可在不知道多少数据中心表示视频游戏的共享现实的情况下进行开发。此外,事务机制可算出共享现实的合并状态,使得开发者不需要担心管理多个数据中心之间的状态。
广义地讲,本公开的实现方式应用于云游戏系统。云游戏系统的一个示例是Now云游戏系统。在这样的系统中,客户端装置可以是游戏控制台,诸如4游戏控制台,或者可以是另一个装置,诸如个人计算机、膝上型计算机、平板计算机、移动电话、移动装置等。诸如Network之类的网络游戏服务/系统可提供支持基于云的游戏的各种游戏服务。
为了便于描述,贯穿本公开,应当理解,对“用户”或“玩家”的提及通常将与和用户相关联或由用户操作的用户/玩家(客户端)装置同义,因为用户通常根据本公开通过使用或操作用户装置而与系统对接。因此,虽然在本公开中为了便于描述而使用术语“用户”,但是应当理解,术语“用户”可涵盖用户以及由用户操作或以其他方式与用户相关联的用户装置两者,并且另外,术语“用户”和“用户装置”在实现方式的当前描述中经常可互换使用,这对于本领域技术人员来说是明显的。
图1概念性地示出了根据本公开的实现方式的用于采用跨数据中心的事务存储器同步的云游戏的系统。如图所示,存在多个数据中心,每个数据中心执行表示相同现实的应用程序的副本。例如,数据中心100包括服务器资源102。服务器资源102可包括数据中心100中可用于执行和流式传输应用程序的任何计算资源,作为示例而非限制,包括各种服务器计算机/机器、刀片式计算资源、CPU/GPU/APU、易失性和非易失性存储器或存储装置、本地联网装置等。在一些实现方式中,服务器资源102可以是在底层计算硬件上抽象的虚拟化计算资源。
应用程序会话104在数据中心100中的服务器资源102上执行。在一些实现方式中,应用程序会话104是视频游戏、模拟或其他交互式程序的会话。广义地讲,应用程序会话104生成并更新定义应用程序会话104的虚拟空间/现实的程序状态(或游戏状态)。一般来讲,出于本公开的目的,应用程序/视频游戏的“现实”是由应用程序/视频游戏生成并维持的虚拟交互式环境,其中多个用户可以通过相应的客户端装置交互并影响对象的状态。
在表示虚拟空间时,应用程序会话104执行关于存储器对象106的事务。存储器对象106可以包括定义虚拟空间中的对象或属性的状态以及其中的对象之间的交互的任何变量、数据或数据结构。仅作为示例而非限制,存储器对象或由存储器对象定义的项目的示例可包括以下项和/或以下项的属性:角色、化身、人、动物、衣服、移动、武器、盾牌、盔甲、车辆、风景、虚拟位置、虚拟时间、存货、经验、虚拟货币、健康、生命、损伤、虚拟对象、虚拟动作等。
根据本公开的实现方式,多个数据中心可表示相同的现实。例如,在所示的实现方式中,示出了可执行相同应用程序的附加数据中心110和120。就数据中心110而言,服务器资源112被用来执行应用程序会话114,该应用程序会话执行关于存储器对象116的事务。同样,数据中心120使用服务器资源122来执行应用程序会话124,该应用程序会话执行关于存储器对象126的事务。应用程序会话114和124是与应用程序会话104相同的应用程序的不同会话,并且存储器对象116和126可包括许多或全部与存储器对象106相同的存储器对象。虽然在所示的实现方式中示出了数据中心100、110和120,但是应当理解,可以存在附加数据中心,并且不管数据中心的数量如何,本公开的原理都类似地适用。
每个应用程序会话从由相应用户操作的一个或多个客户端装置接收输入。此外,每个应用程序会话渲染向客户端装置提供虚拟空间的视图的视频(包括图像数据和音频数据),以用于呈现在显示器上,该显示器可被集成到客户端装置(例如,膝上型计算机、平板计算机、移动电话等)中,或者连接到客户端装置(例如,电视、显示器、或连接到游戏控制台、个人计算机的头戴式显示器等)。例如,在所示的实现方式中,由用户134操作的客户端装置132可通过网络130与数据中心100通信,从而向应用程序会话104提供输入并从应用程序会话104流式传输视频。该输入可基于来自控制器装置的控制器输入来生成,该控制器装置可连接到客户端装置132或集成到该客户端装置中。控制器装置的示例包括以下项:键盘、鼠标、跟踪球、触控板、触摸屏、操纵杆、运动控制器、游戏控制器、图像捕获装置或相机、传声器、深度相机等。如所述的用以实现与应用程序或视频游戏的交互性/玩游戏过程的输入和视频的传输被称为流式传输应用程序或流式传输视频游戏(视频游戏的玩游戏过程)。
因此,进一步根据所示的实现方式,用户138可操作客户端装置136来流式传输应用程序会话114;并且用户142可操作客户端装置140来流式传输应用程序会话124。应当理解,可存在更多的客户端装置和用户,并且在一些实现方式中,存在连接到数据中心以与应用程序会话进行交互的数百或数千个客户端装置和用户。各种用户可从不同的应用程序会话进行流式传输,但是用户能够同时参与相同的虚拟空间/现实,使得他们的活动跨会话被同步。
例如,在所示的实现方式中,使用应用程序会话104、114和124从数据中心100、110和120流式传输交互性,以分别流式传输到客户端装置132、136和140。应用程序会话中的每一者表示相同的现实,并且因此为了促进活动跨应用程序会话的同步,提供事务系统来处理数据变化。广义地讲,事务系统被配置为使得当一段数据被改变时,则底层事务层创建更新包并将其发送到其他服务器,并且其他服务器可根据应用程序的配置来应用更新包以处理此类更新。
通过提供事务层以促进数据跨相同现实的不同会话改变的方式,这使得对于应用程序开发者而言容易进行,从而使得应用程序开发者不必考虑如何传输该数据以及在应用程序的不同会话之间维持同步。相反,开发者可在单一意义上开发应用程序,并且不必开发支持同时存在于多个服务器上或多个数据中心中的对象之间的同步的机制。
继续参考图1,数据中心中的每一者实现事务层的实例。如图所示,数据中心100中的服务器源102实现事务层108;数据中心110中的服务器源112实现事务层118;并且数据中心120中的服务器源122实现事务层128。事务层中的每一者被配置为通过跨数据中心的应用程序会话来同步关于存储器对象的事务。
作为示例而非限制,操作客户端装置132的用户134可与由应用程序会话104生成的虚拟空间进行交互。即,应用程序会话104将提供虚拟空间的视图的视频流式传输到客户端装置132,并且部分地通过执行关于存储器对象106的事务来更新应用程序会话104的应用程序状态。应用程序会话104的执行可以部分地由从客户端装置132接收的输入驱动,例如基于由用户134使用控制器装置提供的控制器输入,该控制器装置可操作地连接到客户端装置132或集成到该客户端装置中。
当对作为存储器对象106中的一者的给定存储器对象执行事务时,事务层108被配置为实现跨数据中心的同步。为了实现这一点,事务层108创建更新包,该更新包包括存储器对象的标识符/位置、事务的时间戳,以及用于更新存储器对象的值(例如,存储器对象的新值、与现有值的偏移量等)。事务层108创建更新包并将更新包传输到数据中心110和120,并且数据中心110和120处的对应事务层118和128分别处理和应用更新包。例如,事务层118可应用更新包来更新存储器对象116中的对应存储器对象的值;并且事务层128可应用更新包来更新存储器对象126中的对应存储器对象的值。
作为示例而非限制,存储器对象可表示由用户134经由客户端装置132控制的角色的位置。当用户134移动角色时,应用程序会话104应用来自客户端装置132的输入,该输入实现角色的移动,使得其位置在虚拟空间中从第一位置改变到第二位置。这可以实现为关于存储器对象的事务,从而将其值从标识第一位置的值改变为标识第二位置的值。当这发生时,事务层108生成更新包,该更新包包括事务的时间戳、存储器对象的标识符以及标识第二位置的值。事务层108将更新包传输到应用更新包的其他事务层118和128,从而用标识第二位置的值来更新存储器对象116和126中的对应存储器对象。以这种方式,在应用程序会话104中已经改变的角色的位置跨应用程序会话114和124被更新。因此,例如,当查看角色所在的虚拟空间时,使用客户端装置136从应用程序会话114进行流式传输的用户138可以看到角色移动到第二位置。类似地,当查看角色所在的虚拟空间时,使用客户端装置140从应用程序会话124进行流式传输的用户132可以看到角色移动到第二位置。
应当理解,用户134、138和142处于共享空间中,但是他们中的每一者都正在从应用程序的独特且不同的会话流式传输交互性。在某种意义上,不同的应用程序会话104、114和124各自独立地生成正被共享的虚拟空间,但凭借存储器对象(出于共享交互性的目的而言)通过事务层的同步而彼此同步。事务层将变化从每个数据中心传播到其他数据中心中的每一者,从而维持不同应用程序会话之间的同步。这实现了在跨数据中心一致的共享空间中的用户之间的实时交互性。
继续上述场景,如果用户134的角色在共享虚拟空间中踢到石头并且该石头将要绊倒用户138的角色,那么指示该动作的信息应从数据中心100发送到数据中心110,使得其可被数据中心110中的应用程序会话114渲染。然后,如果用户138的角色跳过石头,则该动作的信息被发送回来,使得数据中心100中的应用程序会话104可渲染该跳跃。根据以上原理,用户134踢石头的动作反映在关于存储器对象106中的一者或多者(例如,定义用户134的角色的状态/移动/位置的存储器对象,定义石头的状态/移动/位置的存储器对象等)的一个或多个事务中。这些事务由事务层108打包并被传输到事务层118,在那里它们被应用于存储器对象116并且被应用程序会话114渲染。进一步根据本公开的原理,用户138跳过石头的动作反映在关于存储器对象116中的一者或多者(例如,定义用户138的角色的状态/移动/位置的存储器对象,定义石头的状态/移动/位置的存储器对象等)的一个或多个事务中。这些事务由事务层118打包并被传输到事务层108,在那里它们被应用于存储器对象106并且被应用程序会话104渲染。另外,用户142在虚拟空间中的角色可正看到踢到石头并跳过石头,并且因此事务层128也从事务层108和118接收打包的事务,这些打包的事务由事务层128应用并且由应用程序会话124渲染,使得用户142可以与由其他应用程序会话104和114表示的现实一致地看到虚拟空间中发生的活动。
根据本公开的实现方式,数据中心可在地理上彼此远离。例如,数据中心100(以及客户端装置132和用户134)可以在美国,而数据中心110(以及客户端装置136和用户138)可以在日本,并且数据中心120(以及客户端装置140和用户142)可以在英国。每个玩家连接到靠近其相应的客户端装置的执行应用程序的数据中心。然而,每个数据中心可在不知道应用程序正在多个数据中心中运行的事实的情况下运行该应用程序。每个数据中心中的应用程序的每个实例独立地执行,使得在每个帧处,每个会话利用其具有的可用数据处理,从而生成具有反映在可用存储器对象中的输入的帧。并且因为存储器对象正在被同步,则因此会话能够表示同步的现实。这简化了应用程序的代码的开发,因为同步是由底层事务层而不是在应用程序级别处理的,并且因此应用程序可能不知道它可能正在不同的数据中心中运行同时会话的事实。每个会话不需要专门被配置为直接与另一个数据中心进行交互。例如,每个会话不需要知道各种用户连接到的数据中心,因为每个会话不涉及基于特定玩家连接到特定数据中心的知识向该数据中心发送消息。在这个意义上,每个会话不知道其他会话,并且不管理与其他数据中心中的其他会话的通信。相反,底层事务层在发生关于存储器对象的事务时处理对数据中心中的每一者的更新。
在一些实现方式中,每个数据中心对更新包的应用可根据用于处理传入的更新的预定义配置。例如,在一些实现方式中,总是应用传入的更新。在一些实现方式中,如果更新的时间戳紧接着(晚于)应用于相关存储器对象的最后事务的时间戳(例如,由本地应用程序会话应用或从接收自另一个数据中心的先前更新应用),则应用更新。在一些实现方式中,更新首先由接收数据中心处的应用程序会话处理,然后可能在由应用程序会话以某种方式修改之后被应用。
图2示出了根据本公开的实现方式的用于应用程序会话之间的存储器对象的同步的系统。广义地讲,在一些实现方式中,事务层通过库来实现,该库标识应当在数据中心之间同步的数据集,并且因此当检测到变化时应当针对该库传输更新。因此,当关于这样的数据的事务发生时,通过库来实现变化。通常,库被配置为将此类存储器事务(例如,包括存储器位置/标识符、时间戳、改变的值/新值)打包,并且将事务广播到其他数据中心。当被每个数据中心接收到时,应用程序指定在接收到新数据更新时发生的情况。不同的应用程序可具有用于管理改变的数据的方式的不同配置。在一些实现方式中,每当接收到新数据时,如果是最新更新(例如,基于时间戳),则应用该新数据;而在其他实现方式中,对于任何新数据,更新可被评估并且可能被不同地修改和应用,这取决于当前应用状态。因此,每个服务器可运行库模块的实例,该库模块标识应当跨服务器更新的事务。当这样的事务发生时,其被库模块标识并且被传输到其他数据中心。
继续参考图2的实现方式,库模块200被示出为在服务器资源102上实例化,该库模块还运行应用程序会话104并且托管存储器对象106,如先前所述。库模块200包括同步数据202,该同步数据被配置为标识应当跨数据中心同步的存储器对象/数据。在一些实现方式中,同步数据202包括用于一些或全部存储器对象106的逻辑存储器位置或标识符,所述逻辑存储器位置或标识符跨库模块的所有实例是一致的,使得当库模块向彼此传送更新时,它们可引用不同数据中心中的等效存储器对象。在一些实现方式中,同步数据202包括本地存储器对象到逻辑存储器位置/标识符的映射,使得给定的逻辑存储器位置/标识符映射到每个数据中心中的等效存储器对象。
如上所述,同步数据202可被配置为标识哪些存储器对象要跨数据中心被同步。在一些实现方式中,特定存储器对象或存储器标识符在同步数据202中被标记或标识(或预标记/预标识)为要同步的数据。在一些实现方式中,同步数据202标识要同步的数据/变量的类型或类别。在一些实现方式中,同步数据202标识要同步的事务或事务类型。无论具体实现方式如何,同步数据202都被配置为使得能够标识哪些存储器对象106要跨数据中心被同步。
在一些实现方式中,应用程序会话104被配置为引用库模块200来确定哪些存储器对象或存储器事务需要被同步。然后,如果发生需要同步的存储器事务,则应用程序会话104可调用库模块200来处理事务和/或同步。在一些实现方式中,库模块200被配置为处理来自应用程序会话104的存储器事务,并且被配置为确定哪些事务将跨各个应用程序会话或数据中心被同步。应当理解,对于不需要同步的存储器事务,则仅受影响的本地存储器对象将作为事务的结果而改变(存储器对象106中的一者或多者);而对于确实需要同步的存储器事务,则本地存储器对象以及其他会话/数据中心中的对应存储器对象都将作为事务的结果而改变。
应当理解,库模块200可以是可配置的以允许开发者确定哪些存储器对象和/或事务将跨数据中心被同步。在一些实现方式中,库模块200(例如当被包括作为游戏引擎或应用程序库集合的一部分时)可包括标准或默认配置,该配置将某些数据或事务类型预标识为将由库模块200同步的数据或事务类型。然而,在一些实现方式中,该配置可由开发者调整。在一些实现方式中,应用程序可由开发者配置以指定要同步哪些数据或事务或者要调整哪些默认配置。就静态库而言,这可以在应用程序构建期间发生,而就动态库而言,这可以在运行时加载库时发生。
应当理解,当开发者标记哪些事务或对象对于同步是重要的时,则库被配置为处理跨数据中心更新此类事务或此类对象的状态的过程。应当理解,并非虚拟空间的所有特征都需要被同步。例如,虽然可能期望跨会话同步玩家的角色或化身,但是可能不需要同步虚拟空间中的其他元素,诸如植物或随机生成的在头顶上飞行的鸟的移动,或者通常不影响共享虚拟空间中的用户之间的交互性的元素。应当理解,由于不是所有的虚拟对象或状态都是同步的,则为了同步而需要在数据中心之间传输的数据的量减少,并且节省了网络带宽。这有助于通过减小由于带宽不足而导致的延时将成为问题的可能性来实现跨会话的实时或基本上实时的同步。
继续参考图2,当确定关于存储器对象的事务需要跨会话/数据中心同步时,则库模块200的打包逻辑204被配置为对相关信息进行打包以用于更新其他数据中心。在一些实现方式中,打包逻辑204构建包含用于更新和同步其他数据中心处的相关存储器对象的信息的更新包208。在一些实现方式中,更新包208包括:时间戳210,该时间戳指示如由应用程序会话104确定或执行的对存储器对象的事务或改变的时间;存储器标识符/位置212,该存储器标识符/位置标识或定位要在接收数据中心处更新的存储器对象;以及值214,该值可定义存储器对象的新值/当前值/更新后的值。在一些实现方式中,值214定义与先前值或其他参考值的偏移量或变化。打包逻辑208将信息打包以生成更新包208,并且将更新包208传输到其他数据中心。
在所示的实现方式中,更新包208被示出为传输到数据中心110,其中该更新包由类似于库模块200但被配置用于应用程序会话114和存储器对象116的相应库模块216处理。更新包208由更新处理程序222处理,该更新处理程序在一些实现方式中被包括为库模块216的一部分。在其他实现方式中,更新处理程序222与库模块216分离。
更新处理程序222被配置为接收更新包208并根据预定义设置来应用更新包208中的信息。在一些实现方式中,更新处理程序实现用于应用更新的方式和/或时间的规则。应当理解,根据受影响的事务或存储器对象,可以不同地处理更新。对于一些事务或存储器对象,更新处理程序222可被配置为总是应用最新更新。即,如果时间戳210晚于对存储器对象的最后修改的时间,则将应用传入的更新包208。对于一些事务或存储器对象,更新处理程序222可被配置为评估更新包208,并且如果该更新包满足某些标准则应用它,或者通过一些修改来应用它。应当理解,在每个事务的基础上,当接收到更新数据时,可存在处理更新数据的不同模式。
虽然上文已经描述了更新从数据中心100到数据中心110的传送,但是应当理解,由数据中心110处的应用程序会话114生成的存储器事务也可以触发要从数据中心110传输到数据中心100的更新。每个数据中心包括与上文所述基本上相同的库模块。在所示的实现方式中,库模块216还包括类似于同步数据202的同步数据218,以及类似于打包逻辑204的打包逻辑220。同样,数据中心100处的库模块200还包括类似于更新处理程序222的更新处理程序206,以用于处理从其他数据中心接收的传入更新包。因此,根据上述内容,应用程序会话114可生成存储器事务,该存储器事务触发要从数据中心110传输到其他数据中心的更新(如基于同步数据218所确定的)。因此,在所示的实现方式中,打包逻辑220将生成更新包,该更新包被传输到数据中心100并且由更新处理程序206应用于存储器对象106。
虽然上文已经关于数据中心100和110描述了同步,但是应当理解,所述概念可以扩展到任何数量的数据中心,诸如数据中心120和其他数据中心,它们也运行应用程序和库模块的并发会话。因此,每个服务器/数据中心具有库模块,并且库模块彼此通信以在应用程序的各个会话之间传播变化,从而确保共享虚拟空间/环境的同步。以这种方式,开发者不必指定事务应当跨数据中心更新的方式,而是可如同仅在本地数据中心上运行一样来编码。库模块被配置为标识哪些事务需要被传播到其他会话/数据中心,从而使此类事务或相关存储器对象在库模块中被预标记或预标识,以在此类事务发生时触发更新。
仅作为示例而非限制,可在库模块中预标识为触发更新的事务的一些示例包括以下项:虚拟对象(例如,门)受到一定程度的损坏,从虚拟世界移除项目(例如,由玩家拾取),(例如,虚拟物品或财产的)玩家存货增加/减少;虚拟对象(例如,车辆)被毁坏等。应当理解,此类事务可包括对于连接到另一数据中心的另一玩家知道是否在相同共享虚拟空间/环境中交互而言重要或必要的任何信息。
在一些实现方式中,更新可以基于其他因素而被发送或不被发送。例如,可以基于接收数据中心的虚拟对象的虚拟地理接近度来在发送数据中心处过滤被触发以用于发送的更新。
图3概念性地示出了根据本公开的实现方式的其中基于虚拟地理接近度来过滤更新的系统。在所示的实现方式中,概念性地示出了虚拟空间300,其中玩家P1、P2和P3在虚拟空间300中表示。应当理解,玩家在虚拟空间中可由角色、化身、车辆或可代表玩家的其他虚拟对象来表示。因此,玩家在虚拟空间中的位置实际上是玩家的表示的位置,为了便于描述,其被同义地引用。如所示的实现方式中所示,玩家P1和P2在虚拟空间300中相较于玩家P3更靠近彼此。
此外,玩家P1由数据中心100控制;玩家P2由数据中心110控制;并且玩家P3由数据中心120控制。即,从连接到数据中心100的客户端装置控制玩家P1;从连接到数据中心110的客户端装置控制玩家P2;从连接到数据中心120的客户端装置控制玩家P3。
如上所述,在一些实现方式中,部分地基于虚拟空间300中的地理位置来发送或不发送更新。为了促进该功能,库模块可以被配置为彼此共享位置数据,该位置数据标识分别与其数据中心相关联的玩家的位置。因此,在所示的实现方式中,库模块200可与(分别为数据中心110和120的)其他库模块216和230共享标识玩家P1的位置的位置数据。同样,库模块216可与其他库模块200和230共享标识玩家P2的位置的位置数据;并且库模块230可与其他库模块200和216共享标识玩家P3的位置的位置数据。以这种方式,数据中心中的每一者接收指示其他数据中心的感兴趣的地理位置的数据。在这种情况下,给定数据中心的感兴趣的地理位置由与该数据中心相关联的玩家的位置来定义。
例如,当发生与玩家P1相关的变化(例如,位置、存货、健康、损伤、外观、相关联武器(射击)等的变化)时,这可以触发库模块200向与此类更新相关的数据中心发布更新包。在一些实现方式中,这可以基于距玩家P1的距离。例如,在一些实现方式中,如果与另一数据中心相关联的玩家在玩家P1的预定义距离或半径内,则库模块200将向该数据中心发送更新包。在所示的实现方式中,这由半径R1示出。因为玩家P2在半径R1内,则库模块200将向库模块216发送更新包,这是因为玩家P2可被认为足够接近以使得与玩家P1相关的变化可影响玩家P2或以其他方式与其相关。相反,因为玩家P3不在半径R1内,则库模块200将不向库模块230发送更新包,这是因为玩家P3可被认为足够远以使得与玩家P1相关的变化可不影响玩家P3或不以其他方式与其相关。
以类似的方式,可以将与玩家P2相关的变化传播到在玩家P2的预定义半径R2内的玩家。因此,数据中心110(使用库模块216)将向数据中心100(经由库模块200)发送关于玩家P2的更新,但是将不会向数据中心120发送此类更新,因为玩家P3在半径R2之外。并且类似地,数据中心120(使用库模块230)将不向数据中心100或110中的任一者发送关于玩家P3的更新(但是,在玩家进入半径R3时,将不向相应的数据中心发送此类更新)。
尽管已相对于玩家描述了前述内容,但是应当理解,该原理可应用于虚拟空间300中的任何类型的虚拟对象。即,可以基于虚拟空间中的虚拟地理接近度来发送更新。
在一些实现方式中,基于地理接近度传送更新可通过库模块实现为可由开发者/应用程序打开/关闭或激活/停用的可配置机制。
通过基于接近度过滤更新发送,可以节省资源,这在其中可存在许多玩家的大型游戏世界中可以是有用的,其中一些玩家可彼此远离。以这种方式,发送服务器可以决定数据对于接收者是否重要。因此,提供了另一层传送,其中服务器向彼此传送对于其相应的玩家重要的位置,或者其受影响的位置,使得每个服务器可以确定是否向另一个服务器发送更新。
在一些实现方式中,事务或存储器对象可以在设置时标记有位置和/或半径。通常,位置将被定期更新,而另一实体将受给定事务或存储器对象的影响的远近程度是在设置时被配置。
当一段数据被改变时,库模块可评估服务器的列表并检查每一个服务器以确定是否应将更新发送到该服务器。因此,通过在发送侧进行过滤,节省了资源,因为并不是所有的更新都被发送到所有的服务器。每个服务器周期性地了解对于彼此重要的位置或事务或对象。
在一些其他实现方式中,事务本身可以传送空间关系。例如,上述更新包还可包括位置或接近度信息。更新处理程序可以部分地基于这样的位置/接近度信息来确定是否应用更新。
在一些实现方式中,不同的服务器/数据中心可对某些事务或存储器对象具有权限。例如,诸如角色或车辆之类的给定虚拟对象可仅由一个数据中心控制,并且没有其他数据中心将创建关于该虚拟对象的事务。相反,其他数据中心将仅从授权数据中心接收数据并将其应用于更新其对应的虚拟对象。在一些实现方式中,数据中心可通过事务向其他数据中心通告其权限,并且从此刻开始,其他数据中心将不创建此类事务。或者如果另一数据中心试图创建事务,则库可生成稍后可用于调试目的的故障状态。
广义地讲,本公开的实现方式可被包括作为游戏引擎的一部分。
广义地讲,游戏引擎是提供实现视频游戏的有效开发的特征的软件开发框架。游戏引擎可包括具有可重复使用模块的软件库,以处理游戏功能的各个方面,作为示例而非限制,包括图形渲染(例如,包括顶点处理、多边形处理、着色、照明、纹理化等)、声音、物理(包括碰撞处理)、动画、脚本、人工智能、网络、流式传输、存储器管理、线程、本地化支持、场景图、电影制片术等。
游戏引擎可被优化以用于不同的硬件平台,诸如游戏控制台、移动装置、个人计算机等。作为示例而非限制,游戏引擎可根据平台来优化存储器使用(例如,如何对图形流水线中的各种任务进行优先级排序等)。在一些实现方式中,硬件可以是诸如游戏控制台之类的一些特定处理实体的刀片式版本。因此,用户可被分配给特定的刀片,这给出了控制台游戏已被优化的相同硬件。
应当理解,还可存在游戏服务器逻辑以提供流式传输和/或其他服务(分包、编码、服务质量(QOS)监测、带宽测试、对社交网络/好友的访问等)。
在一些实现方式中,云基础设施可运行管理程序,该管理程序使硬件抽象化并提供可在其上加载操作系统(OS)的虚拟机框架。因此,栈可包括在OS上运行的应用程序/视频游戏,该OS被加载在由管理程序实例化的虚拟机(VM)上,该VM被加载在底层硬件上。以这种方式,应用程序的执行不必耦合到特定硬件。
在一些实现方式中,应用程序/视频游戏可通过容器执行,该容器在应用层处抽象化,从而将代码和相关性打包在一起,由此在不知道OS或硬件平台的情况下实现软件开发,并且促进跨平台的软件可移植性。
在一些实现方式中,采用分布式游戏引擎,其中游戏引擎的不同部分可由不同的计算实体来处理。例如,诸如物理引擎、渲染引擎(2D/3D图形)、声音、脚本、动画、AI、联网、流式传输(编码)、存储器管理、线程等的游戏引擎的功能可被划分成分布在许多不同计算之间的不同功能处理块和/或服务。应当理解,对于分布式游戏引擎,需要低延时通信以避免延时问题。为了维持期望的帧速率,计算和通信的总时间应当满足某些约束。因此,根据是否可在较短的时间内完成过程来划分某些任务可能是有效的,或者可能不是有效的。
使用分布式游戏引擎的优点在于可以利用弹性计算,其中计算资源可以根据需要按比例放大或缩小。例如,在传统上在单个硬件服务器上执行的大型多玩家游戏中,在例如约100个玩家之后,硬件资源变得受限,使得不能增加更多的玩家。游戏可对另外的玩家进行排队,这意味着玩家必须等待加入游戏。然而,利用分布式游戏引擎,通过使用弹性云计算资源,可以增加更多的计算节点来满足需求,从而实现例如成千上万的玩家。游戏不再受特定硬件服务器的限制的约束。
因此,云游戏引擎可具有分发给不同处理实体的功能。应当理解,可以在不同的框架中执行不同的功能。例如,一些功能(例如,社交)可更容易在容器中运行,而图形可使用连接到GPU的VM更好地运行。
为了促进云游戏引擎的功能的分发,分发/同步层可管理作业的分发,例如,将作业发出,将数据收回,标识执行的任务以及例如如果作业完成得比所需更快则处理排队的时间。在一些实现方式中,如果需要,则给定任务可被动态地细分。例如,动画可具有照明,并且如果照明特别复杂,则照明可以被细分成三个照明作业,这些照明作业被发出以用于计算并在返回后重新组合。因此,如果游戏引擎功能需要更多的工作,则它们可被细分。
云服务提供商以指定的性能级别(例如按照每秒的输入/输出操作次数(“IOPS”))提供计算。因此,游戏提供商可从云服务提供商指定VM、专用处理能力、内存的量等,并且使用云服务提供商的系统来使分布式云游戏引擎实例化。
在一些实现方式中,库模块和更新处理程序可以是游戏引擎的一个或多个部件或模块。在一些实现方式中,库模块和更新处理程序可以是单独的部件,或者是集成的。在一些实现方式中,库模块和更新处理程序可以作为对游戏引擎的补充来操作。在一些实现方式中,游戏引擎可以是分布式游戏引擎,如上所述。
如上所述,本公开的实现方式可应用于云游戏系统。云游戏系统的一个示例是Now云游戏系统。在此类系统中,客户端装置可以是游戏控制台,诸如4游戏控制台,或者可以是另一个装置,诸如个人计算机、膝上型计算机、平板计算机、移动电话、移动装置等。
广义地讲,为了实现云游戏,当接收到针对游戏名称的用户请求时,由与云游戏站点相关联的数据中心内的一个或多个服务器执行若干操作。当云游戏站点接收到用户请求时,标识托管与所选择的游戏名称相关联的游戏的数据中心,并且将该请求发送到所标识的数据中心,以针对所选择的游戏名称实例化游戏。响应于该请求,数据中心处的服务器标识游戏代码,加载所标识的游戏代码并且初始化与游戏代码相关的文件,以准备将游戏内容呈现给用户。与游戏相关联的游戏数据可包括通用游戏数据和用户特定的游戏数据。因此,初始化文件可以包括标识、加载和初始化通用游戏数据和用户特定的游戏数据。初始化通用游戏数据可包括初始化图形引擎、安装图形数据、初始化声音文件、安装原图等。初始化用户特定数据可包括定位、传输和安装用户数据、用户历史、游戏历史等。
在加载和初始化通用游戏数据时,可提供“启动”画面以在客户端装置处进行渲染。可设计一种启动画面来提供正在加载的游戏的代表性图像,以允许用户预览正在加载的游戏的类型。一旦加载了通用游戏数据,就可以渲染某些初始内容,并且可呈现选择/导航屏幕以供用户选择和定制。在选择/导航屏幕处提供的用户选择输入可包括游戏等级选择、一个或多个游戏图标选择、游戏模式选择、游戏奖励、以及可能需要上传额外游戏内容的其他用户相关数据。在一些实施方案中,通过将游戏内容从游戏云系统流式传输到用户的计算装置来使游戏内容可用于查看和交互。在一些实现方式中,在加载用户特定数据之后,游戏内容可用于进行游戏。
图4A示出了用于为可通过云游戏站点获得的游戏加载游戏文件的示例性系统。该系统包括多个客户端装置400,该多个客户端装置通过网络402(诸如因特网)通信地连接到云游戏站点404。当从客户端装置400接收到访问云游戏站点404的请求时,云游戏站点404访问存储在用户数据存储区408中的用户帐户信息406,以标识与通过其发起请求的客户端装置相关联的用户。在一些实施方案中,云游戏站点还可以验证所标识的用户,以便确定该用户被授权查看/玩的所有游戏。在用户帐户标识/验证之后,云游戏站点访问游戏名称数据存储区410以针对发起请求的用户帐户标识在游戏云站点处可用的游戏名称。游戏名称数据存储区410又与游戏数据库412进行交互以获得针对云游戏站点可用的所有游戏的游戏名称。当推出新的游戏时,将用游戏代码更新游戏数据库412,并且将为游戏名称数据存储区410提供新推出的游戏的游戏名称信息。当发起请求时,发起请求的客户端装置可以向或可以不向云游戏站点注册。如果发起请求的客户端装置的用户不是注册用户,则云游戏站点可将该用户标识为新用户,并且选择适合新用户的游戏名称(例如,默认的一组游戏名称)。将所标识的游戏名称返回给客户端装置以呈现在显示屏400-a上,如图4A所示。
检测在客户端装置上渲染的游戏名称中的一个游戏名称处的用户交互,并且将信号发送到云游戏站点。该信号包括检测到用户交互的游戏名称信息以及在游戏名称处注册的用户交互。响应于从客户端装置接收的信号,云游戏站点主动确定托管游戏的数据中心,并且向所标识的数据中心发送信号以加载与检测到用户交互的游戏名称相关联的游戏。在一些实施方案中,可能有一个以上的数据中心正在托管游戏。在此类实施方案中,云游戏站点可以确定发起请求的客户端装置的地理位置,并且标识在地理上靠近客户端装置的数据中心,并且发信号通知该数据中心来预加载游戏。可以使用客户端装置内的全球定位系统(GPS)机制、客户端的IP地址、客户端的ping信息等来确定用户的地理位置。当然,检测用户的地理位置的前述方式可以是示例性的,并且可以使用其他类型的机制或工具来确定用户的地理位置。标识靠近客户端装置的数据中心可以使用户与游戏进行交互期间的延时最小化。在一些实施方案中,所标识的数据中心可能不具有托管游戏所需的带宽/容量或者可能被过度使用。在这些实施方案中,云游戏站点可以标识在地理上靠近客户端装置的第二数据中心。游戏的加载包括加载游戏代码并且执行游戏的实例。
响应于从云游戏站点接收到信号,所标识的数据中心可以在数据中心处选择服务器来在服务器上实例化游戏。基于可用的硬件/软件能力和游戏要求来选择服务器。服务器可以包括多个游戏控制台,并且服务器可以确定使用多个游戏控制台中的哪一个游戏控制台来加载游戏。游戏控制台可以类似于独立的游戏控制台,或者可以是机架式服务器或刀片服务器。刀片服务器又可以包括多个服务器刀片,其中每个刀片具有用于实例化单个专用应用(诸如游戏)所需的电路。当然,上述游戏控制台是示例性的,且不应被视为是限制性的。其他类型的游戏控制台(包括游戏站等)以及其他形式的刀片服务器也可以用于托管所标识的游戏。
一旦标识出游戏控制台,就将游戏的通用游戏相关代码加载到游戏控制台上,并且通过网络经由云游戏站点将标识实例化游戏的游戏控制台的信号返回给客户端装置。因此,加载的游戏可供用户使用。
图4B是概念性地示出根据本公开的实现方式的为将云视频游戏流式传输到客户端装置而执行的各种操作的流程图。游戏系统418执行视频游戏并且生成原始(未压缩的)视频420和音频422。视频420和音频422被捕获和编码以用于流式传输目的,如在所示的图中的附图标记424处所指示。编码可以提供视频和音频流的压缩,以减少带宽使用并且优化游戏体验。编码格式的示例包括H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPEG-2、WMV、VP6/7/8/9等。
经编码的音频426和经编码的视频428被进一步分包为网络数据包,如附图标记432处所指示,以用于通过网络(诸如因特网)进行传输的目的。网络数据包编码过程也可以采用数据加密过程,从而提供增强的数据安全性。在所示的实现方式中,生成音频数据包434和视频数据包436以用于通过网络进行传输,如附图标记440处所指示。
游戏系统418另外生成触觉反馈数据430,该触觉反馈数据也被分包为网络数据包以用于网络传输。在所示的实现方式中,生成触觉反馈数据包438以用于通过网络进行传输,如在附图标记440处进一步指示。
在共同定义云游戏服务/系统的一个或多个服务器上执行前述生成原始视频和音频以及触觉反馈数据、对视频和音频进行编码并且对经编码的音频/视频和触觉反馈数据进行分包以进行传输的操作。如附图标记440处所指示,音频、视频和触觉反馈数据包通过网络(诸如和/或包括因特网)进行传输。如附图标记442处所指示,音频数据包434、视频数据包436和触觉反馈数据包438由客户端装置解码/重组,以在客户端装置处定义经编码的音频446、经编码的视频448和触觉反馈数据450。如果数据已经加密,则也将对网络数据包解密。然后,如附图标记444处所指示,由客户端装置对经编码的音频446和经编码的视频448进行解码,以生成客户端侧原始音频和视频数据以在显示装置452上渲染。可以处理/传送触觉反馈数据450以在控制器装置456或可通过其渲染触觉效果的其他接口装置处产生触觉反馈效果。触觉效果的一个示例是控制器装置456的振动或隆隆声。
应当理解,视频游戏对用户输入进行响应,并且因此可以执行与上述用于用户输入的传输和处理的程序流程类似但是在从客户端装置到服务器的相反方向上的程序流程。如图所示,用户操作控制器装置456可生成输入数据458。该输入数据458在客户端装置处进行分包,以通过网络传输到云游戏系统。输入数据包460被云游戏服务器拆包并且重组以在服务器侧定义输入数据462。输入数据462被馈送到游戏系统418,该游戏系统处理输入数据462以更新视频游戏的游戏状态。
在音频数据包434、视频数据包436和触觉反馈数据包438的传输(附图标记440)期间,可以监测通过网络的数据传输以确保云游戏流的服务质量。例如,可以如附图标记464所指示监测网络条件,包括上游和下游网络带宽两者,并且可以响应于可用带宽的变化来调整游戏流式传输。即,可以基于当前网络条件来控制网络数据包的编码和解码,如附图标记466所指示。
图5示出了信息服务提供商架构的实施方案。信息服务提供商(ISP)570向地理上分散且经由网络586连接的用户582提供大量信息服务。ISP可以只提供一种类型的服务,诸如股票价格更新,或可以提供多种服务,诸如广播媒体、新闻、体育、游戏等。另外,每个ISP所提供的服务都是动态的,即,可以在任何时间点添加或移除服务。因此,向特定个人提供特定类型的服务的ISP可能会随时间变化。例如,当用户在她的家乡时,可以由靠近该用户的ISP为用户提供服务,并且当用户前往不同城市时,可以由不同的ISP为用户提供服务。家乡ISP将把所需的信息和数据传输到新的ISP,使得用户信息“跟随”用户到新的城市,从而使数据更接近用户并且更易于访问。在另一个实现方式中,可以在为用户管理信息的主ISP和在主ISP的控制下直接与用户对接的服务器ISP之间建立主-服务器关系。在另一个实施方案中,当客户端在世界范围内移动时,数据从一个ISP传输到另一个ISP,以使处在更好位置为用户提供服务的ISP成为提供这些服务的ISP。
ISP 570包括应用服务提供商(ASP)572,该ASP通过网络向客户提供基于计算机的服务。使用ASP模型提供的软件有时也称为按需软件或软件即服务(SaaS)。提供对特定应用程序(诸如客户关系管理)的访问的简单形式是使用标准协议(诸如HTTP)。该应用软件驻留在供应商的系统上,并且由用户使用HTML通过web浏览器进行访问、通过由供应商提供的专用客户端软件进行访问或通过其他远程接口(诸如瘦客户端)进行访问。
在广泛的地理区域内提供的服务通常使用云计算。云计算是一种计算方式,其中动态可扩展和通常虚拟化的资源通过因特网作为服务提供。用户不需要成为支持他们的“云”中技术基础设施方面的专家。云计算可以分为不同的服务,例如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务通常提供在线的从web浏览器访问的通用业务应用,而软件和数据则存储在服务器上。基于计算机网络图中因特网的描绘方式,术语云被用作因特网的隐喻(例如,使用服务器、存储装置和逻辑),并且是对它所隐藏的复杂基础设施的抽象概念。
此外,ISP 570包括游戏处理服务器(GPS)574,该GPS被游戏客户端用来玩单玩家和多玩家视频游戏。在因特网上玩的大多数视频游戏都是通过与游戏服务器的连接来运行的。通常,游戏使用专用的服务器应用程序,所述服务器应用程序从玩家收集数据并将其分发给其他玩家。这比对等布置更有效且高效,但它需要单独的服务器来托管服务器应用程序。在另一个实施方案中,GPS在玩家之间建立通信,并且玩家的相应的玩游戏装置在不依赖于集中式GPS的情况下交换信息。
专用GPS是独立于客户端运行的服务器。这样的服务器通常在位于数据中心内的专用硬件上运行,从而提供更多的带宽和专用的处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的优选方法。大型多玩家在线游戏在专用服务器上运行,所述服务器通常由拥有游戏名称的软件公司托管,从而允许它们控制和更新内容。
广播处理服务器(BPS)576将音频或视频信号分发给观众。向很小范围的观众广播有时称为窄播。广播分发的最后一站是信号如何到达听众或观察者,并且它可能像广播电台或电视台一样从空中传播到天线和接收器,或可能通过有线电视或有线广播(或“无线电缆”)通过工作站或直接从网络传播。因特网也可以将广播或电视带给接收者,特别是通过多播允许共享信号和带宽。历史上,按地理区域来界定广播,诸如国家广播或地区广播。但是,随着快速因特网的普及,不按地理条件来定义广播,因为内容可以到达世界上的几乎任何国家。
存储服务提供商(SSP)578提供计算机存储空间和相关的管理服务。SSP还提供周期性备份和存档。通过提供存储即服务,用户可以根据需要订购更多存储。另一个主要优点是SSP包括备份服务,并且如果计算机的硬盘驱动器发生故障,用户将不会丢失其所有数据。此外,多个SSP可以具有用户数据的全部或部分副本,从而允许用户以有效的方式访问数据,而与用户所在的位置或用于访问数据的装置无关。例如,用户可以在家用计算机以及移动电话中(当用户移动时)访问个人文件。
通信提供商580向用户提供连接。一种通信提供商是因特网服务提供商(ISP),其提供对因特网的访问。ISP使用适合于传递因特网协议数据报的数据传输技术来连接其客户,诸如拨号、DSL、电缆调制解调器、光纤、无线或专用高速互连。通信提供商还可以提供消息传递服务,诸如电子邮件、即时消息传递和SMS短信。另一种类型的通信提供商是网络服务提供商(NSP),其通过提供对因特网的直接主干访问来出售带宽或网络接入。网络服务提供商可以包括电信公司、数据运营商、无线通信提供商、因特网服务提供商、提供高速因特网接入的有线电视运营商等。
数据交换588将ISP 570内部的若干模块互连,并经由网络586将这些模块连接到用户582。数据交换588可以覆盖ISP 570的所有模块都非常靠近的小区域,或者当不同的模块在地理上分散时可以覆盖大的地理区域。例如,数据交换588可以包括数据中心的机柜内的快速千兆以太网(或更快的千兆以太网),或洲际虚拟区域网络(VLAN)。
用户582使用客户端装置584访问远程服务,该客户端装置至少包括CPU、存储器、显示器和I/O。客户端装置可以是PC、移动电话、笔记本计算机、平板计算机、游戏系统、PDA等。在一个实施方案中,ISP 570辨识由客户端使用的装置类型并且调整所采用的通信方法。在其他情况下,客户端装置使用标准通信方法(诸如html)来访问ISP 570。
本公开的实施方案可以用包括手持式装置、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等的各种计算机系统配置来实践。本公开也可以在分布式计算环境中实践,其中由通过有线或无线网络链接的远程处理装置执行任务。
考虑到上述实施方案,应理解,本公开可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。这些操作是需要物理地操纵物理量的那些操作。形成本公开的一部分的本文描述的任何操作都是有用的机器操作。本公开还涉及用于执行这些操作的装置或设备。可以针对所需目的专门构造所述设备,或者所述设备可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。具体地,各种通用机器可以与根据本文的教导编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能更方便。
本公开还可以体现为计算机可读介质上的计算机可读代码。可替代地,可以使用上述数据交换互连从服务器下载计算机可读代码。计算机可读介质是可以存储数据的任何数据存储装置,该数据随后可以由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附接存储装置(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CD-RW、磁带以及其他光学和非光学数据存储装置。所述计算机可读介质可以包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得以分布式方式存储和执行计算机可读代码。
虽然以特定的顺序描述了方法操作,但是应当理解,可以在操作之间执行其他内务操作,或者可以调整操作,使得它们在稍微不同的时间发生,或者可以将操作分布在系统中,只要以期望的方式执行叠加操作的处理,所述系统便允许以与处理相关联的各种间隔发生处理操作。
虽然出于清楚理解的目的相当详细地描述了前述公开内容,但应明白是,可以在所附权利要求的范围内实践某些改变和修改。因此,本实施方案将被认为是说明性的而非限制性的,并且本公开不限于本文给出的细节,而是可在所描述的实施方案的范围和等效范围内进行修改。
Claims (18)
1.一种方法,所述方法包括:
在第一数据中心中执行视频游戏的第一会话;
与所述第一会话并发地,在第二数据中心中执行所述视频游戏的第二会话;
其中所述第一会话和所述第二会话分别独立地生成第一游戏状态和第二游戏状态,所述第一游戏状态和所述第二游戏状态同时地表示共享虚拟空间;
其中通过关于存储在所述第一数据中心处的第一组存储器对象的事务来实现所述共享虚拟空间中经由所述第一会话实现的事件,所述第一会话访问第一库,所述第一库被配置为基于关于所述第一组存储器对象的所述事务来生成第一组更新包,并且将所述第一组更新包传输到所述第二数据中心;
其中通过关于存储在所述第二数据中心处的第二组存储器对象的事务来实现所述共享虚拟空间中经由所述第二会话实现的事件,所述第二会话访问第二库,所述第二库被配置为基于关于所述第二组存储器对象的所述事务来生成第二组更新包,并且将所述第二组更新包传输到所述第一数据中心;
将所述第一组更新包应用于所述第二数据中心处的所述第二组存储器对象;
将所述第二组更新包应用于所述第一数据中心处的所述第一组存储器对象;
其中所述第一组更新包和所述第二组更新包的生成、传输和应用实现经由所述第一会话和所述第二会话在所述共享虚拟空间中的共享实时交互性。
2.如权利要求1所述的方法,其中所述第一会话和所述第二会话彼此不通信,使得所述第一会话通过使用在所述第一数据中心处接收的输入和所述第一组存储器对象来执行以连续地更新所述第一游戏状态,并且所述第二会话通过使用在所述第二数据中心处接收的输入和所述第二组存储器对象来执行以连续地更新所述第二游戏状态。
3.如权利要求2所述的方法,其中在所述第一数据中心处接收的所述输入是从第一客户端装置接收的,并且其中在所述第二数据中心处接收的所述输入是从第二客户端装置接收的。
4.如权利要求1所述的方法,其中所述第一组更新包和所述第二组更新包的所述生成、所述传输和所述应用实现所述第一组存储器对象中的至少一些存储器对象与所述第二组存储器对象中的对应存储器对象的同步。
5.如权利要求4所述的方法,其中应用所述第一组更新包改变所述第二组存储器对象中的所述对应存储器对象的一个或多个值,并且其中应用所述第二组更新包改变所述第一组存储器对象中的所述至少一些存储器对象的一个或多个值。
6.如权利要求1所述的方法,其中所述更新包中的每一者包括时间戳、存储器标识符以及用于由所述存储器标识符标识的存储器对象的值。
7.如权利要求6所述的方法,其中应用所述更新包中的每一者包括将由所述存储器标识符标识的所述存储器对象的值设置为所述更新包的所述值。
8.如权利要求6所述的方法,其中应用所述更新包中的每一者包括确定所述更新包的所述时间戳是否为用于由所述存储器标识符标识的所述存储器对象的最新时间戳,并且如果是,则将由所述存储器标识符标识的所述存储器对象的值设置为所述更新包的所述值。
9.如权利要求1所述的方法,其中所述共享虚拟空间中经由所述第一会话实现的所述事件包括通过所述第一会话控制的第一虚拟角色的位置的改变,并且其中所述共享虚拟空间中经由所述第二会话实现的所述事件包括通过所述第二会话控制的第二虚拟角色的位置的改变。
10.如权利要求1所述的方法,其中所述第一会话的执行渲染所述共享虚拟空间的第一视图,并且其中所述第二会话的执行渲染所述共享虚拟空间的第二视图,使得所述共享虚拟空间中通过所述第一会话和所述第二会话实现的所述事件能够通过所述共享虚拟空间的所述第一视图和所述第二视图同时地查看。
11.一种具有两个或更多个服务器的在线游戏服务,所述两个或更多个服务器位于两个或更多个数据中心中,所述在线游戏服务包括:
跨所述两个或更多个服务器实现的事务层,所述事务层用于处理视频游戏的分别由所述两个或更多个服务器执行的不同会话之间的同步;
其中所述视频游戏的所述不同会话分别被配置为通过相应的客户端装置提供对虚拟空间的查看;
其中所述事务层被配置为标识提供对所述虚拟空间的近似区域的查看的会话,并且实现所标识的会话的事务存储器同步,使得所述虚拟空间中由所述所标识的会话生成的事件跨所述所标识的会话中的每个会话被同步。
12.如权利要求11所述的在线游戏服务,其中所述视频游戏的每个会话独立于所述视频游戏的其他会话来执行,使得所述视频游戏的每个会话不管理与所述视频游戏的所述其他会话的通信,并且使得所述视频游戏的每个会话不知道所述视频游戏的所述其他会话。
13.如权利要求12所述的在线游戏服务,其中实现所述所标识的会话的事务存储器同步包括标识导致所述虚拟空间中由所述所标识的会话中的一个会话生成的事件的存储器事务,以及将所述存储器事务传播到所述所标识的会话中的其他会话。
14.如权利要求13所述的在线游戏服务,其中将所述存储器事务传播到所述所标识的会话中的其他会话包括生成更新包,所述更新包包括所述存储器事务的时间戳、所述存储器事务被应用于的存储器对象的标识符,以及由所述存储器事务设置的值。
15.如权利要求11所述的在线游戏服务,其中所述事务层被配置为通过分析所述虚拟空间中分别与所述视频游戏的所述不同会话相关联的虚拟位置来标识提供对所述虚拟空间的近似区域的查看的会话。
16.一种具有两个或更多个服务器的在线游戏服务,所述两个或更多个服务器位于两个或更多个数据中心中,所述在线游戏服务包括:
跨所述两个或更多个服务器实现的事务层,所述事务层用于处理视频游戏的分别由所述两个或更多个服务器执行的不同会话之间的同步;
其中所述视频游戏的所述不同会话分别被配置为通过相应的客户端装置提供对虚拟空间的查看;
其中所述事务层被配置为实现所述不同会话的事务存储器同步,使得所述虚拟空间中由所述不同会话生成的事件跨所述不同会话中的每个会话被同步;
其中所述视频游戏的每个会话独立于所述视频游戏的其他会话来执行,使得所述视频游戏的每个会话不管理与所述视频游戏的所述其他会话的通信,并且使得所述视频游戏的每个会话不知道所述视频游戏的所述其他会话。
17.如权利要求16所述的在线游戏服务,其中实现所标识的会话的事务存储器同步包括标识导致所述虚拟空间中由所述会话中的一个会话生成的事件的存储器事务,以及将所述存储器事务传播到所述会话中的其他会话。
18.如权利要求16所述的在线游戏服务,其中将存储器事务传播到所述会话中的其他会话包括生成更新包,所述更新包包括所述存储器事务的时间戳、所述存储器事务被应用于的存储器对象的标识符,以及由所述存储器事务设置的值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/282,283 US11020660B2 (en) | 2019-02-21 | 2019-02-21 | Transactional memory synchronization between multiple sessions of a video game |
US16/282,283 | 2019-02-21 | ||
PCT/US2020/018011 WO2020172027A1 (en) | 2019-02-21 | 2020-02-12 | Transactional memory synchronization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113710335A true CN113710335A (zh) | 2021-11-26 |
Family
ID=69811904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080028894.9A Pending CN113710335A (zh) | 2019-02-21 | 2020-02-12 | 事务存储器同步 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11020660B2 (zh) |
EP (1) | EP3927442B1 (zh) |
JP (1) | JP7308964B2 (zh) |
CN (1) | CN113710335A (zh) |
TW (2) | TWI795628B (zh) |
WO (1) | WO2020172027A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113181633A (zh) * | 2021-03-26 | 2021-07-30 | 百果园技术(新加坡)有限公司 | 一种游戏数据同步方法、系统及装置 |
CN114191810A (zh) * | 2021-12-02 | 2022-03-18 | 北京蔚领时代科技有限公司 | Android云游戏用户数据的分布式存储方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10967259B1 (en) * | 2018-05-16 | 2021-04-06 | Amazon Technologies, Inc. | Asynchronous event management for hosted sessions |
WO2021076787A1 (en) * | 2019-10-15 | 2021-04-22 | Oracle International Corporation | System and method for use of virtual or augmented reality with data center operations or cloud infrastructure |
US20220269489A1 (en) * | 2021-02-22 | 2022-08-25 | Monterey's Coast, Inc. | Method and system for application development via a graphical user interface using an entity-component-system architecture |
CN113244607B (zh) * | 2021-05-13 | 2023-02-24 | 北京畅游天下网络技术有限公司 | Mmorpg游戏的对象匹配方法、服务器群组及相关设备 |
JP7274161B1 (ja) * | 2021-06-14 | 2023-05-16 | 株式会社ソフトギア | 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置 |
JP7406133B2 (ja) | 2022-03-16 | 2023-12-27 | 株式会社カプコン | 情報処理システムおよびプログラム |
WO2024009784A1 (ja) * | 2022-07-05 | 2024-01-11 | ソニーグループ株式会社 | 空間情報管理装置、空間情報管理システム、空間情報管理方法及び記録媒体 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120142429A1 (en) * | 2010-12-03 | 2012-06-07 | Muller Marcus S | Collaborative electronic game play employing player classification and aggregation |
US20130316832A1 (en) * | 2012-05-23 | 2013-11-28 | Jonas Olofsson | Method and Apparatus for Interactive Gameplay Across Multiple Computing Platforms |
US20140187334A1 (en) * | 2012-12-28 | 2014-07-03 | Cbs Interactive Inc. | Synchronized presentation of facets of a game event |
US20150111643A1 (en) * | 2012-05-23 | 2015-04-23 | King.Com Limited | Systems and methods for interactive gameplay |
US20170087460A1 (en) * | 2015-09-30 | 2017-03-30 | Sony Computer Entertainment America Llc | Systems and Methods for Enabling Time-Shifted Coaching for Cloud Gaming Systems |
CN107213641A (zh) * | 2016-03-21 | 2017-09-29 | 电子技术公司 | 与游戏中遥测同步的视频 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3449520B2 (ja) * | 1997-01-07 | 2003-09-22 | 日本電信電話株式会社 | 3次元仮想空間表示方法 |
US7185078B2 (en) * | 2001-06-28 | 2007-02-27 | Microsoft Corporation | Event manager for a control management system |
KR20030035138A (ko) * | 2001-10-30 | 2003-05-09 | 한국전자통신연구원 | 클라이언트-서버 기반 네트워크 가상환경에서 상태정보의전송 방법 |
GB0222554D0 (en) * | 2002-09-28 | 2002-11-06 | Koninkl Philips Electronics Nv | Data processing system and method of operation |
CN100492382C (zh) * | 2005-04-12 | 2009-05-27 | 国际商业机器公司 | 基于服务器/客户机的无缝游戏世界系统及其方法 |
US8898325B2 (en) | 2007-03-06 | 2014-11-25 | Trion Worlds, Inc. | Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment |
JP5373295B2 (ja) | 2008-02-04 | 2013-12-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム |
US7870074B2 (en) * | 2008-05-14 | 2011-01-11 | International Business Machines Corporation | Dynamic transferring of avatars between virtual universes |
US20090325712A1 (en) * | 2008-06-28 | 2009-12-31 | Microsoft Corporation | Player character matchmaking with distributed peer-to-peer functionality |
US20100162149A1 (en) | 2008-12-24 | 2010-06-24 | At&T Intellectual Property I, L.P. | Systems and Methods to Provide Location Information |
US8549586B2 (en) * | 2011-12-06 | 2013-10-01 | Broadcom Corporation | System utilizing a secure element |
EP2745891B1 (en) | 2012-12-21 | 2020-07-01 | Dassault Systèmes | Simulation of the physical behavior of an object in a 3D scene divided into a plurality of zones |
US9495830B2 (en) * | 2013-08-12 | 2016-11-15 | Namco Usa Inc. | Cashless play system based on proprietary monetary systems |
US20160296840A1 (en) | 2013-12-01 | 2016-10-13 | Interdigital Patent Holdings, Inc. | Quality of experience optimization using policy-based decision engines |
JP2017037446A (ja) | 2015-08-10 | 2017-02-16 | 日本電信電話株式会社 | ゲームサーバ装置および分散処理方法 |
US9993729B2 (en) * | 2015-08-19 | 2018-06-12 | Sony Interactive Entertainment America Llc | User save data management in cloud gaming |
US10581670B2 (en) * | 2015-10-02 | 2020-03-03 | Microsoft Technology Licensing, Llc | Cross-data center interoperation and communication |
US10742767B2 (en) * | 2016-02-02 | 2020-08-11 | Sony Interactive Entertainment LLC | Systems and methods for downloading and updating save data to a data center |
US10675544B2 (en) | 2017-03-31 | 2020-06-09 | Sony Interactive Entertainment LLC | Personalized user interface based on in-application behavior |
-
2019
- 2019-02-21 US US16/282,283 patent/US11020660B2/en active Active
-
2020
- 2020-02-12 JP JP2021549342A patent/JP7308964B2/ja active Active
- 2020-02-12 CN CN202080028894.9A patent/CN113710335A/zh active Pending
- 2020-02-12 EP EP20711401.8A patent/EP3927442B1/en active Active
- 2020-02-12 WO PCT/US2020/018011 patent/WO2020172027A1/en unknown
- 2020-02-13 TW TW109104550A patent/TWI795628B/zh active
- 2020-02-13 TW TW112107319A patent/TW202335710A/zh unknown
-
2021
- 2021-05-20 US US17/325,963 patent/US11511187B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120142429A1 (en) * | 2010-12-03 | 2012-06-07 | Muller Marcus S | Collaborative electronic game play employing player classification and aggregation |
US20130316832A1 (en) * | 2012-05-23 | 2013-11-28 | Jonas Olofsson | Method and Apparatus for Interactive Gameplay Across Multiple Computing Platforms |
CN104508714A (zh) * | 2012-05-23 | 2015-04-08 | 金.Com有限公司 | 用于交互式玩游戏的系统和方法 |
US20150111643A1 (en) * | 2012-05-23 | 2015-04-23 | King.Com Limited | Systems and methods for interactive gameplay |
US20140187334A1 (en) * | 2012-12-28 | 2014-07-03 | Cbs Interactive Inc. | Synchronized presentation of facets of a game event |
US20170087460A1 (en) * | 2015-09-30 | 2017-03-30 | Sony Computer Entertainment America Llc | Systems and Methods for Enabling Time-Shifted Coaching for Cloud Gaming Systems |
CN107213641A (zh) * | 2016-03-21 | 2017-09-29 | 电子技术公司 | 与游戏中遥测同步的视频 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113181633A (zh) * | 2021-03-26 | 2021-07-30 | 百果园技术(新加坡)有限公司 | 一种游戏数据同步方法、系统及装置 |
CN113181633B (zh) * | 2021-03-26 | 2024-02-13 | 百果园技术(新加坡)有限公司 | 一种游戏数据同步方法、系统及装置 |
CN114191810A (zh) * | 2021-12-02 | 2022-03-18 | 北京蔚领时代科技有限公司 | Android云游戏用户数据的分布式存储方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202031329A (zh) | 2020-09-01 |
US11511187B2 (en) | 2022-11-29 |
EP3927442A1 (en) | 2021-12-29 |
JP2022521012A (ja) | 2022-04-04 |
EP3927442B1 (en) | 2024-01-10 |
US20200269131A1 (en) | 2020-08-27 |
TW202335710A (zh) | 2023-09-16 |
JP7308964B2 (ja) | 2023-07-14 |
US20210268374A1 (en) | 2021-09-02 |
TWI795628B (zh) | 2023-03-11 |
US11020660B2 (en) | 2021-06-01 |
WO2020172027A1 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11511187B2 (en) | Transactional memory synchronization for synchronization of game instance functions between remotely located servers or data centers | |
JP7463508B2 (ja) | クラウドゲーム用のアダプティブグラフィックス | |
JP7216223B2 (ja) | ビデオゲームのコーチングとマッチメイキングのためのaiモデリング | |
JP7259033B2 (ja) | 機械学習によって推進されるリソース配分 | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
US11400378B2 (en) | Automatic separation of abusive players from game interactions | |
US11055918B2 (en) | Virtual character inter-reality crossover | |
US11565177B2 (en) | Edge compute proxy for cloud gaming and 5G | |
JP7419554B2 (ja) | ゲーム内プレイヤー支援用に事前に記録されたゲームプレイビデオのサーフェシング | |
Ploss et al. | From a single-to multi-server online game: A quake 3 case study using rtf | |
Gorlatch et al. | Designing multiplayer online games using the real-time framework | |
Vattipally | Measurement and Enhancement of Cloud-based Online Gaming Systems | |
Datta et al. | Cloud Gaming: Design Architecture and Challenges |
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 |