游戏玩家动态管理的制作方法

文档序号:1587467阅读:240来源:国知局
专利名称:游戏玩家动态管理的制作方法
技术领域
一般说来,本发明涉及计算机网络,更确切地说,涉及由多个用户在一个计算机网络中运行的一种应用程序。
背景技术
将计算机网络,比如局域网和因特网,用作多种事务处理和各方之间互动的主干线,这种情况正在日益增加。从银行客户能够在计算机网络上进行金融事务处理的网上银行,到玩家们能够通过因特网参与各种游戏的网络游戏,服务提供商通过计算机网络提供各种各样的服务正在日益增加。目前有各种不同的计算机网络结构,便于进行事务处理和互动。
一种类型的结构是经典的客户-服务器结构,如

图1所示。在这种结构中,一台专用的服务器计算机110通过一个网络,比如通过因特网,与一台或者多台客户计算机120通信相联。客户计算机120向服务器计算机110提出服务请求,服务器计算机110通过网络把数据传输到提出请求的客户计算机120,满足了请求。服务器计算机110能够连接到一台数据存储设备或者其他的计算机设备,以利于客户和服务器计算机之间的事务处理。客户-服务器结构的一个特点在于,由于客户计算机只限于与服务器计算机通信,客户计算机之间不能直接相互通信。
例如,这种客户-服务器结构在一个网络游戏环境中运行,服务器计算机110负责维持与网络游戏相关联的多种状态。服务器计算机能够连接到其他的计算机,比如一个存储器引擎140,它维持着一个游戏的一个或多个实例,同时服务器计算机110还管理着管理事务,比如玩家的匹配和帐号管理。在客户计算机120的一个游戏玩家,能够登录服务器计算机110,收到一个清单,内含可运行的游戏以及当前的玩家。此玩家挑选一个游戏,开始或者加入,从而确定了一个存储器引擎,玩家的计算机与其建立了一种客户-服务器连接。以这种方式,服务器计算机110和存储器引擎140,为一台或多台客户计算机120共同地管理游戏环境。
另一种类型的结构称为集成服务器结构,如图2所示。这种结构包括一台专用的服务器计算机110和一台或者多台客户计算机120,每台客户机都通过一个计算机网络连接到服务器计算机110上。如同前面描述的结构,服务器计算机110把数据传输到客户计算机120。不过,客户计算机120之一,比如客户计算机120a,功能如同一台集成服务器,它也能够把数据传输到其他的客户计算机120。在一种网络游戏环境中,服务器计算机110实施管理功能,比如玩家匹配、帐号管理和聊天室管理,而客户计算机/集成服务器120a能够执行前面描述的存储器引擎的功能。
再一种类型的通信结构中,多种计算机组成一种对等结构,如图3所示。在一种对等结构中,计算机中的每一台都能够与其他的计算机通信,因此全部计算机都作为“对等者”。在一种对等结构形式中,一台专用服务器110通过网络与多台客户计算机120通信连接。一个在线会话是由客户计算机120初始创建,客户计算机120中的每一台都连接到一台管理计算机,比如服务器计算机110。然后客户计算机120相互连接,使得客户计算机120中的每一台与任何其他客户计算机120,都能够发送和接收数据。此外,每一台客户计算机120都能够与专用的服务器110在客户-服务器关系下运行。本领域的技术人员将会理解,除了上面描述的结构之外,还有其他的通信结构。
上面描述的多种结构使得计算机用户能够在一个计算机网络中互动,比如在一个网络游戏环境下,游戏玩家能够在一个计算机网络中,玩计算机游戏。在这样一种情景中,通常至少一台计算机用作一个游戏管理器,它管理着游戏的各个方面,比如协调玩家的数目、记忆游戏的状态、根据游戏的状态向用户发送更新数据。应当承认,游戏进程的连续性极为依赖游戏中的全体用户在整个游戏期间持续地玩游戏。如果在一场游戏的中间,一个游戏玩家退出,游戏进程就可能会中断甚至终止,尤其是当退出的玩家正在管理一部分游戏之时。
例如,典型情况下运动类游戏有一个固定的游戏开始和游戏结束,至少有两个玩家在游戏中竞争。在目前的结构中,往往有几个玩家参与一个网上运动竞赛,假定每一个玩家都担任一个运动队中的一个角色。例如,在一个网络橄榄球游戏中,玩家可以充当的角色有四分卫、直接球接手、防守后卫、前卫等。若是玩家之一在游戏的中间突然离开了,那么游戏进程就会中断或者终止。在其它类型的游戏中也会有这样的情况,游戏进程的连续性取决于每个玩家在游戏环境中,持续地玩通一个具体的情景。
遗憾的是,当前的多用户应用程序配置没有考虑到一个在线会话中的参与者突然地或者说出人意料地离开在线会话的情况。如果一个玩家确实离开了一个在线会话,那么会话就会不正常地中断或者终止。考虑到前述的情况,一个多用户应用程序有必要克服前述的缺点。

发明内容
本发明涉及一种应用程序,它的配置为在一个计算机网络上的多参与者环境中运行。该应用程序管理着一个多用户应用程序的一个在线会话中的多个参与者,如果参与者之一退出了会话,会话能够继续进行而不发生中断。依据本发明的一个方面,该应用程序启动多用户应用程序的一个在线会话,其中,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成。如果应用程序检测到一个第一参与者已经与在线会话断开连接,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能,那么应用程序就通过通信网络,向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开。然后这个启动的应用程序把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。参与者之间可以进行对等通信,或者说可以在一个客户-服务器模式下执行服务器的任务。
从优选实施例的以下描述中,本发明的其它特性和优点应当显而易见,它通过实例展示了本发明的原理。
附图简要说明连同附图阅读以下详细说明,将会更容易理解本发明的目的、优点和特性,其中图1展示了一种计算机网络,布置为一种客户-服务器网络通信结构;图2展示了一种计算机网络,布置为一种集成化网络通信服务器结构;图3展示了一种计算机网络,布置为一种对等网络通信结构;图4展示了一种计算机网络系统,其中运行着依据本发明配置的一个多用户应用程序;图5展示了一种数据结构,其中包括多用户应用程序的计算机索引和会话主控信息;图6展示了一种计算机网络系统,其中多用户应用程序分布在第一类通信结构中;图7展示了一种计算机网络系统,其中多用户应用程序分布在另一类通信结构中;图8是一幅流程图,表现了在一个多用户应用程序的在线会话中管理一个参与者退出的过程;图9是一幅流程图,展示了多用户应用程序创建一个在线会话的相关操作步骤;图10是图4展示之网络中一台计算机的框图,展示了若干硬件部件;图11是图4展示之网络中一台计算机娱乐系统的框图,展示了若干硬件部件。
具体实施例方式
图4是计算机网络系统400的一幅框图,由一种或者多种网络设备组成,包括一台或者多台客户计算机410、412以及一台或者多台专用服务器计算机420、430,它们都是计算机网络430的节点。换言之,某些网络计算机配置为服务器,某些配置为客户机。计算机网络430可以包括一组互连网集合,比如因特网,在每个节点410、412、420、430上也可以包括一个或者多个局域网。在本文中,术语“因特网”指的是一组互联(公共的和/或私有的)网络的集合,它们通过一组标准的通信协议链接在一起,形成一个全球分布的网络。
客户计算机410、412可以通过网络430,向服务器计算机420、430之一发送数据请求,它们配置为以众所周知的方式,通过网络430向客户机提供数据。服务器计算机420、430能够功能相互包括,或者相互通信连接以及连接到其它的服务器,比如一台数据库服务器和/或一台应用程序服务器,正如本领域技术人员所熟知。尽管图4仅仅显示了两台客户计算机410、420和两台服务器计算机420、422,但是应当承认,网络系统400可以包括任意数目的客户计算机410、420和服务器计算机420、422。服务器计算机420、422和客户计算机410、420在本文中有时一并称为网络计算机。
网络系统400支持多用户应用程序440,它包括一个计算机程序,使多个用户能够使用链接到计算机网络430的网络设备(比如客户计算机410、420),在在线会话中互动。应用程序440安装在每台客户计算机中,这表明运行(执行)着应用程序440的每台客户计算机410、412的内存中,都存放着该应用程序的一个运行实例。将要参加多用户应用程序的一个在线会话的每台服务器计算机中,也都存放着应用程序440的一个实例。为了便于描述,将假设第一台服务器计算机420为客户计算机410、412正在执行的多用户应用程序所用的服务器,尽管服务器420、422都显示着安装了应用程序440。在应用程序440运行期间,在实例之间存在着数据交换,在每台网络计算机上安装的网络插座445使数据交换得以进行。在图4中插座表示为每台对应的网络计算机上的方框。本领域的技术人员将会理解,一个网络插座就是在网络系统400上运行的两个或更多程序之间多路通信链接的一个端点。
根据各种通信结构配置,应用程序440能够在网络系统400的若干网络设备上运行,多种应用程序相关过程的职责能够分配到网络430的不同计算设备中,正如以下更详细的描述。优选情况下,使用一个应用程序开发界面以开发应用程序440,也正如以下更详细的描述。应用程序的运行方式使得相关的网络计算机可以使用一种通信结构,实施图1、图2、图3展示的任何通信模式。
多用户应用程序440可以是一个用户能够在一台链接到计算机网络430的网络计算机上运行的任何类型的应用程序。当应用程序440在一台客户计算机410、412上运行时,该用户能够通过也正在运行着应用程序440的其他网络计算机,与其他用户互动。服务器计算机420能够用作一个网络中心“会合点”,用户们可以通过它建立联系、保持数据以及启动应用程序440的一个在线会话。典型情况下,应用程序440使运行它的网络设备与另一台网络设备创建通信,比如设备410、412、420,从而启动一个在线会话。在线会话期间,网络计算机将按照应用程序440的程序特征,进行互动和交换数据。
当启动应用程序440并且在适当配置的计算机之间创建一个在线会话时,应用程序使得这些计算机能够以各种各样的配置互动。在整个说明书中,常常是在一个网络游戏情景中描述应用程序440,这时应用程序440包括一个计算机游戏,多个用户能够使用客户机420、412,访问和运行它。在这样一种情况下,应用程序440创建了多台网络计算机参加的一个游戏在线会话。不过,应当承认,应用程序440除了游戏之外,还可以与其他情景有关,比如网上银行或者在线旅游计划,它们都涉及一个计算机网络上的多台计算机之间的互动。
当一个应用程序440执行时,它识别一个会话主控——一台网络计算机,在线会话期间为应用程序在计算机之间的互动执行多种管理监控的功能。应用程序的一个在线会话使用注册或者登录过程,其中的数据存储含有比如用户标识等信息。登录过程对该应用程序在网络环境中的更多参与者进行授权。优选情况下,当运行着应用程序440的一台客户计算机,比如客户计算机410,登录服务器计算机420以便启动一个在线会话时,也会分配会话主控功能。然而,是应用程序本身确定何时以及如何进行这种分配的细节,从而使得各种各样的会话主控分配方案能够实施,而不脱离本发明的教导。
应用程序的运行实例所在的、启动了应用程序一个在线会话的客户计算机410,称为主计算机。主计算机上的应用程序把会话主控功能或者分配给服务器计算机420,或者分配给主计算机410。当新的客户计算机登录(注册)服务器计算机420以便加入在线会话时,服务器计算机420就向新的客户通报会话主控计算机已经分配的标识。
正如以下更加全面的描述,会话主控功能使得应用程序440能够运行的多种网络通信结构之间的转换更加平稳。会话主控功能还使得应用程序440能够把应用程序有关任务的职责都集中在一台特定的网络计算机上,或者把这种职责在两台或者更多的网络计算机之间分配。任务的分配可以由网络计算机之一上应用程序440的一个实例来执行,同时如果分配了会话主控功能,就能够把若干会话主控任务分配到网络430中的一台或多台计算机中,以提供必要的功能。分配了会话主控功能的计算机在本文中称为各自会话主控功能的“所有者”。如果有一组计算机一并执行若干会话主控功能,那么对一个单独的会话主控的若干引用,将理解为向这些计算机提出申请。因此,按照应用程序开发者的规定,以应用程序指定的方式进行会话主控任务的分配。
分配到会话主控的一类任务涉及应用程序特定的功能,这些功能是正在执行的应用程序440的具体类型所特有的。例如,假若应用程序440是一种游戏类型的应用程序,那么会话主控或者一组会话主控就能够记忆游戏类型的数据,比如游戏得分以及游戏中的剩余时间,并且能够执行若干游戏功能,比如当一个游戏结束时终止在线会话。也可以向一台会话主控计算机分配跟踪特定游戏数据的职责,比如游戏环境中一个客体的状态,如一个足球、一架飞机、一片海洋、一棵树木等。按照应用程序的运行,这些职责中的每一种,都能够集中在一台单独的会话主控计算机中,也能够在几台会话主控计算机之间进行划分。
主计算机对参与在线会话中的计算机执行管理功能。例如,无论何时一台网络计算机加入了应用程序440的在线会话,主计算机就给加入会话的计算机分配一个标识索引号。主计算机保持着一个列表,其中有标识索引号以及它们相关联的网络计算机。索引号在发送信息时使用,它也用于保持会话主控功能有关的所有权记录。
如上所述,一个在线会话中可能有不止一个会话主控。按照应用程序的运行,应用程序能够确定一个会话主控的分配方式。应用程序440还可以为会话主控分配发送更新消息的职责,以便更新网络计算机,使之适应参与在线会话之全部网络计算机的状态。当一台新的网络计算机加入应用程序440的在线会话时,或者一台当前的计算机退出在线会话时,这项职责要求会话主控通报在线的网络计算机,如以下更完整的描述。
把上述索引号分配给每个计算机的主计算机,也保持着一份清单,其中有参加在线会话的全部网络计算机。那么按照分配给各个计算机的索引号,应用程序440记忆会话主控的所有权。为了记忆索引号和职责分工,应用程序440可以保留一种数据结构,比如以表格形式包括一个网络计算机索引清单,如图5所示的表500。参加在线会话的每台网络计算机,都在表500中有一个对应的索引号,该表还包含了该网络计算机是否拥有会话主控功能的指示。优选情况下,包括表500的索引清单数据结构还指定了每台网络计算机使用的通信协议。图5显示出,不同的会话主控任务(C1、C2、C3)可以被不同的网络计算机所有。
除了定义通信协议之外,数据结构还为每台网络计算机指定了通信协议的关联端口。应用程序440的每个实例使得参加在线会话的相关网络计算机能够打开多个通信端口,每个端口关联到一种具体的通信协议。网络计算机使用一个具体的端口和一种具体的通信协议与其它网络计算机通信,在包括图5所示之表500的数据结构中指定。这些端口可以包括若干网络插座,应用程序440的实例通过它们进行网络通信。优选情况下,网络计算机通过在网络上周期性地相互发送通信消息,传送端口/协议信息,以及索引清单中包含的其他信息。
优选情况下,参加在线会话的所有计算机都保持着它们自己的表500索引清单副本。应当承认,表500仅仅是示范性的,启动的主应用程序440能够使用变化范围广泛的数据结构格式,以其它方式记忆客户索引号和会话主控所有权,将是更可取的。另外,会话计算机也可以共享该表格一个或者多个副本。
启动的应用程序440能够在多种通信结构中运行,这取决于应用程序440如何分配会话主控的所有权。在第一类结构中,如图6所示,启动的应用程序440把一个会话主控600的所有权分配给了单一的计算机,比如专用的服务器计算机420。所以,这台计算机420对启动的应用程序440规定的会话主控功能相关联的全部任务负有责任。因此,就会话主控的功能而论,应用程序440运行在客户-服务器通信结构中,由服务器计算机420按照会话主控职责,向客户计算机410提供数据。
应当承认,参加应用程序440的在线会话的任何一台计算机,都能够具有一项或多项会话主控任务的所有权,比如客户计算机410之一显示为拥有会话主控600a,在图6中用虚线显示。这表明该客户计算机已经承担了并且正在执行一项或多项会话主控任务,与名义的会话主控服务器计算机420共同承担或者取而代之。换言之,参加一个在线会话的计算机中,可能有一个会话主控的几个实例,一个会话主控的每个实例分配有特定的职责,每项会话主控任务分配给一台不同的网络计算机,或者多项任务分配给同一台计算机。例如,图6显示了一种情况,有两个会话主控600和600a,每个都承担了应用程序440在线会话相关的一定功能。服务器计算机420承担一些职责,客户计算机410也承担一些职责,由应用程序确定。这是一种集成服务器结构,拥有会话主控600a的客户计算机410正在用作一台集成服务器。一台“集成服务器”是指以下情况全体客户都向一个指定为集成服务器的客户发送信息,并且集成服务器把信息传播给其他客户。作为集成服务器的客户还可以拥有一项或多项会话主控任务。
在图7所示的另一种方案中,应用程序440已经把会话主控600的所有权分发给了几台计算机。在展示的实例中,两台客户计算机410共享会话主控600的所有权。在这种情况下,两台计算机都能执行相关会话主控的功能,因此图7中的网络计算机是一种对等结构。无论应用程序440运行的具体通信结构如何,应用程序的在线会话都包括多种网络参与者,包括运行应用程序以及按照在线会话进行互动的网络计算机。要是在线会话的参与者之一要退出会话,那么就可能导致其他仍在会话中的参与者发生中断。依据本发明的一个方面,应用程序440配置为应对一个参与者退出一个在线会话的情况,以便使剩余参与者发生的中断最小。
下面将参考图8所示的流程图,对此进行更详细的描述。图8描述了在多用户应用程序440的一个在线会话中,有一个参与者退出的管理过程。在810号流程图方框表示的第一步操作中,确定应用程序在线会话的一个参与者已经退出了在线会话。确定一个参与者已经退出了在线会话,可以有多种方式。在一个实施例中,参加在线会话的一台网络计算机上的应用程序440的实例,定时使网络计算机广播一条更新消息,通报其他网络计算机,它仍在在线会话中。如果在一个预定的时间之内,没有收到从一台具体的网络计算机发出的更新消息,那么就认为该网络计算机已经退出了在线会话。在在线会话创建期间,启动在线会话的计算机上的应用程序440的实例,可以把确定一个参与者已经退出了在线会话的职责,分配给一台具体的计算机,比如会话主控计算机。
在820号流程图方框表示的下一步操作中,计算机之一中的应用程序440的实例向在线会话的所有参与者,广播了一条布告消息,通告它们一个参与者(“退出的参与者”)已经退出了在线会话。只有网络计算机中的一台,例如会话主控计算机,向全体参与者广播布告消息。如果该会话主控计算机就是退出的计算机,那么其他网络计算机中的一台广播该消息,比如索引号紧跟在会话主控计算机之后的计算机。优选情况下,布告消息包括退出的参与者的网络计算机先前分配的索引。以这种方式,其他参与者能够通过参照以上针对图5讨论过的索引表,识别退出的参与者。
根据退出会话的参与者是否负责执行可能会影响在线会话其他参与者的任何会话管理功能,下一步操作有所不同,如编号为830的决策方框所示。管理功能包括,比如过滤通信消息、分配识别索引、保存得分、记忆会话次数、记忆位于在线世界中的物品、记忆在线世界中的参与者位置,等等。如果退出会话的参与者负责执行任何这类功能,决策方框830就得出“是”的结果,然后本过程进至840号流程图方框表示的操作。在这项操作中,应用程序440将退出的参与者所具有的管理职责,重新分配给仍然在在线会话中的另一个参与者的网络计算机。优选情况下,管理职责的重新分配是由一台特定计算机上应用程序440的一个实例执行,比如其索引号紧跟在退出在线会话计算机索引号之后的计算机。例如,带有第一索引的计算机可能退出了会话。带有下一个紧邻索引(如图5所示表500所指定)的计算机上的应用程序实例,就会执行重新分配已经退出计算机的职责。
应用程序440重新分配职责的方式可以改变。在一个实施例中,应用程序440根据某些因素,其中有些因素与参与者的网络计算机的条件有关,自动挑选参与者重新分配职责。条件可以包括例如通信环境、地理位置、网络计算机的硬件规格,以及用户指定的优先选择。
通信环境涉及参与者的网络计算机带宽性能是否高,比如通过一个电缆调制解调器时或者DSL。优选情况下,会给予那些带宽性能更高的参与者以更高的优选权,来承担已退出参与者的职责。参与者的地理位置,也是决定把已退出参与者的职责分配给哪一个参与者的一个因素。例如,为了使通信的等待时间最短,位于其他参与者中心的一个参与者,可能会给予更高的优先权。在线会话参与者的网络计算机硬件规格也是一个因素。应用程序440可以把更高的优先权,给予硬件性能对重新分配的职责适应性最高的网络计算机,比如数据处理性能强大的计算机。
在流程图方框840操作的另一个实施例中,应用程序440只是把已退出参与者的职责随机地重新分配给在线会话参与者中的另一个。应用程序440也可以考虑用户指定的若干优先选择。某些用户可以指定应用程序440,不要给它们分配管理任何应用程序功能的职责。用户也可以指定,要是另一个参与者退出在线会话,就应当对一个具体的参与者重新分配职责。另外,应用程序440也可以向在线会话的全体参与者广播一条消息,询问是否有任何参与者希望接管先前分配给已退出参与者的职责。
下一步操作由850号流程图方框表示。应用程序440已经重新分配了已退出参与者的职责之后,就会发生这项操作。如果已退出参与者没有任何需要重新分配的职责,从830号决策方框就会已经产生一个“否”结果,也会发生流程图方框850中的操作。在这项操作中,应用程序440试图获得一个新的参与者,以取代已退出的参与者。优选情况下,由一台特定计算机比如会话主控计算机上应用程序440的实例进行这种尝试。应当承认,这项操作与流程图方框840中操作的差异在于,这项操作涉及获得一个替代参与者,在在线会话中取代已退出的参与者,而不是重新分配已退出参与者的管理功能。
例如,在线会话可能上一个在线橄榄球游戏,每个参与者都是同一球队中的一个球员。参与者之一可能已经承担了若干管理功能,对球赛记分和记时。同一参与者在游戏中可能还扮演四分卫的角色。如果该参与者在游戏期间退出在线游戏,那么应用程序440就在操作840中,把已退出参与者的管理功能(即记分和记时职责)重新分配给另一个参与者,然后在操作850中,试图获得一个新的参与者作为四分卫,取代已退出参与者的角色。
应用程序440试图获得在线会话的一个替代参与者的方式可以改变。在一个实施例中,应用程序440自动分配一台网络计算机而不是一个人,来取代已退出的参与者。该网络计算机因而会执行已退出参与者的功能。在另一个实施例中,应用程序440保持着可能参与在线会话之网络计算机的一个清单,然后向这些计算机发送一条消息,邀请它们参与会话。应用程序440可以把在线会话置于一种暂停模式,同时获得一个替代参与者。
优选情况下,开发应用程序440时使用一种软件开发工具包(SDK),它提供了一个目标程序库以及应用程序440中所用的若干通信消息定义。该软件开发工具包包括一个应用程序界面,使用SDK开发的应用程序能够通过该界面,运行在一个网络系统中,比如网络系统400。应用程序界面能够驻留在一台中心网络服务器中,比如服务器420中,具有应用程序440的网络计算机能够登录该服务器,以便运行应用程序的一个在线会话。通过使用SDK提供的目标程序和消息类型,开发的应用程序440能够包括上述特性。优选情况下,SDK包括一个目标程序定义结构,它提供了应用程序440使用的若干目标程序的一种基于客户的定义。目标程序定义包括多个特征,它们与每个目标程序相关联,并且被应用程序用于通过计算机网络,实现与若干客户的互动。
一旦已经使用SDK开发了应用程序440,应用程序440就能够加载到一台或多台网络计算机上,并且能够按照图9的流程图方框中所示的若干操作,创建一个在线会话。在910号流程图方框表示的第一步操作中,加载了应用程序440的一台网络计算机,连接到内存中包括了应用程序界面软件的一台网络计算机。例如,图4所示之网络系统400中的一台或多台客户计算机410,可以使应用程序440加载到内存中,服务器计算机420可以包括应用程序界面。在这样一种情况下,客户计算机410通过网络430,与服务器计算机410创建一种通信连接。
在920号流程图方框表示的下一步操作中,按照应用程序界面库中可用的目标程序定义,应用程序440注册若干目标程序。应用程序440也注册在线会话期间将要使用的任何消息过滤器,如920号流程图方框所示。
在950号流程图方框表示的下一步操作中,应用程序440定义会话主控,并且把会话主控的所有权分配给网络计算机之一。会话主控的所有权可以分配给一台计算机,也可以分配给多台计算机。应用程序440也指定会话主控的所有权是一台具体的计算机专有,还是所有权能够转移到其他计算机。
在这项操作期间,应用程序440把客户索引分配给将要参与在线会话的每台网络计算机,也创建上述的索引表。应用程序440能够配置为,登录到服务器计算机的第一台网络计算机将是会话主控,并且也接收一个初始索引,比如1或0的一个索引。应当承认,初始索引可以改变。然后,后续登录的网络计算机将接收下一个可用的索引。会话主控的所有权或者会话主控已经创建之后,就开始应用程序440的在线会话,如950号流程图方框所示。
如上所述,图4的框图中所示的网络计算机包括计算机网络系统400的若干节点。图10是图4的系统400中一台计算机的框图,展示了计算机之一中包括的若干硬件部件。本领域的技术人员将会理解,设备410和420可以都具有一种类似的计算机结构,也可以具有与本文介绍的性能一致的结构。
图10显示了一种示范性的计算机1000,比如可能包括网络计算机中的任何一台。每台计算机1000都运行在一个中央处理器单元(CPU)1002的控制下,比如一个“奔腾”微处理器和相关联的集成电路芯片,产自美国加州Santa Clara的英特尔公司。一个计算机用户能够从一个键盘和计算机鼠标1004输入命令和数据,并且能够在一台显示器1006上观察输入和计算机的输出。典型情况下,显示器是一台视频监视器或平板显示器。计算机1000也包括一台直接存取存储设备(DASD)1008,比如一台硬盘驱动器。典型情况下,内存1010包括易失性半导体随机存取存储器(RAM)。优选情况下,每台计算机都包括一台程序产品读取器1012,它接受一种程序产品存储设备1014,程序产品读取器能够从中读取数据(而且它也能够选择向其写入数据)。程序产品读取器能够包括例如一台磁盘驱动器,程序产品存储设备能够包括可拆卸的存储介质,比如一片软磁盘、一片CD-R盘、一片CD-RW盘或DVD盘。
每台计算机1000都能够通过一种网络接口1018,利用计算机网络1020(比如因特网或一个内联网)与其他计算机通信,接口1018使得通信能够通过网络1020与计算机之间的连线1022而进行。典型情况下,网络接口1018包括例如一片网络接口卡(NIC)或一个调制解调器,允许通过多种网络进行通信。
CPU 1002运行在程序步骤的控制下,它们临时存放在计算机1000的内存1010中。执行这些程序步骤时,计算机就执行其功能。因此,这些程序步骤实施了应用程序440的功能。这些程序步骤可以通过程序产品存储设备1014或者通过网络连线1022,由DASD 1008接收。程序产品存储驱动器1012能够接收一个程序产品1014,读取其中记录的程序步骤,并且把程序步骤传递到内存1010中,以便由CPU 1002执行。如上所述,程序产品存储设备可以包括已经记录着计算机可读指令的多种可拆卸介质中的任何一种,包括软磁盘和CD-ROM存储盘。其他适当的程序产品存储设备可以包括磁带和半导体存储器芯片。以这种方式,依据本发明的操作所需的若干处理步骤就能够包含在一个程序产品中。
另外,程序步骤也可以通过网络1020,接收后存放在操作内存1010中。在网络方法中,利用无须进一步讲解本领域的技术人员就将理解的众所周知的若干方法,通过网络连线1022已经创建了网络通信之后,该计算机通过网络接口1018,把包括程序步骤的数据接收后存在内存1010中。然后由CPU 1002执行这些程序步骤,从而组成一个计算机处理过程。
应当理解,图4所示之网络系统400中的所有网络计算机,都可以具有一种类似于图10所示的结构,所以不难理解针对图10中计算机1000所描述的若干细节也适用于系统400中的所有计算机。应当承认,这些网络计算机中的任何一台都可以具有一种其他的结构,只要该计算机能够通过图4所示的一个网络与其他计算机通信并且能够支持本文描述的功能。
例如,参考图11,客户计算机420能够包括一个计算机娱乐系统,比如一个视频游戏系统1100。图11是一幅框图,展示了视频游戏系统1100的示范硬件配置。
视频游戏系统1100包括一个中央处理器单元(CPU)1100,它关联到一个主存1105。CPU 1100运行在若干程序步骤的控制下,它们存放在OS ROM 1160中或者从一种游戏程序存储介质传递到主存1105中。CPU 1100配置为按照这些程序步骤处理信息和执行指令。
CPU 1100通过一条专用总线1125,通信连接到一个输入/输出处理器(IOP)1120。IOP 1120把CPU 1100连接到一个OS ROM 1160,它包括一个非易失性存储器,存放着若干程序指令,比如一个操作系统。优选情况下,这些指令是在主单元110启动时通过IOP 1120传递到CPU的。
CPU 1100通过一条专用总线1115,通信连接到一个图形处理器(GPU)1110。GPU 1110是一个绘图处理器,它配置为按照从CPU1100收到的指令,执行若干绘图处理,表现若干影像。例如,GPU 1110可以根据CPU 1100产生和发送的若干显示列表,呈现一幅图形影像。GPU可以包括一个缓冲区,用于存放图形数据。GPU 1110把影像输出到AV输出设备175。
IOP 1120按照IOP存储器1130中存放的若干指令,控制着CPU1100和多个外围部件之间的数据交换。外围部件可以包括一个或多个输入控制器1122、一片存储卡1140、一个USB 1145以及一条IEEE1394串行总线1150。另外,一条总线1155通信连接到IOP 1120。总线1155链接到几个附加的部件,包括OS ROM 1160、一个声音处理器单元(SPU)1165、一个盘控制单元1175以及一台硬盘驱动器(HDD)1180。
SPU 1165配置为按照从CPU 1100和IOP 1120收到的命令产生声音,比如音乐、音效和语音。SPU 1165可以包括一个声音缓冲区,其中存放着波形数据。SPU 1165产生声音信号并且把这些信号传送到扬声器。
盘控制单元1175配置为控制一个程序读取器,能够包括例如一台光盘驱动器,它接受可拆卸的存储介质,比如一片软磁盘、一片CD-ROM光盘、一片CD-R盘、一片CD-RW盘一片DVD盘等等。
存储卡1140可以包括一种存储介质,CPU 1100可以向其写入和存放数据。优选情况下,存储卡1140能够在IOP 1120中插入和拔出。一个用户能够使用存储卡1140存放或者说保存数据。此外,优选情况下,视频游戏系统1100还配备了至少一台硬盘驱动器(HDD)1180,可以向其写入和存放数据。
优选情况下,一个数据I/O接口,比如一条IEEE 1394串行总线1150或者一条通用串行总线(USB)1145的接口,通信连接到IOP1120,以便使数据能够往来传递于视频游戏系统1100,比如图4的网络430。
一个应用程序的一个网络用户,比如一个游戏玩家,正在作为该应用程序的集成服务器(IS),因而保持着应用程序的环境,所以该IS用户希望退出登录时,在该应用程序的常规实施方案中,该应用程序将会结束。在这种情况下,以上描述的系统和方法有所改进。如上所述,某些应用程序(比如多用户游戏应用程序)也可能允许把离场用户的功能(及数据)从离场用户转移到另一个用户,它将继续参与在线会话,并且将接管IS的职责。典型情况下,这种类型的交接相当繁琐,不太可能平稳地完成。例如在游戏环境的情况下,一个离场的玩家或许会从游戏环境中突然消失,从而打断其他玩家的游戏进程。当一个用户已经离开会话时,依据本发明的多用户应用程序通告全体其他的用户机器,所以即使有用户的离开和加入,应用程序也能够继续使用。为了使应用程序的环境更诱人,还可以作出适当的调整。断开功能确保了恰当的IS操作和通信,而通告正是通过它而发生。换言之,一个应用程序服务器或者说应用程序的IS能够向应用程序环境中的全体客户广播一条消息,通知他们一个用户已经离开或者已经加入,并且在需要时能够确保这些用户的适当功能。
如果一个系统具有一台网络设备作为上述的集成服务器(IS),向其他用户提供应用程序数据,那么应用程序环境中一个IS的故障或者有用户离开时,对策为分配另一个用户作为新的IS。应用程序能够自动执行一个替代过程,或者向全体用户发送一条广播消息并等待回答,从而分配一个新的IS。对于自动选择,应用程序能够按照以下因素分配新的IS该用户可用的带宽、潜在新IS的地理位置、一个用户作为IS所应考虑的指定优先选择、该用户机器上的技术指标和可用资源,或者通过一个随机过程来选择。如果应用程序设计为发送一条广播消息,那么典型情况下该消息将请求一个用户自愿作为新的IS。
此外,在一个IS发生故障之后登录到系统以及可能已经注册到出故障之IS的一个新用户,可以使其转向另一个IS,以便使现在不可用之IS正在服务的组降低工作负载。以这种方式,希望加入一个IS之应用程序环境的新来者,可用转向另一个IS和另一个用户组。另外,应用程序也可以分解或者说解散不可用的IS管理的在线会话组,以响应一个出故障的IS。正在依据本发明的操作而配置一个应用程序的应用程序开发人员可以选用这些替代方法。
如果在一个在线会话期间,一个单个用户离开了,结果可能会更有问题。例如在在线游戏的环境中,为了游戏的进程,需要一定最小数目的用户(玩家)。依据本发明,应用程序的响应可以是向网络中的其他用户发送一条消息,邀请其他人加入在线会话和参与多用户应用程序(比如一个游戏)。另外,应用程序也可以配置为调用一个人工智能模块来执行集成服务器的职责。
以上已经针对一个目前的优选实施例介绍了本发明,所以能够让人理解本发明。不过,对于系统和应用程序,有许多配置在本文中没有具体地介绍,但是可以利用这些系统和应用程序来实现本发明。所以,本发明不应当视为局限于本文介绍的具体实施例,而是应当理解为一般说来,本发明对于多用户应用程序具有广泛的适用性。所以,附带的权利要求书范围之内的所有修改、变化或等效布局和实施都应当视为在本发明的范围之内。
权利要求
1.一种管理多用户应用程序的一个在线会话中的参与者的方法,包括启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
2.根据权利要求1的方法,进一步包括获得一个新的参与者,以取代现有的参与者。
3.根据权利要求1的方法,其中,新的参与者受到人的控制。
4.根据权利要求1的方法,其中,新的参与者受到网络计算机的控制。
5.根据权利要求1的方法,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
6.一种管理多用户应用程序的一个在线会话中的参与者的方法,包括启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
7.根据权利要求6的方法,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能,以及进一步包括把与第一参与者有关的功能重新分配给在线会话的另一个参与者。
8.根据权利要求7的方法,其中,把与第一参与者有关的功能重新分配给在线会话的另一个参与者,是重新分配给新的参与者。
9.根据权利要求6的方法,其中,新的参与者受到人的控制。
10.根据权利要求6的方法,其中,新的参与者受到网络计算机的控制。
11.根据权利要求7的方法,其中,进一步包括根据现有参与者的通信环境,把与第一参与者有关的功能重新分配给在线会话的另一个参与者。
12.根据权利要求7的方法,其中,把与第一参与者有关的功能重新分配给在线会话的另一个参与者,是随机地重新分配给另一个参与者。
13.一种管理多用户应用程序的一个在线会话中的参与者的系统,该系统包括执行程序指令并接收一个数据集的一个或多个处理器,以及启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
14.根据权利要求13的系统,其中,这些处理器进一步执行程序指令,获得一个新的参与者,以取代现有的参与者。
15.根据权利要求13的系统,其中,新的参与者受到人的控制。
16.根据权利要求13的系统,其中,新的参与者受到网络计算机的控制。
17.根据权利要求13的系统,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
18.一种程序产品,用于在执行一种计算机可读介质中记录的程序步骤的一个计算机系统中,执行一种管理多用户应用程序产品的一个在线会话中的参与者的方法,其中,程序步骤包括启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
19.根据权利要求18的程序产品,其中,程序步骤进一步包括获得一个新的参与者,以取代现有的参与者。
20.根据权利要求18的程序产品,其中,新的参与者受到人的控制。
21.根据权利要求18的程序产品,其中,新的参与者受到网络计算机的控制。
22.根据权利要求18的程序产品,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
23.一种管理多用户应用程序的一个在线会话中的参与者的系统,该系统包括执行程序指令并接收一个数据集的一个或多个处理器,以及启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
24.一种程序产品,用于在执行一种计算机可读介质中记录的程序步骤的一个计算机系统中,执行一种管理多用户应用程序产品的一个在线会话中的参与者的方法,其中,程序步骤包括启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
全文摘要
公开了游戏玩家动态管理方法。本发明涉及一种应用程序,其配置为在一个计算机网络上的多参与者环境中运行。该应用程序管理着一个多用户应用程序的一个在线会话中的多个参与者,如果参与者之一退出了会话,会话能够继续进行而不发生中断。应用程序启动多用户应用程序的一个在线会话,其中,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成。如果应用程序检测到一个第一参与者已经与在线会话断开(810),其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能(830),那么应用程序就通过通信网络,向在线会话的现有参与者广播一个通告(820),从而通知现有的参与者该第一参与者已经与在线会话断开。然后这个启动的应用程序把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者(840)。参与者之间可以进行对等通信,或者说可以在一个客户-服务器模式下执行服务器的任务。
文档编号A63F13/12GK1592899SQ03801547
公开日2005年3月9日 申请日期2003年3月18日 优先权日2002年5月17日
发明者茶谷公之, 格伦·范·达塔 申请人:索尼电脑娱乐美国公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1