用于同步和异步游戏模式的系统转让专利

申请号 : CN201110117301.9

文献号 : CN102209105B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : T·吉尔A·必林

申请人 : 微软公司

摘要 :

本发明公开了用于同步和异步游戏模式的方法和系统。公开了一种用于在同步和异步网络连接之间切换以实现基于回合的多玩家游戏的系统。网络连接管理器处理客户机设备连接,以便将连接设置成异步网络连接或者同步网络连接。连接管理器可基于各种触发准则在异步与同步网络连接模式之间切换。

权利要求 :

1.一种在具有包括显示器(150)和用户界面选择设备(104)的用户界面的游戏和媒体系统(100)中为客户机(300)提供网络连接来连接到所述系统以便玩基于回合的游戏会话的方法,所述方法包括:(a)如果来自两个或多个客户机(300)的回合之间的等待时间超过第一阈值,则将所述游戏会话的网络连接设置成异步网络连接(步骤420);以及(b)如果所述游戏会话中两个或多个客户机(300)玩所述游戏会话的步调超过第二阈值,则将所述网络连接设置成同步网络连接(步骤440)。

2.如权利要求1所述的方法,其特征在于,还包括生成关于所述游戏会话的状态的通知的步骤。

3.如权利要求2所述的方法,其特征在于,还包括当所述网络连接被设置成异步模式时存储对客户机的通知的步骤。

4.如权利要求2所述的方法,其特征在于,还包括当所述网络连接被设置成同步模式时将对客户机的通知直接从服务器转发到所述客户机的步骤。

5.如权利要求2所述的方法,其特征在于,还包括当所述网络连接被设置成同步模式时在对等网络中将对第一客户机的通知直接从第二客户机转发到所述第一客户机的步骤。

6.如权利要求1所述的方法,其特征在于,所述步骤(b)包括接收来自客户机的周期性查询以确定其他客户机是否已留下通知以及在所述查询和通知满足预定义的准则之后将所述连接从异步改变成同步的步骤。

7.如权利要求6所述的方法,其特征在于,所述周期性查询之间的间隔是由查询通过其被路由的服务器和进行所述查询的客户机中的一个来设置的。

8.如权利要求1所述的方法,其特征在于,所述步骤(b)包括在第一客户机具有等待所述第一客户机连接到所述系统的预定义的时间百分比的通知的情况下和/或在所述第一客户机和第二客户机在预定义的时间段内采取基于回合的游戏会话中的动作的情况下,将所述第一客户机的网络连接设置成同步网络连接的步骤。

9.一种在具有包括显示器(150)和用户界面选择设备(104)的用户界面的游戏和媒体系统(100)中为客户机(300)提供网络连接来连接到所述系统以便玩基于回合的游戏会话的方法,所述方法包括:(a)在由来自第一客户机(300)的动作生成的通知没有被成功地直接转发给至少一个其他客户机(300)的情况下(步骤460)、或者如果通知被成功地发送给至少一个其他客户机但没有在预定义的时间段内接收到来自所述至少一个其他客户机(300)的响应(步骤454),则将第一客户机(300)的网络连接从所述游戏会话的同步网络连接修改成(步骤

456)异步网络连接;以及

(b)如果所述第一客户机(300)具有等待所述第一客户机(300)连接到所述系统的预定义的次数的通知(步骤436),则将所述第一客户机(300)的网络连接从所述游戏会话的异步网络连接修改成(步骤440)同步网络连接。

10.如权利要求9所述的方法,其特征在于,还包括当所述网络被设置成异步模式时或者当所述通知没有被成功地转发给所述至少一个其他客户机时存储对所述至少一个其他客户机的通知的步骤。

11.如权利要求9所述的方法,其特征在于,所述步骤(b)包括在所述第一客户机具有等待所述第一客户机连接到所述系统预定义的时间百分比的通知的情况下、将所述第一客户机的网络连接设置成同步网络连接的步骤。

12.一种游戏和媒体系统(100),包括:

至少一个用于处理游戏会话信息的游戏服务器(306);

用于存储游戏会话信息的数据库(312);以及

网络连接管理器(304),所述网络连接管理器管理所述网络连接以便如果来自两个或更多客户机的回合之间的等待时间超过阈值则将所述游戏会话的网络连接从同步网络连接改变成异步网络连接,并且所述网络连接管理器管理所述网络连接以便如果第一客户机具有等待所述第一客户机连接到所述系统的预定义的次数的通知和/或在所述第一客户机和第二客户机在预定义的时间段内在所述游戏会话中采取动作的情况下,将所述游戏会话的网络连接从异步网络连接改变成同步网络连接。

13.如权利要求12所述的游戏和媒体系统,其特征在于,在不经由同步网络连接直接递送通知的情况下,所述数据库存储对由所述第一客户机的动作导致的游戏状态中的改变的通知。

14.如权利要求12所述的游戏和媒体系统,其特征在于,在要求来自未在阈值时间段内作出响应的客户机的动作的情况下,所述网络管理器将所述第一客户机的网络连接设置成异步网络连接。

15.如权利要求12所述的游戏和媒体系统,其特征在于,在第一客户机具有等待所述第一客户机连接到所述系统的预定义的时间百分比以及所述第一客户机连接到所述系统的排成行的预定义的次数之一的通知的情况下,和/或在所述第一客户机和第二客户机在预定义的时间段内在所述游戏会话中采取动作的情况下,所述网络管理器将所述第一客户机的网络连接设置成同步网络连接。

说明书 :

用于同步和异步游戏模式的系统

技术领域

[0001] 本发明涉及网络技术,尤其涉及网络游戏中连接模式的转换。

背景技术

[0002] 游戏系统已经从提供孤立的游戏体验的系统进化成提供可实时地在朋友和其他玩家之间共享的丰富的交互式体验的联网系统。使用微软的 视频游戏系统和Xbox 在线游戏服务,远程位置的多个用户可一起参与单个游戏会话。
[0003] 某些游戏中的交互性是所有玩家保持在场并且在整个游戏会话的生存期进行交互。基于对抗的游戏是一个这样的示例。这些游戏通常在同步网络连接上玩,同步网络连接可保持打开使得中央服务器持续地向所有用户推送游戏状态。同步游戏还可经由对等网络连接进行,其中玩家彼此实时地通信。相反,其他游戏玩起来等待时间长得多,有时动作之间跨越长时间。基于回合的游戏是这样的示例。在基于回合的游戏中,用户在游戏中取得一回合并执行某种动作,并且随后在获得另一回合之前可能需要等待来自游戏会话中的一个或多个其他用户的响应性移动。
[0004] 某些基于回合的游戏可以经由同步网络连接来玩(通过中央服务器或者经由对等连接)。然而,给定时常在回合之间的等待时间,这可导致网络带宽和资源的低效使用以及在维持该连接中增加花费。某些基于回合的游戏可另选地经由异步网络连接来玩,其中中央服务器为正在进行的会话维持游戏状态,并且用户可在不同时间间歇性地登录、向中央服务器查询数据以便了解游戏会话的状态并且可能采取附加行动。异步网络连接对于有等待时间的游戏会话工作良好,但可能太慢,并且当游戏的步调加快时导致建立和丢弃网络连接的低效。

发明内容

[0005] 本系统的实施例涉及用于实现基于回合的多玩家游戏的同步和异步网络连接之间的系统切换。系统包括游戏平台或服务,该游戏平台或服务包括用于处理一个或多个游戏应用程序的游戏信息和游戏状态的一个或多个服务器。客户机设备经由诸如因特网等网络与服务连接,并且加入或开始游戏会话。网络连接管理器处理客户机设备连接,以便将连接设置成异步网络连接或者同步网络连接。连接管理器可基于各种触发准则在异步与同步网络连接模式之间切换。在一个实施例中,如果第一客户机正在玩的游戏会话中的回合之间的等待时间超过阈值,则连接管理器可将客户机从同步网络连接切换到异步网络连接。在各实施例中,如果例如客户机在预定义的时间段内接收响应,则网络连接管理器可将网络连接从异步网络连接切换到同步网络连接。
[0006] 在各实施例中,本发明技术涉及一种为客户机提供网络连接来连接到系统以便玩基于回合的游戏会话的方法,该方法包括:a)如果来自两个或更多客户机的回合之间的等待时间超过第一阈值,则将游戏会话的网络连接设置成异步网络连接;以及b)如果游戏会话中两个或更多客户机玩的游戏会话的步调超过第二阈值(即,回合迅速到来),则将网络连接设置成同步网络连接。
[0007] 在各实施例中,本发明技术涉及一种为客户机提供网络连接来连接到系统以便玩基于回合的游戏会话的方法,该方法包括:a)在来自第一客户机的动作所生成的通知没有被成功地直接转发给至少一个其他客户机的情况下、或者如果通知被成功地发送给至少一个其他客户机但在预定义时间段内没有接收到来自该至少一个其他客户机的响应,则对于游戏会话将第一客户机的网络连接从同步网络连接修改成异步网络连接;以及b)如果在第一客户机具有等待第一客户机连接到系统的预定义次数的通知,则对于游戏会话将第一客户机的网络连接从异步网络连接修改成同步网络连接。
[0008] 提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决在背景中提及的任何或所有缺点的实现。

附图说明

[0009] 图1是示例性游戏和媒体系统的立体图。
[0010] 图2是图1中示出的游戏和媒体系统的各组件的示例性功能框图。
[0011] 图3是用于呈现成就信息的示例性操作环境的框图。
[0012] 图4A-4B是根据本发明技术的实施例的用于在同步与异步网络连接之间切换的方法的流程图。

具体实施方式

[0013] 现在将参考图1至4B来解释本发明技术,一般而言其涉及一种用于在同步与异步网络连接之间切换以实现基于回合的多玩家游戏会话的系统。本发明技术利用连接管理器,该连接管理器用于根据玩基于回合的游戏的步调来管理网络连接。当游戏会话中回合之间的等待时间超过阈值时,连接管理器将连接设置成支持存储和转发玩家动作的通知的异步网络连接。如果游戏的步调加速,则连接管理器能够将连接切换到同步网络连接,以便于玩家之间近乎实时的在线交互。如果步调减慢和/或连接管理器检测玩家已经丢失网络连接,则连接管理器可再次将连接模式切换到异步网络连接。以此方式,基于用户需求优化了基于回合的游戏的服务器资源的使用。
[0014] 以下将参考游戏应用程序更详细地描述本发明技术。然而,可以理解,在其他实施例中,用于在同步与异步模式之间切换以优化用户体验和服务器资源的使用的本系统可在除了游戏应用程序以外的基于回合的应用程序中实现。
[0015] 图1示出示例性游戏和媒体系统100。对图1的以下讨论旨在提供可在其中实现此处所呈现的概念的合适环境的简要概括描述。如图1所示,游戏和媒体系统100包括游戏和媒体控制台(以下统称为“控制台”)102。一般而言,如以下将进一步描述的,控制台102是一种类型的计算系统。控制台102被配置成容纳一个或多个如控制器104(1)和104(2)所表示的无线控制器。控制台102配备有内部硬盘驱动器(未示出)和支持如光学存储盘108所表示的各种形式的便携式存储介质的便携式媒体驱动器106。合适的便携式存储介质的示例包括DVD、CD-ROM、游戏盘等。控制台102还包括用于接收可移动闪存型存储器单元140的两个存储器单元卡插座125(1)和125(2)。控制台102上的命令按钮135启用和禁用无线外围支持。
[0016] 如图1所示,控制台102还包括用于与一个或多个设备进行无线通信的光学端口130和支持附加控制器或其他外围设备的有线连接的两个USB(通用串行总线)端口110(1)和110(2)。在某些实现中,可修改附加端口的数量和安排。电源按钮112和弹出按钮114也位于游戏控制台102的正面。电源按钮112被选择来对游戏控制台供电,且还可以提供对其他特征和控件的访问,而弹出按钮114交替地打开和关闭便携式媒体驱动器
106的托盘以允许存储盘108的插入和取出。
[0017] 控制台102经由A/V接口电缆120连接到电视机或其他显示器(如监视器150)。在一个实现中,控制台102配备有被配置成用于使用A/V电缆120(例如,适用于耦合到高清晰度监视器150或其他显示设备上的高清晰度多媒体接口“HDMI”端口的A/V电缆)来进行内容受保护的数字通信的专用A/V端口(未示出)。电源电缆122向游戏控制台供电。
控制台102可进一步被配置成具有如电缆或调制解调器连接器124所示的宽带能力以便于接入诸如因特网等网络。宽带能力还可通过诸如无线保真(Wi-Fi)网络等宽带网络来无线地提供。
[0018] 每一控制器104经由有线或无线接口耦合到控制台102。在示出的实现中,控制器104是USB兼容的且经由无线或USB端口110耦合到控制台102。控制台102可配备有各种用户交互机制中的任何一种。在图1中示出的示例中,每一控制器104配备两个拇指摇杆(thumbstick)132(1)和132(2)、D垫134、按钮136、以及两个触发器138。这些控制器仅为代表性的,且其他已知游戏控制器可代替或被添加到图1中示出的那些控制器。
[0019] 在一个实现中,还可将存储器单元(MU)140插入到控制器104中以提供额外且便携的存储。便携式MU使用户能够存储游戏参数以供在其他控制台上玩时使用。在该实现中,每一控制器被配置成容纳两个MU 140,尽管也可采用多于或少于两个MU。
[0020] 游戏和媒体系统100一般被配置成玩存储在存储器介质上的游戏,以及下载并玩游戏、和从电子和硬介质源再现预先记录的音乐和视频。使用不同的存储供应,可从硬盘驱动器、从光盘介质(例如,108)、从在线源、或从MU 140播放标题(title)。游戏和媒体系统100能够播放的媒体的类型的示例包括:
[0021] ·从CD和DVD盘、从硬盘驱动器、或从在线来源播放的游戏项。
[0022] ·从便携媒体驱动器106中的CD、从硬盘驱动器上的文件(例如,使用Windows媒体音频(WMA)格式的音乐)、或从在线流传送来源播放的数字音乐。
[0023] ·从便携媒体驱动器106中的DVD盘、从硬盘驱动器上的文件(例如,活动流传送格式(Active Streaming Format))、或从在线流传送来源播放的数字音频/视频。
[0024] 在操作期间,控制台102被配置成接收来自控制器104的输入并在显示器150上显示信息。例如,控制台102可在显示器150上显示用户界面以便允许用户使用控制器104来选择游戏并且显示成就信息,如以下将描述的。
[0025] 图2是游戏和媒体系统100的功能框图并且更详细地示出游戏和媒体系统100的各功能组件。控制台102具有中央处理单元(CPU)200,以及便于处理器访问包括闪存只读存储器(ROM)204、随机存取存储器(RAM)206、硬盘驱动器208、以及便携式媒体驱动器106等各种类型的存储器的存储器控制器202。在一个实现中,CPU 200包括1级高速缓存210、和2级高速缓存212,用于临时地存储数据且因此减少了对硬盘驱动器208进行的存储器访问周期数,从而提高处理速度和吞吐量。
[0026] CPU 200、存储器控制器202、以及各种存储器设备经由一个或多个总线(未示出)互连。在此实现中使用的总线的细节并不特别地与理解此处所讨论的感兴趣的主题相关。然而,应该理解,此类总线可能包括使用各种总线体系结构中的任何一种的串行和并行总线、外围总线、处理器或局部总线中的一个或多个。作为示例,这样的体系结构可包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。
[0027] 在一个实现中,CPU 200、存储器控制器202、ROM 204、以及RAM 206被集成到公共模块214上。在该实现中,ROM 204被配置为经由PCI总线和ROM总线(两者都未示出)连接到存储器控制器202的闪存ROM。RAM 206被配置为由存储器控制器202经由单独的总线(未示出)独立控制的多个双倍数据率同步动态RAM(DDR SDRAM)模块。硬盘驱动器208和便携式媒体驱动器106被示为经由PCI总线和AT附加设备(ATA)总线216连接到存储器控制器202。然而,在其他实现中,还可在替换中应用不同类型的专用数据总线结构。
[0028] 三维图形处理单元220和视频编码器222形成用于高速和高分辨率(例如,高清晰度)图形处理的视频处理流水线。数据经由数字视频总线(未示出)从图形处理单元220输送到视频编码器222。音频处理单元224和音频编解码器(编码器/解码器)226形成用于各种数字音频格式的多声道音频处理的对应的音频处理流水线。音频数据经由通信链路(未示出)在音频处理单元224与音频编解码器226之间传输。视频和音频处理流水线将数据输出到A/V(音频/视频)端口228以传输到电视机或其他显示器。在示出的实现中,视频和音频处理组件220-228被安装在模块214上。
[0029] 图2示出包括USB主控制器230和网络接口232的模块214。USB主控制器230被示为经由总线(例如,PCI总线)与CPU 200和存储器控制器202通信并用作外围控制器104(1)-104(4)的主机。网络接口232提供对网络(例如因特网、家庭网络等)的访问并且可以是各种有线或无线接口组件中的任一种,包括以太网卡、调制解调器、无线接入卡、蓝牙模块、电缆调制解调器等等。
[0030] 在图2中示出的实现中,控制台102包括用于支持四个控制器104(1)-104(4)的控制器支持子部件240。控制器支持子部件240包括支持对诸如例如媒体和游戏控制器等外部控制设备进行有线和无线操作所需的任何硬件和软件组件。前面板I/O子部件242支持暴露在控制台102外表面上的电源按钮112、弹出按钮114、以及任何LED(发光二极管)或其他指示器的多个功能。子部件240和242经由一个或多个电缆组件244与模块214进行通信。在其他实现中,控制台102可包括附加的控制器子部件。示出的实现还示出被配置成发送和接收可被传送到模块214的信号的光学I/O接口235。
[0031] MU 140(1)和140(2)被示为可分别连接到MU端口“A”130(1)和“B”130(2)。附加MU(例如,MU140(3)-140(6))被示为可连接到控制器104(1)和104(3),即,每一控制器两个MU。控器104(2)和104(4)还可被配置成容纳MU(未示出)。每一MU 140提供可在其上存储游戏、游戏参数、以及其他数据的附加存储。在某些实现中,其他数据可包括数字游戏组件、可执行游戏应用程序、用于扩展游戏应用程序的指令集、以及媒体文件中的任何一个。在被插入到控制台102或控制器中时,MU 140可由存储器控制器202来访问。
[0032] 系统供电模块250向游戏和媒体系统100的组件供电。风扇252冷却控制台102内的电路。
[0033] 包括机器指令的应用程序260被存储在硬盘驱动器208上。在控制台102通电时,应用程序260的各部分被加载到RAM 206、和/或高速缓存210和212中以供在CPU 200上执行,其中应用程序260是一个这样的示例。可将各种应用程序存储在硬盘驱动器208上以供在CPU 200上执行。
[0034] 可通过简单地将系统连接到监视器150(图1)、电视机、视频投影仪、或其他显示设备来将游戏和媒体系统100用作独立系统。在该独立模式中,游戏和媒体系统100允许一个或多个玩家玩游戏、或例如通过看电影或听音乐来享受数字媒体。然而,随着通过网络接口232变得可用的宽带连接的集成,游戏和媒体系统100还可用作较大的网络游戏社区中的参与者,如以下结合图3所讨论的。
[0035] 图3提供了根据本发明技术的系统的框图。示出了与服务302联网的客户机300A-300N。客户机300A-300N(以下简称为客户机300)可以是以上参考图2所描述的控制台102或各种其他计算设备。这些计算设备例如可包括个人计算机、膝上型计算机、诸如个人数字助理和智能电话等移动手持式设备、以及其他设备。服务302包括连接管理器304和一个或多个服务器306。服务器306可主存由客户机300的用户玩的游戏应用程序。游戏应用程序可另选地驻留在客户机300上。客户机300通过网络301连接到控制台服务302。
根据本发明技术,连接管理器304处理客户机300作出的连接,并且可经由网络301维护两个或更多客户机300之间的连接,以便允许经由同步网络连接玩游戏。或者,连接管理器可经由异步连接进行游戏会话,其中在玩家取得回合以及丢失连接之后维护游戏状态。连接管理器可以是服务器306的一部分,或者在替换实施例中它可以是独立的计算环境。以下阐明与连接管理器304的操作有关的进一步细节。
[0036] 在实施例中,网络301可包括因特网,尽管构想了诸如LAN或WAN等其他网络。服务器306包括能够经由同步网络连接和异步网络连接从客户机300接收信息并且向客户机300发送信息的通信组件。控制台服务302还提供运行在客户机300上的应用程序可调用和利用的服务集合。
[0037] 例如,客户机300可调用被用于在客户机300上认证用户的用户登录服务308。在登录期间,登录服务308获得来自用户的玩家标签(与该用户相关联的唯一标识符)和口令、以及唯一地标识用户正在使用的控制台的控制台标识符和到该控制台的网络路径。玩家标签和口令通过将它们与数据库312中的用户记录310相比较来认证,该数据库可位于与用户登录服务308相同的服务器上、或可以分布在不同的服务器上或不同的服务器集合上。可以理解,以上描述的认证过程可在替换实施例中变化。可采用任何各种认证方案来标识用户,使得他或她可连接或重新连接到游戏会话。一旦被认证,用户登录服务308就将控制台标识符和网络路径存储在用户记录310中,使得可将通知和信息发送给客户机,如以下解释的。
[0038] 用户记录可进一步保持存储和转发与两个或多个客户机经由异步网络连接一起涉及的游戏会话的状态有关的通知314。在实施例中,通知314可包括附加信息,诸如例如玩家之间交换的信息。存储和转发通知可进一步仅是在给定时间所连接的给定客户机。如以下解释的,客户机经由同步网络连接参与游戏会话时,不需要存储关于游戏状态的通知,因为那些通知可以对等地或者经由中央服务器在客户机之间转发,如下文解释的。然而,在当客户机经由同步网络连接来连接时,转发有关游戏状态的通知的尝试由于任何原因而不成功的情况下,可将该通知存储在用户记录310中作为存储和转发通知314。用户记录310可包括关于与客户机300相关联的用户的附加信息,诸如游戏记录、统计数据和成就、以及朋友列表。以上描述涉及网络拓扑结构的一个实施例。构想了其他拓扑结构。作为许多变体中的一个,存储和转发通知314可被存储在分开的服务器上和/或不同的位置。
[0039] 图4A和4B一起示出了提供基于回合的游戏会话或其他应用程序的方法的流程图,其中根据基于回合的游戏/应用程序的步调将连接控制为同步网络连接或这异步网络连接。此处使用的基于回合的游戏或应用程序可包含各种各样的游戏和应用程序。在一个实施例中,它可以是有两个或更多玩家且其中玩家交替取得回合的游戏。这样的游戏包括例如国际象棋、西洋跳棋和某些牌类游戏。
[0040] 在另一实施例中,不需要顺序地取得回合,这意味着玩家不需要按特定次序取得其回合。每一玩家可取得一个或多个回合,不必按设置的次序,并且服务器306将更新会话的游戏状态并向每一玩家发送所更新的游戏状态的通知,之后允许玩家采取进一步的回合。这样的游戏可包括大规模多玩家的策略和探索游戏,诸如 和类型的游戏。游戏的步调可由玩家或游戏本身指示,并且可从取得的接近连续的回合到回合之间的长等待时间而变化,等待时间例如,分钟、小时、天等。
[0041] 最初,使用客户机(例如客户机300A)的玩家连接到服务302。这可以是发起游戏会话或为玩家返回已经开始的游戏会话。在任一种情况下,在该示例中,客户机300A最初以异步网络连接开始,并且最初没有同步地连接到任何其他客户机。客户机认证它自身并且登录。此后,可启动游戏会话。此时,客户机300A与参与该游戏会话的任何其他客户机300一起被标识并且与游戏会话相关联。在步骤400,服务302寻找来自客户机300A的连接。一旦进行了连接,则在步骤404中服务302寻找一个或多个客户机动作,如果找到,则在步骤406中服务302处理那些客户机动作。
[0042] 客户机动作例如可以是客户机向其他客户机查询关于是否存在任何所存储的通知。如以上解释的,当一个或多个其他玩家(300B和/或300C等)已经在异步玩的游戏会话中取得其回合时,游戏应用程序处理由其他玩家采取的动作,并且存储可由客户机300A在步骤404中查询的数据。另选地或另外地,客户机动作可以是客户机300A提交回合。在检查所存储的通知之前或之后,在步骤404中客户机可提交回合,并且在各种实施例中,无论所存储的通知在等待或不在等待,客户机都可提交回合。
[0043] 在步骤406,服务302处理步骤404中所采取的任何客户机动作。如果客户机300A对于所存储的通知进行查询,则在步骤406可将那些通知发送给客户机300A。或者,如果不存储所存储的通知,则服务可响应于客户机查询来发送将无数据回复。作为对通知的查询的替换或补充,如果在步骤404客户机300A取得游戏中的回合,则在步骤406服务302可以处理该动作。具体而言,游戏服务器306可处理客户机动作以生成新的游戏状态。
[0044] 在步骤408,基于步骤404中所接收的客户机动作以及步骤406中对动作的处理来生成新通知。如果客户机300A仅查询了所存储的通知,则步骤408中所生成的新通知可反映这一内容。如果客户机取得回合,则步骤408中所生成的新通知可反映客户机300A进行的移动以及更新的游戏状态。可想到客户机300A被连接,但没有查询所存储的通知,没有取得回合,也没有在步骤404执行任何其它动作。在这一情况下,步骤408仍可生成指示客户机300A在给定时间连接的通知。如下解释的,如果存在所连接的其他玩家,则这一新通知可被存储或向其他玩家发出。在其他实施例中,在步骤408服务302可仅在客户机在步骤404中取得回合时生成新通知。在这一实施例中,仅连接或查询所存储的通知可能不会在步骤408中生成新通知。
[0045] 接着在步骤412,服务302可检查游戏会话的其他客户机是否与客户机300A同时连接。如果是,则在步骤414可将客户机300A的动作所生成的新通知发送给一个或多个其他所连接的客户机。在步骤436连接管理器304随后可确定是否满足某些同步连接准则,该准则用于在客户机300A与其他所连接的一个或多个客户机之间建立同步连接,如以下解释的。如果是,则在步骤440连接管理器304在所连接的客户机之间维护同步连接,如以下也将解释的。
[0046] 在步骤412,如果确定没有其他客户机连接,则可在步骤416将由客户机300A的动作生成的新通知存储在数据库312中。在步骤418客户机300A随后可选择终止会话。在这一情况下,在步骤420连接被丢弃,并且不对于客户机300A执行进一步动作,直到在步骤400客户机300A再次连接。在具有比客户机300A和300B更多的参与者的游戏会话中,可以为离线的这些参与者存储通知,并且可以将通知直接转发给连接的那些参与者。
[0047] 代替在步骤418终止连接,客户机300A可改为选择保持连接。例如,客户机300A可获悉不存在连接的其他客户机,但出于周期性地轮询服务302以查询是否有其他游戏会话客户机连接的目的,客户机300A可保持连接。在步骤422,服务302从客户机300A接收周期性查询。在从客户机300A接收查询之后,在步骤436连接管理器304确定是否满足用于将客户机与一个或多个其他游戏会话客户机连接的同步连接准则。同步连接准则将在以下解释。如果满足该准则,则连接管理器在所连接的游戏会话客户机之间维护同步连接。如果不满足准则,则服务302可返回步骤418以查看客户机300A是希望终止连接还是在步骤422继续向服务302轮询其他游戏会话客户机。
[0048] 在步骤422从客户机接收的周期性查询可由连接管理器304或客户机来控制,并且可根据各种方案来执行。在一个实施例中,客户机向服务302轮询以寻找来自其他客户机的通知的频率或轮询间隔可随着通知实际上等待了多久而变化。由此,在一个实施例中(继续客户机300A),客户机300A可在最后一次查询之后轮询一分钟。如果没有通知在等待,则客户机300A随后可在再次连接之前等待两分钟。如果两分钟后没有通知在等待,则客户机300A随后可在再次连接之前等待四分钟。如果四分钟后没有通知在等待,则客户机300A随后可在再次连接之前等待十分钟。如果十分钟后没有通知在等待,则客户机300A随后可在再次连接之前等待半小时。依此类推。以上提到的具体时间段仅作为示例,并且每一轮询间隔可以长于或短于以上阐明的时间段。
[0049] 在某一时刻,如果找到通知,则系统可将轮询间隔自动地降低回到例如一分钟。如果轮询导致满足步骤436中的同步连接准则的通知,则连接管理器随后可将客户机切换成同步连接。
[0050] 以上描述的步骤400至422都可经由客户机300A与服务器302的异步连接来发生。虽然以上描述是按照客户机300A阐明的,可以理解,以上描述的步骤可应用于通过服务302连接到游戏会话的任何客户机。
[0051] 现在将描述步骤436的同步连接准则。如果在步骤412确定一个或多个附加游戏会话客户机与客户机300A同时连接,则步骤436的同步连接准则可以仅是由服务302生成且被发送到所连接的客户机使其知道它们都被连接并且询问它们是否想要经由同步连接继续游戏会话的消息。如果所连接的客户机作出肯定响应,则在步骤440在所连接的游戏会话客户机之间维护同步连接。在其他实施例中,如果在步骤412确定了多个游戏会话客户机同时连接,则连接管理器304可跳过步骤436,并且可向所连接的游戏会话客户机通知它们的游戏会话正经由同步网络连接来维护。
[0052] 如上所述,在步骤412确定了没有其他客户机被连接时,客户机300A可保持被连接以便周期性地向服务302轮询,以查看是否有来自其他客户机的新消息到来。如果没有找到存储的通知,则相继查询之间的间隔可增加,而一旦找到存储的通知,则间隔可减小。这一间隔可由连接管理器304或由作出查询的客户机300来控制。连接管理器304监视这些查询和找到的通知,并且在步骤436确定是否一达到某一“同步阈值”。如果是,则连接管理器基于与服务302的这些交互在两个客户机之间维护同步连接。
[0053] 在步骤436中对其作出这一判断的同步阈值可以按多种方式定义。在以上提到的一个示例中,连接管理器304可跟踪玩给定游戏的客户机300连接到控制台服务以寻找存储的通知的频率、以及客户机多久找到这些存储的通知。如果连接管理器确定在客户机连接的某一阈值百分比的时间存在连接之后未发送的通知,则在步骤440连接管理器可将该客户机的连接切换到同步连接。在此实施例中,同步阈值基于当客户机连接时客户机多久接收通知。在实施例中,这可从20%变化到80%,但该阈值百分比将高于或低于其他实施例中的阈值百分比。
[0054] 在其他实施例中,如果存在等待排成行的阈值数量的客户机的先前连接的通知,则连接管理器可切换到同步连接,而不是使用阈值百分比。在此实施例中,例如客户机可以已经连接了任何次数其中没有通知在等待,但这些尝试之后,如果客户机连接并且在连续预定次数中每一次均有通知在等待,例如两次或四次,则在步骤440连接管理器可将该客户机切换到同步连接。阈值数量在此实施例中可以小于两个,或在其他实施例中大于四个。
[0055] 在其他实施例中,连接管理器可仅查看不同客户机取得其回合的频率。如果两个客户机在某阈值频率内取得其回合,则在步骤440连接管理可在它们之间维护同步连接。以上描述的用于建立同步连接的准则可应用于两人游戏会话中的两个客户机,或者它可应用于例如涉及超过两个玩家的游戏会话中的更大客户机组的两个或更多客户机。
[0056] 可以理解,同步连接可通过形成服务302的一部分的中央服务器来进行。然而,可以理解,同步连接可通过各种其他网络方案来进行。例如连接可以是对等连接、或另选地是通过中继型服务器来进行的同步连接。
[0057] 现在参考图4B的步骤444,在两个或更多服务器之间建立了同步连接之后,服务接着检查具有回合的客户机中的一个是否及时响应。即,当经由同步网络连接通信时,服务可具有预定义的“异步阈值”时间段,在该时间段内它必须从当前是其回合的客户机接收响应。预定义的异步阈值时间段可以变化,但可以例如是15秒到五分钟,尽管在其他实施例中可以长于或短于该时间段。如果具有回合的客户机及时响应,则在步骤448游戏会话服务器306处理客户机动作并且生成新通知。
[0058] 另一方面,如果在预定义的异步阈值时间段内没有从当前是其回合的客户机接收到动作,则在步骤450服务可生成要发送给无响应的客户机的提示消息。如果在诸如上述某预定义的时间段内无响应的客户机没有对提示作出响应,则在步骤456同步连接可被丢弃。流程随后可返回图4A的步骤400,以等待客户机的下一次连接。在其他实施例中可省略提示步骤450和454,在该情况下在步骤444中没有接收到及时响应之后,系统将在步骤456丢弃连接。
[0059] 另一方面,如果在步骤444具有回合的客户机及时响应或在步骤454及时响应该提示,则在步骤448游戏会话服务器306处理客户机动作并且生成新消息。在步骤458,进行将新通知经由同步网络连接直接发送给其他客户机的尝试。如果通知失败,则在步骤462系统存储通知,并且该流程返回步骤420(图4A)其中同步网络连接被丢弃。流程返回步骤400并且在异步网络连接上坚持游戏会话,直到再次到达如同步阈值的时间。在此情况中,连接管理器可随后将游戏会话切换到同步网络连接。
[0060] 另一方面,如果在步骤460通知成功,则维持同步网络连接。服务返回步骤444以处理来自所有所连接的客户机的其它回合,如以上描述的。只要客户机回合在异步阈值时间段(或提示时间段)内被取得,并且通知被成功发送,系统就支持客户机经由同步网络连接玩游戏会话。流程返回步骤444并且在同步网络连接上坚持游戏会话,直到再次到达如异步阈值的时间、或通知发送失败。连接管理器随后将游戏会话切换到异步网络连接。
[0061] 给定以上描述,本领域技术人员将理解,可以对以上描述的图4A和4B的步骤进行变型而不背离本发明的精神。以上描述的图4A和4B的步骤用于两个玩家的基于回合的游戏以及超过两个玩家的基于回合的游戏。在存在超过两个玩家的情况下,当其中一个玩家丢失连接时,只要这些剩余玩家中的一个继续取得回合则可坚持剩余玩家之间的同步连接,如以上描述的。如果游戏会话到达需要来自离线用户的动作的时刻,则可丢弃游戏会话中其他玩家的同步连接,直到如两个或更多玩家被连接且能够以超过同步阈值的步调玩游戏的时间。
[0062] 以上描述主要是在基于回合的系统的上下文中进行的(是A的回合而不是B的回合),但可以在其中用户平行地提交数据的MMO中应用。
[0063] 本发明技术一般涉及一种用于将网络连接从同步修改成异步、以及从异步修改成同步以平衡服务器性能并且提高用户体验的系统。在以上描述的实施例中,同步与异步模式之间的转换是基于玩的步调的。给定以上公开,本领域技术人员将理解在其上可触发转变的其他机制。在一个这样的其他实施例中,游戏应用软件本身可指示游戏的某些部分通过同步网络连接来玩,而游戏的其他部分可通过异步网络连接来玩。在另一实施例中,用户可通过系统偏好中的设置来设置连接何时在同步与异步模式之间改变以及是否改变。在其他实施例中,其他触发是可能的。
[0064] 本发明系统的前述详细描述是出于说明和描述的目的而提供的。这并不旨在穷举本发明系统或将本发明系统限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择所述实施方式以最好地解释本发明系统的原理及其实践应用,从而允许本领域技术人员能够在各种实施方式中并采用各种适于所构想的特定用途的修改来最好地利用本发明系统。本发明系统的范围旨在由所附权利要求书来定义。