首页> 中国专利> 视频游戏开发系统的通信集线器

视频游戏开发系统的通信集线器

摘要

一种用于增强开发工具与视频游戏平台或运行的游戏之间的通信的视频游戏开发系统。该系统包括通信集线器模块,其在计算机或服务器上运行,并且与第一和第二视频游戏平台通信地链接,以允许通信集线器模块向游戏平台转发消息以及从游戏平台接收消息。通信集线器模块可访问的存储器存储用于控制与游戏平台的通信的通信数据集或库。在该系统中提供了一种视频游戏开发工具,该视频游戏开发工具与通信集线器模块通信地链接。该开发工具传送基于用于定义与集线器模块的通信的客户端侧的通信库而格式化的消息。集线器模块接收传送的消息,基于平台通信库从接收到的消息产生游戏平台消息,并且将游戏平台消息转发至第一和第二视频游戏平台。

著录项

  • 公开/公告号CN101917392A

    专利类型发明专利

  • 公开/公告日2010-12-15

    原文格式PDF

  • 申请/专利权人 迪斯尼实业公司;

    申请/专利号CN200911000267.6

  • 申请日2009-12-04

  • 分类号H04L29/06(20060101);G06F9/44(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 01:26:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-30

    授权

    授权

  • 2012-01-11

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20091204

    实质审查的生效

  • 2010-12-15

    公开

    公开

说明书

相关申请的交叉引用

本申请与同时待审的、与本申请一同提交的美国专利申请第12/349,601号,题为“Live Authoring Method for Real Time Development of Video Games(视频游戏的实时开发的实况编辑方法)”,与本申请一同提交的、美国专利申请第12/349,633号,题为“Collaborative Authoring Method for Video GameDevelopment(视频游戏开发的协作编辑方法)”,以及与本申请一同提交的、美国专利申请第12/349,622号、题为“Real-Time,Video Game Playtesting(实时视频游戏的游戏测试)”的专利申请相关联,通过引用将这些专利申请全部合并于此。

技术领域

本发明一般地涉及视频游戏开发以及开发工具和视频游戏平台之间的通信,更具体地,涉及用于使诸如视频游戏开发工具和多个视频游戏平台之间的视频游戏开发系统或网络内的数据传输及通信便利和简化的系统和方法。

背景技术

视频游戏市场已由小的细分(niche)市场演变成数十亿美元的市场。对新的视频游戏的需求正随着游戏玩家的规模和人口(demographics)的持续扩张而在快速增长。同时,曾经将视频游戏制作成仅用于一个或两个游戏平台,但是现在存在对可以在众多平台上销售视频游戏的需求,所述平台包括独立的游戏控制台、计算机、手持便携式游戏设备以及其他电子设备,诸如手机、数字音乐播放器和个人数字助理(PDA)。结果,为了以及时和有效的方式来创建满足增长的需求的视频游戏,以及通常地为了使这些游戏能够如所期望地在不同的平台或设备上运行,在游戏开发者之间存在激烈的竞争。

典型地由大的开发团队历经1至3年并耗费数百万美元的开发过程来创建大型的商业化的视频游戏。典型的开发团队可能包括监督生产的制作人,游戏设计者,美术师,程序员,关卡(level)设计师,音响工程师及测试人员,其中一些团队成员身兼数职。开发团队以协作的方式工作,来创建游戏内容(或游戏素材(asset))和游戏代码,它们合起来可以被视为可以由游戏引擎在特定的游戏平台之上运行以便给玩家提供游戏的游戏应用程序。

例如,程序员可以编写新的源代码,美术师可以开发诸如人物(character)和场景对象、着色方案(color scheme)、纹理(texture)、游戏元素的3D模型等等之类的游戏素材,音响工程师可以开发音响效果和音乐,撰写者可以创作人物对话,并且关卡设计师可以创作高级的吸引眼球的关卡。为了支持这些团队成员,众多的游戏开发工具,例如微软XNA,Autodesk公司的Maya等,现在可用于设计和创建游戏内容,包括创建和建模人物,甚至用于定义游戏逻辑(例如,人物能跳多高,基于游戏事件人物能获得或丧失多少生命值,人物或游戏元素移动得多快,等等)。然而,典型地必须购买完整的引擎,这使得大多数的游戏开发者尝试建立他们自己的工具。另外,每个视频游戏控制台或平台开发者典型地将制作游戏开发者可用的软件开发工具包(或SDK或开发包),并且每个SDK可能包括对创建新视频游戏有用的应用程序或工具。每个SDK可能还包括通信库和/或接口(例如平台通信数据),以便利与游戏平台的通信(例如在当前开发下运行游戏的平台,或运行建立好的游戏来测试或供开发者使用以观看新的人物、素材、游戏参数等在该游戏中如何工作的平台)。

当前,在视频游戏产业中使用的开发工具彼此之间很少进行通信,如果这些工具彼此之间进行通信,则它们典型使用一对一的连接进行通信和运行。具体地,利用在开发者工作站上的运行的工具和特定视频游戏平台之间的连接,该工具与在该特定的视频游戏平台上运行的游戏进行通信。例如,开发工具可以在工作站上创建平台客户端,以提供与该运行的游戏的接口,并且可能需要该工具来管理用于支持这些通信的通信套接字(socket)。每个游戏平台典型地利用不同(或至少存在一些不同之处)的接口和通信协议,并且需要每个开发工具了解如何与可能与该工具一起被使用的每个游戏平台进行通信。目前,游戏开发者可能工作于需要运行于不止一个的游戏平台上的视频游戏,并且,因为期望(或要求)对于游戏平台中的每一个平台同时发布游戏,所以通常沿着并行路径进行对于每个平台的开发。

因此,仍然存在对支持视频游戏开发期间的通信的改进的方法和系统的需求。优选地,这样的方法和系统将支持并且简化视频游戏开发工具和不同的视频游戏平台之间的通信。

视频游戏产业面临的另一问题是如何支持在新的视频游戏上工作的开发团队成员之间的协作的努力(effort)。典型地,由于游戏内容(例如游戏数据和/或游戏素材)庞大且复杂的特性,同一时间只有一名美术师、设计者、或其他开发团队成员可以在游戏的任一给定的部分上工作。例如,正工作于给定游戏关卡的纹理或材料上的美术师可能将迫使想要调节或调整(tweak)该关卡中的一些游戏对象或元素的布置或该关卡中的定位/位置的设计者等待,直到美术师完成了他们的工作或至少保存了允许对该游戏的重建的新的游戏数据为止。这种串行开发努力通常延长了创建新视频游戏的时间表,并且业内有将视频游戏的开发时间从许多个月缩短为少数几个月时间的需求(例如为了响应客户对与新电影或潮流相关联的游戏的需求)。

因此,仍然存在对用于由两个或更多的开发者或编辑者协作编辑视频游戏的改进的方法的需求。优选地,这样的方法和系统支持现有的(以及将要开发的)视频游戏开发工具的使用,并且将减少开发者创建新游戏素材和对以前建立的视频游戏进行更改所花费的时间量。

游戏测试通常用来确定视频游戏是否为投入市场做好准备,包括找出错误或问题以及调节逻辑和游戏参数/设置以使得该游戏玩起来更令人愉快。可以一旦存在准备好被玩的部分就开始测试,但是通常在开发过程的晚些时候开始测试,以使得测试者有相当数量的要玩的游戏。游戏测试通常涉及人员或测试者在一个或更多的目标平台上玩视频游戏。在典型的封闭的或内部的游戏测试中,选择并要求一组测试者玩通视频游戏的预定部分。在游戏结束时,通过问卷调查和访谈或与包括在设计被测试部分上工作的开发团队成员在内的开发团队成员进行沟通的方式,来捕捉或记载(document)测试者的游戏经历。在一些情况下,使用视频记录来记载测试者的游戏经历。同时,一些游戏测试实验室包括了捕捉来自每个游戏者的会话(session)的游戏信息或统计数据的记录设施(facility),并且存储这些信息供开发团队做稍后的或离线的评估。因此,游戏测试通常是捕捉游戏的被测试部分的游戏测试结果的快照(snapshot)的静态的过程。稍后分析游戏测试结果并将其用于实现对视频游戏的更改,但是,为测试这些改变,将召集另一组游戏测试人员以进行对该更改过的视频游戏的另一测试。

因此,仍然存在对用于视频游戏的游戏测试的改进的方法的需求。优选地,这样的方法和系统支持现有的(以及将要开发的)视频游戏开发工具的使用,并且将降低开发者创建新的游戏素材和对以前建立的视频游戏进行更改所花费的时间量。更进一步,发明人认识到在游戏测试期间测试者之间的最大的差别之一在于他们的视频游戏技巧,因此,发明人相信期望提供一种游戏测试的方法和系统,在该方法和系统中在进行游戏的更改之后使用相同的测试者来玩该视频游戏或该游戏的一部分,使得技巧的差别不会使游戏测试结果发生偏差(skew)(例如,一组游戏测试者可能具有较高的平均技巧水平,这鼓励开发者使游戏(或特定的移动/任务/功能/操作)更难,但是稍后的第二组游戏测试者可能具有较低的平均技巧水平,这意味着该更改后的游戏不那么有趣了,因为它太难了(反之亦然))。

发明内容

本发明通过提供使视频游戏开发工具和视频游戏平台(或运行于这种平台上的游戏)之间的通信便利和简化的方法和系统来处理上述问题。提供一种用于提取视频游戏平台的知识以及其他视频游戏开发工具的存在的中央集线器(hub)通信应用程序。视频游戏开发工具可以在不需要预期的接收者以及他们的通信规则或协议的具体知识情况下与任何游戏平台以及在彼此之间进行通信。为此,中央集线器通信应用程序或模块具有访问如何与视频游戏开发系统或网络中的每个视频游戏平台连接和通信的数据或知识的能力(例如,具有访问可以被视作通信数据集或库的平台通信库(诸如那些与游戏平台SDK等一同提供的平台通信库)的能力)。相反,视频游戏开发工具仅仅具有允许该工具和通信集线器应用程序进行通信的客户端侧的通信库(例如,访问开发工作站或计算机的存储器中的这种库的能力或作为内置于该工具中的库)。集线器应用程序接收工具发送的消息,必要时基于视频游戏平台通信数据集来处理这些消息,并将这些消息转发至合适的接收者/客户端(例如,运行于一个或更多的平台上的视频游戏、至另一开发工具或其他的感兴趣的客户端)。

更具体地,提供一种视频游戏开发工具,其用于使得与第一视频游戏平台和第二视频游戏平台(例如,由两个或更多的公司发布的两个或更多的平台)的通信、与提供用于定义消息的两个不同的通信库的游戏平台的通信、以及与该平台或在这种平台上运行的游戏的通信便利。该系统包括诸如集线器或通信服务器上的、运行在系统中的通信集线器模块,并且该集线器服务器与第一和第二视频游戏平台通信地链接,以允许该通信集线器模块向游戏平台转发消息以及从游戏平台接收消息。该系统还包括可以被通信集线器模块访问的存储器或数据存储装置,其存储第一和第二通信数据集(例如,第一和第二代码库或可以被链接至该系统的不同的代码库)。在诸如开发者工作站或其他的计算或电子设备之类的计算机系统上运行的系统中提供一种视频游戏开发工具。该开发工具与通信集线器模块通信地链接,并且在这方面,开发工具发送基于客户端侧的通信库而被配置或格式化的消息,所述通信库提供诸如用于与通信集线器模块进行通信的通信协议之类的信息。在操作中,通信集线器模块接收从开发工具发送的消息,基于合适的第一和第二通信数据集从接收到的消息产生游戏平台消息,然后将该游戏平台消息转发给第一和第二视频游戏平台中的至少一个。

来自视频游戏开发工具的消息通常将包括用于在第一和第二视频游戏平台这两者上运行的视频游戏的游戏数据,并且在这些情况下,将游戏平台消息从集线器模块转发给这两个游戏平台。该集线器模块可以处理来自工具的每个消息,以确定或标识由它创建的每个游戏平台消息的接收者列表。该接收者列表可以基于在工具消息中提供的一组地址,或者可以基于消息内容(例如,至对特定的游戏数据感兴趣接收者,所述特定的游戏数据诸如特定的逻辑、游戏素材、游戏参数/变量值等)。在许多情况下,游戏开发系统将包括与集线器模块链接的附加的游戏开发工具,并且当在该组地址中标识出这些工具时,或当由通信集线器模块基于消息内容将其置于接收者列表中时(例如,当某些游戏数据被另一工具更改时,另一工具可能感兴趣),这些工具可以从第一或原始游戏工具处接收消息。以此方式,经由集线器模块在开发系统中使工具至工具的通信便利或者提供工具至工具的通信。可以由集线器模块从己向集线器模块注册以从视频游戏工具处接收消息的客户端列表中来确定消息接收者的列表,并且注册的客户端可以包括运行于游戏平台中的一个或者两者之上的视频游戏的子系统。开发工具可以使用单一的通信套接字以经由集线器模块发送被传送的消息至这两个平台,而集线器模块可以动作以部分地通过保持通信套接字或者这些游戏平台的客户端来提供与游戏平台的通信接口(例如,从而实施在第一和第二通信数据集中提供的协议或通信规则/定义)。

根据另一方面,向视频游戏开发系统提供了对工作于多个游戏平台或控制台的开发者的增强型的或“实况的”反馈。该系统包括运行在集线器服务器上的通信集线器模块,该集线器服务器与使用游戏引擎(例如,诸如可能由不同的平台制造商提供的那些游戏引擎之类的被不同地配置的游戏引擎)来运行视频游戏的第一和第二视频游戏平台链接以进行数字通信。运行于计算机系统或工作站之上的视频游戏开发工具,也链接至通信集线器模块(可替换地,该工具可以作为插件向第三方或其他现有的工具提供来扩展功能)。该开发工具响应用户/开发者的输入进行操作以对视频游戏数据进行更改,包括对游戏数据或素材的改变和添加。编辑模块与视频游戏开发工具相关联,并且在游戏数据更改之后操作以将编辑消息传输至通信集线器模块。该编辑消息典型地包括反映游戏数据更改的内容,并基于客户端侧通信库而被格式化,以便被集线器模块接受/接收。集线器模块从该编辑消息产生游戏数据更新消息,并将这些消息转发至第一和第二视频游戏平台。然后平台上的游戏引擎操作以使用游戏数据更改来更改运行中的视频游戏以向开发者提供关于他们利用开发工具所做的改变的及时的视觉/听觉的反馈。这些更改可能包括对视频游戏的游戏逻辑的改变,并且通常可能包括对视频游戏数据的多个更改(例如至少两个),诸如对游戏素材的改变,例如诸如对对象的定位、大小、纹理等之类的改变,或对诸如照明等级之类的游戏定义参数改变。

根据另一方面,提供一种适配于协作游戏编辑的视频游戏开发系统。该系统包括具有基于一组游戏数据(例如,己定义的游戏逻辑,诸如动画、对象和游戏设置之类的游戏素材,等等)来运行或提供视频游戏实例的游戏引擎的视频游戏平台。通信集线器模块与该视频游戏平台通信地链接,并且第一和第二游戏开发工具被链接至该通信集线器模块。操作这些工具以更改游戏数据集,并将包括基于对游戏数据集进行更改的内容的编辑消息传送至通信集线器模块。通信集线器模块从这些工具产生的编辑消息产生游戏数据更新消息(该更新消息具有平台所期待/所要求的形式,其典型地不同于集线器模块对编辑消息所要求/所期待的形式),并且将该更新消息转发至视频游戏平台。作为响应,游戏引擎使用包括在更新消息中提供的更新的游戏数据集来运行视频游戏。第一和第二开发工具可以由开发者同时操作以传送编辑消息,以使得平台上的游戏的实况的运行的实例可以包括由这两个开发工具提供的编排或改变(或添加),以支持协作的设计努力。

对于视频游戏的游戏测试,提供了一种使得在游戏测试会话期间对游戏的编辑或更改便利的视频游戏测试系统。该测试系统包括一组在游戏测试会话期间操作以运行视频游戏(或提供视频游戏的实例)的视频游戏平台,其中游戏基于一组诸如游戏逻辑、游戏素材等之类的游戏数据而运行。在测试系统中提供服务器或计算机来运行通信集线器模块,该模块与视频游戏平台通信地链接(例如,运行的视频游戏是该集线器模块的通信客户端)。测试系统还包括具有游戏测试统计数据收集工具的监视系统,该游戏测试统计数据收集工具接收与一组正在玩运行中的视频游戏的玩家相关联的游戏比赛数据(game play data)。经由通信集线器模块从视频游戏平台传送游戏比赛数据,并且统计数据收集工具处理游戏比赛数据且输出在游戏测试会话期间的合计的(aggregate)统计数据(例如,在监视系统的显示屏幕上经由GUI提供关于视频游戏的比赛结果的实时反馈)。测试系统还可以包括游戏开发工具,该工具经由集线器模块向游戏平台发出编辑或游戏更新消息。编辑消息包括定义对游戏数据进行的更改的内容,并且这些编辑消息在游戏测试会话期间被传送,以便响应于控制组中的玩家觉得某个任务太容易或太难了而改变游戏逻辑。编辑消息可以被发送至所有运行中的视频游戏或发送至某子集(subset),以允许利用该相同的玩家控制组对所测试的视频游戏进行有选择的更改。

更具体地,根据第一方面,提供了一种视频游戏开发系统,以使得分别基于至少第一和第二通信库与至少第一和第二视频游戏平台进行的通信便利,该视频游戏开发系统包括:运行于集线器服务器之上的通信集线器模块,所述集线器服务器与第一和第二视频游戏平台通信地链接;可以由通信集线器模块访问的存储器,其存储第一和第二通信库;以及运行在计算机系统上的视频游戏开发工具,其与通信集线器模块通信地链接,该视频游戏开发工具传送基于为通信集线器模块提供通信协议的客户端侧的通信库所配置的消息,其中通信集线器模块接收该传送的消息,基于第一和第二通信库中的至少一个、从该接收到的消息产生游戏平台消息,并且将游戏平台消息转发给第一和第二视频游戏平台中的至少一个。

在该第一方面的视频游戏开发系统中,由视频游戏开发工具传送的消息包括用于运行在第一和第二视频游戏平台上的视频游戏的游戏数据,其中游戏平台消息被转发至第一和第二视频游戏平台这两者。

在该第一方面的视频游戏开发系统中,通信集线器模块处理由视频游戏开发工具传送的每个消息,以确定每个游戏平台消息的接收者列表。

在该第一方面的视频游戏开发系统中,基于在由视频游戏开发工具传送的消息中提供的一组地址来确定接收者列表。

在该第一方面的视频游戏开发系统中,视频游戏开发系统进一步包括与通信集线器模块链接的第二视频游戏开发工具,其中该第二视频游戏开发工具在该组地址中被指定或基于传送的消息中的游戏数据而被置于接收者列表中。

在该第一方面的视频游戏开发系统中,根据向通信集线器模块注册以从视频游戏开发工具处接收消息的客户端列表来确定接收者列表,其中,注册的客户端包括运行在第一和第二视频游戏平台上的游戏的子系统。

在该第一方面的视频游戏开发系统中,视频游戏开发工具使用单一的通信套接字、经由通信集线器模块向第一和第二视频游戏平台这两者发送所传送的消息。

在该第一方面的视频游戏开发系统中,通信集线器模块提供视频游戏开发工具与该第一和第二视频游戏平台间的通信接口,所述通信接口包括保持至该第一和第二视频游戏平台的通信套接字并且实施第一和第二通信库中的协议。

根据第二方面,提供了一种用于视频游戏开发系统的通信方法,该方法包含:提供在与通信网络链接的计算机之上的通信集线器应用程序;通过该通信集线器应用程序,从运行在开发者工作站上的游戏开发工具处接收消息;为在视频游戏开发系统中接收到的消息标识消息接收者;基于与每个被标识的消息接收者对应的通信库来处理接收到的消息,以形成一组特定于接收者的消息,由此特定于接收者的消息处于与被标识的消息接收者中的对应的一个相关联的两个或更多的配置;以及从运行通信集线器应用程序的计算机传送该特定于接收者的消息至被标识的消息接收者。

在该第二方面的通信方法中,从游戏开发工具接收到的消息具有由一组集线器应用程序通信数据定义的配置,并且其中该接收到的消息的配置不同于特定于接收者的消息的配置中的至少一个。

在该第二方面的通信方法中,该组集线器应用程序通信数据被存储在开发者工作站的存储器中以供游戏开发工具访问。

在该第二方面的通信方法中,对消息接收者的标识包含:注册包括运行在一组视频游戏平台上的视频游戏的实例的一组客户端,并且进一步包含:从接收到的消息中的游戏数据内容来确定要标识为消息接收者的注册的客户端的子集。

在该第二方面的通信方法中,该组客户端包括对被接收到的消息中的游戏数据内容中的游戏数据的更改所影响的视频游戏实例的子系统。

该第二方面的通信方法,进一步包含从运行在视频游戏开发系统中的第二游戏开发工具接收第二消息,其中从所述游戏开发工具处和从所述第二游戏开发工具处接收的消息具有由一组集线器应用程序通信数据定义的单一的配置,并且其中接收到的消息的配置不同于特定于接收者的消息的配置中的至少一个。

在该第二方面的通信方法中,该第二接收到的消息包含地址列表,该地址列表包括运行在开发者工作站上的游戏开发工具。

根据第三方面,提供了用于开发视频游戏的系统,该系统包含:一组至少两个运行视频游戏的视频游戏平台,其中每个视频游戏平台适配于接收以通信库定义的形式的消息;运行中央集线器应用程序的服务器,该中央集线器应用程序提供与视频游戏平台的通信接口;以及两个或更多的与中央集线器应用程序通信地链接的游戏开发工具,操作用于产生由中央集线器应用程序所接受的形式的并且不同于由通信库定义的形式的游戏开发消息,其中中央集线器应用程序接收游戏开发消息并转发该消息至运行在一个或更多的视频游戏平台上的视频游戏,每个被转发的消息处于与一个或更多的视频游戏平台相关联的通信库所定义的形式。

在该第三方面的系统中,中央集线器应用程序处理接收到的游戏开发消息以标识包括运行在一个或更多的视频游戏平台上的视频游戏的接收者列表,通过确定接收到的游戏开发消息的内容并且将该内容与中央集线器应用程序的注册的客户端列表进行比较来执行该标识。

在该第三方面的系统中,该内容包含影响运行在一个或更多的视频游戏平台上的视频游戏的操作的游戏数据。

在该第三方面的系统中,在运行游戏开发工具的一个或更多的计算机的存储器中所提供的客户端侧的集线器通信库中定义游戏开发消息的形式。

在该第三方面的系统中,中央集线器应用程序转发该消息的至少一部分至游戏开发工具中的一个。

根据第四方面,提供一种用于向开发者提供关于游戏更改的增强的反馈的视频游戏开发系统,该系统包含:运行在集线器服务器上的通信集线器模块,所述集线器服务器与具有不同配置的游戏引擎的第一和第二视频游戏平台通信地链接;运行在计算机系统上的视频游戏开发工具,其与通信集线器模块通信地链接,所述视频游戏开发工具可操作以对视频游戏数据执行更改;以及与视频游戏开发工具相关联的编辑模块,其在对视频游戏数据的更改之后操作以传送编辑消息给通信集线器模块,该编辑消息包括基于对视频游戏数据的更改的内容,其中通信集线器模块从编辑消息中产生游戏数据更新消息,并将游戏数据更新消息转发给第一和第二视频游戏平台,并且其中第一和第二视频游戏平台的游戏引擎使用包括对视频游戏数据的更改的游戏数据来运行视频游戏。

在该第四方面的系统中,被传送至第一视频游戏平台的游戏数据更新消息具有与被传送至第二视频游戏平台的游戏数据更新消息的格式不同的格式。

在该第四方面的系统中,通信集线器模块处理该编辑消息以确定游戏数据更新消息的接收者的列表。

在该第四方面的系统中,接收者的列表中包括运行在该计算机系统上或运行在被链接至通信集线器模块的另一计算机系统上的视频游戏开发工具中的另一个,并且其中视频游戏开发工具中的所述另一个提供包括对视频游戏数据的更改的用户界面。

在该第四方面的系统中,对视频游戏数据的更改包括对视频游戏的游戏逻辑的改变。

在该第四方面的系统中,对视频游戏数据的更改包括对视频游戏数据的两个或更多的更改。

在该第四方面的系统中,该两个或更多的更改包括对游戏素材的改变。

在该第四方面的系统中,该两个或更多的更改包括对两个或更多的游戏定义参数的改变。

根据第五方面,提供了一种视频游戏开发的编辑方法,该方法包括:操作运行在计算机上的游戏开发工具来更改运行在视频游戏平台上的视频游戏的一组游戏数据;响应于该游戏开发工具的操作,传送具有基于更改的该组游戏数据的内容的编辑消息;以及操作视频游戏平台以基于更改的该组游戏数据来更改运行的视频游戏。

在该第五方面的方法中,更改的该组游戏数据包含对游戏逻辑的改变。

在该第五方面的方法中,更改的该组游戏数据包含对游戏素材的两个或更多的更改。

在该第五方面的方法中,视频游戏运行在不同于该视频游戏平台的附加视频游戏平台之上,并且进一步包含:在操作该视频游戏平台的同时,操作该附加视频游戏平台以基于更改的该组游戏数据来更改运行的视频游戏。

该第五方面的方法进一步包括提供与游戏开发工具通信地链接的计算机上的通信集线器应用程序,其中通信集线器应用程序处理该编辑消息以产生根据与视频游戏平台相关联的通信数据集而格式化的游戏数据更新消息。

在该第五方面的方法中,通信集线器应用程序以为和其他游戏开发工具进行通信而选择的格式来转发游戏数据更新消息至与该通信集线器应用程序链接的另一游戏开发工具。

根据第六方面,提供了一种开发视频游戏的系统,该系统包括:一组至少两个的视频游戏平台,每个平台运行视频游戏,其中每个视频游戏平台适配于接收处于由通信库定义的形式的消息;运行用于向视频游戏平台提供通信接口的中央集线器应用程序的服务器;与中央集线器应用程序通信地链接、并且操作以更改运行的视频游戏的一组游戏数据的游戏开发工具;以及与游戏开发工具相关联的编辑模块,其向中央集线器应用程序传送具有与被更改的该组游戏数据对应的内容的编辑消息,其中该中央集线器应用程序接收该编辑消息并且转发该编辑消息至视频游戏平台。该被转发的编辑消息处于由与每个视频游戏平台相关联的通信库定义的形式,并且每个视频游戏平台基于更改的该组游戏数据来更新运行的视频游戏。

在该第六方面的系统中,该编辑消息处于中央集线器应用程序所接受的形式,并且不同于由通信库所定义的形式。

在该第六方面的系统中,中央集线器应用程序处理该接收到的编辑消息以标识包括运行在视频游戏平台上的视频游戏的接收者列表,通过确定该接收到的编辑消息的内容以及将该内容与注册的中央集线器应用程序的客户端列表进行比较来执行该标识。

在该第六方面的系统中,该内容包含影响运行在视频游戏平台上的视频游戏的操作的游戏数据,所述游戏数据包括游戏逻辑。

在该第六方面的系统中,中央集线器应用程序转发该编辑消息的至少一部分至游戏开发工具中的另一个,由此使得对游戏数据的改变可用于游戏开发工具中的所述另一个。

在该第六方面的系统中,由视频游戏平台的游戏引擎来至少部分地同时执行运行的视频游戏的更新,所述游戏引擎在配置上至少部分地不同,由此通过更改的该组游戏数据而不同地影响运行的视频游戏。

根据第七方面,提供了一种使得协作的游戏编辑便利的视频游戏开发系统,该系统包含:具有基于一组游戏数据来运行视频游戏的游戏引擎的视频游戏平台;与视频游戏平台通信地链接的通信集线器模块;第一视频游戏开发工具,其与通信集线器模块通信地链接,该第一视频游戏开发工具可操作以更改该组游戏数据并传送包括基于对该组游戏数据的更改的内容的编辑消息;以及第二视频游戏开发工具,其与通信集线器模块通信地链接,该第二视频游戏开发工具可操作以更改该组游戏数据并传送包括基于对该组游戏数据的更改的内容的编辑消息,其中通信集线器模块从该编辑消息产生游戏数据更新消息,并且转发该游戏数据更新消息至视频游戏平台,并且其中视频游戏平台的游戏引擎使用基于游戏数据更新消息而更新的该组游戏数据来运行该视频游戏。

在该第七方面的系统中,第一和第二视频游戏开发工具可同时操作,以传送该编辑消息,由此用来运行视频游戏的该组游戏数据包括来自第一和第二视频游戏开发工具两者的更改。

在该第七方面的系统中,通信集线器模块处理该编辑消息以确定游戏数据更新消息的接收者列表。

在该第七方面的系统中,接收者列表包括第一和第二视频游戏开发工具的至少一个,其中该第一和第二视频游戏开发工具的至少一个提供包括由该第一和第二视频游戏开发工具中的另一个对该组游戏数据进行的更改的用户界面。

该第七方面的系统进一步包括具有另一游戏引擎的附加的视频游戏平台,所述另一游戏引擎以基于游戏数据更新消息而更新的该组游戏数据为基础来运行视频游戏的另一实例,。

在该第七方面的系统中,由通信集线器模块根据与游戏平台相关联的两个不同的通信数据集来配置被传送至游戏平台的游戏数据更新消息。

在该第七方面的系统中,第一和第二视频游戏开发工具独立地操作以便其中每个更改该组游戏数据的单独的部分。

在该第七方面的系统中,第一视频游戏开发工具不同于第二视频游戏开发工具,并且其中第一和第二视频游戏开发工具运行在不同的计算设备上。

根据第八方面,提供了一种用于视频游戏开发的协作编辑方法,该方法包含:操作至少两个运行在视频游戏开发计算机系统中的游戏开发工具,以更改与运行在视频游戏平台上的视频游戏相关联的游戏数据;在对游戏开发工具的操作之后,从每个游戏开发工具传送具有基于该更改的游戏数据的内容的编辑消息;以及操作该视频游戏平台以基于该更改后的游戏数据来更改运行的视频游戏。

在该第八方面的方法中,至少部分同时地从多个游戏开发工具中传送编辑消息。

在该第八方面的方法中,游戏开发工具包含一组不同的软件应用程序,并且其中在视频游戏开发系统中至少包括两个计算机以运行该组不同的软件应用程序。

在该第八方面的方法中,在不同于该视频游戏平台的附加的视频游戏平台上提供视频游戏的实例,并且进一步包含在操作该视频游戏平台的同时,操作该附加的视频游戏平台以基于该更改后的游戏数据来更改运行的视频游戏。

该第八方面的方法进一步包括提供与游戏开发工具通信地链接的计算机上的通信集线器应用程序,其中该通信集线器应用程序处理该编辑消息以产生根据与视频游戏平台相关联的通信数据集而被格式化的游戏数据更新消息。

在该第八方面的方法中,通信集线器应用程序转发游戏数据更新消息给游戏开发工具中的至少一个,并且其中游戏开发工具中的所述至少一个基于更改后的游戏数据来更新工具界面显示。

根据第九方面,提供了一种用于开发视频游戏的系统,该系统包括:一组至少两个视频游戏平台,每个平台都基于一组游戏数据来运行视频游戏,其中每个视频游戏平台适配于接收处于通信库所定义的形式的消息;运行中央集线器应用程序的服务器,该中央集线器应用程序提供与视频游戏平台的通信接口;与中央集线器应用程序通信地链接的第一和第二游戏开发工具,第一和第二游戏开发工具至少部分同时地操作以更改运行的视频游戏的游戏数据;并且其中该中央集线器应用程序从该第一和第二游戏开发工具处接收包括游戏数据的被更改的部分的编辑消息,并且转发该编辑消息至视频游戏平台,该被转发的编辑消息处于由与每个视频游戏平台相关联的通信库定义的形式,并且每个视频游戏平台基于更改的该组游戏数据来更新运行的视频游戏。

在该第九方面的系统中,该编辑消息处于由与每个开发工具相关联的客户端侧的集线器通信库定义的、中央集线器应用程序所接受的形式。

在该第九方面的系统中,中央集线器应用程序处理该接收到的编辑消息、以基于消息内容来标识包括运行在视频游戏平台上的视频游戏及开发工具中的至少一个的接收者列表。

在该第九方面的系统中,该内容包含影响运行在视频游戏平台上的视频游戏的操作的游戏数据,所述游戏数据包括游戏逻辑。

在该第九方面的系统中,中央集线器应用程序向游戏开发工具中的一个提供被转发的编辑消息中的至少一些,由此使得对游戏数据的改变对游戏开发工具之一可用。

在该第九方面的系统中,在经由运行在服务器上的中央集线器应用程序通信地链接的两个计算机系统上提供这些游戏开发工具。

根据第十方面,提供了一种使测试期间的游戏编辑便利的视频游戏测试系统,该系统包括:一组视频游戏平台,其在游戏测试会话期间操作以基于游戏数据来提供视频游戏;服务器,其具有与视频游戏平台通信地链接的通信集线器模块;以及监视系统,其具有用于接收与一组玩该视频游戏的玩家相关联的游戏比赛数据的游戏测试统计数据收集工具,经由通信集线器模块从视频游戏平台传送该游戏比赛数据,并且其中该游戏测试统计数据收集工具处理游戏比赛数据,并基于该游戏测试会话期间的处理而输出合计的统计数据。

该第十方面的系统进一步包含经由通信集线器模块向游戏平台发出编辑消息的游戏开发工具,其中该编辑消息将包括对游戏数据的更改的内容包含在内,其中在游戏测试会话期间传送该编辑消息来影响由游戏平台提供的视频游戏。

在该第十方面的系统中,将具有游戏数据更改的编辑消息传输至游戏平台的子集,由此在游戏测试会话期间更改该视频游戏的一部分。

在该第十方面的系统中,该游戏测试统计数据收集工具重复以下操作:接收游戏比赛数据、处理游戏比赛数据以及在编辑消息的传送之后输出合计的统计数据,由此实现由监视系统的输出来提供关于游戏更新的实时反馈。

在该第十方面的系统中,该监视系统包含向游戏测试统计数据收集工具显示界面的监视器,所述对界面的显示包括对合计的统计数据的至少一部分的显示

在该第十方面的系统中,该界面进一步包含与该组玩家中的各个玩家链接的游戏比赛数据的一部分。

在该第十方面的系统中,基于一个或更多的参数将该组玩家进一步划分成子组(subgroup),其中该合计的统计数据包括与游戏比赛是一个或更多的子组的玩家对应的信息。

在该第十方面的系统中,在由通信集线器模块根据与游戏平台相关联的通信数据集配置该编辑消息后,将所述编辑消息传送至游戏平台。

在该第十方面的系统中,该游戏平台包含至少两个配置,其中基于接收编辑消息的游戏平台的配置而使通信数据集对于游戏平台不同。

根据第十一方面,提供了一种视频游戏开发的游戏测试方法,该方法包含:在游戏测试会话期间,提供运行在视频游戏平台上的视频游戏的多个实例;从视频游戏平台传送与一组玩该视频游戏实例的玩家对应的游戏比赛数据;利用运行在计算机系统上的统计数据收集工具来收集所传送的游戏比赛数据;利用该统计数据收集工具,处理所收集到的游戏比赛数据以产生一组游戏测试统计数据;并且在游戏测试会话期间,在监视器上显示该组游戏测试统计数据,由此在游戏测试会话期间向视频游戏的开发者提供关于游戏比赛结果的反馈。

在该第十一方面的方法中,游戏平台通过以下操作与网络化的设备通信:使用两个或更多的定义消息传输(messaging)协议的通信库,并且进一步包含操作通信集线器应用程序来接收被传送的游戏数据并以单一的形式转发该接收到的游戏数据至统计数据收集工具。

该第十一方面的方法中进一步包括从该组玩家中的玩家处收集比赛数据,并且其中所收集的玩家数据中的至少一部分与该组游戏测试统计数据一起被显示在监视器上。

该第十一方面的方法进一步包括操作游戏开发工具以产生对提供视频游戏实例的视频游戏平台所使用的游戏数据的更改,以及在游戏测试会话期间传送该产生的更改至一组视频游戏平台以改变对应的视频游戏实例。

该第十一方面的方法进一步包括在传送该产生的更改之后,重复以下操作:传送游戏比赛数据;收集、处理和显示该组游戏测试统计数据。

根据第十二方面,提供了一种测试软件程序的系统,该系统包括:至少一组两个计算平台,每个平台基于一组程序数据运行软件程序;运行提供与计算平台的通信接口的中央集线器应用程序的服务器;运行在与中央集线器服务器通信地链接的计算机之上的统计数据收集模块,该统计数据收集模块收集与一组操作者对软件程序的使用有关的数据,处理该收集到的数据,并且与由操作对软件应用程序的使用至少部分同时地在显示屏幕上显示处理后的数据。

该第十二方面的系统进一步包含产生具有对该组程序数据的更改的编辑消息的开发工具,其中,中央集线器应用程序向计算平台转发该编辑消息以供在运行该软件程序时使用,并且其中与操作者使用该软件程序以及与统计数据收集模块收集数据同时产生该编辑消息。

在该第十二方面的系统中,计算平台包含视频游戏平台,并且其中软件程序包含视频游戏应用程序的至少一部分。

在该第十二方面的系统中,该编辑消息包含影响运行在视频游戏平台上的视频游戏的操作的游戏数据,包括对游戏逻辑的更改。

在该第十二方面的系统中,被显示在显示屏幕上的处理后的数据包括操作者的游戏比赛状态。

在该第十二方面的系统中,基于至少一个人口统计参数将操作者进行分组,并且至少部分地基于对操作者的人口统计分组而在显示屏幕上显示处理后的数据。

附图说明

图1是根据现有通信方法而配置的视频游戏开发系统或网络的功能框图;

图2图示了一种与图1的系统对比的功能框图,其示出根据本发明的实施例修改的视频游戏开发系统或网络,所述视频游戏开发系统或网络具有使游戏开发工具和运行在不同的视频游戏平台上的游戏之间的通信便利、并且可选地使工具自身之间的通信便利的开发者通信集线器;

图3图示了视频游戏开发系统或网络的功能框图,其提供了用于图示游戏使用客户端侧通信库(可能被内置于每个工具中)来创建或使用单一的通信套接字来向中央集线器应用程序传送以及从中央集线器应用程序接收游戏数据或开发消息的示例性实施方案或实施例的附加的细节;

图4图示了一种开发系统或网络,用于更详细地图示对实施在此描述的通信方法、编辑方法、测试方法和其他功能有用的一种示例性计算机系统;

图5是用于一般地图示本发明的实施例的游戏开发或基于集线器的通信方法的流程图;

图6是根据本发明的实施例的游戏开发系统或网络的功能框图,其示出了与通信集线器应用程序一起使用实况编辑模块来使工具至游戏的通信便利以及支持视频游戏的实况、实时的编辑;

图7是诸如可以通过图6的系统的操作来实施的、本发明实施例的实况编辑处理的流程图;

图8A和8B图示了来自运行由在此描述的编辑方法所开发的相同的视频游戏的两个游戏平台或控制台的显示设备的屏幕截图(screenshot);

图9A和9B图示了在使用实况编辑更新一组游戏数据或素材之后,来自与图8A和8B类似的运行的两个不同的游戏平台的显示设备的屏幕截图,其示出了由一个或更多的游戏工具的操作对游戏的改变的实时显示以及如何通过两个平台来唯一地实施这样的改变;

图10图示了适配于对视频游戏的协作编辑的游戏开发系统的功能框图(例如,可以在图10的系统中包括图2-4和图6所示的系统的简化版本以及在图10中未示出的组件);

图11A和11B图示了视频游戏平台屏幕截图,该屏幕截图图示了对运行的游戏的实况编辑并且还示出了在利用两个开发工具以协作的方式正在执行的编辑/开发(和/或在一些示例中由两个编辑者/开发者操作这种工具,而在其他的示例中单一的编辑者可以以自协作的方式操作两个或更多的工具);

图12是视频游戏测试和开发系统的功能框图(例如其可能包括至少一些来自图2-4,图6和图10的组件),其示出了使用通信集线器应用程序和游戏测试统计数据收集工具来使得对视频游戏的测试便利,包括从一组玩家或测试者处获得对于对游戏数据或该视频游戏的被测试部分的更改的实时反馈;

图13和14图示了可以由图12的系统的游戏测试统计数据收集工具或其它设备提供的测试监视接口的屏幕截图,所述测试监视接口用于允许诸如游戏开发者之类的用户来实时地或者“实况地”访问游戏测试数据、以及在实时的或者实况的环境中观看用于该组玩家或测试者的合计的和/或处理的数据;以及

图15是示出了一种向开发者或测试监视者提供实时反馈的示例性的游戏测试方法的过程的流程图。

具体实施方式

简而言之,本发明的实施例是关注于用于管理在视频游戏开发系统或网络中的通信的方法和系统。具体而言,描述了一种游戏开发系统或网络,其通过在开发系统或网络中提供用于在每个工具和不同的游戏平台之间建立(多个)通信接口的中央集线器通信应用程序,来减轻用于由游戏开发者使用的每个游戏开发工具的处理开销,使用复杂度,以及维护需求。该集线器通信应用程序(或运行该应用程序的服务器)担当消息经过的集线器,所述消息经过的集线器提取(或确定)由开发工具发出的消息的接收者,并且按照原样或以新的格式向该游戏开发系统或网络中的接收者传送内容(例如诸如平台上的游戏引擎要使用的更改的游戏逻辑之类的游戏数据,诸如处于3D模型或其他形式的新的人物或对象之类的游戏素材,和/或诸如照明等级、纹理等之类的游戏参数)。

简而言之,本发明的实施例是关注于对视频游戏进行实况编辑的方法和系统,其为编辑者或开发团队成员提供实时反馈。该实况编辑方法和系统允许开发团队成员使用一个或更多的视频游戏开发工具来创建对视频游戏的改变,以及利用一个广播编辑消息(例如具有由不同的平台上运行的游戏来实施的具有游戏内容或数据的消息)在一个、两个或更多的视频游戏平台上导致这些改变的实施。通过游戏通信集线器来广播编辑消息或游戏更新(例如具有由该集线器或运行在集线器服务器之上的集线器应用程序为接收者而格式化的具有游戏内容的消息)以允许任何监听(listening)客户端来监听和接收游戏更新以及对游戏更新做出反应。该集线器应用程序动作以标识消息的合适的接收者,所述合适的接收者例如运行在不同的游戏平台之上的游戏(或游戏的子系统)、用于游戏内容的游戏数据存储器、和/或其他游戏开发工具(例如在诸如Adobe Photoshop之类的一个工具中对诸如纹理属性之类的游戏素材或游戏数据所做出的改变,将在运行该视频游戏的游戏引擎中并且也将在诸如Autodesk Maya之类的第二工具中进行/得到反映),而不需要迫使开发者为每个平台针对该游戏素材或数据的改变/添加而重新发送该消息或重建该游戏。,以参考图1-5的对视频游戏开发通信方法和系统的讨论来开始以下的描述,并且在使用通信集线器应用程序来使得工具至平台的通信便利的该描述之后,跟随有参考图6-9B的对实况编辑技术的描述。

作为背景,接下来的描述提供在视频游戏开发中使用的特定的计算机、计算设备、工作站、视频游戏平台/控制台、通信网络和数字连接、存储器设备、以及其他的计算硬件和软件资源的例子。但是,应理解的是,这些只是本发明的有用的实施方式的代表性的例子,并不作为对其范围的限定。进一步,通常可以将本发明实施例视作用于支持游戏开发期间的通信、编辑和测试的基于计算机的方法(例如当操作开发者终端、节点、PC、工作站等并且使用一个或更多的视频游戏开发工具时),用于实施所描述的方法和功能的特定的软件、固件、和/或硬件也不是对本发明的限制。通常,可以在几乎任何可以导致计算机或计算机系统执行对应的功能的计算机可读介质上实现这里描述的算法、例程和处理。例如,可以将集线器通信应用程序作为用于导致诸如开发者的计算设备或中央/网络化的服务器之类的计算设备执行作为创建游戏开发计算和通信环境的一部分的特定的功能的软件或程序代码来提供,并且还可以将集线器通信应用程序存储在视频游戏开发工具经由有线的或无线的连接可访问的几乎任何节点的存储器设备上,并且运行在使用一个或更多的处理器或CPU来运行软件的设备上。该视频游戏开发工作站很可能将包括许多输入/输出设备(I/O设备),诸如键盘、鼠标或轨迹球等、触摸屏或垫板(pad)、语音识别机构等等。还将提供一个或更多的监视器,以允许用户观看一个或更多的用户界面(诸如作为计算环境的一部分而创建的窗口,以观看和/或访问视频游戏工具界面以及观看/更改诸如游戏逻辑、游戏设置、游戏素材、游戏参数等的游戏数据)。这样的用户界面几乎可以是菜单、屏幕设计、键盘命令、命令语言等(在一些情况下包括鼠标、触摸屏和其他诸如语音识别之类的输入硬件)的任意组合,以允许用户与计算机和存储在特定计算环境中的存储器中的视频游戏数字素材和数据进行交互。还可以通过使用一个或更多的数据服务器来实施本发明,所述数据服务器可以使用任意数量的众所周知的或稍后开发的通信协议(有线的或无线的)、在诸如因特网、局域网、广域网等之类的数字通信网络上与工作站进行通信,并且可以提供浏览器和相关联的应用程序来作为在特定的计算环境中可访问的网站应用程序。

为了辅助理解作为游戏开发和测试处理的一部分的、基于集线器的通信系统和方法的一些益处,讨论如图1所示的、现有的或更传统的游戏开发系统100是有用的。在传统的游戏开发系统100中,许多开发者可能使用工作站110,128来呈现其中运行一个或更多的开发工具114,134(例如Maya插件,变量调整器工具,逻辑更新工具等等)以便开发视频游戏的计算或工作环境112,130。可以在具有诸如块160和170所示的运行的游戏的平台A和平台B所示的许多不同的视频游戏平台或控制台上运行该游戏。每个工作站110,128的计算环境112,130,可以包括被用于存储通信/接口库或平台通信数据119,139的存储器或数据存储装置117,137。这种通信数据可以定义每个视频游戏平台所期望的消息传输格式及传送协议的全部或一些子集,并且典型地,平台通信数据119,139的集合中的每一个定义了工具114,134为了与平台上的运行的游戏160,170进行适当的通信而必须遵守的至少部分不相同的规则集合。如果开发者仅仅在一个平台上工作,这可能不是什么大问题,但是更多的情况是,使用每个开发工作站110,128和运行的工具114,134来开发用于在两个、三个或更多的视频游戏平台上使用的游戏160,170。因此,工具114,134能够与每个平台或运行在这种变化的平台上的游戏160,170(例如由索尼,微软,任天堂,及其他的游戏平台制造商开发和发布的那些)进行通信非常重要。

目前,在视频游戏产业中使用的开发工具114,134典型地不能提供通信功能,或者,如所示的,它们通过使用在工具114,134和运行的游戏/平台160,170之间的一对一的连接120,126,140,146来提供某种形式的通信功能。为了建立通信,工具114,134可以被视作在系统100的开发/操作期间为希望进行通信的每个游戏160,170创建通信客户端116,122,136,142。进一步,这种一对一的通信可以被视作要求工具114,134各自创建和管理通信套接字118,124,138,144以允许去往和来自运行的游戏160,170的直接的消息传输120,126,140,146。在系统100中,每个工具需要理解如何单独地与每个平台160,170通信。例如,很可能不能与按照特定平台160的通信数据119的需要而格式化的消息一起使用通信链路来向其他平台170发送具有相同内容的消息。在更具体的例子中,某个工具114或134可能使用通信数据119,139中的一组(例如在视频游戏平台开发者的SDK等等中提供的信息/数据)以更新在Sony PS3平台上(或第一平台上)的对象或其他的游戏素材/数据,但是却不能使用这些相同的通信技术/方法来发送用于更新在Microsoft Xbox 360上(或第二平台上)相同的对象或其他的游戏素材/数据的消息。进一步,对于允许工具彼此之间或与其他的工具进行通信,该一对一的通信技术不太有用,这是由于工具114,134通常需要具有其他运行的工具的明确的知识以便建立连接。

相比之下,图2图示了一种游戏开发系统或网络200,该游戏开发或系统网络200被修改以使得各个游戏不需要具有特定的平台通信数据和/或规则的知识、或甚至是什么游戏和/或工具被“监听”或被连接至游戏网络200的知识。系统200也包括运行视频游戏开发工具212,251的一对开发者工作站210,250,但是每个工具212,251仅仅保持/使用单一连接214,252来与运行在两个不同平台上的两个游戏230,240通信,并且可选地,与其他的工具进行通信(典型地,在图1所示的系统100中不能进行)。

系统200通过包括开发者通信集线器220(例如可以承担在系统200中进行消息传输的“服务器”的角色的服务器或其它的计算设备)而简化了游戏开发通信。集线器220运行用于从各个工具212,251中提取平台的知识以及其他工具的存在的中央集线器通信或消息传递应用程序,并且这种对通信任务(duty)的集中化和提取(abstraction)允许工具212,251在彼此之间以及与任何游戏平台230,240进行通信,而不需要关于预期的接收者和由该接收者提出的潜在接口、消息格式化、和其他的通信需求的特定知识。系统200典型地通过对如何使不同的平台230,240连接至中央集线器应用程序的知识进行集中化,以及在一些情况下,通过在每个工具中建立客户端侧的通信库来做到这一点(没有示出,但是被用于利用可以用于在系统200中的所有的它的消息传输和数据传送的、相对简单的消息传输协议来允许工具212,251与集线器应用程序通信)。也可以使用这种库来允许平台230,240连接至集线器220(或运行在其上的集线器通信应用程序)。

如图所示,集线器220向工具212,251的客户端222提供了与运行在第一平台230(如平台A所示)上的游戏进行通信的接口,以及向工具212,251的通信客户端224,226提供了与运行在第二平台240(如图2中的平台B所示)上的游戏进行通信的接口。集线器220包括存储器或数据存储装置225,用于为每个平台230,240存储通信数据或库227(诸如在视频游戏SDK等中提供的那些)。由运行在集线器220上的集线器应用程序使用该信息,以提供在通过链路214,252发送该集线器格式的消息的工具212,251与运行在不同的平台上并经由链路228,242连接至集线器220的游戏230,240之间的接口。可以部分地通过集线器应用程序基于在存储器225中的平台通信数据227创建通信客户端222,224,226来管理该通信。在系统200的操作期间,工具212或251通过链路214或252传送消息(诸如用于更改该游戏的照明设置或对象的纹理的消息等),该消息由客户端侧的集线器库格式化(图2中未示出)。集线器220动作以确定哪些接收者应当接收该消息内容,所述接收者诸如是两个平台230,240上的游戏中的一个或两个以及工具212或251。集线器220然后使用合适的通信数据/库227来重新格式化/翻译用于每个接收者的消息(和/或使用所创建的客户端222,224,226来管理这样的通信以及遵守通信规则)。集线器220然后将消息转发至系统200中的感兴趣的或所确定的接收者的集合。从系统200的相对概括的图示可见,工具212,251以及游戏230,240仅仅需要知道如何与集线器220进行通话(talk)或通信,并且并不需要用于将游戏信息或数据向外发送至网络或系统200以及至(多个)接收者的、(多个)预期接收者的通信规则的具体的知识。与图1的系统100相对比,工具212,251不需要为每个可能的平台管理通信客户端和/或套接字,或为每个游戏平台存储/访问通信数据/库。进一步,系统200允许工具212,251彼此之间进行通信(以下将做进一步详细介绍)。

图3更详细地图示了可以被用于实施本发明实施例的通信方法的视频游戏开发系统300。在这个实施例中,示出开发者计算系统310,其包括运行两个或更多的视频游戏开发工具316,318的CPU 312,所述视频游戏开发工具316,318诸如被用于创建3D模型、设置或调整游戏逻辑、创建对象、人物、或其他游戏素材等等的工具。可以提供I/O设备314以允许开发者与工具316,318和游戏数据进行交互,并且还包括一个或更多的监视器320以观看工具GUI 322,以及否则观看工具316,318和游戏数据/与工具316,318和游戏数据进行交互。系统310进一步包括存储器324,其存储了客户端侧的集线器通信数据/库338,并且这包括用于使得工具316,318能够与通信集线器应用程序354(并且通过该应用程序354,与开发中的游戏372,382或工具316,318中的另一个(或其他系统310上的工具,在此处没有被示出))进行通信的数据。还示出了存储器324,其包括诸如正在被开发的游戏或该游戏的新近的编译版本(build)之类的游戏应用程序330(或这些数据可能被存储在可被系统310及其他开发者系统访问的另一存储器设备上)。游戏应用程序330包括诸如游戏素材332、游戏逻辑334、以及游戏设置336之类的游戏数据,并且该游戏应用程序330可以被视作由该游戏数据来定义;因此,游戏开发包括使用工具316,318来创建和更改存储器324中的和/或在许多视频游戏平台/控制台370,380上的运行的游戏372,382中的游戏数据。

系统300还包括被用于连接该开发者系统310与集线器服务器350的通信网络340。该集线器服务器350包括运行通信集线器应用程序354的CPU352。CPU 352还管理所示的用于存储用来接收系统通信的客户端(例如向集线器应用程序注册的平台、工具、游戏或游戏的子系统,等等)的列表的存储器356。存储器356还存储系统300中的或期望要添加到/被用于系统300中的每个平台370,380的平台通信数据(例如每个平台370,380的SDK通信库)。集线器服务器350运行通信集线器应用程序354,并且该应用程序354可以起到在工具316,318和游戏平台370,380之间(以及在工具316,318自身之间)提供通信接口362的功能。为此,可以由集线器应用程序354使用用于每个平台370,380的平台通信数据集360以及用于与工作站/系统310通信的规则/协议来创建通信客户端364,366,368。

在系统300的操作期间,游戏开发工具316,318中的每一个可以使用作为内置的或运行时(runtime)的通信机制的客户端侧集线器库338来经由网络340创建和管理集线器通信套接字或链路342,344,从而向服务器350上的集线器应用程序354发送消息以及从服务器350上的集线器应用程序354接收消息。这些消息可以包括诸如更改游戏372,382(例如运行在两个不同的平台上的相同游戏)上的游戏逻辑334或素材332之类的游戏数据。集线器应用程序354经由接口362和客户端364,366,368和/或通信数据360来处理这些消息,以合适地确定消息的接收者,将该消息置于这些接收者所期望的格式,以及通过链路376,386,342,344传送该消息。客户端列表358可以包括视频游戏372,382或多个工具318中的一个,并且依赖于内容(谁被注册为对该类型的内容/消息感兴趣)和/或依赖于来自工具316,318的消息中的接收者列表/地址(诸如去往特定游戏或游戏子系统或去往对特定游戏数据感兴趣的任何工具)可以将每个消息发送至这样的接收者中的一个接收者、一组接收者、或全部接收者。

图4一般地图示了游戏开发系统或网络400,其可被用于实施集线器或中央通信技术以及这里所述的其他的功能/处理。网络400包括计算机系统402,其典型地由游戏开发者(或视频游戏开发团队的成员)使用,并且包括处理单元或CPU 203和系统存储器205,其中一个或更多的游戏开发工具可能由CPU 203运行。如前所述,每个游戏开发工具或程序可以具有内置的客户端侧的通信库,所述客户端侧的通信库提供与运行在远程计算机250上的(或分布式系统/网络中的开发者计算机系统402之一上的)中央通信集线器应用程序进行通信的程序所需的信息,并且,通过这种方式,由游戏开发程序产生的消息能够相对简单和/或在形式上通用以及能够经由中央通信集线器应用程序被递送至运行在第一和第二(或更多的)平台451,453上的游戏,平台451,453可能具有不同的通信需求(例如,诸如可以由每个平台开发者的SDK或SDK中的通信库来指定的或另外指定的不同的消息配置/内容,不同的传送协议,不同的通信和/或客户端接口等等)。

系统总线407将包括系统存储器405的各种系统组件耦接至处理单元403。系统总线407可以为几类总线结构中的任一类,包括使用各种总线架构中的任一种的存储器总线或存储器控制器,外围总线以及局部总线。系统存储器405包括只读存储器(ROM)和随机存取存储器(RAM)。在ROM456中存储基本输入/输出系统(BIOS)456,其包含诸如在启动期间的有助于在计算机系统402中的元件之间传送信息的基本例程。计算机系统402进一步包括各种的驱动器以及相关联的计算机可读介质。硬盘驱动器409从(典型地固定的)磁硬盘411处读取数据并且向其写入数据;磁盘驱动器413从可移除的“软盘”或其他磁盘415处读取数据并且向其写入数据;以及光盘驱动器417从可移除的光盘419(诸如CD ROM或其他的光介质)处读取数据并且在一些配置下向其写入数据,以及,当然,经由系统402的外壳上的诸如USB或其他通信端口之类的端口,可以插入其他可移除的存储设备并对其进行访问(读和/或写数据)。分别地通过硬盘驱动器接口421、磁盘驱动器接口423以及光盘驱动器接口425将硬盘驱动器409、磁盘驱动器413以及光盘驱动器417连接至系统总线407。这些驱动器及其相关联的计算机可读介质向计算机系统402提供对计算机可读指令、程序、步骤、例程、数据结构、程序模块、及其他数据(例如客户端侧的通信库的初始安装和/或对于游戏应用程序或游戏素材的备份存储/传送)的非易失性存储。在其他的配置下,也可以使用可以存储可被计算机访问的数据的其他类型的计算机可读介质(例如磁带、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等)。

可以在硬盘411、可移除磁盘415、光盘419和/或系统存储器405的ROM和/或RAM上存储诸如游戏开发工具、测试例程等的许多程序模块。这些程序模块可能包括提供图形以及声音API的操作系统、一个或更多的应用程序、其他程序模块、以及诸如游戏数据之类的程序数据。用户可以通过诸如键盘427和指点设备或鼠标429之类的输入设备,向计算机系统402中输入命令及信息。其他的输入设备可能包括麦克风、操纵杆、游戏控制器、无线通信设备、扫描仪等等。通常通过被耦接至系统总线407的串行端口接口431来将这些和其他的输入设备连接至处理单元403,但也可以通过诸如并行端口接口或通用串行总线(USB)或通过无线连接之类其他的接口而连接。也经由接口将(多个)监视器433或者其他类型的显示设备经由诸如视频适配器435之类的接口连接至系统总线407,以诸如用于观看游戏开发和游戏测试GUI或其他游戏数据。

计算机系统402还可以包括调制解调器454或其他在诸如因特网之类的广域网452上建立通信的装置。可以经由串行端口接口431(或其他一些接口)将可能是内部的或外部的调制解调器454连接至系统总线407。还可以提供网络接口456,以允许计算机系统402与远程计算设备或服务器450经由局域网458进行通信(例如建立通信套接字等)(或者这种通信可以是经由广域网452或诸如拨号之类的其他通信路径或其他通信装置进行的)。计算机系统402典型地包括其他外围输出设备,诸如打印机和其他标准的设备(未示出)。计算机系统402优选地配备了支持因特网通信协议和/或其他数字通信网络协议和通信接口(例如,为了支持经由基于典型地被内置于游戏开发程序中的客户端侧通信库的定义/需求而产生和传送的消息,与计算机250上的中央通信集线器进行数字通信)的操作系统。除了所示的计算机系统之外或与所示的计算机系统不同的、其他类型的计算机系统也可以用于实施本发明(例如计算机的局域网、交互式电视、个人数字助理、交互式无线通信设备、具有足够计算能力和存储器的电子设备,等等)。

图5图示了一种可以由图2-4中的系统200,300,400来实施的视频游戏开发通信方法500。在步骤504,方法500通过在视频游戏开发系统或网络中加载或提供中央集线器应用程序而开始。可以使正在被使用或稍后可能被连接至网络的每个游戏平台或控制台的通信数据或库对于中央集线器应用程序可用。在步骤510,方法500继续,其向每个开发工具(或向运行该工具的工作站)提供客户端侧的通信数据或集线器库。客户端侧的库可以是存储在工作站存储器中的运行时的库。客户端侧的库包括允许工具与中央集线器应用程序通信的数据或信息(例如消息传输配置/格式和/或其他通信协议)。在步骤520,方法500继续,其向集线器应用程序注册开发工具和/或(多个)视频游戏,以创建开发网络或系统的接收者列表。可以将工具注册为在特定的游戏数据被修改时通知该工具,而典型地以子系统的方式注册视频游戏以从工具处接收包括更改后的游戏数据的通信/消息(为在被链接至开发系统或网络的游戏平台上运行的特定视频游戏,向集线器应用程序注册例如材料子系统,(多个)对象子系统,纹理子系统,照明子系统等等中的每一个)。该系统的此方面允许工具将消息引导至特定的子系统,而不是依靠该游戏来确定合适的子系统本身。

方法500然后可以包括用于对要从工具或游戏中传送来的下一消息而监视通信网络的集线器应用程序。当在集线器处接收到消息,方法500于步骤540处继续,其中集线器应用程序动作来标识消息接收者。例如,在一些实施例中,工具可以以一种不具备指定的地址的通用的方式来传送消息,并且在这种情况下,该消息可能被发送至集线器接收者列表上的所有接收者或对特定类型的消息或消息内容感兴趣的子集。在另一些情况下,可以由工具以指定消息(例如去往运行在一个平台上的游戏或其他工具的消息)的一个或更多(一组)接收者的形式来传送该消息。在步骤550,集线器应用程序基于该标识的接收者以及与这些被标识的接收者中的每一个接收者相关联的通信数据(规则、库等)来合适地翻译和/或重新格式化该消息。例如,可以重新格式化或翻译来自工具的集线器格式的消息以符合用于第一游戏平台并且还用于第二游戏平台的通信数据/规则。然后在步骤560,方法500继续,其中集线器应用程序转发消息至所有被标识的接收者或至请求该消息中的游戏信息的客户端。在一些情况下,集线器应用程序为每个平台(和/或为每个接收者等等)处理开放的通信链路或套接字。方法500可以在步骤530继续,其中等待附加的游戏开发或相关联的消息,或在步骤590结束。通常,方法500可能被用于一对一通信,这是因为工具或开发网络的其他发送者可以指定接收者或地址,但是方法500还支持一对多的连接或广播通信方法,这是因为工具可以对特定的游戏数据进行改变(诸如调整游戏逻辑的一部分)及传送将被集线器应用程序发送至所有感兴趣的接收者(例如至所有受该改变所影响的游戏或游戏子系统)的通用的集线器格式的消息。结果,开发者不需要为每个平台创建和发送消息来具有由运行的游戏实施的改变。

图6描述了游戏开发系统600,其具体地适配于支持在两个或更多的不同游戏平台或控制台(例如微软的Xbox,索尼的Playstation控制台,任天堂的Gamecube或Wii,等等)上的视频游戏的实况编辑。系统600包括许多与在图3的系统300中详细讨论过的那些组件相似的组件,对于这些组件使用类似的参考标号,并且图3的描述可应用于图6中。例如,系统600包括运行通信集线器应用程序354的集线器服务器350,通信集线器应用程序354起到从运行在计算机610上的游戏开发工具316,318处接收消息690,691的功能。根据被示为工具316,318的内置的库的集线器通信库615,617来格式化这些消息690,691,并且集线器应用程序354动作来处理该消息以确定在消息中指定的、或更典型地从消息690,691的内容中以及从与感兴趣的监听客户端的客户端列表358的比较中(例如其他工具316,318、游戏674,684、或用于集中地定位的/存储的游戏数据644的存储管理组件)指定的一组接收者。然后基于用于接收者的通信数据360(例如,平台670期望/需要什么格式?等等)为每个接收者重新格式化/翻译该接收的消息690,691并且经由网络340(或经由直接连接(未示出))来将其转发至那些接收者。

同样的,开发者计算机系统610与系统310相似,在于它包括CPU 312,I/O设备314,和用于显示包括工具GUI 322中的游戏数据的信息的监视器320。系统610也使用CPU 312来运行一个或更多的游戏开发工具316。在这种情况下,每个工具316,318都能够使用内置的、客户端侧的库615,617而链接至通信集线器应用程序354以及与其进行通信,所述客户端侧的库615,617定义了如何与集线器应用程序354进行接口并通信,包括如何格式化编辑消息690,691。在系统600中,包括可被工具316,318经由网络340访问的数据存储服务器640,并且包括存储游戏应用程序数据644的存储器642(例如,诸如被创建的对象、人物模型和动画之类的游戏素材、游戏逻辑、参数/变量设置、和由游戏引擎在运行视频游戏中使用的其他信息)。当游戏工具316,318访问数据644时(例如在工具GUI中显示当前值等等),CPU 312可以使用工具高速缓存或存储器624来存储诸如游戏素材632、游戏逻辑634、和变量/参数设置636之类的游戏数据630以便使工具316,318进行高效的访问。

在开发者计算机系统610的操作期间,开发者可以调用或使用许多游戏开发工具316,318。例如,可以使用提供了GUI 322的逻辑调节工具316或318,所述GUI 322呈现当前的游戏逻辑634或设置636并且允许利用诸如具有逻辑值选择的下拉框、用于调节值的滑动条、数据输入框等等来容易地对游戏逻辑634或设置636进行调节或调整(例如人物能跑多快,人物能跳多高,需要击倒对手多少次才能使其失败,等等)。可以使用另一工具316,318来创建新的动画或通过经由监视器320上显示的GUI 322来改变现有的模型或对象的纹理、移动其在屏幕中的位置、更改其大小等等来更改现有的模型或对象。

根据系统600的一个重要方面,开发者能够获得关于先前建立的并且在两个或更多的不同的游戏平台上(例如在索尼的PS3上同时在任天堂的Wii控制台上等等)运行的视频游戏的那些改变的即时或实时的反馈。如所示的,系统600至少包括两个游戏平台670,680,所述两个游戏平台670,680包括运行游戏应用程序674,684的游戏引擎672,682的。运行的视频游戏674,684的功能被诸如人物的3D模型及其他的动画、关卡设计、游戏比赛逻辑、照明设置、纹理、着色等等之类的游戏素材676,686部分地控制。当视频游戏674,684由引擎672,682运行时,平台或游戏系统670,680的视频显示器678,688被用于向诸如测试者的玩家、以及在这种情况下向开发者显示该游戏。

为了提供实时反馈,开发者计算机系统610包括与每个开发工具316,318相关联或内置于每个开发工具316,318中的实况编辑模块616,618。实况编辑模块616,618起到(如参考图7讨论的)以下功能:导致(或便于)如所示的利用编辑消息690,691,通过集线器应用程序354从工具316,318向集线器服务器350的接收者或感兴趣的客户端的列表358广播对视频游戏的游戏数据630的改变或添加。根据客户端侧的集线器通信库615,617而对编辑消息690,691进行格式化,以由集线器应用程序354接收,同时集线器应用程序354使用平台/客户端通信数据360来翻译其通过网络340(或直接地)发往接收者列表的每个消息。(在必要时)被重新格式化后的编辑消息690,691的接收者可能是运行的游戏应用程序674,684以及游戏开发工具316,318中的另一个。这允许开发者在游戏素材中实施改变,诸如利用一个工具316(诸如Adobe Photoshop)对人物皮肤或衣服进行改变,并且经由编辑消息690来广播该改变,以通过通信集线器应用程序354以合适的平台/接收者形式来发布,并且当基于所接收到的、由集线器应用程序354传送的游戏数据更新消息694,696来更新游戏素材676,686时,系统610的开发者或者用户将在运行的游戏674,684这两者上看到该改变的结果。另外,可以利用来自集线器应用程序354的另一更新消息(未示出)向其他游戏开发工具318(诸如Autodesk Maya)广播该改变。还可以从集线器应用程序354向数据或中央存储服务器640发送游戏数据更新消息692,以导致新游戏644的游戏数据被更新以反映利用工具316所进行的改变。

以此方式,可以使用来自工具316,318的单一编辑消息690或691来导致在任意数量的游戏平台670,680以及其他的工具316,318中同时实施多个改变,并且可以在无需开发者具有每个平台670,680的知识、无需创建和发送多个消息,并且无需重新处理或创建运行的游戏应用程序674,684的新的编译版本的情况下来实现上述操作,这是因为编辑是“实况的”或是利用实时反馈来执行的。相比之下,由于对游戏的重编译可能占用几分钟来完成,因此不期望对游戏的重编译。

图7图示了诸如可以由图6的系统600的操作来实施的本发明实施例的实况视频游戏编辑方法700。方法700诸如通过选择用于创建新的视频游戏的许多视频游戏开发工具、在工作站上加载这样的工具(或在网络或者分布式计算环境中使得从服务器可得到这种工具)而从步骤706开始。可以将视频游戏设计成用于不止一个视频游戏平台上,并且在步骤705中,将选择或定义该组视频游戏平台或控制台。如上所述,对游戏逻辑、对象、纹理、照明、着色以及其他的游戏素材/数据的更改可能由每个平台的游戏引擎来不同地进行处理,使得期望开发者能够在各种平台上(例如利用并排或者邻近放置的平台的显示器以允许对所显示的游戏进行容易的比较)观看对运行的游戏的实时的改变的结果。

在步骤710中,方法700继续,其中,例如为了允许工具以集线器应用程序所理解的格式来发送单个消息,而配置用于集线器通信的游戏开发系统,集线器应用程序然后能够确定接收者列表,基于每个接收者的通信需求来翻译/重新格式化该消息,并且向该组接收者广播/转发该编辑或游戏数据更新消息。为此,可以在游戏开发者计算机或工作站上提供客户端侧的库,诸如内置的或由每个游戏工具访问的模块,以允许该工具利用去往集线器应用程序的被合适地格式化的消息来进行通信,并且在系统中提供了集线器应用程序以及将其与工具(诸如经由通信网络)通信地链接。向集线器应用程序提供对通信库或数据集(例如配备有游戏平台SDK等的通信库来管理与可能包括其他的开发工具(例如,集线器应用程序可以利用/支持PC客户端)的开发者系统中的潜在的接收者列表相关联的客户端的通信)以及游戏数据中央存储装置的访问能力。

在步骤720中,方法700继续,其中在(多个)开发者计算机系统上提供和/或加载实况编辑模块或多个模块。例如,可以提供单一的编辑模块以支持一组开发工具,或为每个开发工具提供实例,以在利用工具对游戏数据进行改变时支持与集线器应用程序的通信。在步骤728中,方法700继续,其中开发者使用该游戏开发工具(或其他的机制)来创建新游戏素材或更改现有的游戏数据或素材(诸如改变逻辑来进行特定的移动或使游戏的一部分更简单或更难)。

在步骤730,方法700包括确定是否已在实况编辑模块中激活自动的消息传输。例如,这可能是实况编辑模块的默认的设置,用于在使用与编辑模块链接的游戏开发工具来创建或更新游戏素材或游戏数据时,自动地广播编辑消息。在其他实施例中,可以向游戏开发者给出使这种消息传输自动的选项,或者选择其中在利用工具进行改变之后、由编辑模块提示游戏开发者经由中央通信集线器向运行的视频游戏(和其他感兴趣的客户端/接收者)发送编辑消息的选项。在这一点上,如果消息传输不是自动的(例如由编辑模块处理,而无需开发者的进一步的动作),则方法700继续至步骤740,其中实况编辑工具诸如通过在工作站监视器或工具GUI上显示消息来提示用户或开发者传送游戏更新消息,其中询问是否应当以编辑消息来发送该更新的数据,或者是否在稍后提醒开发者(例如,在另一素材的添加或更改时)。在步骤746,方法700包括确定该消息传送是否被授权。如果不是,则方法700可以如所示的继续至740,或返回步骤728(例如等待对游戏素材的下一改变)。在其他的实施例/实施方式中,如果可能总是发送数据,并且典型地总是处理数据。在这种情况下,方法700尤其适配于在可能导致问题的以下情况时提示用户:用户可能以跳过一个改变、并且然后允许依赖于第一改变的第二改变而告终。

如果消息传输是自动的或己被授权了,方法700继续至步骤750,其中实况编辑模块动作以将编辑消息传送至通信集线器应用程序。该编辑消息处于集线器应用程序要求的格式(例如,在客户端侧的库中),并且消息内容典型地是游戏数据的添加(例如新的对象或人物)或对现有的游戏素材的改变,诸如更改游戏逻辑、改变变量或参数设置或位置,等等。在步骤760,集线器应用程序接收该消息,确定接收该消息的一组接收者或客户端,基于用于定义/控制与该接收者的通信的对应的通信数据集来翻译每个消息,并且传送或转发具有游戏数据的该消息至每个被标识的接收者。

在步骤770中,可以更新用于视频游戏的游戏数据,以反映该编辑消息中的游戏数据(例如在一个或更多的工作站上工作的一个或更多的开发者可访问的中央存储位置)。在步骤780中,方法700继续,其中游戏引擎利用从开发工具处被广播的编辑消息中所呈现的更新的游戏数据或素材来运行该游戏应用程序。方法700可以在步骤790结束或返回步骤728以允许(多个)开发者对游戏数据进行附加的修订或添加。以此方式,开发者可以编辑对视频游戏的一改变或一组改变,广播具有对游戏数据或素材的一个、两个、三个或更多的添加和/或改变的单一的编辑消息,并且可以在一个、两个、或更多的游戏平台或控制台中观看作为结果的、运行的游戏应用程序上的这些改变/添加的效果。

图8A和8B图示了可以在诸如由两个不同公司的游戏控制台之类的两个不同游戏平台上运行的视频游戏的屏幕截图810,820。通常,优选的是,为视频游戏创建单一的一组游戏数据,而不是为每个游戏平台创建单独的组,并且虽然当在控制台的监视器上进行显示时,运行在两个不同的平台上的视频应用程序可能看起来几乎相同,但典型地在显示中至少存在细微的区别。在一些情况下,对诸如场景元素的照明等级或纹理之类的游戏素材的改变在一个平台上可能具有期望的表现,而在第二个平台上却具有不期望的表现或作为结果的效果。另外,可以采用将源数据取到准备好的引擎的不同的预处理步骤。这些步骤可以作为向集线器发送的一部分来运行,或者在一些情况下,由监听经过将拦截(intercept)、处理和重新发送数据的集线器的更新的另一工具来运行这些步骤。

例如,对于屏幕截图810,820,由游戏应用程序和/或运行该游戏应用程序的游戏引擎所使用的游戏数据或素材可能是相同的。如所示的,穿着衣服814的游戏人物812被示为要从地板/地面818跳向游戏对象(例如,该情形中的圆柱)的顶部816。人物812被示为要跳至特定的高度Hjump,而对象816具有特定的高度Hobject。在对应于不同的游戏平台的屏幕截图820中,人物822被示为穿着衣服824,并且衣服824可能与衣服814有不同的外观。类似的,游戏屏幕截图820示出具有与地板818类似、但是有一些小的区别的纹理的地板828。更进一步,包含了对象826,但是其高度Hobject与对象816的高度不同,和/或对于人物822跳跃的高度Hjump可能不同。通过该图示,可以看出,对于运行在两个不同平台上的游戏应用程序,一组游戏数据可以被不同地处理或产生不同的结果。这使得以下对于开发者是所期望的,当他们对游戏数据或素材进行改变的同时(例如“实况的”),观看运行的游戏,并且优选的是,观看在两个或更多的平台上运行的相同游戏,以允许确定对游戏素材的该改变或添加是否是所期望的或有效的。

图9A和9B示出了在游戏中的相同的地点/位置并且用于相同的两个平台的、但是对游戏数据进行了一些改变之后的视频游戏的屏幕截图910,920。可以利用这里描述的实况编辑技术来实施该改变,例如通过改变若干游戏素材以及然后发出具有改变的内容的实况编辑消息。在一些实施例中,可以利用每个消息来进行单一的改变或添加,而在另一些实施例中,可以使开发者在单一编辑消息中执行若干改变并且发送所有的改变。在图示的例子中,开发者已经使用了游戏开发工具来对游戏数据进行若干改变。已经更改了游戏逻辑,使得响应玩家的输入的人物912,922跳跃的高度Hjump更大。还通过减少对象916,926的高度Hobject而更改了对象916、926。更进一步,还更改了地板/地面918,928的纹理。

与屏幕截图910,920相关联的两个游戏引擎/平台使用更改后的游戏素材/数据,但是如所示的,对游戏数据的改变导致对游戏的显示或游戏的输出至少部分地不同的结果或效果。例如,对于具有相同的游戏数据的两个平台而言,地板918,928的纹理可能看上去有些许不同,人物跳跃的高度也可能稍有不同,和/或对象916,926的高度可能不同。当然,并不是每个游戏数据的改变或添加都将导致对不同的平台的不同的游戏效果,但是对于开发者能够实时地(或几乎与基于改变而更改游戏的显示同时地)验证他们的修改或编辑的效果而言、以及对于该游戏为其设计的所有平台验证或测试所述效果而言都是有用的。利用通信集线器应用程序技术的实况编辑工具允许利用高效的消息传输来在游戏开发系统中进行实况编辑,而不需要在每个平台上创建游戏的新的编译版本的重复步骤(例如,该实况编辑处理的一个有用的部分是:在工具或者开发者工作站向通信集线器发送(多个)消息同时,运行在不同的平台上的多个游戏的编译版本接收游戏数据的改变)。此外,如所讨论的,多个内容/逻辑的改变可以被实时地发送/进行,这显著地增加了开发者对视频游戏进行大量的编辑/改变的效率。

在一些游戏开发环境中,期望两个或更多的游戏开发工具与一个或更多的视频游戏平台上的视频游戏的相同的实况实例进行通信。例如,对于开发者来说,同时使用两个工具来在视频游戏上工作可能是有用的,包括改变游戏数据的不同部分(例如关卡设计和诸如纹理之类的游戏素材、照明设置、游戏逻辑等)。在另一些例子中,两个游戏开发者可能希望利用相同或不同的游戏开发工具同时在视频游戏中的相同部分或位置上工作。在一些实施例中,可以使用如以上讨论的(例如,参见图2-4和图6等)利用集线器应用程序配置的游戏开发系统来允许在相同游戏中同时反映由不同的个人(例如,开发团队成员)所执行或进行的内容(或游戏数据)的改变(或至少不需要停止游戏实例、进行一组改变、重编译该游戏,然后允许下一开发者在该游戏上工作)。在一些情况下,开发者各自的工具可以监听通信(例如利用集线器注册为客户端等等),并且实时地或以正在进行的/实况的方式更新客户端(例如,在不同的工作站)上他们的游戏数据。作为更具体的例子,使用Adobe Photoshop(或另一游戏开发工具)的纹理美术师可能与使用Autodesk Maya(或另一游戏开发工具)的世界(world)设计者同时工作或至少部分地同时工作,并且当纹理美术师调整或更新纹理时,该改变可以被反映在一组视频游戏平台上的运行的游戏实例中并且还被反映在世界设计者的Maya的视图或工具GUI中。另外,世界设计者可能正在改变或调整诸如对象的位置之类的游戏数据,并且他们正在进行的改变可能引用其他开发者正在调节或编辑的相同的纹理。在先前由游戏开发者使用的一对一(工具至游戏)的连接的情况下、这种利用关于运行的游戏实例和游戏工具GUI的实时或近实时反馈的协作编辑是不能得到的。

图10图示了适配于支持协作的编辑方法和功能的视频游戏开发系统1000。注意,以一种稍微简化的方式来示出系统1000,以突出可能在协作编辑中使用的部分,但是系统1000可以包括诸如图2-4和图6中所示的、这里讨论的任何组件和软件设备。为了支持对视频游戏的协作编辑,系统1000包括可能由相同的,或更典型地不同的编辑者或游戏开发者来操作的一组开发者系统1010,1030。在每个系统1010,1030中提供监视器1012,1032以及一个或更多的游戏开发工具1020,1040。游戏开发工具1020,1040与集线器350通信地链接,如贯穿本说明书所述的,集线器350运行通信集线器应用程序354,并且集线器应用程序354使用平台和其他的客户端通信库或规则集360以及注册的客户端列表358,来支持工具1020,1040和实况的运行的视频游戏实例1074之间以及与相同或不同的计算机上的其他工具1020,1040之间的通信。

在系统1000的操作中,游戏开发工具1020,1040访问中央游戏数据存储装置(在图10中未示出)并且在存储器或高速缓存1026,1044中存储游戏数据1028,1046。工具1020,1040使用监视器1012,1032显示工具GUI(或工具界面)1014,1034,所述工具GUI(或工具界面)1014,1034包括游戏数据1028,1046或基于游戏数据1028,1046而被创建。与工具1020,1040的操作同时,系统1000包括使用游戏引擎1072来运行视频游戏的实例1074的一个或更多的游戏平台1070,所述工具1020、1040在所述视频游戏上工作,其中由基于包括由使用工具1020,1040而产生的任何更新或改变1078的当前的游戏数据1076来运行实例1074。游戏引擎1072可以使用或支持使用一个或更多的显示器和/或输出设备1080来提供游戏输出1084(例如,由运行的游戏实例1074定义或提供的视频图像、声音、音乐、对话、和/或其他音频输出、控制者触觉(tactile)反馈等)。

在该示例性的实施例1000中,为每个工具1020,1040提供集线器通信库或数据集1024,1042,并且由工具1020,1040使用集线器通信库或数据集1024,1042来向集线器350传送/或广播编辑消息1050,1052。通信集线器应用程序354然后确定接收者,把消息1050,1052(处于集线器应用程序354所期望/需要的形式)翻译为每个被标识的接收者所期望/需要的形式,然后传送一组游戏数据更新消息1054,1056,1058。在协作操作模式下,客户端列表358可能包含工具1020,1040(例如,每个工具1020,1040监听对其所使用/引用的游戏数据1028,1046的改变)。通常在使用工具1020,1040创建了对游戏数据1028,1046的更新1029,1048之后传送编辑消息1050,1052。由集线器应用程序354将这些改变/内容包括在数据更新消息1054,1056,1058中,以使得基于游戏数据更新1078包括或提供由该实况的、运行的视频游戏实例1074所使用的游戏数据1076。结果,在传送了编辑消息1050和/或1052之后,由平台输出设备1080提供的游戏图像/输出1084是“实时的”或提供实时的反馈。

重要地,可以独立地或以重叠的方式来传送消息1050,1052,以支持协作编辑,这是因为开发系统1010或1030的用户可能继续利用工具1020和1040来工作以编辑或更改游戏1074。换句话说,“同时”和/或协作的编辑通常旨在意味着两个或更多的工具1020,1040可以工作在单一的游戏实例1074(或运行在两个或更多的平台1070上的多个实例)上,并且彼此之间和/或与运行的游戏交换改变或更新(例如,以具有关于由游戏平台1070的操作以及在它们的工具GUI 1014,1034中所提供的改变的实时或实况的反馈)。由工具1020,1040中的一个或两个所进行的更新1029,1048也被反映在工具的游戏数据1028,1046中,以使得以及时的方式向每个开发者提供每个开发者的工作,并且工具GUI 1014,1034可以包括诸如所示的利用协作的编辑改变1015,1035的更新1029,1048(例如,包括由编辑者中的另一个并且不是仅仅利用与GUI 1014,1034直接相关联的工具1020或1040所进行的改变)。

图11A和11B图示了在图10所示的系统1000的操作期间可以提供的屏幕截图1120,1140。如图11A所示,游戏平台1070可能运行着游戏的实例1074并且利用第一组游戏数据1076可以在平台监视器1080上创建屏幕截图1120中所示的输出1084。在屏幕截图1120中,示出人物1122正在从场景元素/对象1128(例如地板,地面等)跳向或跳上另一游戏对象1126(例如平台,圆柱等)。如所示的,圆柱或游戏对象1126在游戏关卡或场景中具有特定的位置,并且该地板或游戏对象1128具有纹理1130(被示出处于开发/完成的第一阶段)。

如图11B所示,游戏平台1070可以继续运行游戏实例1074,但具有已经利用游戏数据改变/更改1078更新的一组游戏数据1076。在这个例子中,更新1078已经由两个工具1020,1040提供,其中一个工具用于对地板1128施加纹理,而另一个工具用于调节对象位置。因此,如图11B所示,屏幕截图1140示出了处于对纹理1131的开发/完成的稍后阶段的地板1128(或,在一些情况下,纹理/材料1131可以是新创建的和应用的纹理/材料)。同时,屏幕截图1140示出,如用箭头1127所示的,圆柱或游戏对象1126相对于人物1122被移动至新的位置(例如,为了使跳跃或其他的移动更简单或更难)。通过允许两个或更多的工具1020,1040访问游戏的实况实例1074以及提供对游戏数据1076的更新1078,可以进行大量其他的改变。同时,可以将改变1078(诸如,对纹理1130至1131的更改)传送至其他的工具1020,1040,并且在诸如当工具界面包括其纹理或其他特征已经改变(作为由另一工具执行的游戏更新的结果)的游戏对象的表现时,所述改变1078在工具GUI 1014,1034中得到反映(当适宜时)。

还可以利用这里所描述的集线器通信应用程序以及工具至游戏的平台通信技术来提供对视频游戏的唯一的(unique)及有效的游戏测试。以下描述的游戏测试可以被视作“实时的”,这是在于从游戏中收集来的数据经由通信集线器被传送至游戏测试监视系统(或开发者工作站/计算机)并且当发生游戏测试时在一个或更多的监视器上进行呈现(例如,没有时延或只有微小的时延)。实时游戏测试使曾经的静态游戏测试环境转变为动态的交互的处理。通过使用开发工具或其他设备经由通信集线器向游戏平台(其可能是需要用于消息传输的不同通信协议的不同类型的平台)传送游戏更改(例如,改变逻辑以使得功能或处理更简单或更难等)来提供交互性,其中运行视频游戏应用程序的游戏引擎使用该更改后的游戏数据来几乎同时地向游戏玩家提供更改后的游戏(例如,可以以类似的方式来更改所有的游戏或者可以更改子集以确定该改变是否具有期望的或预计的效果)。

在一些优选实施例中,使得视频游戏测试系统适配于实时地监视游戏比赛数据而不是在事后(例如,在测试小组已经离开测试设施的几天或几周之后)评价给定的测试会话的结果。从每个游戏玩家或个人测试者处收集数据,并且将所述数据向诸如监视计算机系统或适配于游戏测试监视的开发者工作站之类的中央位置回送报告。从该中央位置或系统,诸如可以通过操作视频游戏开发工具以经由通信集线器应用程序向一个或更多的运行的视频游戏(例如,游戏模型(mod)接收者集合)传送具有新的游戏数据/内容的编辑消息,来由开发者进行改变。几乎可以立即确定这个游戏更改或改变的结果,这是因为游戏玩家或个人测试者还在测试设施中并且还在一个或更多的游戏平台上玩该更改后的运行的游戏或游戏实例。例如,如果在诸如大部分游戏玩家完成给定的跳跃(或其他游戏任务/功能)有困难的显著的部分,则关卡设计师或其他开发团队成员可以“在线的(on the fly)”或者近实时地缩短该距离以审视这个对运行的游戏的该更改是否有助于将成功率增加至期望的等级(例如,如果期望在游戏的这一点提供挑战,则仍有一定量的人不能进行该跳跃)。可以运行统计数据收集工具来存储对游戏数据的改变,并且在进行该改变的测试时使得游戏更改或“调整”被跟踪并且被与其他的游戏测试追踪数据一起进行存储。

可以在所有的游戏平台上或在所有的运行的游戏实例中或者对一些更小的部分或子集(例如百分之五十,百分之十,百分之八十等)进行游戏更改,并且可以基于一个或更多的标准对玩家进行分组,以及从一个或更多的这些组中选择出来的子集(例如,为技巧水平最高的玩家更改运行的游戏的百分之三十,为了年龄小于30岁的玩家更改运行的游戏的百分之七十,为了男性玩家更改运行的游戏的百分之四十,或游戏的部分和玩家分组的几乎任意其他的组合)。在单一的游戏会话中使用与更改游戏进行组合的对游戏测试的实时监视,保证了游戏测试者或玩家测试组处于一致的技巧水平,而在过去由于两组玩家的技巧通常变化较大导致了宽范围的结果。通信集线器应用程序允许任意数量的游戏客户端连接以及通过集线器向(多个)统计数据收集和处理工具发送几乎任何类型的游戏比赛信息或数据,所述统计数据收集和处理工具用于实时的处理/评价以及向监视的个人(例如,开发团队成员)显示。一个或更多的编辑或游戏开发工具可以连接至相同的通信集线器应用程序,并且在游戏测试期间向一些或所有游戏测试者发布对游戏数据的调整或更改。

图12图示了本发明实施例的视频游戏的游戏测试系统1200,其适配于在相同的控制组可玩游戏的同时,向开发者提供测试结果的实时反馈,并且允许这些开发者对运行的视频游戏进行改变。如所示的,系统1200包括游戏测试设施1210,其中提供了多个游戏平台1212,并且,如所讨论的,这些可以是相同的平台或者也可以是不同的,以允许在各种不同的控制台/系统上测试相同的游戏。每个平台1212包括基于一组游戏数据1218来运行视频游戏应用程序1216(或准备好用于测试的部分)的游戏引擎1214,其典型地将处于初始测试的状态,然后将包括如下所讨论的测试更改或改变1220以在收集和处理了一定量(例如,半小时,一小时,对关卡或游戏部分的一定数目的尝试或重复,等等)的测试或游戏比赛数据之后调整或改变一些游戏特征(诸如在被对手攻击时丧失的生命或能量的量等等)。作为平台1212的一部分提供显示和/或输出设备1224,并且显示和/或输出设备1224在游戏比赛或测试期间操作以提供游戏图像及诸如音频和触觉的反馈输出之类的其他输出。

在一组测试者玩游戏1216时,游戏比赛数据1230被传送至包括通信集线器应用程序354的集线器服务器350,所述通信集线器应用程序354使用存储在存储器中的客户端通信库360和客户端列表358与游戏平台1212以及与游戏测试监视系统1240进行通信(如上所详细讨论的)。具体地,集线器应用程序354以监视系统1240(或在其上运行的诸如统计数据收集工具1250及(多个)游戏开发工具1254之类的客户端应用程序)所接受/期望的形式向游戏测试监视系统1240转发游戏比赛数据1230作为测试数据消息1232。

通常将由游戏开发者或开发团队成员操作监视系统1240以在设施1210处执行游戏测试期间或作为执行游戏测试的一部分来调整或精细调节视频游戏1216的各方面。为此,系统1240包括由CPU 1242管理的I/O设备1243,以允许操作者经由与游戏开发工具1254的交互来输入或选择游戏改变或测试更改1264,和/或观看及操纵游戏测试的结果。提供了可以由游戏测试统计数据收集工具1250使用的监视器1244,用于显示测试监视界面1246,例如向开发者显示合计的游戏测试信息。还可以由游戏开发工具1254使用监视器1244,以显示开发工具GUI 1245来显示当前正在被游戏(如1218所示的)使用并且正在被测试的游戏数据1262,并且允许开发者对游戏逻辑或其他游戏素材/设置进行改变或调整(例如缩短跳跃,在到达关口(checkpoint)时增加人物的生命/能量,等等)。在其他的实施例中,利用不必是监视器1244的一部分的单独的工具。

如上所讨论的,开发工具1254可以使用内置的(或可访问的)集线器通信库1256,以利用游戏编辑消息1270与集线器应用程序354进行通信,所述游戏编辑消息1270典型地将包括经由工具1254及界面1245进行的测试模型或游戏数据改变1264。集线器应用程序354确定合适的客户端并且向设施1212中的各种平台1212上的客户端或游戏应用程序1216(或向如上所讨论的其他开发工具)发送测试更改消息1276。接收该更改消息1276的客户端然后可以更改它们的游戏数据1218以包括更改1220,并且运行的视频游戏1216将反映该改变以允许由相同的控制组所进行的测试继续来验证该改变的有效性或有用性。接收改变1220的游戏1216可以是所有的运行的游戏1216、或诸如所有游戏的一部分或游戏的子组的一部分等等之类的由监视系统1240的操作者选择的一些更小的子集。

游戏测试统计数据收集工具1250可以起到在存储器1260中记录所有接收到的数据1266的功能,但是,典型地,也将工具1250配置成执行合计功能以及在界面1246中呈现处理后的/合计的数据1247。例如,收集工具1250可以动作以产生并存储1266,并且然后显示合计的统计数据1247,诸如玩家的数量,在各种游戏关口处的平均分/能量,打败某关卡或挑战的玩家数量,以及需要多少次尝试,等等。优选地与游戏测试设施1210的操作一起以进行中的方式完成工具1250的统计数据的该合计,以使得开发者具有关于游戏1216游戏测试的结果的实时反馈。如界面1246中的1248处所示,统计数据收集工具1250还可以在为每个玩家显示玩家统计数据。个人玩家统计数据1248可以包括诸如年龄和性别之类的人口统计信息以及其他更具体于游戏的信息,诸如游戏经验的年数和技巧等级(如果可得到,系统1200在一些方面上是有用的,这不是因为关于技巧等级的知识,而是因为控制组在测试模型1220被发送至运行的游戏1216并且在其中被实施之前以及之后是相同的)。

图13和14图示了一对可以由系统1200的统计数据收集工具提供的屏幕截图1310和1410。在屏幕截图1310中,监视屏被分为了两个区域,其中一个区域在玩家窗口/框1320中显示玩家的统计数据,而另一部分1350被用于显示合计的游戏测试统计数据。例如,可以对于该控制组中的每个成员或每个测试者提供玩家窗口1320。在这个实施例中,提供了用于示出玩家处于游戏中的何处的游戏比赛状态或游戏屏幕截图1322的缩略图(例如利用被周期性地更新的静止的截图等),但是还可以以文本、符号以及其他被显示的信息来提供游戏位置/状态。玩家窗口1320还包括用于向开发者或游戏测试监视器提供有关游戏玩家或测试者的信息的玩家数据部分1330。例如,但不作为限制,玩家数据1330可以包括每个玩家的玩家ID 1332以及游戏/客户端地址1336,以使得将允许测试监视器向测试者中的具体的测试者传送测试模型消息以测试游戏的改变。玩家数据1330还可以包括诸如年龄、性别等的人口统计信息1334,并且如果作为测试的一部分(或由统计数据收集工具)对玩家/测试者分组,则该人口统计或玩家ID可以包括用于指示该玩家被分配到游戏测试者或控制组的哪一个组或子集的信息。还可以在玩家数据1330中提供游戏状态信息1340,诸如他们当前的分数1342,他们的人物在游戏中具有的生命或能量的量1344,以及诸如在游戏中的位置之类的其他统计数据。

这里所述的测试优选地包括对来自测试者的游戏数据的一定程度的处理或合计,以使关于如何改进当前游戏版本的游戏开发和决定便利。为此,合计部分1350包括用于指示描述哪一个游戏的标题1352,还包括通过处理和/或合计收集到的测试数据而确定的许多被合计的统计数据或游戏测试结果。例如,统计数据1350可以包括游戏的或游戏的一部分的平均分1354,可以包括在游戏的特定位置或任务中失败或死亡的玩家的百分比1356,可以包括在游戏的各种不同点上的能量/生命的平均损失或丧失(例如需要多少能量来到达关口或执行战斗,等等),和/或可以包括在首次(或其他的)尝试中通过/打败关卡的玩家的数量。许多其他的统计数据或游戏测试结果可以由统计数据收集工具确定、以及如屏幕截图1310所示的在界面中被显示。在一些情况下,还使用该系统来捕捉可以在编辑环境之上重叠的空间信息以提供环境(例如人物通常在游戏中的何处死亡或失败,等等)。

在替代的或附加的屏幕截图1410中,统计数据收集工具可以用于基于各种标准将游戏玩家或测试者分组为各个组,以及显示这些各个组(或玩家窗口1320以及他们的合计的统计数据1350)。例如,诸如在该游戏更针对于特定的年龄(诸如十岁左右的儿童)或特定的性别时,用于形成三个组1420、1430、1440的标准可以是年龄或技巧水平,或这些变量与玩家性别组合。如所示的,在屏幕1410上的每个组中,提供了一组玩家窗口1424,1434,1444,以允许测试监视器快速地确定每个组中各种玩家或测试者的状态。尽管未示出,但可以为每个组1420,1430,1440提供诸如1350所示的、统计数据/合计结果窗口/框,以允许测试监视器更快速地比较每个组的游戏经历(例如一个组觉得该游戏或该游戏的一部分是容易或困难的,而另一组可能具有非常不同的体验)。游戏开发者可以利用屏幕截图1310,1410中显示的输出或游戏测试数据来选择在整个控制组或仅在特定组、组的一部分、或甚至是单独玩家的机器/平台上(经由游戏开发工具的操作)来实施测试或游戏更改。

图15图示了一种可以由系统1200的操作来实施的游戏测试方法1500。方法1500在1505处开始,诸如选择用于测试的视频游戏、建立测试协议,标识控制组或测试者集合,并且收集有关测试者的人口统计数据。在步骤1510,方法1500包括为集线器通信而配置测试系统,诸如通过安装/加载中央集线器应用程序以及将该集线器应用程序与测试设施中的游戏平台及游戏开发工具通信地链接,以允许在测试期间进行实时的游戏更改。在步骤1520中,方法1500包括链接或连接一个或更多的统计数据收集工具至集线器应用程序,并且统计数据收集工具可以运行在测试系统中的任何计算机设备上,诸如在集线器服务器或开发者工作站上。在步骤1530,方法1500包括标识测试组以及在可以被统计数据收集工具访问的存储器中存储玩家数据。

在步骤1536,方法1500包括在测试设施中(或者在甚至可以包括在线游戏测试的分布式测试系统的平台中,这是由于“设施”不是对特定的物理位置或空间的限定)初始化游戏比赛。在步骤1536中,由于通信集线器应用程序允许统计数据收集工具(及开发工具)进行包括从各种平台接收游戏比赛数据以及从开发工具向运行的游戏发送游戏数据改变或编辑消息的通信,因此在可能是相同(例如所有的都来自一个平台公司)或可能不同的配置的多个游戏平台上运行视频游戏。在步骤1540,方法1500包括在测试者或游戏玩家的控制组玩游戏时收集游戏比赛数据,并且还使用统计数据收集工具来存储该数据、合计和/或处理该数据、以及基于该游戏数据确定各种统计数据或测试参数或值。

在步骤1550,统计数据收集工具在开发者工作站或监视系统的监视器上提供测试监视界面,并且该界面包括所收集的游戏数据的至少一些部分,诸如所计算的统计数据和/或玩家数据及状态信息(例如,参见图13和图14)。在步骤1560,开发者可以动作以基于所显示的游戏数据/统计数据来进行游戏的改变或更改,例如操作游戏开发工具来改变游戏逻辑、改变游戏素材等等。方法1500包括确定该更改是如所讨论的利用编辑工具自动进行的,还是响应于由开发工具发送的编辑消息而进行的(例如手动消息创建和传送)。在步骤1570,当进行更改时,方法1500继续,其中使用通信集线器应用程序来标识客户端(例如,基于内容和/或基于消息中的地址来识别在测试设施中的平台上运行的游戏,诸如控制组中的游戏的子集)。以对各种平台合适的格式来传送消息。在步骤1580,使用游戏引擎在所有的游戏平台或其子集上运行具有测试更改的视频游戏。可以在1540处继续方法1500,以在游戏比赛数据已经被控制组改变并测试之后重复收集数据。在循环处理中可以在1560处进行附加的改变(例如,实时游戏测试及更新/开发)。在步骤1590,诸如当游戏测试会话结束时,结束方法1500。

尽管已经利用一定程度的具体性来描述和阐明了本发明,但应理解的是,仅仅借助于示例进行了本公开,并且本领域的技术人员可以采取对各部分的组合和布置进行众多改变,而不从如在此要求保护的本发明的精神和范围偏离。例如,这里所述的游戏测试方法可以用于测试和开发其他形式的软件和其他产品,其中可以由计算机软件通过通信集线器应用程序向监视系统提供反馈。在这种产品开发环境中,至少与测试会话具有一些重叠地(例如,同时测试者仍可对产品更改进行测试)收集、处理并且显示测试信息。使用软件开发或编辑工具,诸如通过经由通信集线器模块或应用程序来发送具有包括这些改变的内容的编辑消息,来向测试设施(例如,一组运行软件应用程序的计算机或电子设备)传送产品更改。由相同的或几乎相同的控制组来测试具有所实施的更改的更改的产品,并且该结果/数据被发送至用于处理的统计数据收集工具和/或监视站的显示器上。对于更快速地修理软件产品的可用性问题、以及响应于测试者反馈或测试者体验(由测试数据的收集来度量的)而精细地调整产品的属性和设计方面而言,这种循环的实时的处理是有效的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号