首页> 中国专利> 用于将动态内容引入合成环境中的分布式网络架构

用于将动态内容引入合成环境中的分布式网络架构

摘要

本发明的实施例大体上涉及基于计算机的模拟和合成环境产生,且更明确地说,涉及用于以分布式架构产生合成环境以尤其引入动态内容的系统、计算机可读媒体、方法和设备。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-10

    未缴年费专利权终止 IPC(主分类):A63F9/24 授权公告日:20120523 终止日期:20190306 申请日:20080306

    专利权的终止

  • 2012-05-23

    授权

    授权

  • 2010-05-05

    实质审查的生效 IPC(主分类):A63F9/24 申请日:20080306

    实质审查的生效

  • 2010-03-24

    公开

    公开

说明书

技术领域

本发明的实施例大体上涉及基于计算机的模拟以及合成环境产生,且更明确地说,涉及用于以分布式架构产生合成环境以尤其引入动态内容的系统、计算机可读媒体、方法和设备。

背景技术

传统的用于设计和模拟计算机产生的环境(例如大型多玩家在线(“MMO”)游戏中的虚拟世界)的技术并不容易便于新的或经修改的虚拟世界的高效开发和制作。而且,常规的用于产生虚拟世界的游戏平台进一步阻碍了尤其是相对于大型多玩家在线游戏的虚拟世界的开发和制作。通常,常规游戏平台使用一组游戏服务器来创建虚拟世界,其中每一额外组的游戏服务器用于创建虚拟世界的副本。此些副本通常被称为“碎片(shard)”。常规的游戏平台以例行方式将每一虚拟世界的地理范围划分成若干分区,且分配一个游戏服务器来产生每一单个分区。经配置以产生虚拟世界的分区的游戏服务器通常被称为“区域服务器”。此外,一些常规游戏服务器是单片的,这意味着用于为虚拟世界产生分区的所有游戏进程是在单个进程和/或服务器中创立的。虽然常规游戏平台以及开发计算机产生的世界的传统方法是有作用的,但存在与之相关联的多种缺陷。

某些常规游戏平台的缺陷在于,其为虚拟世界的分区分配一个游戏服务器。由此,游戏服务器及其功能性通常直接与分区及其活动联系起来。地理上相连的游戏服务器的性能因此依据所述分区处的玩家数目以及该处正在执行的活动的种类而变。此外,使用单片游戏服务器的常规游戏平台因为其无法调整其硬件能力以满足需求的增长而在某种程度上是受限的。因此,随着更多玩家移动到特定分区,支持所述分区的游戏服务器的负担变得越来越重。这又限制了可与对应的虚拟世界分区互动的玩家的数目。作为补救,某些大型多玩家在线游戏操作以将玩家从人数过多的游戏服务器迁移到人数相对较少的游戏服务器。这可能显著影响玩家体验。

传统游戏平台的又一缺点在于,每一游戏服务器与同一虚拟世界中的其它游戏服务器相比,通常具有单独的用于产生虚拟世界分区的进程空间。玩家越过为两个虚拟世界部分划定界线的地理边界而互动是常见的。由此,难题由于分区边界的缘故而出现,且常规游戏平台通常需要计算资源来尝试管理越分区互动。举例来说,与一个分区中的一个玩家相关联的游戏服务器通常需要某一种类的跟踪功能性来跟踪所述玩家与其它虚拟世界分区中的其它玩家的互动。作为另一实例,考虑通常需要计算资源来维持玩家作为不同进程空间中的代理。传统上,将玩家实施为代理要求将用于一个虚拟世界分区的玩家特有信息的一种表示(例如,角色识别符)转换成用于和另一虚拟世界分区的单独进程空间一起使用的另一表示。此外,游戏服务器通常使用(例如)远程程序调用来在游戏服务器自己之间就玩家互动进行通信,这增加了通信的复杂性以及越分区互动的等待时间。

常规游戏平台的进一步缺点在于,越过不同虚拟世界分区而互动的玩家(或玩家代理)可容易中断交易以不正当地为其自身获利。为了说明,考虑一个虚拟世界分区处的第一玩家提出用武器来交换另一虚拟世界分区处的第二玩家所拥有的金币。接下来,考虑第一玩家接收到金币,但在交出武器之前,第一玩家断开位于不同虚拟世界分区的游戏服务器之间的连接。因此,第一玩家将接收到金币但没有交换武器。

使用单片游戏服务器的一个缺陷在于,如果单片游戏服务器的游戏子进程中的一者(例如物理学进程)不稳定或关闭,那么所述游戏子进程驻存在其中的整个游戏服务器也容易经受不稳定或关闭。

使用当前的客户端-服务器架构来设计和模拟用于大型多玩家在线游戏的计算机产生环境存在其它缺陷。考虑连同为新的或经修改的虚拟世界创建新内容所需的开发活动一起,游戏设计者和开发者还定期修改可执行指令以适应所述新内容及其数据。修改可执行指令通常增加了开发时间,尤其是在用以剔除程序错误和其它问题的质量保证和可靠性测试期间。此外,大型多玩家在线游戏通常要求在与新内容互动之前,将经修改的可执行代码下载到客户端。举例来说,对于大型多玩家在线游戏平台,实施可包含经修改的可执行代码的大数据下载(例如,250MB)是常见的。

鉴于上述内容,将需要提供用于以分布式架构产生合成环境以尤其将动态内容引入合成环境中的系统、计算机可读媒体、方法和设备,且需要进一步为高效开发和制作新的或经修改的合成环境作准备。

发明内容

本发明的实施例大体上涉及基于计算机的模拟和合成环境产生,且更明确地说,涉及用于以分布式架构产生合成环境以尤其引入动态内容的系统、计算机可读媒体、方法和设备。在一个实施例中,合成环境产生平台可实施通用数据结构和消息接发系统以便利合成环境的产生。

附图说明

连同以下结合附图而进行的详细描述将更全面地了解本发明,在附图中:

图1A描绘根据本发明至少一个实施例的用于产生合成环境的系统。

图1B是根据本发明至少一个实施例的相对于准聚合进程空间而整体或部分产生合成环境的游戏管理服务器的图解。

图2是展示根据本发明至少一个实施例的消息接发系统的实例的图。

图3描绘根据本发明至少一个实施例的用于产生实施通用消息接发接口的合成环境的系统。

图4A描绘根据本发明至少一个实施例的用于将动态内容引入合成环境中的方法。

图4B描绘根据本发明至少一个实施例的经配置以将动态内容引入合成环境中的合成环境产生平台。

图5是根据本发明至少一个实施例的用于在产生合成环境时使用的准聚合进程空间的图解。

图6是展示根据本发明至少一个实施例的实施经压缩通用消息的消息接发系统的一部分的实例的图。

图7描绘根据本发明至少一个实施例的用于产生实施主缩放服务器的合成环境的系统。

图8是展示根据本发明至少一个实施例的添加可缩放游戏子进程服务器的主缩放服务器的实例的图。

图9是根据本发明至少一个实施例的实施游戏子进程服务器的特定实施方案的合成环境产生平台的图解。

图10是展示根据本发明至少一个实施例的物理学进程的实施方案的图。

图11是展示根据本发明至少一个实施例的用于确定能见度的技术的图。

图12是根据本发明至少一个实施例的实施额外类型的游戏子进程服务器的合成环境产生平台的图解。

图13是展示根据本发明至少一个实施例的用于在打补丁期间允许玩游戏的技术的图。

图14是根据本发明至少一个实施例的实施事件服务器和事件编辑器的合成环境产生平台的图解。

图15描绘根据本发明至少一个实施例的用于创建用于引入各种程度的动态内容的事件的流程。

图16是展示根据本发明至少一个实施例的通用数据结构的特定实施方案的图。

图17是描绘根据本发明至少一个实施例的特性类系统的要素的图。

图18描绘根据本发明至少一个实施例的用于创建通用消息的流程。

图19说明根据本发明至少一个实施例的用于创建通用消息的特性类系统的要素。

图20说明根据本发明至少一个实施例的用于创建插接物的特性类系统的要素。

图21是展示根据本发明至少一个实施例的实施经压缩通用消息的消息接发系统的一部分的实例的图。

图22是根据本发明至少一个实施例的实施用以与合成环境产生平台互动的通用消息接发接口的若干客户端的图解。

相同参考标号在附图的这几张图中始终指代对应的部分。请注意,大多数参考标号的一个或两个最左边的数字通常识别第一次引入所述参考标号的图。

具体实施方式

图1A描绘根据本发明至少一个实施例的用于产生合成环境的系统。此系统的一个实例是合成环境产生平台100,其包含联网在一起以产生客户端150与之互动的合成环境的节点(和节点进程)。合成环境产生平台100表示客户端-服务器网络架构中的服务器侧结构和/或功能性,且客户端150表示客户端侧结构和/或功能性。所述节点包含游戏子进程服务器104、数据库112和游戏管理服务器122,其全部通过网络115耦合在一起,以分别实施游戏子进程102、数据库进程110以及游戏管理进程120。游戏子进程102可包含多于或少于子进程102a、102b和102c的子进程。如图所示,游戏子进程服务器104至少相对于游戏管理服务器122以分布式布置而布置,从而使游戏子进程102与游戏管理进程120分离。在至少一个实施例中,游戏子进程服务器104a、游戏子进程服务器104b以及游戏子进程服务器104c可经配置以分别作为物理学服务器、人工智能服务器以及交易服务器而操作,或作为任何其它游戏相关子进程而操作。此外,根据各种实施例,合成环境产生平台100经配置以实施准聚合进程空间152,其可在游戏管理服务器122之间或在合成环境产生平台100与其它类似的合成环境产生平台100(未图示)之间共享,或两种情况均可。

通过与游戏管理进程120分离地分布游戏子进程102a、102b和102c,游戏管理服务器122独立地操作,从而使得其较不容易受游戏子进程服务器104中的任一者的性能恶化影响。因此,可将硬件和软件故障定位到特定的游戏服务器子进程102,从而允许问题识别和解决加速,且常常不会中断游戏管理进程120。这允许客户端150(例如,客户端150a和客户端150b)继续与合成环境互动,而不会被游戏子进程服务器104所发生的问题中断。另外,分布式游戏子进程102a、102b和102c促进了可联机以充分提供适当量的游戏子进程102a、102b和102c的游戏子进程服务器104的量的独立缩放。举例来说,如果合成环境需要额外的人工智能,那么可独立于其它游戏子进程102(例如物理学进程)的需要而使额外的人工智能服务器联机。因此,可实施适当量的硬件和软件以便于合成环境产生,以供任一数目的客户端150与合成环境产生平台100所产生的合成环境互动。此外,与其它类似的合成环境产生平台共享的准聚合进程空间152便于平台间(即,越碎片(cross-shard))互动,从而尤其为经改进的通信和更安全的交易作准备。

游戏管理服务器122每一者经配置以与游戏子进程102和数据库进程110合作以产生参与者与之互动的合成环境。由此,游戏管理服务器122经配置以对与客户端150相关联的若干参与者与合成环境的互动进行管理。请注意,可相应地缩放游戏子进程102以支持客户端150的数目。在各种实施例中,客户端150可越过多个游戏管理服务器122而分布,而不是限于一个游戏产生进程。为了说明,考虑客户端150a可与游戏管理服务器122a互动,且客户端150b可与游戏管理服务器122c互动。虽然客户端150a和150b与不同的游戏管理进程互动,但它们可共享准聚合进程空间152,不管客户端150a和150b与之互动的合成环境如何。在一个实施例中,客户端150a和150b可共享准聚合进程空间152作为共用进程空间。由此,越合成环境互动可容易发生。在一些实施例中,游戏管理服务器122可操作以批准特定参与者所请求的动作,从而验证所述参与者有权修改游戏数据。在至少一个实施例中,游戏管理服务器122a到122n以只读形式保存表示客户端150与合成环境的互动的游戏数据。由此,无法操纵游戏数据来破坏交易,所述交易否则可能会不正当地使参与者获利。

在一个实施例中,游戏子进程服务器104a可为物理学服务器,其可经配置以处理例如合成环境中的参与者的移动和碰撞活动。举例来说,物理学服务器104a可处理物理学相关事件,例如碰撞检测、刚性身体移动等。根据至少一个实施例,游戏子进程服务器104b可为人工智能服务器,其可经配置以提供人工智能以模拟(例如)合成环境中的非玩家角色(“NPC”)的移动。

在各种实施例中,游戏子进程服务器104c可为交易服务器,其可经配置以管理参与者之间的交易以确保交易是原子形式的。也就是说,游戏子进程服务器104c可操作以确保交易的所有部分均发生,或所有部分均不发生,从而保证存储在数据库进程110中的游戏数据不被更新,除非交易的所有部分均成功,从而减少供参与者寻求不正当获利的漏洞。交易服务器是游戏授权方,其确保活动对两个参与者均正确地完成,或对两个参与者均失败。在一个实施例中,合成环境产生平台100中的所有服务器均为只读除外(read-only except)游戏子进程服务器104c(作为交易服务器)。因此,交易服务器(如游戏子进程服务器104c)可作为用于交易游戏数据的单个授权方(即,其被授权修改游戏数据)而操作。在至少一个实施例中,构成游戏子进程服务器104的交易服务器可经配置以实施准聚合进程空间152作为一元进程空间,从而使参与者能够加入用于不同合成环境的游戏管理服务器,同时在准聚合进程空间152所提供的模仿共用进程空间内进行交易。

在操作中,客户端150a和150b产生致使参与者的表示(例如,化身)修改游戏管理进程120中的游戏数据的请求。如本文所使用,至少在一个实施例中,术语“游戏管理服务器”指代管理参与者与合成环境的互动的计算装置和/或进程。举例来说,游戏管理服务器可接受来自客户端150的输入,且作为响应,与游戏子进程102和数据库进程110合作以产生经修改的游戏数据(其表示基于客户端互动的经修改的合成环境),以供传回到客户端150a和150b。如本文所使用,至少在一个实施例中,术语“游戏子进程服务器”指代执行一游戏进程的子集的计算装置和/或进程(例如物理学服务器和人工智能服务器),其结果由游戏管理服务器使用。

如本文所使用,至少在一个实施例中,术语“节点”指代影响合成环境的产生的计算装置和/或进程,例如服务器、客户端、数据库等。如本文所使用,至少在一个实施例中,术语“游戏数据”指代与合成环境的产生有关的数据的至少一子集。游戏数据可包含用以(例如)产生合成环境的地形的地图数据。游戏数据还可包含参与者的状态,包含角色数据、库存数据(例如,武器数据)、银行数据、合成家庭数据、奖品数据等。如本文所使用,至少在一个实施例中,术语“合成环境”可指代作为既定供其参与者经由(例如)化身而居住和互动的基于计算机的模拟环境的虚拟世界(或其一部分)。合成环境也可指代碎片或永恒世界(或其一部分),永恒世界是在具有或不具有参与者互动的情况下均在进行的虚拟世界。如本文所使用,至少在一个实施例中,术语“参与者”指代玩家,或玩家的二维或三维图形表示(例如,化身)表示,或上述两者。参与者也可指代玩家与之互动的客户端。如本文所使用,至少在一个实施例中,术语“准聚合进程空间”指代为应用程序分配的且/或为供处理器(例如,一个或一个以上中央处理单元(“CPU”))执行指令而实施的存储器空间,藉此所述存储器空间经配置以起用于某些类型的数据的经聚合的共用进程空间的作用,且进一步经配置以起用于一种或一种以上其它类型数据的单独进程空间的作用。

请注意,根据其它实施例,游戏子进程服务器104和游戏子进程102可经配置以实施任何其它游戏相关进程,以便于(例如)大型多玩家在线游戏(“MMO”)。此外,一个或一个以上数据库112a到112c可经配置以存储(例如)用以尤其产生合成环境的数据。由此,一个或一个以上数据库112a到112c可存储与参与者账户、统计数据、审计数据、游戏数据等有关的账户数据。在特定实施例中,合成环境产生平台100经配置以经由链路140交换数据,链路140可通过(例如)若干网络(未图示)中的任一者(包含因特网)来传达通信信号。在一个实施例中,链路140经配置以便以至少从约5Kbs到约10Kbs或更高的速率来传输和/或接收数据。由此,链路140可尤其大体上同时支持5Kbs上游和5Kbs下游。在其它实施例中,链路140是相对较高带宽链路,其可(例如)使用数字订户线(“DSL”)技术、电缆技术、卫星技术等而实施为宽带连接。而且,链路140可为无线链路。在一个实施例中,高带宽链路140可以比10Kbs快的速率传输和/或接收数据,且由此,链路140可实施高于10Kbs的数据传送速率。此外,网络115经配置以便以每秒至少1到16千兆位或更快的速率输送消息和/或包。在一个实施例中,网络115是10千兆位以太网(“10GbE”)网络。

图1B是根据本发明至少一个实施例的整体或部分产生与进程空间相连的合成环境的游戏管理服务器的图解。合成环境产生平台160经配置以产生用于客户端150a和150b的合成环境162。在此实例中,合成环境162包含四个区:一区(“R1”)163、二区(“R2”)165、三区(“R3”)167、四区(“R4”)169。接下来,考虑参与者170和参与者172分别与客户端150a和150b相关联。合成环境产生平台160包含由游戏(“mgmt”)管理服务器122a到122d实施的游戏管理进程120。合成环境产生平台160还包含可用其产生合成环境162的准聚合进程空间161。

根据本发明的各种实施例,准聚合进程空间161经配置以在某些实例中作为共用进程空间而操作,且在其它实例期间作为单独进程的集合而操作。明确地说,准聚合进程空间161经配置以充当第一游戏数据子集的共用进程空间,且经配置以充当第二数据子集的单独进程空间。举例来说,交易服务器190经配置以实施准聚合进程空间161,作为(例如)非几何相关数据和交易相关数据的共用进程空间,而游戏管理服务器122经配置以实施准聚合进程空间161,作为(例如)几何相关数据的单独进程空间。在至少一个实施例中,合成环境产生平台160包含交易服务器190以整体或部分实施准聚合进程空间161。明确地说,交易服务器190具有共用进程空间,其用以处理参与者170c的第一数据子集192和参与者172的第一数据子集194两者。第一数据子集192和194的实例包含表示参与者希望进行贸易的物品的数据。举例来说,参与者170c和172的第二数据子集可与例如游戏管理服务器122b和122d处理的几何数据有关。

在操作中,当参与者170登入时,合成环境产生平台160将所述参与者指派给游戏管理服务器122b。作为对比,当参与者172登入时,合成环境产生平台160将参与者172指派给游戏管理服务器122d。参与者170和172在会话期间保持分别与游戏管理服务器122b和122d相关联。接下来,考虑两者均希望加入二区165处的活动,如同未图示的许多其它参与者所做的那样。参与者170a在一区163处进入合成环境162,且接着移动到二区165作为参与者170b。由于一区163和二区165两者均与准聚合进程空间161有关,因此当(例如)准聚合进程空间161被作为共用进程空间而接入时,不需要原本将需要的用来管理越分区互动的计算资源。参与者170c可进一步移动到三区167,且接着移动到四区169作为参与者170d。请注意,随着更多的参与者进入二区165,增加的数目并不会对应地使服务器停顿。这是因为根据本发明的各种实施例,产生合成环境162的游戏相关进程并未链接到地理位置。在此实例中,没有一个游戏管理服务器122承受全部负担,负担可作为整体分摊在游戏管理进程120上。因此,大量参与者可聚集在一个区处,而不会显著倾覆单个游戏管理服务器122的性能。

图2是展示根据本发明至少一个实施例的消息接发系统的实例的图。图2展示合成环境产生平台200,其实施消息接发系统250的至少一部分,所述消息接发系统250经配置以经由网络230将数据库进程201、服务器进程206和客户端进程240(全部为节点)耦合在一起。网络230可为计算机网络或任何其它类型的通信网络。数据库进程201包含数据库(“d/B”)202和数据库管理系统(“DBMS”)204,数据库管理系统204控制数据库202中的数据的组织、存储和检索。在操作中,消息接发系统250经配置以传播消息(例如,消息220a和220b),其包含通用数据结构260以将数据整合到例如服务器进程206的节点(或节点进程)中。明确地说,消息接发系统250经配置以便以可由所述进程中的每一者使用的数据布置在数据库进程201、服务器进程206和客户端进程240之间交换数据。在一个或一个以上实施例中,与消息220a和220b相关联的数据布置可直接由所述进程中的每一者使用。举例来说,服务器进程206可使用根据消息220a所使用的通用数据结构(“UDS”)260a而布置的数据。由此,数据库进程201、服务器进程206和客户端进程240无需要求从与消息220a和220b相关联的数据结构到特定节点原本可能要求的不同(或专用)形式的转换。因此,不存在原本可能需要的用来为此转换作准备的可执行代码。

如图2所示,消息接发系统250可包含若干通用消息接口,例如通用消息接口210a、通用消息接口210b和通用消息接口210c,其每一者可经配置以产生消息220a和220b,以供在整个合成环境产生平台中且以客户端进程240传输。通用消息接口210a、210b和210c每一者可经配置以接收消息220a和220b,以用于将其数据整合到节点进程中。此外,当开发通用数据结构260时,不需要重新编译可执行代码,原本将需要重新编译可执行代码以将一种类型的数据结构转换成不同的数据结构。如本文所使用,至少在一个实施例中,术语“通用数据结构”指代可由节点通用的数据的表示,以及消息220a和220b,其不需要转换成某一不同(或专用)数据结构。

在各种实施例中,图2的通用消息接口210a、210b和210c可相同或者可不同以适应其与之有关的节点。通用消息接口210a、210b和210c可在节点内部实施,或者通用消息接口210a、210b和210c可安置在合成环境产生平台内的任何地方。在至少一个实施例中,通用消息接口210a、210b和210c每一者可经配置以向任一或所有其它节点广播出消息,例如消息220a。由此,通用消息接口210a、210b和210c每一者可经配置以检测消息中的每一者是否既定用于通用消息接口与之有关的节点。在另一实施例中,通用消息接口210a、210b和210c每一者可经配置以传输以一目的地为目标的消息。在一个实施例中,客户端与合成环境产生平台之间的消息(例如消息220b)可以一个或一个以上用户数据报协议(“UDP”)或因特网协议(“IP”)包的形式实施。在一个实施例中,服务器进程206与数据库进程201之间的消息可以一个或一个以上传输控制协议(“TCP”)包的形式实施。在一个实施例中,网络230支持合成环境产生平台200的平台内通信。在至少一个实施例中,客户端进程240经由网络232耦合到合成环境产生平台200。在至少一个实施例中,网络232包含因特网或任何其它通信网络。在一些实例中,客户端进程240经由中间进程(未图示)与数据库进程201和/或服务器进程206交换消息。将此中间进程的实例展示为图12的用户服务器。

在一个实施例中,通用数据结构260是属于面向对象的编程语言的类别,例如C++或任何其它编程语言。在另一实施例中,所有类型的通用数据结构260可涉及单个类别。通用消息接口210a、210b和210c可确定经配置以使节点能够以通用数据结构260来实施(例如,直接实施)数据的实例管理纲要。在一个实施例中,节点可包含对指导节点如何实施通用数据结构260的纲要的参考。在另一实施例中,通用消息220a包含所述参考。在一些实施例中,通用消息接口210a、210b和210c每一者可经配置以用与平台无关的格式来格式化通用数据结构,所述格式可独立于处理器和/或操作系统而使用。与平台无关的格式的一个实例是由(例如)可扩展标记语言(例如XML)定义的格式。XML由万维网联盟(“W3C”)主张。

图3描绘根据本发明至少一个实施例的用于产生实施通用消息接发接口的合成环境的系统。在此实例中,合成环境产生平台300包含通用消息接口(“UMI”)302、304和306,其经配置以传输和/或接收基于通用数据结构的消息。如图所示,通用消息接口302a、302b和302c分别安置于游戏进程102a、102b和102c处或附近。通用消息接口302a、302b和302c中的每一者均与游戏子进程服务器104相关联。在一些情况下,通用消息接口302a、302b和302c每一者可具有等效的结构和/或功能性,且在其它情况下,通用消息接口302a、302b和302c可具有不同的结构和/或功能性。举例来说,物理学服务器可能需要与(例如)人工智能服务器不同的通用消息接口。图3还展示合成环境产生平台300包含分别安置于数据库112a、112b和112c处或附近的通用消息接口304a、304b和304c,以及分别安置于游戏管理服务器122a、122b、122c和122n处或附近的通用消息接口306a、306b、306c和306n。通用消息接口308a和308b相对于客户端150a和150b而实施。请注意,304a、304b、304c、306a、306b、306c、306n、308a和308b可相对于彼此具有等效或不同的结构和/或功能性。还请注意,图3的类似命名的元件在某些情况下可具有与图2中所陈述的那些元件等效的结构和/或功能性。

图4A描绘根据本发明至少一个实施例的用于将动态内容引入合成环境中的方法。图401描绘根据一个实施例使用合成环境产生平台开发(例如)大型多玩家在线(“MMO”)游戏。在代码开发和编译阶段431期间,游戏开发者可产生并编译源代码,以形成对象代码421作为可执行代码。在开发源代码中,可产生并编译套接字代码423。套接字代码423包含经配置以从插接物数据(plug data)425接入数据的可执行指令和/或输入。由此,作为质量保证(“QA”)过程的一部分,可与套接字代码423和对象代码421两者配合开发插接物数据425。在满足质量保证度量之后,可发布对象代码421(包含套接字代码423)和插接物数据425以用于在线游戏。在代码开发和编译阶段433之后,内容开发者可在后代码编译阶段433期间实施合成环境产生平台以创建其它插接物数据427。在阶段433期间,可创建插接物数据427以与套接字代码423一起使用,而无需修订对象代码421。举例来说,内容开发者可用作为插接物数据427的神盾巡洋舰(Aegis Cruiser)来代替由插接物数据425形成的皮艇(kayak),而不修改可执行代码。通过前面的对象代码的重新编译,开发者可更快速地将新的动态内容传递到合成环境实施套接字代码423中。此外,可创建未来插接物数据470而不影响对象代码,从而便于相对迅速的内容开发。如本文所使用,至少在一个实施例中,术语“动态内容”指代可作为计算机产生的视觉和/或声音内容引入合成环境中的内容数据,藉此可独立于内容数据与之互动的可执行代码的修改而创建内容数据。由此,可在不影响对象代码的情况下开发内容数据。

图4B描绘根据本发明至少一个实施例的经配置以将动态内容引入合成环境中的合成环境产生平台。在此实例中,系统400包含合成环境产生平台450,其经配置以产生参与者与之互动且动态内容422被引入其中的合成环境420。系统400包含数据存储库402、430和460。明确地说,数据存储库402经配置以存储插接物对象410a和410b,其包含用于分别引入皮艇和神盾巡洋舰作为动态内容422的内容数据。插接物对象410a和410b可实施与各种实施例的通用数据结构类似或相同的数据布置。插接物对象410a和410b还可包含表示位置、定位、速度和小船可沿着其航行的路径424的数据。数据存储库430经配置以存储用于运行(例如)大型多玩家在线游戏的对象代码434。数据存储库430还经配置以存储可形成对象代码434的一部分的套接字代码432。套接字代码423包含经配置以从(图4A的)插接物数据425接入数据的可执行指令和/或输入,以由对象代码434用于实现动态内容422的产生。数据存储库460经配置以存储世界数据462以形成合成环境420。世界数据462和套接字代码432可共享用于界定套接字代码423将引入动态内容422的位置的关系464。

合成环境产生平台450包含事件服务器452,其经配置以将动态内容422引入合成环境420的至少一部分中。可大体上与对象代码指令的执行一致地引入动态内容422以产生合成环境420。由此,合成环境产生平台450可经配置以初始化插接物插入进程440,在此期间,插接物对象410a和410b中的一者被插入套接字代码432中以例示动态内容422。在特定实施例中,事件服务器452经配置以在不修改对象代码434的情况下引入动态内容422。在一个实施例中,插接物对象410a和410b属于包含至少一个通用数据结构的通用对象系统。此外,插接物对象410a和410b以及通用对象系统免除了为引入动态内容422而重新编译对象代码指令434。通过实施插接物对象410和套接字代码432,至少一个游戏管理服务器可经配置以在不重新启动的情况下,例如在实施经修改的对象代码之后,产生动态内容422。

图5是根据本发明至少一个实施例的供产生合成环境时使用的进程空间的图解。这里,合成环境产生平台500经配置以产生用于客户端550a和550b的合成环境。合成环境产生平台500包含由游戏管理(“mgmt”)服务器522a到522n实施的游戏管理进程520。合成环境产生平台500还包含准聚合进程空间502,其中可将交易(例如交易504)实施为原子形式交易。由此,执行交易的所有部分或不执行其任何部分。为了说明,考虑以下实例,其中第一参与者(“参与者1”)506与客户端550a相关联,且第二参与者(“参与者2”)510与客户端550b相关联。第一参与者506和第二参与者510分别拥有物品(“物品A”)508和物品(“物品B”)512。接下来,考虑参与者506和510安排交换物品508和512,但仍须确认其意愿。一旦两个参与者506和510同意交换,则交易被最后定下来。在例如此情况的交易期间,准聚合进程空间502经配置以起共用进程空间的作用,从而使交易504较不容易受到操纵。在一个实施例中,交易服务器(未图示)操作以与准聚合进程空间502互动或提供准聚合进程空间502。根据一个实施例,准聚合进程空间502模仿共用进程空间,且由此,使参与者能够容易在由不同的合成环境产生平台500创建的不同合成环境之间转移。如本文所使用,至少在一个实施例中,术语“交易”指代构成涉及与合成环境互动的一个或一个以上参与者的活动的一组任务。

图6是展示根据本发明至少一个实施例的实施经压缩通用消息的消息接发系统的一部分的实例的图。这里,消息系统部分600包含服务器进程606和客户端进程650,其两者经由网络630而耦合以尤其用于交换消息。在此实例中,消息系统部分600可(例如)响应于指示对合成环境的修改的客户端进程650而输送与服务器侧(或客户端侧)通用数据结构660相关联的数据子集。服务器进程606和客户端进程650分别包含通用消息接口610a和通用消息接口610b。服务器进程606可使用根据通用数据结构(“UDS”)660而布置的数据,以响应于从客户端进程650传输的游戏数据修改而整体或部分地产生合成环境。经修改游戏数据的实例是由客户端进程650产生的指示化身的移动的游戏数据。在至少一个实施例中,服务器进程606和/或客户端进程650可交换消息,作为经压缩通用消息620。由于服务器进程606和客户端进程650两者均可实施用以交换数据的通用数据结构660,因此可在经压缩通用消息620中交换减少量的数据。明确地说,仅与通用数据结构622相关联的经修改游戏数据624需要在通用消息中输送。在一个实施例中,经压缩通用消息620还包含指定经修改游戏数据624与哪一属性有关的键628。使用此信息,服务器进程606可修改合成环境。

图7描绘根据本发明至少一个实施例的用于产生实施主缩放服务器的合成环境的系统。合成环境产生平台700包含进程间消息接发网络750和主缩放服务器752,其两者经配置以缩放游戏子进程能力,以满足用于游戏子进程(例如物理学进程和人工智能进程)的需求变化。合成环境产生平台700还包含各种游戏子进程702、数据库进程710以及游戏管理进程720。在操作中,主缩放服务器752经配置以在适当时添加或移除游戏子进程服务器。举例来说,如果需要更多物理学处理,那么主缩放服务器752可添加额外的物理学服务器。但如果需要较少的人工智能,那么主缩放服务器752可使人工智能服务器离线。

主缩放服务器752经配置以监视服务器列表,所述列表还包含关于服务器类型(例如,服务器是否为物理学服务器、人工智能服务器等)、游戏子进程服务器702所属的合成环境等的信息。主缩放服务器752还经配置以监视经由进程间消息接发网络750来自(例如)一个或一个以上需要额外服务或容量的游戏管理服务器的对额外游戏子进程的请求消息。作为响应,主缩放服务器752可协调新添加的游戏子进程服务器(例如游戏子进程服务器704a、704b和704c中的任一者)和发出请求的服务器(例如游戏管理服务器)之间的连接的建立。

在一个实施例中,可缩放游戏子进程服务器在联机时经配置以将其身份和其它相关信息传送到主缩放服务器752。其它相关信息可包含服务器类型、服务器所属的相关联的合成环境等。作为响应,主缩放服务器752将可缩放游戏子进程服务器动态地分配给(例如)需要此服务器类型的游戏管理服务器。明确地说,主缩放服务器752将命令和连接信息(例如,主机和端口信息)发送到可缩放游戏子进程服务器,以连接到发出请求的游戏管理服务器。在一些情况下,主缩放服务器752将连接信息(例如,主机和端口信息)传送到发出请求的游戏管理服务器,以接收来自可缩放游戏子进程服务器的连接。在至少一个实施例中,主缩放服务器752可经配置以监视游戏管理服务器的加载,且自动添加或移除游戏子进程服务器。在一个实施例中,进程间消息接发网络750与经由网络715实施的通用消息接发系统共生或相同。

图8是展示根据本发明至少一个实施例的添加可缩放游戏子进程服务器的主缩放服务器的实例的图。明确地说,图800描绘游戏子进程服务器804,其提供由游戏管理服务器(未图示)使用的游戏子进程802。还展示,主缩放服务器852正在添加可缩放物理学服务器810以提升物理学处理能力。在一个实施例中,可缩放物理学服务器810和游戏子进程服务器804每一者是同类硬件平台。使用同类硬件平台,主缩放服务器852可在必要时增加按比例放大和按比例缩小的灵活性。

图9是根据本发明至少一个实施例的实施特定类型的游戏子进程服务器的合成环境产生平台的图解。合成环境产生平台900包含游戏子进程901、经配置以存储游戏数据的游戏数据库910,以及游戏管理进程920,其包含游戏管理服务器922a到922n。在此实例中,游戏子进程901包含以下特定类型的游戏子进程服务器:物理学服务器902a、人工智能(“AI”)服务器902b以及交易服务器902c。通过在单独的服务器中实施这些游戏子进程,合成环境产生平台900较不容易经受与游戏子进程相关联的问题。此外,可适当缩放某些游戏子进程,以满足与其它游戏子进程需要无关的需求。

物理学服务器902a表示一个或一个以上经配置以处理针对合成环境的移动和碰撞检测活动的物理学服务器。在各种实施例中,物理学服务器902a还可执行以下各项中的任一者:能见度确定、实例化、移动批准和/或路径分段以用于人工智能NPC。在做出能见度确定时,物理学服务器902a计算合成世界中的对象和/或其它参与者对一参与者来说是否为可见。当一实体在参与者的能见度范围内时,所述实体对所述参与者来说是可见的,其中物理学服务器902a确定所述实体是否在能见度范围内。图11说明根据本发明实施例的用于确定能见度的替代技术。返回参看图9,物理学服务器902a还可经配置以提供“实例化”,藉此参与者的集合(以及相关联的物理学处理)在合成环境的一部分内执行活动,例如在虚拟房间中,或在所述参与者将组队在一起与NPC(例如首领怪物)战斗的区域中。

移动批准是批准参与者在合成环境的范围中的移动的动作。物理学服务器902a可经配置以批准相对于虚拟地形和位于所要移动的路径中的任何实体(即,其它角色和/或对象)的移动。基于参与者的化身相对于虚拟地形移动的速率,可修改参与者的位置以反映其在合成环境中的位置。物理学服务器902a可在将经修改的游戏数据发送到客户端之前,运行模拟以证实所述位置是正确的。物理学服务器902a还可经配置以批准参与者的移动,以确保参与者被许可加入某些活动或在合成环境的某些区域内移动。在一个实施例中,物理学服务器902a每单位时间批准参与者的子组,且随着时间的过去而循环通过不同的子组。对于未经授权在合成环境的某些区域附近或所述区域处移动的任何参与者,可将所述参与者标记为被怀疑正在执行开拓。此外,物理学服务器902a可将向人工智能(“AI”)服务器902b提供路径区段,使得NPC可避开其它由于地形和/或静态对象而阻挡NPC的移动的对象。在各种实施例中,可将上文所论述的物理学进程中的一者或一者以上实施为单独服务器中的单独进程。

人工智能(“AI”)服务器902b表示一个或一个以上人工智能服务器,其经配置以向计算机实施的非玩家角色(“NPC”)等提供人工智能以确定NPC的行为。可添加额外的人工智能服务器902b以在对人工智能的需求增加期间支持合成环境。举例来说,如果一事件要求大量的NPC,那么可添加额外的人工智能服务器902b。在一个实施例中,参与者可取得对NPC“扮演怪物”的控制权。

交易服务器902c表示一个或一个以上交易服务器,其经配置以尤其处理运行时参与者游戏数据,不管参与者的位置如何。由此,交易服务器902c包含高速缓冲存储器903,以便于角色(即,参与者)在(例如)永恒世界(即,合成环境)与实例(即,合成环境的一部分,例如虚拟建筑)之间的移动。使用高速缓冲存储器903避免了当参与者在合成环境与其部分之间移动时必须从数据库重新加载游戏数据。在一些实施例中,在除交易服务器902c以外的进程中,将游戏数据的表示标记为只读,以(例如)避免对交易的操纵。此外,交易服务器902c便于准聚合进程空间内的原子形式交易。在交易服务器902c执行交易的同时,游戏管理服务器922a到922n可经配置以批准参与者在交易服务器902c响应于交易而修改数据之前确认其身份。

图10是根据本发明至少一个实施例的展示物理学进程的实施的图。图1000展示能见度进程和实例化进程正从物理学服务器1002分别卸载到单独的能见度服务器1004和实例服务器1006中。能见度服务器1004经配置以确定合成世界中的对象和/或其它参与者对一参与者来说是否为可见的。实例服务器1006经配置以提供“实例化”,藉此参与者集合以及相关联的物理学处理用于在合成环境的一部分内执行群组或局部化活动。通过能见度进程和实例化进程与用于合成环境的物理学进程分离,物理学服务器1002的负担减小。此外,能见度服务器1004和实例服务器1006较不容易经受与物理学服务器1002有关的问题。

图11是展示根据本发明至少一个实施例的用于确定能见度的技术的图。图1100说明用于为参与者1104确定能见度的技术的实例。在一种情况下,能见度服务器首先定义用于界定参与者1104的能见度范围1102。由此,参与者可看见距离1106处的对象。在至少一个实施例中,对象、NPC和其它玩家每一者与一“可被看见”范围相关联。较大的对象(例如山脉1114)可具有比具有“可被看见”范围1122的较小对象(例如老鼠1124)大的“可被看见”范围1112。在一个实施例中,能见度服务器经配置以实施球面求交测试,其中当山脉1114的“可被看见”范围(例如“可被看见”范围1112)与能见度范围1102相交时,对象变为对参与者来说可见。可将“可被看见”范围表示为圆形(即,2-D)或球体(即,3-D)。请注意,在特定实施例中,参与者1104具有两个范围:(1)由球体1102界定的参与者能见度范围,以及(2)“可被看见”范围1160,如果实体或其能见度范围与“可被看见”范围1160相交,那么其它实体可在“可被看见”范围1160处看见参与者1104。接下来,考虑巨人1150具有距所述巨人距离1154的能见度范围1152,且具有距所述巨人距离1155的“可被看见”范围1153。此外,参与者1104具有距参与者1104距离1158的“可被看见”范围1160。因此当巨人1150接近参与者1104,且其能见度范围1152与“可被看见”范围1160相交时,那么巨人1150可看见参与者1104。但当能见度范围1152在能见度间隙1160内时,参与者无法看见巨人1154。请注意,一旦能见度范围1152与能见度范围1102相交,那么参与者1104就可看见巨人1150。鉴于上述内容,图1100说明用以确定能见度的技术的实例,其减少了当仅使用能见度范围来确定能见度时可能发生的不自然的视觉效应(例如,实体在越过能见度范围1102时看起来像是“突然出现”的)。虽然未图示,但老鼠1124也可具有能见度范围。在各种实施例中,非玩家角色(“NPC”)和参与者每一者可具有一能见度范围和一“可被看见”范围。

图12是根据本发明至少一个实施例的实施额外类型的游戏子进程服务器的合成环境产生平台的图解。合成环境产生平台1200包含游戏子进程1202、经配置以存储游戏数据的游戏数据库1212a、经配置以存储审计数据(即,每一参与者做出的所有或大多数互动的记录)和统计数据的审计数据库1212b,以及游戏管理进程1220,其包含游戏管理服务器1222a到1222n。另外,合成环境产生平台1200包含用户服务器1270、补丁程序服务器1272以及状态/审计服务器1274。

用户服务器1270可经配置以在游戏管理服务器1222a到1222n中的任一者与客户端1250之间路由消息。然而,一旦参与者登入以与合成环境互动,用户服务器1270就将参与者及其客户端1250指派给游戏管理服务器1222a到1222n中的一者。其后,用户服务器1270可将消息中继到游戏管理服务器1222中的一者和所述参与者且中继来自其的消息。在会话期间,参与者可与同一游戏管理服务器保持关系。用户服务器1270还可经配置以便以使客户端连接均匀分布在游戏管理服务器1222a到1222n上的方式连接客户端1250,从而实现负载平衡。在一些情况下,用户服务器1270还可经配置以在参与者注册后验证参与者。在至少一个实例中,用户服务器1270可选择性地对在游戏管理服务器1222a到1222n与客户端1250之间交换的数据进行加密。在一个实施例中,用户服务器1270先行加密移动相关消息,移动相关消息是量上占优势的消息。由此,与加密相关联的延迟减少。补丁程序服务器1272可经配置以(例如)在逐文件基础上将补丁程序以递增方式传输到客户端1250。在至少一个实施例中,补丁程序服务器1272经配置以在适宜的时间(例如在登入时)以及在玩游戏期间(即,在参与者与合成环境的互动期间)使补丁程序慢慢地移动。状态/审计服务器1274经配置以收集和使用对参与者使用且/或对结合事件服务器的触发事件的统计资料。

图13是展示根据本发明至少一个实施例的用于允许在打补丁期间玩游戏的技术的图。图1300说明作为新的“世界”、“大陆”或合成环境而添加的区。合成环境扩张的进展由箭头1330展示。考虑区(“1”)1302是用原先下载的游戏来实施的。接下来,考虑区(“2”)1312表示参与者为其下载补丁程序的经扩张的合成环境。最后,考虑参与者仍必须为区(“3”)1322实施下一补丁程序,但希望从区1302进入区1322。在参与者从区1302行进到区1312时,参与者将观察到树1304和树1314。但在参与者越过轮廓1316时,参与者将在仍待完成的局部中。由此,如果用以渲染树的打补丁数据仍待完成,那么合成环境产生平台将显示代理资产(即,替代对象)1324。由此,参与者无需被禁止进入新的区1322,而是可体验填入对象,直到打补丁进程完成为止。

图14是根据本发明至少一个实施例的实施事件服务器和事件编辑器的合成环境产生平台的图解。合成环境产生平台1400包含游戏子进程1401、经配置以存储游戏数据的游戏数据库1410,以及游戏管理进程1420,其包含游戏管理服务器1422a到1422n。合成环境产生平台1400还包含事件服务器1430和事件编辑器1480。事件服务器1430经配置以依据(例如)玩家活动(例如触发预定的触发物或条件,和/或预定的调度)来控制动态内容向合成环境中的引入。举例来说,如果聚集在特定位置的参与者的数目超过触发点,那么事件服务器1430可触发动态内容的引入。在一些实施例中,事件服务器1430可修改大量生产的船或创造物的类型。事件服务器1430经配置以从事件库数据库1412接入插接物对象以产生动态内容。在一个实施例中,事件服务器1430经配置以产生用以驱动事件服务器指南1490的数据,事件服务器指南1490显示经编程的事件以供参与者预览和加入那些事件。事件编辑器1480经配置以聚合与若干套接字相关联的插接物对象,以引入变化量的动态内容,藉此插接物对象的集合可将创造物、树、结构等引入合成环境中。

图15描绘根据本发明至少一个实施例的用于创建用于引入各种程度的动态内容的事件的流程。流程1500是使用插接物对象来创建事件的方法的实例,所述插接物对象包含存储在事件库中的通用数据结构。在1502处,界定事件且指示要求。在1504处,游戏设计者通过(例如)使用预制插接物对象来创建新事件,直到在1506处建立新事件为止。在1508处,测试所述事件以确认新事件满足质量保证(“QA”)规范。如果事件在1510处失败,那么流程1500返回1502以重新界定或校正事件定义和/或实施。如果事件成功,那么在1512处将其存储在事件库中。在1522处,调度所述事件以用于引入合成环境中。在1524处,事件服务器1526经配置以在预定时间触发事件。在预定的时间,事件服务器1526从事件库1512获取与事件有关的数据,且致使合成环境产生平台1528实施所述事件(例如,通过产生动态内容)。接着,在1530处将动态内容释放到客户端以在计算机产生的世界中使用。

在一个实施例中,流程1500为借助于补丁程序服务器进程(如在补丁程序服务器1580中实施)将动态内容引入合成环境中作准备。在此实例中,补丁程序服务器1580经配置以检测何时在1512处将表示事件的数据存放到事件库中。此外,补丁程序服务器1580经配置以将事件所需的数据作为小文件或数据片1582向下推动或“慢慢地向下移动”到客户端。因此,补丁程序服务器1580可在非高峰使用时间推送数据,且可避免超过所分派的带宽容量,超过所分派的带宽容量的情况在高峰使用期期间发生较大下载(例如250MB)时原本可能发生,其代价较高。在另一实施例中,补丁程序服务器1580确定待推送的数据量和到达所述事件的剩余时间,且因此计算每单位时间需要推送的平均量数据。由此,补丁程序服务器1580可改变小文件1582中的数据量以实现最佳输送。在特定实施例中,补丁程序服务器1580可经配置以接入数据库1584中的高峰阈值监视数据,以确定何时改变小文件1582的大小,以便避免在高峰使用时间推送大量的数据。

图16是展示根据本发明至少一个实施例的通用数据结构的特定实施方案的图。将通用数据结构1602展示为由识别符1604识别的特性类对象(即,“特性类xxxxxx”)。特性类对象包含包括属性1606的数据布置,所述属性中的每一者可对应于特性类xxxxxx的特性,例如下文相对于图16的通用数据结构规范文件1622所描述。此外,属性1606可对应于特性值(例如,字符串、整数等),例如相对于图17的通用数据结构1702所描述。在各种实施例中,通用数据结构1602可包含嵌套通用数据结构(或对其的参考)。为了说明,考虑特性类xxxxxx可界定船的特性,例如图20中所描述。通用数据结构1602于是可包含界定所述船拥有的“定位”特性的嵌套通用数据结构。

图16还展示包含根据本发明至少一个实施例的通用数据结构规范文件的实例的图。通用数据结构规范文件1622提供实例管理纲要,其使用合成环境产生平台中的节点来接入通用数据结构中所包含的数据。通用数据结构规范文件1622可包含用于每一特性类对象的元数据,其可经配置以为所指派的属性提供对应的特性值。在一些实施例中,特性类对象或PropertyClass对象(下文为“特性类对象”)可为具有用于确定如何在合成环境内渲染、产生或例示各种类型的对象、信息和其它参数的数据或信息的对象。此外,特性类对象可经配置以提供减少的消息数据,所述消息数据在与(例如)高速或大容量网络连接一起使用时实现迅速或快速玩游戏、合成环境产生等。举例来说,特性类对象可包含用于例示一对象的所有或一部分数据。合成环境产生平台(或其中的节点)可实施元数据以用于创建、显示和/或实施游戏数据值。此外,通用数据结构规范文件1622可由识别符1624(即,“特性类规范yyyyy”)参考,且可包含对在(例如)位置“instance.mgmt.schema”处的实例管理纲要的参考1626。在一些实施例中,实例管理纲要是描述使用节点来接入特性类对象中的数据的数据模型。此外,通用数据结构规范文件1622可包含用于特性类对象1630的特性值(或对其的参考)。

图17是根据本发明至少一个实施例的描绘特性类系统的要素的图。在一些实施例中,特性类1704可实施为通用数据结构1702,且可具有一个或一个以上特性(“Property”)1706。这里,特性类1704被配置为指向对应特性值的特定特性指针的容器。此外,所述一个或一个以上特性1706可包含特性值,例如字符串(“PropertyString”)1708a、整数(“Propertylnt”)1708b、大整数(“PropertyBiglnt”)1708c等等。

将通用数据结构规范文件1722展示为包含特性类规范1724。由此,常见类型的特性类1704的实例可涉及特性类规范1724。举例来说,名为“玩家”的特性类1704可具有(例如)与特性类规范1724的关系,所述特性类规范1724指定特性以及特性值。此外,特性类规范1724可包含指向一个或一个以上特性规范(“PropertySpec”)1726的指针的向量,所述特性规范1726中的每一者可含有与特性1706相关联的元数据。特性类管理器(“PropertyClassManager”)1742可包含用于将特性类名称和特性类规范确定为键与值对的映射表(例如,查找表)。在运行时或执行期间,合成环境产生平台(或其中的节点)可使用特性类管理器1742来管理数据结构的实施和来自特性类系统的游戏数据。

图18描绘根据本发明至少一个实施例的用于创建通用消息的流程。流程1800展示通用数据结构编辑器1802经配置以编辑或创建一个或一个以上特性类对象文件,例如基于XML的对象数据文件1803。通用数据结构编辑器1802可为(例如)提供上下文友好接口要素的编辑器,所述要素例如是下拉菜单和基于相关联特性类规范的数据范围批准。此外,通用数据结构编辑器1802使用XML读取器1806和XML写入器1805使到达和来自来源的数据串行化,所述来源可为基于XML的对象数据文件1803中的一者或一者以上。在各种实施例中,通用数据结构编辑器1802可经配置以编辑根据可扩展标记语言(即,XML)、超文本标记语言(即,HTML)和任何其它标记或格式化语言而格式化的数据。在一些实例中,通用数据结构编辑器1802可由基于XML的编辑器1807代替,因为特性类表示呈符合XML的格式。基于XML的编辑器1807可为若干市售工具中的任一者,例如马萨诸塞州贝弗利市的奥托瓦公司(Altova,Inc.)生产的XMLSpy。

可使用特性系统的串行化或XML读取器1806设施将特性类数据文件1803带入运行时环境中。此从文件1803获得基于XML的特性类数据,且创建“存储器内”C++特性类对象表示1809。可使用XML写入器1805设施将任何修改反映回到原始来源。

为便于数据的串行化和扰乱的速度对比XML表示,可使用二进制读取器1808和二进制写入器1801机制使特性类对象1809串行化为基于磁盘的二进制格式1810。这使开发者能够使用常规工具来编辑人可读的格式(即,XML),且在执行和扰乱的速度较重要时将XML转换成二进制格式。

如果C++对象1809的任何实例需要经由网络而传输,那么将所述特性类对象“打包”或“包化”以用于在发射器1850中输送。1811处的包化进程将使用二进制写入器1801的服务来创建包,且将在1812处经由链路1842传输所述包。同时接收器1852接收所述包,且将使用二进制读取器1801的服务来将数据拆包成存储器内C++特性类对象表示1809的实例。请注意,根据本发明的各种实施例,发射器1850或接收器1852或两者可在通用消息接口中实施。

图19说明根据本发明至少一个实施例的用于创建通用消息的特性类系统的要素。图1900描绘通用消息创建进程1940,其使用以下特性类系统要素:特性类对象,例如特性类对象1902、1904和1906;特性类声明1910;特性类管理器1920;以及特性类规范文件1930。出于说明目的,考虑通用消息创建进程1940经配置以产生关于角色数据的通用消息。由此,通用消息创建进程1940使用特性类对象(“玩家”)1906,其包含嵌套特性类对象1902和1904。嵌套特性类对象(“咒符”)1902包含表示(例如)玩家拥有的咒符的类型和强度的数据的数据布置。嵌套特性类对象(“武器”)1904包含表示(例如)玩家拥有的武器的种类的数据的数据布置。

在至少一个实施例中,特性类声明1910经配置以提供用于列出或组合可由特性系统用来例示特性类对象的信息和数据的空间。举例来说,特性类声明1910可包含特性类识别符(“ID”)、规范文件(例如,规范文件1722(图17))名称、用于每一列出以帮助对特性类对象进行分组的类别标签等等的列表。此外,特性类声明1910可描述文件名、特性类对象名以及用于创建通用消息的其它资源(或信息来源)。特性类管理器1920可包含逻辑和物理资源与数据的映射表以管理特性类对象1902、1904和1906的数据结构和其中的游戏数据的实施。特性类规范文件1930可包含特性值或对特性值的参考。

合成环境产生平台和/或其节点可实施通用消息创建进程1940和上文所述的特性类系统要素以形成通用消息(或通用数据结构),其尤其可由例如图1和3中所示合成环境产生平台的合成环境产生平台的节点使用。当一节点(例如,服务器、客户端、同等装置(peer)或其它处理器)起始通用消息创建进程1940时,可将通用数据结构实施为通用消息的一部分。接下来考虑进程1950接收所实施的通用消息。由此,进程1950可使用直接来自消息的数据1952而无需对其源代码进行编译。

图20说明根据本发明至少一个实施例的用于创建插接物的特性类系统的要素。图2000描绘插接物创建进程2040,其使用以下特性类系统要素:特性类对象2002到2006、特性类声明2010、特性类管理器2020以及特性类规范文件2030。出于说明目的,考虑插接物创建进程2040经配置以产生插接物以用于渲染船(例如,货船、邮轮、战舰(例如,提康德罗加级(Ticonderoga-class)、神盾导弹巡洋舰)、巡航班轮、远洋班轮等)的图像或游戏要素作为进入合成环境的动态内容。由此,插接物创建进程2040使用插接物特性类对象(“船”)2006,其包含嵌套插接物特性类对象2002、2004和2005。嵌套特性类对象(“定位”)2002包含表示(例如)船将拥有的定位和相对运动的数据的数据布置。嵌套特性类对象(“速度”)2004包含表示(例如)船在蒸气作用下前进(即,移动)的速度的数据的数据布置。嵌套特性类对象(“作为船出现”)2005包含描述(例如)看起来像所要船形状的船的出现的数据的数据布置。在至少一个实施例中,特性类声明2010、特性类管理器2020和特性类规范文件2030可具有如图19中所述的类似功能和/或结构。在一些实施例中,插接物可尤其指代指定(例如)数据、资产、程序性动作列表和条件性触发物的表示。数据表示的实例是特性类对象2004,其包含指定船的速度的数据。资产表示的实例是插接物特性类对象2006,其包含将船指定为资产的数据。程序性动作列表的表示的实例包含指定插接物对象应执行的动作的数据。举例来说,程序性动作列表数据可指定船将:(1)转向港口,(2)继续航行,以及(3)停靠在码头。条件性触发物表示的实例包含指定一旦条件性触发物在事件Y时激发X就应发生的数据。举例来说,条件性触发物数据可指定一旦船到达码头,船就应炸毁。

合成环境产生平台和/或其节点可实施插接物创建进程2040和上文所述的特性类系统要素以形成插接物数据2052。接下来考虑进程2050是插接物数据2052的接收者。明确地说,插接物数据2052包含一个或一个以上可向进程2050的套接字代码2054提供游戏数据的通用数据结构。由此,进程2050可使用插接物数据2052来将动态内容引入合成环境,而无需进一步或额外编译进程2050或套接字代码2054的源代码。在一个实施例中,可将插接物数据2052作为船插接物数据2061存储在数据库(“d/B”)2060中。用户可使用事件编辑器2064来与事件服务器2062合作以创建船插接物数据2061。此外,用户可使用事件编辑器2064来调度船插接物数据2061被插接到套接字代码2054中的日期和时间,以用于(例如)在预定的时间产生动态内容。在一些实施例中,事件编辑器2064可为建置在XML编辑器或特性类编辑器顶部上的应用程序。

图21是展示根据本发明至少一个实施例的实施经压缩通用消息的消息接发系统的一部分的图。这里,消息系统部分2100包含服务器进程2106和客户端进程2150,其两者经由网络2130耦合以尤其用于交换消息。在此实施例中,消息系统部分2100可输送消息作为通用数据结构,所述消息包含与服务器侧(或客户端侧)特性类对象(“<pco>”)2160相关联的数据子集。此消息的实例是来自客户端进程2150的指示对合成环境的修改的响应。服务器进程2106和客户端进程2150分别包含通用消息接口2110a和通用消息接口2110b。服务器进程2106可使用根据特性类对象2160布置的数据,以响应于从客户端进程2150传输的游戏数据修改而整体或部分地产生合成环境。经修改游戏数据的实例是由客户端进程2150产生以致使化身在合成环境中移动的数据。在至少一个实施例中,服务器进程2106和/或客户端进程2150可交换作为经压缩的通用消息2120的消息。由于服务器进程2106和客户端进程2150两者均可实施用以交换数据的特性类对象2160,因此可在经压缩的通用消息2120中交换减少量的数据。在一些实施例中,与特性类对象2122相关联的经修改游戏数据2124可在通用消息中输送。举例来说,考虑经修改的游戏数据2124指定某一特性的经修改值,其可由索引来识别。由此,经压缩的通用消息2120可包含索引2128以识别经修改游戏数据2124的相关属性。使用此信息,服务器进程2106可经配置或实施以修改合成环境。

图22是根据本发明至少一个实施例的实施用以与合成环境产生平台互动的通用消息接发接口的多个装置的图解。合成环境产生平台2800包含游戏子进程2282、数据库进程2284,以及游戏管理进程2286,游戏管理进程2286包含游戏管理服务器2288a到2288n。如图所示,实施通用消息接发接口(“UMI”)2292的多种客户端2290可经由网络2289与合成环境产生平台2200互动,网络2289例如是因特网。在此实例中,尤其机顶盒2290a、移动装置2290b、计算装置2290c、游戏控制台2290d、卫星接收器(“RX”)2290e、手机2290g、个人数字助理(“PDA”)2290h以及电视机2290i可经配置以实施如本文所述的通用消息接发接口(“UMI”)2292。在至少一个实施例中,包含逻辑(例如,处理器和存储器)的任何装置2290f可实施各种实施例的通用数据结构和/或特性类以参与合成环境。

在各种实施例中,特性类系统及其实例可实施为C++特性类对象,或其它编程语言中的任何其它特性类。此外,虽然上文的论述在在线游戏的上下文中描述各种特征,但本发明的实施例不限于在线游戏。相反,本文所描述的特征和技术可出于训练目的、教育目的、社会目的等而应用于合成环境。还请注意,虽然上文的论述是在客户端-服务器架构中的分布式服务器的上下文中,但各种实施例并非如此局限。举例来说,可将一个或一个以上节点进程聚合成单个进程。此外,任何网络架构和拓扑可与本发明的实施例一起实施。举例来说,合成环境产生平台可实施对等网络等。

在本发明实施例的至少一些实施例中,上述特征中的任一者的结构和/或功能可以软件、硬件、固件、电路或其组合实施。请注意,上文的结构和组成元件以及其功能性可与一个或一个以上其它结构或元件聚合。或者,可将元件及其功能性细分成组成子元件(如果存在的话)。作为软件,可使用各种类型的编程或格式化语言、框架、语法、应用程序、协议、对象或技术(包含C、对象C、C++、C#、FlexTM、JavaTM、JavascriptTM、AJAX、COBOL、Fortran、ADA,、XML、HTML、DHTML、XHTML、HTTP、XMPP等)来实施上文所描述的技术。这些是可改变的且不限于所提供的实例或描述。

出于阐释的目的,上述描述使用特定命名法来提供对本发明的详尽理解。然而所属领域的技术人员将明白,为实践本发明,无需特定细节。事实上,此描述内容不应被解读为将本发明的任何特征或方面限于任何实施例;相反一个实施例的特征和方面可容易与其它实施例互换。

因此,出于说明和描述的目的而呈现对本发明的特定实施例的上述描述。不希望所述描述是详尽的或将本发明限于所揭示的精确形式;鉴于上文的教示,许多替代方案、修改、等效物和变化是可能的。出于清楚的目的,没有详细描述与实施例有关的技术领域中已知的技术材料,以避免不必要地混淆描述内容。因此,在所附权利要求书的范围和等效物内,可修改各种实施例。此外,选择和描述所述实施例是为了最佳地阐释本发明的原理及其实践应用;它们因此使所属领域的其它技术人员能够以适于预期特定用途的各种修改来最好地利用本发明和各种实施例。应注意,并不需要通过本发明的每一实施例来实现本文所描述的每个益处;而是任一特定实施例均可提供上文所论述的优点中的一者或一者以上。在权利要求书中,元件和/或操作并不暗示任何特定的操作次序,除非在权利要求书中明确陈述。希望所附权利要求书及其等效物界定本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号