专利名称:用于管理游戏系统中的数据的方法和设备的制作方法
技术领域:
本发明涉及一种游戏系统,尤其涉及管理游戏系统中存储在磁盘驱动器中或其它存储设备中的数据。
背景技术:
目前市场上可供的游戏系统能够利用光盘驱动器来播放游戏盘、音乐CD和电影DVD。例如,索尼公司的Playstation2游戏系统可以播放插入到控制台中的光盘中的游戏、音乐和影像节目。这些游戏系统其内部数据存储容量有限。通常,内部数据存储器用来存储系统和配置信息,比如,当地时间、用户偏爱的语言以及其它设置。而其它数据,如所保存的游戏数据和其它与具体游戏相关的数据,一般存储在外接于游戏控制台的存储设备中。例如,插入到手持式游戏控制器中的存储单元存储游戏信息,以便以后由游戏控制台来检索。现有的游戏系统不包含用于存储所保存的游戏和其它信息的内部不可拆卸式硬盘驱动器。
微软公司最近公布了它的XboxTM视频游戏系统,这种游戏系统装有一个增强游戏的硬盘驱动器,并具有便于在线游戏的宽带连接性能。有了这些附加特性,在视频游戏系统中利用硬盘驱动器可以存储大量的数据(例如,来自游戏系统的多个游戏节目和多个用户的所保存的游戏数据)。这种新型的内部存储性能带来了一些新的关于在硬盘驱动器中存储和分离不同类型的数据的问题。再者,还应保护与特定游戏节目有关的数据以免遭受另一个游戏节目或应用程序的无意或有意的破坏。
因此,需要一种改进的数据处理机制,来应用于包含有内部数据存储设备,例如硬盘驱动器的游戏系统中。
发明内容
本发明提供一种游戏系统,它包含有一个用于存储各种数据的硬盘驱动器。这种游戏系统使硬盘驱动器具有一种分级存储体系,以防非法存取硬盘驱动器中所存储的数据。硬盘驱动器被划分成不同的逻辑区,使得每个区都存储专门的一种数据并具有特殊的数据存取策略。游戏系统中执行的每个应用程序都有一个唯一的标识符,并且在某些区内具有一个单独的区域,用于存储与该应用程序有关的数据。为每个应用程序所提供的单独的区域基于该应用程序的唯一的标识符。这种游戏系统还保留有一个最近使用过的昵称表,以便简化用户的昵称登记(例如,某个游戏的高分登记)。
在所描述的实现方式中,该游戏系统包括一个游戏控制台和一个或多个控制器。游戏控制台中装有一个处理器和一个与该处理器耦合的不可拆卸式硬盘驱动器。游戏控制台还可包括一个存储器、一个可与存储光盘通信的便携式媒体驱动器、一个或多个便携式存储单元和宽带连接。在其它实现方式中,硬盘驱动器可用来存储游戏数据、音频数据和视频数据。
存储在硬盘驱动器中的控制台应用程序实现用户界面,以便使用户可与游戏系统进行交互。游戏控制台一旦上电或系统复位就进入控制台应用程序。控制台应用程序还可以完成运行游戏系统所需的各种功能。
图1示出了一个例示性的游戏系统。
图2是游戏系统的框图。
图3示出一种网络游戏系统,在这种系统中,图1的游戏系统通过网络与其它控制台和服务连接。
图4示出了一例示性硬盘驱动器,它包括5个分区。
图5举例说明了存储在硬盘驱动器的两个不同的区中的数据。
图6举例说明了存储在硬盘驱动器的用户数据区中的所保存的游戏数据。
图7是一个将与游戏有关的数据存储在硬盘驱动器的适当的区中的过程的流程图。
图8是一个管理游戏系统的用户所输入的各种昵称的过程的流程图。
图9示出了一个描述一例示性游戏选择菜单的图形用户界面。
图10示出了一个描述一例显示与所保存的游戏有关的信息的图形用户界面。
具体实施例方式
本文所描述的方法和设备提供了一种硬盘分级存储体系,实施这种分级体系可以确保正确地存储数据并可以防止非法存取游戏系统中所存储的数据。在游戏系统中增设硬盘驱动器大大增加了游戏系统中所能存储的数据量。为了管理这一数据,硬盘驱动器的存储空间被划分成不同的区,其中每个区都存储专门的一种数据并具有特殊的数据存取策略。这些数据存取策略判断哪些应用程序被允许存取专门的一种数据。例如,硬盘驱动器可以包括设置区、用户数据区、应用数据区、公用区和控制台应用程序区。
游戏系统中执行的每个应用程序在合适的区内都具有一个单独的区域(比如子目录),用于存储与该应用程序有关的数据。每个应用程序都被局限于查看和存取其自身区域中的数据,从而防止意外破坏与不同的应用程序相关的数据。控制台应用程序由游戏系统来执行,此外,游戏系统还执行其它应用程序(比如,游戏、音乐应用程序和电影应用程序)。控制台应用程序完成运行游戏系统所需的各种功能,比如实现用户界面,完成配置操作,和完成各种管理功能。控制台应用数据和配置设置都存储在硬盘驱动器的一般不能被应用程序(用户界面应用程序和配置应用程序除外)所存取的单独的区中。为了便于登记,该游戏系统还保存最近使用过的昵称表,例如高分表。游戏系统的用户可以选用所存储的昵称,而不是每当启动游戏或每当取得高分都输入相同的名字。
图1示出了一例示性游戏系统100。游戏系统100包括一个游戏控制台102和至多4个控制器,如图中所示的控制器104(1)和104(2)。游戏控制台102装有一个内部硬盘驱动器和一个便携式媒体驱动器106,便携式媒体驱动器可以支持各种便携式存储媒体,该媒体例如是如图中所示的光存储器光盘108。合适的便携式存储媒体包括DVD、CD-ROM、游戏光盘等。
游戏控制台102前面板上有4个插槽110,用于支撑4个控制器,不过,插槽的个数和布局可以改变。电源按钮112和弹出按钮114也配置在游戏控制台102的前面板上。电源按钮112打开游戏控制台的电源,而弹出按钮114可以打开和合上便携式媒体驱动器106的托盒,以便插入和取出存储器光盘108。
游戏控制台102通过A/V接口电缆120与电视机或其它显示器(未示出)连接。电源电缆122用来为游戏控制台供电。游戏控制台102还可以具有宽带连接,如图中线缆或调制解调器连接器124所示,以便于接入网络(如因特网)。
每个控制器104都通过有线或无线接口连接到游戏控制台102。在所示实现方式中,控制器是USB(通用串行总线)兼容的并通过串行电缆130连接到控制台102。控制器104可以配置多种用户交互机械结构中的任何一种。如图1中所示,每个控制器104都配置有两个拇指操纵杆132(1)和132(2)、一个D-垫板(D-pad)134、一些按钮136和两个扳机138。这些机械结构只不过是用来说明用的,图1中所示的那些机械结构还可以用其它已知的游戏机械结构来取代或者添加。
存储单元(MU)140可以插入到控制器104或游戏控制台102中,以提供附加的便携式的存储器。便携式存储单元使得用户可以存储游戏参数,然后带着它们到其它控制台上去玩。例如,用户可以利用某个游戏控制台将一个游戏保存到存储单元140中,然后利用这一所保存的游戏数据将游戏拿到别的游戏控制台上去执行。在所描述的实现方法中,每个控制器都可以容纳两个存储单元140,不过,在其它实现方式中,存储单元也可以多于或少于两个。特定的游戏控制台102可以容纳任意个存储单元140。
游戏系统100可以播放例如游戏、音乐和影像。根据不同的存储提供方式,可以播放来自硬盘驱动器中的或驱动器106中便携式媒体108中的节目、来自在线源的节目或来自存储单元140的节目。游戏系统100所能播放的内容的实例包括1.所播放的来自CD和DVD光盘的、来自硬盘驱动器的或来自在线源的游戏节目。
2.所播放的来自便携式媒体驱动器106中CD的、来自硬盘驱动器中某个文件(例如Windows媒体音频(WMA)格式)的或来自在线流式传输源的数字音乐。
3.所播放的来自便携式媒体驱动器106中DVD光盘的、来自硬盘驱动器中某个文件(例如活动流式传输格式)的或来自在线流式传输源的数字音频/视频。
图2更详细地示出了游戏系统100的功能组成部件。游戏控制台102具有一个中央处理单元(CPU)200和一个便于处理器访问各种存储器的存储器控制器202,这些存储器包括一个快闪ROM(只读存储器)204、一个RAM(随机存取存储器)206、一个硬盘驱动器208以及便携式媒体驱动器106。CPU 200具有一个1级高速缓存器210和一个2级高速缓存器212,以便暂存数据并因此减少存储器存取周期数,从而提高处理速度和吞吐量。
CPU 200、存储器控制器202和各种存储设备是通过一条或多条总线互连的,这种总线包括串行和并行总线、存储器总线、外围总线以及处理器或局域总线,它们采用了多种总线体系结构中的任一种体系结构。举例来说,这些体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线和外围部件互连总线标准(PCI)总线(也称为Mezzanine总线)。
作为一种合适的实现方式,CPU 200、存储器控制器202、ROM204、RAM 206被集成在一个公用模块214上。在这种实现方式中,ROM 204用作一个快闪ROM,它通过PCI(外围部件互连总线标准)总线和ROM总线(这两条总线均未示出)连接到存储器控制器202。RAM 206用作多DDR SDRAM(双数据速率同步动态RAM),它们单独地通过各自的总线(未示出)由存储器控制器202来控制。硬盘驱动器208和便携式媒体驱动器106通过PCI总线和ATA(AT配置)总线216连接到存储器控制器。
3D图形处理单元220和视频编码器222构成一个视频处理管道,用于进行高速和高分辨率图形处理。数据通过数字视频总线(未示出)从图形处理单元220传送到视频编码器222。音频处理单元224和音频编解码器(编码器/解码器)226构成一个相应的音频处理管道,用于高保真和立体声处理。音频数据通过通信链路(未示出)在音频处理单元224与音频编解码器226之间传送。视频和音频处理管道将数据输出到A/V(音频/视频)端口228,以便传输到电视机或其它显示器。在所说明的实现方式中,音频和视频处理部件220-228都被安装在模块214上。
在模块214上还可以安装一个USB主控制器230和一个网络接口232。USB主控制器230通过总线(例如PCI总线)连接到CPU 200和存储器控制器202,并用作外围设备控制器104(1)-104(4)的主机。网络接口232提供了访问网络(例如,因特网、本地网等)的接入口,并且可以是各种各样的有线或无线接口部件中的任何一种,这种接口部件包括以太网卡、调制解调器、蓝牙模块、线缆调制解调器等。
游戏控制台102具有两个双重控制器支持组件240(1)和240(2),其中每个组件都支持两个游戏控制器104(1)-104(4)。前面板I/O组件242支持电源按钮112和弹出按钮114的功能性,以及暴露在游戏控制台外表面的任何LED(发光二极管)或其它指示灯。组件240(1)、240(2)和242通过一个或多个线缆组件244耦合到模块214。
图中示出了8个存储单元140(1)-140(8),它们可以与4个控制器104(1)-104(4)连接,即,每个控制器连接两个存储单元。每个存储单元140都提供附加的可以存储游戏、游戏参数和其它数据的存储量。当存储单元140插入到控制器中时,它就可以被存储器控制器202所访问。此外,一个或多个存储单元140也可以插入到游戏控制台102中并可以被存储器控制器202所访问。
系统电源模块250为游戏系统100的这些部件提供电力。风扇252用于冷却游戏控制台102中的电路系统。
游戏控制台102实现了一种统一的媒体接口模式,这种模式提供了一致的用户界面和导航分级结构,以便使用户可以通过各种娱乐区域。接口模式提供了一致的方式,以便可以存取来自多种不同的媒体类型的内容——游戏数据、音频数据和视频数据——不管插入到便携式媒体驱动器106的是哪种媒体。
为了实现了这种统一的媒体接口模式,将一个控制台用户界面(UI)应用程序260存储到硬盘驱动器208中。当游戏控制台上电时,控制台应用程序260的各个部分都装载到RAM 206和/或高速缓存器210、212中并由CPU 200来执行。当控制台应用程序260导航到游戏控制台上通用的不同媒体类型时,它呈现出一个可提供一致的用户经验技巧的图形用户界面。因此,硬盘驱动器208(以及其中所存储的数据)是初始化过程的一个重要部分。如果硬盘驱动器208工作不正常,那么游戏系统100不可能启动成功。
通过将游戏系统100与电视机或其它显示器连接,该系统就可以作为一个独立的系统来运行。按照这种独立的方式,游戏系统100允许一个或多个玩家玩游戏、看影片或听音乐。然而,如果宽带连接的整体特性可以通过网络接口232而成为可用的,那么,游戏系统100还可以作为更大的网络游戏团体中的参与者被运行。
图3示出了一例示性网络游戏环境300,该游戏环境通过网络302将多个游戏系统100(1),...,100(g)互连。网络302代表各种数据通信网中的任何一种。它可以包括公用部分(如因特网)以及专用部分(如住宅局域网(LAN)),以及公用和专用部分的结合。网络302可以利用各种常规通信媒体(既包括有线媒体又包括无线媒体)中的任意一种或多种来实现。可以采用各种通信协议中的任何一种来通过网络302传送数据,这些协议即包括公用协议又包括专用协议。这些协议的例子有TCP/IP,IPX/SPX,NetBEUI等。
除了游戏系统100之外,通过网络302还可以访问一个或多个在线服务304(1),...,304(s),从而为参与者提供各种服务,比如主控在线游戏、提供可下载的音乐或视频文件、主控游戏比赛和提供流式音频/视频文件,等等。网络游戏环境300还可以包括一个密钥分配中心306,它负责彼此验证各个玩家和/或游戏系统100以及在线服务304。分配中心306将密钥和服务标签分配给合法参与者,于是就可以利用密钥和服务标签作为多个玩家之一参与游戏或购买在线服务304的服务。
网络游戏环境300引进了各个游戏系统100可以使用的另一个存储源——在线存储器。除了便携式存储媒体108、硬盘驱动器208和存储单元140之外,游戏系统100(1)还可以通过网络302存取远程存储单元(如在线服务304(s)中的远程存储器308)中可供使用的数据文件。
图4示出了一例硬盘驱动器400,它包括5个分区。本例中,这5个硬盘驱动器分区是设置区402、用户数据区404、应用数据区406、公用区408和控制台应用程序区410。图4中所示的这些区只是作为一个例子被提供的。在另一些实现方式中,硬盘驱动器可以包括任意多个区。
如下所述,每个区都存储专门的一种数据并具有特殊的数据存取策略,这种策略限定只有那些旨在存取这种数据的应用程序才能进行这种数据存取。这5个区代表硬盘驱动器的逻辑分区,而未必对应于硬盘驱动器的物理划分或物理分区。游戏系统所执行的一个或多个应用程序(例如控制台应用程序)保持和支持硬盘驱动器被划分成多个区的这种逻辑分区。
设置区402用来存储系统状态和游戏系统所用的配置信息。第三者应用程序(比如,游戏应用程序、音乐应用程序和影片应用程序)不得直接访问设置区402。需要设置区402中所存储的数据的应用程序通过API(应用程序接口)调用才能请求这种数据。分配给设置区402的存储空间由控制台应用程序260来管理。设置区数据被存储在文件系统之外,只有使用扇区级输入和输出命令才能被存取。这种配置减小了数据被破坏和对设置数据的不希望的访问的风险。利用检查和来保护设置区402,以确保设置数据不受破坏,必要时,能经受得住整个系统的复位过程。
用户数据区404用来存储游戏系统中的用户数据。用户数据可以包括例如游戏系统的用户所保存的游戏数据或用户所保存的画面文件。用户数据区404中的数据被编排到特定的分级中。应用程序要求与这种分级相符。在一种实现方式中,应用程序必须与这一特定分级相符,该应用程序才能获准在游戏系统中执行。如果应用程序未获准在游戏系统中执行,那么游戏系统将拒绝在游戏系统中执行该应用程序的任何尝试。通常,获准认证过程由游戏系统的厂商来完成。
除了将用户数据存储到硬盘驱动器208的用户数据区404中之外,用户数据还可以被存储到与一个或多个控制器104或游戏控制台102连接的一个或多个存储单元140(图1)中。
应用数据区406用来存储游戏系统所执行的各种应用程序所用的不变数据。应用数据区406中所存储的数据是在执行应用程序期间的不同时刻所形成的。通常,这种数据被存储时用户是不知道的。区406中所存储的数据使得应用程序可以在多个游戏会话期间保留数据,而不要求数据与特定的所保存游戏相应。在一种特定的实现方式中,音乐文件(如WMA文件)被保存在应用数据区中。
应用数据区406中所存储的示例数据包括所更新的玩家花名册、游戏最新资料、新的游戏级别、路上的下坡标志、建筑物或目标的损坏或者应用程序所保持的其它变化。下坡标志和建筑物的损坏是游戏中“环境变化”的一些例子,每当游戏被执行(包括执行所保存的游戏)时都会出现这些变化。每个应用程序在应用数据区406中都有各自的存储区域(例如子目录),用以存储其应用数据。一般而言,只有在应用数据区406中保存了特定数据的应用程序才被允许删除该特定数据。然而,如果游戏系统的用户要求删除与特定应用程序有关的所有数据,那么应用数据区406中的与该特定应用程序相应的数据都将被删除。
在一种实现方式中,用户数据404和应用数据406被存储在硬盘驱动器400的单个分区中。这就允许每个应用程序可以使用该分区所提供的数据存储容量的任何一部分。每个应用程序都使用该分区的总存储容量的一部分。在这种实现方式中,应用程序并不局限于使用该分区的总存储容量的一个特定部分。这种配置由于允许应用程序使用所要求的存储空间,因此可以为应用程序(和应用程序开发者)提供方便。这种配置还可以减少由于限制分配给每个应用程序的存储空间所带来的问题。如果应用程序被局限于某个特定的存储区域,那么,即使别的应用程序设有使用他们各自的整个存储份额,这些应用程序也可能用完存储空间。通过使所有应用程序都共亨某个部分,可以减小某个特定的应用程序没有足够的适于执行的存储空间的可能性。
公用区408用来存储应用程序所需要的任何数据。公用区408可被应用程序随意使用,而游戏系统根本不强行限制应用程序使用该公用区。因此,每个应用程序都能以应用程序开发者所期望的任何方式利用其所指定的公用区408。应用程序可以利用公用区408来高速缓存数据或形成一个虚拟存储空间。公用区408用于临时存储数据。一个特定的应用程序无法确定同一数据能否供应用程序在下次被执行时使用。
在一种实现方式中,在硬盘驱动器中提供了三个不同的公用区408。每个公用区408都有750兆字节的存储空间,并可被不同的应用程序所使用,以便存储不同的数据。当一个应用程序被启动时,游戏系统判断三个公用区408中是否有一个区含有同一应用程序在以前执行该应用程序期间所存储的信息。如果是,那么,将同一公用区408和应用程序以前所存储的数据分配给该应用程序以在当前执行应用程序期间所使用。如果这些公用区408中没有一个公用区含有同一应用程序所存储的信息,那么,系统判断公用区中是否有一个是空闲的。如果是,那么,将该空闲的公用区分配给该应用程序。否则,将具有最陈旧数据的公用区清空(即,删除该公用区中的所有数据),并分配给该应用程序在当前执行应用程序期间所使用。
当应用程序开始使用三个公用区408之一时,给当前所使用的该特定的公用区加上一个时间标记。该时间标记标识使用公用区408的应用程序(例如应用程序名称)以及应用程序访问公用区的时间。这三个公用区408采用最近最少使用(LRU)算法来排定使用期限。如果一个应用程序在请求公用区408,而所有的公用区都含有数据,且其中没有一个区与所请求的应用程序有关,则LRU算法删除具有最早时间标记的公用区中的数据。这种自动处理过程可使用户(和应用程序开发者)免于管理这一临时存储空间。
当应用程序结束时,应用程序可以确定它是要求公用区408中的数据被保存以备将来参考还是要求被删除。如果数据被删除,则公用区将可供别的应用程序使用。如果数据被保存,则数据将可供应用程序下次被执行时使用,除非在下次执行该应用程序之前,LRU算法已确定公用区中所存储的该数据的期限已过时。
控制台应用区410用来存储执行控制台应用程序期间所用的各种数据,比如用户界面数据。其它应用程序不允许存取控制台应用区410中所存储的数据。在一种特定的实现方式中,控制台应用区410被存储在硬盘驱动器400的一个分区中,以减小控制台应用区中所存储的数据受破坏的可能性。
如图4中所示,各种数据被存储在硬盘驱动器400的各个区中。然而,游戏系统100中的其它存储设备可能局限于它们存储的内容。在一种实现方式中,存储单元140局限于存储与一个或多个游戏相应的所保存的游戏数据。由于各种游戏系统的设置和配置数据对每个游戏系统而言都是特有的,因此该数据不必(例如通过便携式存储单元140)分配给其它游戏系统。而是,其它游戏系统应依靠它们自己的系统设置和配置数据(这些数据保存在它们自己的硬盘驱动器或其它内部存储设备中)。因此,当用户请求将游戏或其它应用数据保存到存储单元140中时,存储在存储单元中的数据仅限于稍后重新建立游戏或其它应用程序的状态时所必需的数据。由于限制存储单元140只保存例如所保存游戏数据而不是配置数据,因此,用户可看到的是所保存的游戏数据的简单列表,而不是所保存的游戏数据和用户不需要的其它配置数据的混合列表。
图5举例说明了存储在硬盘驱动器400的两个不同的区(用户数据区404和应用数据区406)中的数据。该磁盘驱动器的每个区都还可以再划分成与一个特定应用程序相应的不同的段或存储区域(例如子目录)。这种再划分确保了与特定应用程序相应的数据不被别的应用程序所存取或修改,从而保持与游戏系统所执行的各应用程序相应的数据的完整性。
在图5的例子中,用户数据区404和应用数据区406存储与多个游戏应用程序(称为“游戏A”、“游戏B”,等等)有关的数据。用户数据区404包括4段,一段对应一个游戏的所保存的数据,这些数据标记为“所保存的游戏A数据502”、“所保存的游戏B数据504”、“所保存的游戏C数据506”和“所保存的游戏N数据508”。一个特定的用户数据区404可以包括任意多个段,其中每段都与一个特定游戏或别的应用程序相应。一个特定的应用程序允许存取与该应用程序相应的数据,而不允许存取或修改与别的应用程序相应的数据。例如,游戏A可以存取存储在段502中的数据。然而,游戏A不允许存取存储在段504、506或508中的任一个段中的数据,因为这些数据与别的其它游戏相应。
应用数据区406包括4段,一段对应一个应用程序的所保存的数据,这些数据标记为“游戏A数据510”、“游戏B数据512”、“游戏C数据514”和“游戏N数据516”。如前面所讨论,应用数据区供应用程序使用,用以存储应用程序所产生的不变数据。一个特定的应用数据区406可以包括任何多个段,其中每段都与一个特定游戏或别的应用程序相应。每个应用程序都局限于存取区406中与该应用程序相应的段中的数据。例如,游戏B可以存取存储在段512中的游戏B的数据,而不允许存取存储在段510、514或516中的任一个段中的数据,因为这些数据与其它的游戏相应。
图6举例说明了存储在硬盘驱动器400的用户数据区404中的所保存的游戏数据502。本例中,所保存的游戏数据502包括三组所保存的游戏数据,这些数据标记为“第一个所保存的游戏602”、“第二个所保存的游戏604”和“第三个所保存的游戏606”。所有这三组所保存的游戏数据602-606与同一游戏应用程序(即游戏A)有关。每组所保存的游戏数据都与游戏控制台的用户所执行的一个不同的“保存游戏”命令相应。例如,每组所保存的游戏数据602-606都可以是在不同的日子所形成的,也可以是当游戏系统的用户达到游戏的新级别时所形成的。所保存的游戏数据602-606允许用户在游戏的同一位置(即同一游戏级别、得分、设置等)重新启动游戏应用程序,因为此时游戏已被保存。一个特定的游戏应用程序可以根据用户请求形成任意多组所保存的游戏数据,以便保存游戏的当前状态。所有与特定游戏(如游戏A)有关的所保存的游戏数据都被存储在同一段(例如“所保存的游戏A数据502”)中,这样就简化了所需的所保存游戏的识别。
下面列出了游戏系统中的硬盘驱动器400中的用于存储数据的几例目录。在游戏系统所用的存储单元140或其它存储设备中,可以用类似的目录结构来存储数据。
ROOT\Udata\0FFFAB12\FFE62\<所保存的游戏文件>
ROOT\Udata\0FFFAB12\F4B1A\<所保存的游戏文件>
ROOT\Tdata\0FFFAB12\<所保存的数据>
上面所标识的前两个目录存储特定游戏应用程序的各种所保存的游戏数据文件。根目录下的“Udata”目录表示硬盘驱动器400的用户数据区404。下一个条目“0FFFAB12”是用户数据区404的子目录,它与某个特定应用程序相应。本例中,“0FFFAB12”表示游戏的名称的散列。每个游戏都会产生一个不同的散列值,使得,每个子目录都是独立的。或者,也可以将一个独立的游戏标识符作为子目录名。
下一个条目“FFE62”和“F4B1A”每个都表示一个特定的所保存的游戏子目录。与每个所保存的游戏有关的各个数据文件都被存储到每个子目录中。每当游戏系统的用户启动一个保存游戏操作时,都形成一个新的子目录。新子目录存储该保存游戏操作所产生的各个所保存的游戏数据。这些条目“FFE62”和“F4B1A”是通过将关于所保存的游戏的各种信息(比如,所保存的游戏的名称、游戏被存储时的日期、游戏被保存时的时间或游戏被保存时的游戏级别)散列所形成的。在一种实现方式中,这些条目“FFE62”和“F4B1A”是通过将所保存的游戏的名称散列所形成的。或者,也可以用合成的日期和时间码来形成这些独立的子目录名。
上面所标识的第三个目录存储与游戏“0FFFAB12”有关的附加数据。根目录下的“Tdata”目录表示硬盘驱动器400的应用数据区406。由于应用数据区406中所存储的数据一般应用于游戏本身,而不是应用于特定的所保存的游戏,因此,“0FFFAB12”下没有子目录。
每当游戏系统执行一个新的应用程序时,在“Udata”和“Tdata”之下将形成一个新的子目录。当一个应用程序被执行时,游戏系统首先检查是否有与该应用程序有关的现存子目录。如果该应用程序已有子目录,那么将这些子目录及其相应数据分配给该应用程序。然而,如果该应用程序没有子目录,那么,控制台应用程序形成适当的子目录供该应用程序使用。
尽管可以从“Udata”和“Tdata”中扩展出许多不同的子目录,然而特定的应用程序只能看到该应用程序的特定子目录下所含的数据和子目录。因此,该应用程序无法看到整个目录结构或识别出与硬盘驱动器中所存储的子目录有关的其它应用程序。数据存取的这些限制防止了一个应用程序有意或无意地破坏与另一个应用程序有关的数据。
在某些情况下,游戏系统可以允许一个应用程序存取与另一个应用程序有关的数据。例如,如果一个应用程序的新版本发布了,那么,它可以产生一个与应用程序的老版本不同的标识符,因此与不同的一组子目录相应。本例中,游戏系统(例如控制台应用程序)可以将应用程序的新版本变换或转移到与该应用程序的老版本相应的子目录中,从而允许应用程序的新版本存取应用程序的老版本所存储的数据。
在另一例子中,可以允许一个特定厂商的应用程序存取与同一厂商的另一个应用程序有关的数据。本例中,厂商负责处理好其应用程序所产生的数据。
图7是一个将与游戏有关的数据存储在硬盘驱动器的适当的区中的过程700的流程图。过程700可以用软件实现成CPU 200所执行的计算机可执行指令,以完成各块中所示的操作。首先,由游戏系统来启动游戏(块702)。游戏可以这样被启动将游戏光盘插入到便携式媒体驱动器106中,(通过可以识别所保存的游戏的用户界面)从硬盘驱动器208中选择一个游戏(即所保存的游戏),从存储单元140中选择一个所保存的游戏,或从在线源中选择一个游戏。
接着,过程700识别与所启动的游戏相应的游戏ID(块704)。游戏系统用游戏ID来区分游戏并保证不同的游戏存取硬盘驱动器208和其它存储设备中的合适的一组数据。在一种实现方式中,游戏ID由游戏系统的厂商来分配,以确保所有游戏ID都是唯一的。在另一种实现方式中,通过创建游戏名称的散列值来得到游戏ID。
在块706中,过程700根据游戏ID形成指针或其它机制来识别硬盘驱动器的适当的区。例如,可以允许特定的游戏访问用户数据区的特定部分和应用数据区的特定部分。这些指针将该应用程序指向用户数据区和应用数据区的适当部分,但不允许访问与别的游戏相应的用户数据区和应用数据区的部分。特定的指针可以识别硬盘驱动器中的特定子目录,如上所述。
然后,过程700判断游戏系统的用户是否已请求了将当前游戏保存在硬盘驱动器中(块708)。如果用户尚未请求保存当前游戏,则继续执行游戏(块710)。如果用户已请求了保存当前游戏,那么,过程将游戏的当前状态作为一组数据保存到硬盘驱动器的用户数据区中(块712)。此外,还可以将其它与游戏有关的数据存储到硬盘驱动器的应用数据区中(块714)。尽管图中示出了在块714中保存其它与游戏有关的数据,然而,该操作动作可以发生在游戏执行过程中的任何时刻。例如,如果汽车在赛车过程中撞到了赛车道上的护墙,那么游戏可以将刹车标记和对护墙的损坏记录到硬盘驱动器的应用数据区中。因此,将来在游戏系统中执行同一游戏时,将显示出相同的刹车标记和对护墙的损坏。
图8是一个管理游戏系统的用户所输入的各种昵称的过程800的流程图。过程800可以用软件实现成CPU 200所执行的计算机可执行指令,以完成各块中所示的操作。昵称通常用来在游戏中用字符来表示名字或者标识用户的高分。首先,由游戏系统来启动游戏(块802)。过程800检索最近使用过的昵称表(块804)。该昵称表可以这样排序当前游戏最近使用过的昵称先显示,而其它游戏最近使用过的昵称在表中后显示。接着,过程向游戏系统的用户显示这一最近使用过的昵称表(块806)。然后,游戏系统的用户便有机会从显示表中选用一个昵称或者建立一个新的昵称,以便在当前游戏中使用。过程800判断用户是从昵称表中选用一个名字还是选择输入一个新的昵称(块808)。如果用户从昵称表中选用一个名字,则过程进至块810,在此使用所选用的昵称来执行游戏。如果用户选择输入一个新的昵称,则过程继续进至块812,在此该过程显示一个屏幕,用于输入新的昵称。在用户输入了新的昵称之后,过程800使用新的昵称来执行游戏,并将新的昵称加到最近使用过的昵称表中(块814)。如果取得了高分(或者任何其它操作要求登记玩家的昵称),那么,所选择的昵称作为缺省名字被自动输入。如果愿意,用户还可以改变缺省名字。
图9示出了一个描述一例游戏选择菜单的图形用户界面900。图形用户界面900是由CPU 200所执行的控制台应用程序260所产生的。游戏选择菜单是这样一个区域,在该区域中,用户可以从他们以前在其游戏系统上玩过的可用游戏应用程序中进行选择。尽管,本例子列出了一些可供使用的游戏,然而,类似的用户界面也可以识别其它类型的应用程序,比如,音频播放器或视频播放器。用户界面900包括一个可供游戏系统使用的游戏表902。游戏是一个应用程序,它是用户所购买的、所借用的或所租用的,并可以在其游戏系统上至少玩一次。图9中,以横向名称或长方格示出了这些游戏。注意,也可以采用其它图形主题(比如书架、玩具盒等)来表示可供使用的游戏。
用户界面900还包括一个用于表示当前选用的游戏名称的图象的球状体904和一个带有关于所选用游戏的信息的文本面板906。在所示例子中,游戏“Starcraft”被加亮,从而出现了球状体904中所示的该游戏“Starcraft”的特征图像和文本面板906中所示的与该游戏有关的信息。游戏开发者可以控制球状体904和文本面板906的内容,因此,该信息随不同的游戏而变化。
所示文字块908(即“n games”)在主图标“Games”旁边,用以表示表中的游戏个数。表902显示了一定个数的游戏(例如8个名称)。当用户购买了其游戏系统后第一次进入游戏集时,表902中没有名称。为了表明这一点,所示文字908示出“0 games”,而文本面板906提供一个短语句,告诉用户将来在控制台上播放的游戏将出现在这一区域中。当用户玩游戏时,它们被加到表902中。当所示文字908指示有多于表902中所示个数的游戏(例如n>8)时,表902中将增加上/下滚动箭头,以指示还有别的名称目前没有在表中显示出来。
如上所述,游戏开发者提供了用于填补球状体904和文本面板906的数据。当用户第一次在游戏系统上玩游戏时,一些数据单元被复制到硬盘驱动器208的应用数据区中,以便供应用程序在将来执行应用程序期间所使用。
用户可以利用拇指操纵杆的上下方向键或者一些其它预定控制装置来移动表902当中的游戏。当用户到达表的顶部或底部时,表902可以换行也可以不换行。选择单元910允许用户利用控制器上的“A”按钮从表902中选择加亮的游戏。后退单元912便于将光标定位返回到用户界面中的前一菜单。可以通过按控制器上的“B”按钮来选择后退单元912,这可以借助单元912中的字母“b”看到。
图10示出了一个描述一例显示与所保存的游戏有关的信息的图形用户界面1000。用户界面1000提供了一个在所选定的存储设备(如硬盘驱动器)上当前可供使用的所有内容数据的图。用户界面1000描述了一个单调表1002,包括存储在所选定的存储设备中的游戏及其相应的所保存的游戏,声迹及其相应的道,和视频图象剪辑。每个文件由横向长方格中排列的小球状体1004来表示。每个球状体都有一个识别内容的图像,比如,一个游戏图像或在游戏被保存之前的最后场景。文件1004有一个相应的编号,该编号代表按块计的所保存的游戏的总容量。
在游戏环境中,文件表1002这样被安排,使得,游戏图处在位于游戏名称(例如“Starcraft”)的名称附近的形球状体1006中。球状体1006是可选择的,并且,一旦选定,就可以进行所选定游戏的所有所保存的游戏的多项选择。每个所保存的游戏也是可选择的,其方法是导航到所需的球状体1004。如前面那样,可以利用拇指操纵杆上的左、右、上、下方向键或者其它装置来进行导航。在一种实现方式中,所保存的游戏球状体1004按最近在每个游戏项目中被保存的方法来分类。
文本面板1008提供了当前所关注的所保存的游戏、音频轨道或视频图象剪辑的更多描述。在该游戏环境中,这一描述可以包括如下信息·所保存的游戏·与所保存的游戏相应的2D图像·所保存的游戏所属的游戏·所保存的游戏名称·在游戏中的位置(例如级别)或当前任务·游戏被保存时的日期和时间
·所保存的游戏的总容量·多个所保存的游戏·代表多个所保存的游戏的一般图像·所有当前所选定的所保存游戏的总容量·游戏名称·与该游戏相应的2D图像·游戏的名称·所保存游戏的总数·按块计的游戏的总容量(所保存的游戏的总数、不变数据等。)在一种实现方式中,游戏开发者提供某种与每一所保存的游戏有关的信息,使得,游戏系统的用户可以容易地识别他们想玩的或想复制到另一个存储设备(例如存储单元140)上的所保存的游戏。特定应用程序在执行保存游戏命令时可以保存的信息的一个例子包括·与所保存的游戏数据相应的游戏名称·被保存时在游戏中的位置的图形表示·被保存时游戏状态的简要描述(比如第3级-城堡入口处)·游戏被保存时的日期和时间在其它实现方式中,根据保存游戏命令,可以保存或多或少的数据。
在一种特定的实现方式中,游戏系统要求游戏开发者在保存游戏时使用描述名。描述名不会是例如“save.001”或“savegame.b”。而是,描述名需要例如一个形成所保存的游戏文件的游戏的标识和某种与游戏的状态和/或游戏被保存时的日期和时间有关的信息。为了提供这种描述名,游戏开发者可以形成任意字符长度的所保存的游戏名称,并且所保存的游戏名称可以使用任何字符(包括符号、标点符号等)。为所保存的游戏提供描述名使得游戏系统的用户可以容易地查出所需的所保存的游戏。
顶部的名称长方格1010提供了摘要信息,比如,存储设备的好听的名字(如“Steve’s Games”),存储设备的以块计的总存储空间,以及存储设备的以块计的剩余存储空间。选择和后退单元支持导航到其它屏幕。
尽管以上具体地针对一些结构特征和/或方案描述了本发明,然而,应当理解,附属权利要求书中规定的本发明未必局限于所述的具体特征或方案。而是,将这些具体特征和方案作为实现本发明的举例形式来公开。
权利要求
1.一种游戏控制台,包括一个处理器;和一个与处理器耦合的不可拆卸式硬盘驱动器,该硬盘驱动器可用来存储与游戏控制台有关的各种数据。
2.如权利要求1所述的游戏控制台,还包括一个与处理器耦合的存储器。
3.如权利要求1所述的游戏控制台,还包括一个与处理器耦合的并可与存储光盘通信的便携式媒体驱动器。
4.如权利要求1所述的游戏控制台,还包括一个存储在硬盘驱动器中的并在处理器中可执行的控制台应用程序,该控制台应用程序用来实现游戏系统的用户界面。
5.如权利要求1所述的游戏控制台,还包括一个与处理器耦合的便携式存储单元。
6.如权利要求1所述的游戏控制台,其中,硬盘驱动器被配置为用来存储游戏数据、音频数据和视频数据。
7.如权利要求1所述的游戏控制台,其中,硬盘驱动器被划分成多个区,每个区都用于存储专门的一种数据。
8.如权利要求1所述的游戏控制台,其中,硬盘驱动器被划分成用户数据区、应用程序区和控制台应用程序区。
9.如权利要求1所述的游戏控制台,其中,硬盘驱动器被划分成设置区、用户数据区、应用程序区、公用区和控制台应用程序区。
10.如权利要求1所述的游戏控制台,其中,硬盘驱动器被配置为用来存储与多个所保存的游戏有关的数据。
11.如权利要求1所述的游戏控制台,其中,硬盘驱动器被配置为用来存储最近使用过的昵称表。
12.如权利要求1所述的游戏控制台,其中,游戏控制台启动进入存储在硬盘驱动器中的控制台应用程序。
13.一种游戏控制台,包括一个处理器;和一个与处理器耦合的硬盘驱动器,该硬盘驱动器被配置为用来启动游戏控制台和存储与游戏控制台有关的数据。
14.如权利要求13所述的游戏控制台,其中,游戏控制台启动进入存储在硬盘驱动器中的控制台应用程序。
15.如权利要求13所述的游戏控制台,其中,硬盘驱动器永久地安装在游戏控制台中。
16.如权利要求13所述的游戏控制台,还包括一个与处理器耦合的存储器。
17.如权利要求13所述的游戏控制台,其中,硬盘驱动器包括一个控制台应用程序,被配置为用来实现游戏系统的用户界面。
18.如权利要求13所述的游戏控制台,还包括存储在硬盘驱动器中的控制台应用程序,该控制台应用程序被配置为用来产生存储在硬盘驱动器中的用户数据表。
19.如权利要求13所述的游戏控制台,其中,硬盘驱动器被配置为用来存储应用数据,使得与一个应用程序有关的数据不可能被其它应用程序所存取。
20.如权利要求13所述的游戏控制台,其中,硬盘驱动器被配置为用来存储所保存的游戏数据,使得与特定游戏有关的所保存的游戏数据和与其它游戏有关的所保存的游戏数据分开存储。
21.如权利要求13所述的游戏控制台,其中,硬盘驱动器被配置为用来将所保存的游戏数据存储在用户数据区中,而将与应用程序有关的数据存储在应用数据区中。
22.一种游戏控制台,包括一个处理器;和一个与处理器耦合的硬盘驱动器,该硬盘驱动器被划分成存储用户数据的第一区和存储应用数据的第二区,其中,与特定应用程序有关的用户数据和与其它应用程序有关的用户数据隔离,并且其中与特定应用程序有关的应用数据和与其它应用程序有关的应用数据隔离。
23.如权利要求22所述的游戏控制台,其中,用户数据包括所保存的游戏数据
24.如权利要求22所述的游戏控制台,其中,应用数据包括将来执行相应的应用程序期间所要使用的数据。
25.如权利要求22所述的游戏控制台,还包括存储在硬盘驱动器中的控制台应用程序,该控制台应用程序被配置为用来产生存储在第一区中的用户数据列表。
26.如权利要求22所述的游戏控制台,其中,磁盘驱动器被配置为用来存储最近使用过的昵称表。
27.一种方法,包括识别与游戏系统中所安装的游戏有关的游戏标识符,其中,该游戏系统包括一个硬盘驱动器;根据游戏标识符,确定硬盘驱动器中与该游戏相关的部分;和防止该游戏存取确定硬盘驱动器中与该游戏无关的部分。
28.如权利要求27所述的方法,还包括响应保存游戏请求,将游戏的当前状态存储到硬盘驱动器中。
29.如权利要求27所述的方法,还包括检索与游戏系统中所安装的游戏有关的所保存的游戏表。
30.如权利要求27所述的方法,还包括检索与游戏系统中所安装的游戏有关的所保存的游戏表;和向游戏系统的用户显示所保存的游戏表。
31.如权利要求27所述的方法,还包括检索与游戏系统中所安装的游戏有关的所保存的游戏表;向游戏系统的用户显示所保存的游戏表;和利用游戏系统的用户所选择的所保存的游戏数据来执行游戏。
32.如权利要求27所述的方法,还包括检索最近使用过的昵称表。
33.如权利要求27所述的方法,还包括检索与游戏系统中所安装的游戏有关的最近使用过的昵称表。
34.如权利要求27所述的方法,其中,根据游戏标识符来确定硬盘驱动器中与该游戏相关的部分的步骤包括确定硬盘驱动器中与该游戏相关的用户数据区的一部分;和确定硬盘驱动器中与该游戏相关的应用数据区的一部分。
35.一个或多个计算机可读媒体,包括一些计算机可执行指令,这些指令被执行时可实现权利要求27中所述的方法。
36.一种方法,包括检索游戏系统中最近使用过的昵称表;向游戏系统的用户显示最近使用过的昵称表;和允许游戏系统的用户从最近使用过的昵称表中选择一个昵称。
37.如权利要求36所述的方法,其中,最近使用过的昵称表与游戏系统中所安装的游戏有关。
38.如权利要求36所述的方法,其中,检索最近使用过的昵称表的步骤包括从游戏系统中的硬盘驱动器中检索最近使用过的昵称表。
39.如权利要求36所述的方法,还包括允许游戏系统的用户建立一个新的昵称。
40.如权利要求36所述的方法,还包括允许游戏系统的用户建立一个新的昵称;和将新的昵称加到最近使用过的昵称表中。
41.如权利要求36所述的方法,还包括所选择的昵称自动进入高分显示中。
42.一个或多个计算机可读媒体,包括一些计算机可执行指令,这些指令被执行时可实现权利要求36中所述的方法。
43.一种方法,包括从集成在游戏控制台中的不可拆卸式硬盘驱动器启动游戏控制台;和将与游戏控制台有关的数据存储到硬盘驱动器中。
44.如权利要求43所述的方法,还包括将最近使用过的昵称表存储到硬盘驱动器中。
45.如权利要求43所述的方法,还包括将与多个所保存的游戏有关的数据保存到硬盘驱动器中。
46.如权利要求43所述的方法,其中,启动游戏控制台的步骤包括启动游戏控制台进入存储在硬盘驱动器中的控制台应用程序。
47.一个或多个计算机可读媒体,包括一些计算机可执行指令,这些指令被执行时可实现权利要求43中所述的方法。
48.一种方法,包括利用集成在游戏控制台中的不可拆卸式硬盘驱动器来将游戏控制台初始化,其中,只有当硬盘驱动器运行时,游戏控制台才能工作;和将与游戏控制台有关的数据存储到硬盘驱动器中。
49.如权利要求48所述的方法,其中,硬盘驱动器中所存储的数据包括与多个所保存的游戏有关的数据。
50.如权利要求48所述的方法,其中,将游戏控制台初始化的步骤包括启动硬盘驱动器中所存储的控制台应用程序。
51.如权利要求48所述的方法,还包括在将游戏控制台初始化后,执行安装在游戏控制台中的游戏应用程序。
52.一个或多个计算机可读媒体,包括一些计算机可执行指令,这些指令被执行时可实现权利要求48中所述的方法。
53.一种方法,包括启动游戏控制台中的一个应用程序;识别游戏控制台中所包含的硬盘驱动器中的多个临时存储区的状态;如果多个临时存储区中至少有一个存储区是空闲的,则将空闲存储区之一分配给该应用程序;而如果多个临时存储区每个都含有数据,则将具有最早时间标记的临时存储区清空,并将已清空的临时存储区分配给该应用程序。
54.如权利要求53所述的方法,其中,该应用程序是一个游戏。
55.如权利要求53所述的方法,还包括如果一个特定的临时存储区含有与该应用程序有关的数据,则将该特定的临时存储区分配给该应用程序。
56.一种方法,包括启动游戏控制台中的一个应用程序;识别游戏控制台中所包含的硬盘驱动器中的多个临时存储区的状态;如果一个特定的临时存储区含有与该应用程序有关的数据,则将该特定的临时存储区分配给该应用程序;如果没有一个临时存储区含有与该应用程序有关的数据,则如果多个临时存储区中至少有一个存储区是空闲的,则将空闲存储区之一分配给该应用程序;而如果多个临时存储区每个都含有数据,则将具有最早时间标记的临时存储区清空,并将已清空的临时存储区分配给该应用程序。
57.一种供游戏控制台使用的计算机可读媒体,包括一些计算机可执行指令,这些指令被执行时可以指示游戏控制台使用户数据与游戏控制台中所包含的硬盘驱动器的一个第一区相关联;使应用数据与硬盘驱动器的一个第二区相关联;允许一个应用程序访问第一区中与该应用程序相应的特定部分;和允许该应用程序访问第二区中与该应用程序相应的特定部分;
58.如权利要求57所述的计算机可读媒体,还包括一些计算机可执行指令,这些指令被执行时可以指示游戏控制台防止该应用程序访问第一区中与该应用程序无关的部分。
59.如权利要求57所述的计算机可读媒体,还包括一些计算机可执行指令,这些指令被执行时可以指示游戏控制台防止该应用程序访问第二区中与该应用程序无关的部分。
60.如权利要求57所述的计算机可读媒体,其中,该应用程序是一个游戏。
全文摘要
本发明提供一种用于管理游戏系统中的数据的方法和设备。其中一种游戏系统包含有一个用于存储应用程序和其它数据的硬盘驱动器。硬盘驱动器具有多个用于存储各种数据的区。该游戏系统中所执行的每个应用程序在硬盘驱动器上都有一个相应的存储区。在游戏系统中执行的控制台应用程序可以防止一个特定的应用程序存取硬盘驱动器中与该特定应用程序无关的区域中的数据。这种游戏系统还保留有一个最近使用过的昵称表,以便简化游戏系统的用户的昵称登记。
文档编号A63F13/10GK1374590SQ0210683
公开日2002年10月16日 申请日期2002年3月5日 优先权日2001年3月9日
发明者约汉·马库斯·兰德尔·怀藤, 克里斯托弗·M·皮里奇 申请人:微软公司