CN117136092A - 用于由传统游戏生成元游戏的系统和方法 - Google Patents

用于由传统游戏生成元游戏的系统和方法 Download PDF

Info

Publication number
CN117136092A
CN117136092A CN202280026930.7A CN202280026930A CN117136092A CN 117136092 A CN117136092 A CN 117136092A CN 202280026930 A CN202280026930 A CN 202280026930A CN 117136092 A CN117136092 A CN 117136092A
Authority
CN
China
Prior art keywords
game
challenge
user account
block
user input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280026930.7A
Other languages
English (en)
Inventor
G·威辛
D·撒奇
E·科尔维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Publication of CN117136092A publication Critical patent/CN117136092A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/46Computing the game score
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/61Score computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)
  • Peptides Or Proteins (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

描述了一种用于生成元游戏的方法。所述方法包括在玩传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入。所述第一挑战是由所述传统游戏的第一多个基本块创建的。所述方法还包括记录所述第一挑战的至少一部分;以及在所述玩所述传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入。所述第二挑战是由所述传统游戏的第二多个基本块创建的。所述方法包括:记录所述第二挑战的至少一部分;确定是否经由所述第一用户账户接收到请求创建所述元游戏的第三用户输入;以及在确定接收到所述第三用户输入之后由所述第一挑战和所述第二挑战生成所述元游戏。

Description

用于由传统游戏生成元游戏的系统和方法
技术领域
本公开涉及用于从传统游戏生成元游戏的系统和方法。
背景技术
随着电子游戏和网络技术变得更加先进,游戏的复杂性已经相应增加。因此,可能会有更复杂的故事情节、玩游戏目标、使命和任务、与玩游戏化身相关联的能力以及评分。评分可能以各种方式发生并且经过加权,并且同样可按照各种类别或以个人或团队为基础来确定。
前述问题的重要性只会随着电子游戏的复杂性增加而增加。因此,一些玩家可能希望玩不太复杂的较老的游戏。
本发明的实施方案正是在这种背景下应运而生。
发明内容
本公开的实施方案提供用于从传统游戏生成元游戏的系统和方法。
在一个实施方案中,描述了一种用于促进玩传统游戏的方法。所述方法包括:在玩传统游戏期间接收用户输入;确定用于服务于所述用户输入的一个或多个代码块是否被缓存;以及在确定所述一个或多个代码块未被缓存之后访问传统游戏代码的一个或多个指令。所述方法还包括:对来自所述传统游戏代码的所述一个或多个指令的所述一个或多个代码块进行编译;缓存所述一个或多个代码块;以及执行所述一个或多个代码块以显示虚拟环境。
在一个实施方案中,描述了一种用于促进玩传统游戏的计算装置。所述计算装置包括处理器,所述处理器被配置为在玩传统游戏期间接收用户输入。所述计算装置还包括耦合到所述处理器的缓存和耦合到所述处理器的存储器装置。所述处理器确定用于服务于用户输入的一个或多个代码块是否存储在所述缓存中。所述处理器在确定所述一个或多个代码块未存储在所述缓存中之后从所述存储器装置访问传统游戏代码的一个或多个指令。而且,所述处理器对来自所述传统游戏代码的所述一个或多个指令的所述一个或多个代码块进行编译。所述处理器将所述一个或多个代码块存储在所述缓存中并且执行所述一个或多个代码块以显示虚拟环境。
在一个实施方案中,描述了一种方法。所述方法包括从传统游戏代码的一个或多个指令生成第一验证结果。所述传统游戏代码的所述一个或多个指令与一个或多个代码块相关联。所述方法还包括:检查与所述一个或多个指令相关联的一个或多个存储器地址以确定所述一个或多个代码块是否被标记为无效。所述方法包括:确定是否将执行所述一个或多个代码块;以及在确定将执行所述一个或多个代码块之后,确定所述一个或多个代码块是否被标记为无效。所述方法包括:检查所述一个或多个存储器地址以从所述一个或多个指令生成第二验证结果;将第一验证结果与第二验证结果进行比较以确定所述一个或多个代码块是否无效;以及在确定所述一个或多个代码块无效时对与所述一个或多个指令相关联的一个或多个附加的代码块进行重新编译。所述方法包括执行所述一个或多个附加的代码块以显示虚拟环境。
在一个实施方案中,描述了一种用于生成元游戏的方法。所述方法包括在玩一个或多个传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入。所述第一挑战是由所述一个或多个传统游戏的第一多个基本块创建的。所述方法还包括记录所述第一挑战的至少一部分;以及在玩所述一个或多个传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入。所述第二挑战是由所述一个或多个传统游戏的第二多个基本块创建的。从所述一个或多个传统游戏的第一多个指令编译所述第一多个基本块并且从所述一个或多个传统游戏的第二多个指令编译所述第二多个基本块,以使得能够在更新后的机器上玩所述一个或多个传统游戏。所述方法包括记录所述第二挑战的至少一部分。所述方法还包括:确定是否经由所述第一用户账户接收到请求创建所述元游戏的第三用户输入;以及在确定接收到所述第三用户输入之后由所述第一挑战和所述第二挑战生成所述元游戏。
在一个实施方案中,描述了一种包含用于生成元游戏的方法的程序指令的非暂时性计算机可读介质。计算机系统的一个或多个处理器对所述程序指令的执行致使所述一个或多个处理器执行所述方法的多个操作。
在一个实施方案中,描述了一种用于生成元游戏的计算机系统。所述计算机系统包括处理器。所述处理器在玩一个或多个传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入。所述第一挑战是由所述一个或多个传统游戏的第一多个基本块创建的。所述处理器记录所述第一挑战的至少一部分。所述处理器还在玩所述一个或多个传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入。所述第二挑战是由所述一个或多个传统游戏的第二多个基本块创建的。从所述一个或多个传统游戏的第一多个指令编译所述第一多个基本块并且从所述一个或多个传统游戏的第二多个指令编译所述第二多个基本块,以使得能够在更新后的机器上玩所述一个或多个传统游戏。所述处理器记录所述第二挑战的至少一部分。所述处理器还确定是否经由所述第一用户账户接收到请求玩所述元游戏的第三用户输入;以及在确定接收到所述第三用户输入之后由所述第一挑战和所述第二挑战生成所述元游戏。存储器装置耦合到处理器。
本文描述的系统和方法的一些优点包括:允许传统代码的功能性由更新后的机器执行。在不进行转换的情况下,由于安全问题,更新后的机器无法执行传统代码的功能性。例如,没有权限从更新后的机器执行传统代码并将在执行传统代码时生成的数据写入更新后的机器中的寄存器。因此,通过提供转换,促进了更新后的机器执行传统代码的功能性。
本文描述的系统和方法的其他优点包括节省执行时间。作为示例,将传统代码的两个或更多个指令(诸如例程和子例程或两个类似指令)组合成更新代码的一个基本块。因此,与执行传统代码相比,更新代码的执行速度更快。
本文描述的系统和方法的额外优点包括:在确定更新代码的一个或多个基本块无效之后重新编译更新代码的一个或多个额外的基本块。例如,当一个或多个基本块被标记为无效时,确定一个或多个基本块是否实际上是无效的。一旦确定是,则编译并执行一个或多个额外的基本块,而不是执行所述一个或多个基本块。所述一个或多个额外的基本块对应于所述一个或多个基本块所对应的相同游戏。
本文描述的系统和方法的其他优点包括:不需要检查所有基本块的无效性。例如,仅对在编译基本块后被标记为无效的那些基本块进行有效性检查。这减少了从一个或多个基本块显示虚拟环境的时延。而且,不需要用于检查所有基本块的无效性的处理能力。
而且,本文描述的系统和方法的优点包括在已经编译了游戏的更新代码时节省处理时间和处理能力。一旦在服务器处或游戏控制台处生成了更新代码,就不需要重新编译所述更新代码。而是,可将更新代码从服务器或游戏控制台传递到另一个游戏控制台。因此,节省了在另一游戏控制台处重新生成更新代码的处理时间和处理能力。
通过结合附图进行的以下详细描述,本公开的其他方面将变得显而易见,以下详细描述举例说明本公开中描述的实施方案的原理。
附图说明
通过参考结合附图进行的以下描述来最佳地理解本公开的各种实施方案,其中:
图1是用以说明用于生成更新代码的基本块的系统的实施方案的框图。
图2是用以说明用于编译和执行游戏代码的基本块的方法的实施方案的流程图。
图3是用以说明用于编译和执行基本块的系统的实施方案的框图。
图4A是用以说明在游戏控制台内编译基本块的系统的实施方案的图。
图4B是用以说明在服务器系统内编译基本块的系统的实施方案的图。
图5A是用以说明基本块的实施方案的图。
图5B是用以说明由基本块编译器执行的编译操作的实施方案的图。
图6A是用以说明仿真处理器系统的部件的系统的实施方案的图。
图6B是用以说明用于编译和执行基本块的方法的实施方案的流程图。
图6C是用以说明针对不同的用户输入动态地编译不同的基本块的系统的实施方案的图。
图7A是用以说明从存储器装置删除仿真处理单元(PU)代码的系统的实施方案的图。
图7B是用以说明用于从存储器装置删除仿真PU代码的方法的实施方案的流程图。
图8A是用以说明对基本块的验证的仿真处理器系统的实施方案的图。
图8B是用以说明由图8A的仿真处理器系统执行的验证操作的方法的实施方案的流程图。
图8C是图8B的方法的流程图的接续部分。
图9A是用以说明传统机器的实施方案的图。
图9B是用以说明更新后的机器的实施方案的图。
图10A是用以说明通过基本块编译器将多个基本块组合成一个基本块的系统的实施方案的图。
图10B是用以说明对基本块中的一者或多者的修改的系统的实施方案的图。
图10C是用以说明基于子例程而创建的基本块与基于调用所述子例程的仿真PU代码指令而生成的基本块的组合的系统的实施方案的图。
图10D是用以说明在两个基本块之间插入基本块的系统的实施方案的图。
图10E是用以说明按照基本块的执行顺序的切换的系统的实施方案的图。
图11A是用以说明使用存储在基本块n中的循环数的计数的方法的实施方案的流程图。
图11B是图11A的方法的流程图的接续部分。
图12是用以说明将基本块从第一客户端装置传递到第二客户端装置的系统的实施方案的图。
图13是用以说明从在执行多组基本块1到n之后玩的一个或多个迷你游戏(诸如挑战)生成元游戏的系统的实施方案的图。
图14A是用以说明第一挑战的示例的第一显示装置的实施方案的图。
图14B是用以说明插入在传统游戏的第一游戏关卡的基本块1到n中的任何两者之间的钩子的图。
图14C是用以说明第二挑战的示例的第一显示装置的实施方案的图。
图14D是用以说明插入在传统游戏的第二游戏关卡的基本块1到n中的任何两者之间的钩子的图。
图15A是系统的实施方案的图。
图15B是用以说明用户经由用户账户选择挑战的执行顺序的第一显示装置的图。
图16A是用以说明生成元游戏的方法的实施方案的流程图。
图16B是用以说明用于将第一挑战的一个或多个基本块与第二挑战的基本块中的一者或多者进行拼接的图16A的方法的图16A的流程图的接续部分。
图16C是用以说明在元游戏内添加领先者计分板并且将奖品赋予元游戏的图16B的流程图的接续部分。
图16D是图16C的流程图的接续部分。
图16E是图16D的流程图的接续部分。
图17是用以说明在第二显示装置上显示幻影的情况下的元游戏的实施方案的图。
图18A是在第一显示装置上显示的领先者计分板的实施方案的图。
图18B是在第二显示装置上显示的领先者计分板的实施方案的图。
图19是用以说明指示用户已经在玩元游戏之后赢得奖品的通知的第二显示装置的实施方案的图。
图20是在概念上说明根据本公开的实现方式的经过执行以用于将云视频游戏流式传输到客户端装置的各种操作的流程图。
图21是用于与客户端装置的显示装置介接并且能够经由计算机网络与游戏主机系统通信的兼容的游戏控制台的实施方案的框图。
图22是用以说明头戴式显示器(HMD)的部件的图。
图23说明信息服务提供者(INSP)架构的实施方案。
具体实施方式
描述了用于从传统游戏生成元游戏的系统和方法。应注意,在没有一些或所有这些特定细节的情况下实践本公开的各种实施方案。在其他例子中,未详细描述众所周知的过程操作,以便不会没有必要地使本公开的各种实施方案混淆不清。
图1是用以说明用于生成更新代码的基本块1到n的系统100的实施方案的框图,其中n是正整数。系统100包括缓存102、基本块编译器104和具有游戏名称GN的传统游戏N的仿真处理单元(PU)代码106,其中N是正整数。作为示例,如本文所使用的缓存是存储数据的硬件或软件部件,使得可更快地服务于对数据的未来请求。当可在缓存中找到请求的数据时,发生缓存命中,而当无法找到请求的数据时,发生缓存未命中。通过从缓存读取数据来服务于缓存命中,这比重新计算结果或从较慢的数据存储装置(诸如存储器装置)读取更快,因此,可从缓存服务的请求越多,系统执行地越快。为了说明,缓存是一组寄存器,与主存储器装置相比,访问缓存可快诸如10倍到100倍。
作为示例,缓存具有比主存储器装置更少数目的存储器地址。在所述示例中,处理器首先确定在操作中使用的数据是否存储在缓存中的存储器地址处,并且如果否,则处理器访问主存储器装置中的存储器地址以寻找所述数据。
作为示例,如本文所使用的基本块编译器是将仿真PU代码106代码转换成游戏代码GCN的计算机程序,游戏代码GCN是更新代码的示例。游戏代码GCN代表传统游戏N的功能性。计算机程序由仿真处理器系统的一个或多个处理器执行。游戏代码GCN在本文中有时被称为中间代码。作为示例,中间代码既不是源代码也不是机器代码。为了说明,中间代码包括不特定于更新后的机器的中央处理单元(CPU)的架构或图形处理单元(GPU)的架构的基本块,下文提供了其示例。在图解中,中间代码包括可由更新后的机器的CPU或GPU执行的基本块,所述更新后的机器的示例包括Sony PlayStationTM 4(PS4TM)或Sony PlayStationTM5(PS5TM)或桌上型计算机或膝上型计算机或智能电话或智能电视。作为示例,源代码是使用人类可读的编程语言编写的,所述编程语言可以是纯文本。作为示例,如本文所使用的基本块编译器是使用硬件或软件或其组合来实施的。为了说明,基本块编译器的功能性是使用控制器或可编程逻辑装置(PLD)或专用集成电路(ASIC)实施的。
如本文使用,控制器的示例包括处理器和存储器装置。处理器耦合到存储器装置。如本文所使用,作为示例,处理器是微处理器,或CPU,或GPU,或微控制器,或ASIC,或PLD。如本文使用,存储器装置的示例包括随机存取存储器(RAM)和只读存储器(ROM)。为了说明,存储器装置是闪存装置,或硬盘,或固态存储装置,或独立磁盘冗余阵列(RAID),或其组合。
仿真PU代码106的示例是引导传统机器的处理器(诸如CPU或GPU)执行操作的机器代码。例如,仿真PU代码106包括指示传统机器的CPU执行特定操作的指令序列,所述特定操作诸如对存储在CPU的寄存器内的数据的加载、存储、转移或算术逻辑单元(ALU)操作。作为另一示例,仿真PU代码106是包括一连串的一和零的二进制代码。作为另一示例,仿真PU代码106包括指示传统机器的GPU执行特定操作的指令序列,所述特定操作诸如对存储在GPU的寄存器内的数据的加载、存储、转移或ALU操作。传统机器的GPU对虚拟对象执行操作以向所述虚拟对象指派图形参数,诸如色彩,或强度,或阴影,或纹理或它们的组合。
仿真PU代码106对于传统机器的CPU或GPU的架构是特定的或唯一的。例如,仿真PU代码106不能由更新后的机器的CPU或GPU执行。作为另一示例,能够在Sony PlayStationTM1(PS1)上执行的仿真PU 106无法在Sony PlayStationTM2(PS2)上执行,并且反之亦然。
作为示例,仿真PU代码106由传统机器的处理器执行以执行传统游戏N中的操作。为了说明,执行仿真PU代码106以在诸如PS1TM或PS2TM的传统机器上玩传统游戏。传统游戏的示例包括诸如WarhawkTM、Tango Dance FeverTM、Castlevania ChroniclesTM、PacmanTM、Resident Evil 2TM和Streetfighter Alpha 3TM的视频游戏。
基本块编译器104访问用于传统游戏N的仿真PU代码106并将仿真PU代码106转换成一个或多个基本块,诸如基本块1到n。作为示例,每个基本块1到n具有开始标识符和结束标识符以将基本块彼此区分开来。基本块编译器104将基本块1到n存储在缓存102中。当执行基本块1到n时,仿真传统游戏N。
图2是用以说明用于编译和分派游戏代码GCN的基本块的方法200的实施方案的流程图。方法200由更新后的机器的一个或多个处理器执行。方法200包括操作202:确定是否存在缓存命中,例如,基本块是否存储在缓存102中。例如,当接收到在玩传统游戏期间的用户输入时执行或触发操作202。为了说明,接收用户输入以改变传统游戏N的虚拟对象的位置或取向或其组合。在所述说明中,当确定接收到用户输入之后,确定基本块(诸如基本块1到n中的一者)是否存储在缓存102(图1)中。在所述说明中,将执行基本块以改变虚拟对象的位置或取向或其组合。
作为另一说明,当接收到改变传统游戏的虚拟对象的参数(诸如外观和感觉)的用户输入时执行操作202。在所述说明中,在确定接收到用户输入之后,确定基本块(诸如基本块1到n中的一者)是否存储在缓存102中。在所述说明中,将执行基本块以改变虚拟对象的参数。
响应于确定基本块被缓存,在方法200的操作204中,分派基本块。例如,在操作204中执行或运行基本块。为了说明,通过更新后的机器的CPU运行基本块以将虚拟对象从一个位置移动到另一个位置或从一个取向移动到另一取向或它们的组合。作为另一说明,通过更新后的机器的GPU执行基本块以将所述参数指派给虚拟对象的一部分。虚拟对象的一部分的示例包括虚拟对象的像素或虚拟对象的三角形部分或虚拟对象的预定义形状的一部分。为了说明,将虚拟对象划分为预定数目的像素,并且向每个像素指派参数值。
响应于确定基本块未被缓存,在方法200中执行编译基本块的操作206。通过基本块编译器104(图1)执行操作206。例如,基本块编译器104解析传统游戏N的仿真PU代码106(图1)以识别仿真PU代码指令,所述仿真PU代码指令包括用于在操作202之前、在玩传统游戏期间服务于接收到的用户输入的功能。在操作202之前接收到的用户输入触发操作202。为了说明,基本块编译器104遍历仿真PU代码106的每个仿真代码PU指令,以确定仿真代码PU代码指令是否包括用以满足(诸如生成响应)在玩传统游戏期间收到的用户输入的操作,诸如功能。在所述说明中,一旦识别出功能,基本块编译器104便转换仿真代码PU代码指令以生成基本块。在所述说明中,响应于在操作202之前接收到的用户输入,传统游戏的不需要服务于用户输入的其他仿真代码PU代码指令不被基本块编译器104编译成基本块。
在方法200的操作208中,通过基本块编译器104将在操作206中生成的基本块存储在缓存102中。然后在操作204中执行被缓存的基本块以服务于在操作202之前接收的用户输入。
在一个实施方案中,通过服务器系统的一个或多个处理器执行方法200。作为示例,服务器系统包括更新后的机器作为服务器。为了说明,每个服务器刀片是PS4TM或PS5TM
在一个实施方案中,直到接收到用户输入才执行方法200。例如,直到接收到用户输入才确定基本块(诸如基本块1到n中的一者)是否存储在缓存102中,才编译基本块,并且才执行基本块。
在一个实施方案中,基本块编译器104响应于在玩传统游戏N期间的第一用户输入而编译基本块1到n中的一者或多者,并且响应于在玩传统游戏N期间的第二用户输入而编译基本块1到n中剩余的一者或多者。为了说明,基本块编译器104生成基本块1和2以服务于第一用户输入,并且生成基本块3到7以服务于第二用户输入。在第一用户输入之后接收第二用户输入。
图3是用以说明用于编译和分派诸如基本块1到n的基本块的系统304的实施方案的框图。系统300包括基本块编译器104、缓存102和块分派器302。作为示例,块分派器302是执行基本块1到n中的一者或多者的操作以服务于用户输入的硬件或软件或其组合。为了说明,块分派器302是PLD或ASIC或控制器。作为另一说明,块分派器302是计算机软件。作为示例,块分派器302是更新后的机器的GPU或CPU。
基本块编译器104对仿真PU代码106(图1)的一部分(诸如操作代码(操作码))进行解码,并将所述部分转译成用于更新后的机器的处理单元的中间表示。例如,基本块编译器104解析仿真PU代码106的CPU代码的一部分,诸如一个或多个指令,以确定所述CPU代码的所述部分是否包括服务于用户输入的功能性。在确定是之后,基本块编译器104将所述CPU代码的所述部分转译成一个或多个基本块,诸如基本块1到n。作为另一示例,基本块编译器104解析仿真PU代码106的GPU代码的一部分,诸如一个或多个指令,以确定所述GPU代码的所述部分是否包括服务于用户输入的功能性。在确定是之后,基本块编译器104将所述GPU代码的所述部分转译成一个或多个基本块,诸如基本块1到n。
而且,基本块编译器104估计从仿真PU代码106的所述部分生成的每个基本块的执行循环数以生成估计计数。例如,基本块编译器104确定基本块1包括跳转操作并且跳转操作要花费预定量的时间。基本块编译器104估计基本块1的跳转操作要花费所述预定量的时间。块编译器104将所述估计计数存储在缓存102中。例如,块编译器104将所述估计计数存储在针对其估计循环数的基本块n中。
一旦所述基本块被编译,它们就被存储在缓存102中以实现快速查找。例如,当在接收到响应于其而编译基本块的用户输入之后接收到另一个用户输入并且可使用相同的基本块来服务于其他用户输入时,可从缓存102快速访问所述基本块而不需要重新生成。
此外,存储在缓存102中的基本块中的一者或多者可在被编译后被标记为无效。标记为无效的基本块中的一者或多者稍后在基本块的运行时期间被验证或无效。当使所述基本块中的一者或多者无效时,编译一个或多个额外的基本块。对一个或多个额外的基本块的编译在本文中有时被称为对一个或多个基本块的重新编译。
一个或多个额外的基本块中的每一者都具有与一个或多个基本块1到n的结构相同的结构。例如,一个或多个额外的基本块中的每一者都具有源寄存器地址、目的地寄存器地址和操作。作为另一示例,一个或多个额外的基本块中的每一者都具有源寄存器地址、目的地寄存器地址、操作以及额外的基本块的操作的执行循环数。在所述示例中,所述一个或多个额外的基本块中的一些基本块包括无效标记。作为又一示例,一个或多个额外的基本块中的每一者都具有源寄存器地址、目的地寄存器地址、操作以及额外的基本块的操作的执行循环数。应注意,额外的代码块中的每一者是以与基本块1到n中的每一者相同的方式执行。
块分派器302基于用户输入而执行或运行基本块1到n中的一者或多者。例如,块分派器302执行基本块1和2以服务于第一用户输入,并且响应于第二用户输入而执行基本块3到7。作为示例,块分派器302包括时钟源,诸如数字时钟振荡器或时钟发生器,所述时钟源基于用户输入而对用于执行基本块1到n中的一者或多者的循环数进行计数,以生成实际计数。块分派器302将实际计数发送到块编译器104以使用所述实际计数更新估计计数。例如,所述实际计数存储在针对其计算实际计数的基本块n中。为了说明,实际计数存储在指派给基本块n的缓存102的一个或多个存储器寄存器中。
在一个实施方案中,基本块编译器104不估计任何基本块的执行循环数。在这个实施方案中,不存在用实际计数替换估计计数。而是,在所述实施方案中,通过块编译器104将实际计数存储在针对其确定实际计数的基本块n中。
图4A是用以说明在游戏控制台402内编译基本块1到n的系统400的实施方案的图。系统400包括游戏控制台402、服务器系统404、计算机网络408和显示装置410。服务器系统404包括一个或多个服务器。作为示例,服务器系统404位于数据中心的外壳内。服务器系统404包括存储器装置412,其存储仿真PU代码,诸如仿真PU代码104。例如,存储器装置412存储游戏代码1(gc1)、游戏代码2(gc2)等,直到游戏代码N(gcN)。游戏代码gcN是仿真PU代码106(图1)的示例。每个游戏代码1到N都是传统游戏的传统代码。为了说明,游戏代码gc1是用于玩第一传统游戏的机器代码,并且游戏代码gc2是用于玩第二传统游戏的机器代码。所述第二传统游戏不同于所述第一传统游戏。应注意,作为示例,存储器装置412是传统机器的存储器装置。
作为示例,游戏代码gc1到gcN都不能在更新后的机器中执行,并且可在传统机器中执行。为了说明,更新后的机器的CPU或操作系统不能支持执行游戏代码gc1到gcN。另一方面,传统机器的CPU或操作系统支持执行游戏代码gc1到gcN。如本文使用,计算机网络的示例包括诸如互联网的广域网(WAN),或者诸如内联网的局域网(LAN),或其组合。
游戏控制台402是更新后的机器的示例。例如,游戏控制台402是PS4TM或PS5TM。显示装置410的示例包括电视、智能电视和计算机监视器。为了说明,显示装置410是液晶显示器(LCD)装置、或发光二极管(LED)显示装置,或有机发光二极管(OLED)显示装置。
系统400还包括手持式控制器414,其握在用户1的一只手或两只手中。如本文使用的手持式控制器的示例包括具有按钮的控制器、来自SonyTM Corporation的MoveTM控制器,和枪形控制器。手持式控制器的按钮的示例包括操纵杆、用于在显示屏幕410上向上、向下、向左或向右移动虚拟对象的按钮,以及用于选择具有游戏名称GN的传统游戏N的各种特征的其他按钮。
游戏控制台402包括存储器装置406和仿真处理器系统409。作为示例,如本文使用的处理器系统包括彼此耦合的一个或多个处理器。仿真处理器系统409耦合到存储器装置406。仿真处理器系统409包括基本块编译器104和缓存102。基本块编译器104耦合到缓存102。
游戏控制台402经由诸如高清媒体接口(HDMI)缆线的有线通信介质或无线连接耦合到显示装置410。如本文使用,无线连接的示例包括Wi-FiTM连接和BluetoothTM连接。而且,手持式控制器414经由有线连接或无线连接耦合到游戏控制台402。如本文使用,有线连接的示例包括串行传递缆线、并行传递缆线和通用串行总线(USB)缆线。
客户端装置的示例包括手持式控制器、游戏控制台与显示装置的组合。客户端装置的另一示例包括手持式控制器与显示装置的组合。
当用户识别(ID)和口令被服务器系统404认证时,用户1登录到他/她的用户账户。由服务器系统1向用户1指派用户ID1,诸如用户名。一旦用户1登录到他的/她的用户账户,用户1就可访问多个游戏名称,诸如游戏名称G1、游戏名称Ga、游戏名称G2等,直到游戏名称GN。游戏名称G1、G2等直到游戏名称GN是传统游戏的名称的示例。游戏名称Ga是并非传统游戏的游戏的名称。而是,游戏名称Ga属于当前游戏,诸如不能在传统机器中玩的FortniteTM
在登录到他的/她的用户账户之后,用户1选择手持式控制器414上的一个或多个按钮来选择游戏名称GN来玩传统游戏。一旦用户1选择了游戏名称GN,便将指示所述选择的用户输入418从手持式控制器414经由游戏控制台402和计算机网络408发送到服务器系统404。作为示例,用户输入是输入信号。在接收到指示对游戏名称GN的选择的用户输入418之后,服务器系统404基于用户输入418而识别游戏代码gcN。例如,服务器系统404识别出游戏代码gcN具有与游戏名称GN相同的游戏名称,在用户输入418中指示其选择。
服务器系统404经由计算机网络408将游戏代码gcN发送到游戏控制台402。在接收到游戏代码gcN之后,仿真处理器系统409将游戏代码gcN存储在游戏控制台402的存储器装置406中。
当在玩具有游戏代码gcN的传统游戏N期间经由无线连接从手持式控制器414接收到用户输入420时,仿真处理器系统409执行基本块编译器104以从存储在存储器装置406中的游戏代码gcN的一部分生成游戏代码GCN的一部分。基于用户输入420而生成游戏代码GCN的部分。例如,当用户输入420包括在玩传统游戏N期间将WarHawkTM战斗机从位置P1移动到位置P2的请求时,基本块编译器104解析游戏代码gcN以识别从位置P1计算位置P2的指令。基本块编译器104将所述指令转换为游戏代码GCN的基本块,并且然后执行所述基本块以将WarHawkTM战斗机的位置从P1改变为P2。在所述示例中,由仿真处理器系统409的GPU执行游戏代码GCN的基本块以生成一个或多个图像帧422。为了说明,所述一个或多个图像帧422显示在显示装置410上以显示WarHawkTM战斗机位于位置P2处的虚拟环境。以此方式,游戏代码GCN的大部分或全部由基本块编译器104编译并存储在缓存102中以供执行。作为示例,诸如虚拟场景的虚拟环境包括一个或多个虚拟现实(VR)图像或一个或多个增强现实(AR)图像。
在一个实施方案中,服务器系统404与游戏控制台402之间的数据通信是经由网络通信协议进行,所述网络通信协议诸如基于互联网协议的传输控制协议(TCP/IP)。例如,服务器系统404包括网络接口控制器以将数据转换为分组。如本文使用,网络接口控制器的示例包括网络接口卡(NIC)和网络适配器。服务器系统404的网络接口控制器耦合到存储器装置412以从存储器装置412接收数据。在从存储器装置412接收到数据后,服务器系统404的网络接口控制器通过将网络通信协议应用于数据而将数据嵌入一个或多个分组中。所述一个或多个分组经由计算机网络408从服务器系统404的网络接口控制器被传递到游戏控制台402。游戏控制台402包括网络接口控制器,所述网络接口控制器通过应用网络通信协议而从所述一个或多个分组中提取数据。游戏控制台402的网络接口控制器耦合到仿真处理器系统409。游戏控制台402的网络接口控制器将从计算机网络408接收的数据提供给仿真处理器系统409。此外,游戏控制台402的网络接口控制器从仿真处理器系统409接收数据,并通过应用网络通信协议将数据嵌入一个或多个分组内,并且经由计算机网络408将一个或多个分组发送到服务器系统404。服务器系统404的网络接口控制器将网络通信协议应用于从计算机网络408接收的一个或多个分组,以从所述一个或多个分组中提取数据并将所述数据发送到存储器装置412进行存储。
在一个实施方案中,作为计算机网络408的补充或代替,使用蜂窝网络在服务器系统404与游戏控制台402之间传送数据。例如,使用无线技术促进服务器系统404与游戏控制台402之间的通信。所述无线技术包括(例如)4G或5G无线通信技术。如本文使用,5G是第五代蜂窝网络技术。而且,5G网络是数字蜂窝网络,其中由提供者覆盖的服务区域被划分为称为小区的小地理区域。在5G无线通信技术中,表示声音和图像的模拟信号在电话中被数字化,被模拟-数字转换器转换并作为位流传输。小区中的所有5G无线装置通过无线电波经由由收发器从频率池指派的频率信道与所述小区中的本地天线阵列和低功率自动收发器(传输器和接收器)进行通信,所述频率在其他小区中被再用。本地天线通过高带宽光纤或无线回程连接与所述蜂窝网络连接。与在其他小区网络中一样,从一个小区跨到另一小区的移动装置会自动转到新的小区。应理解,5G网络只是示例性类型的通信网络,并且本公开的实施方案可利用前一代无线或有线通信,诸如3G或4G,以及在5G之后的后一代有线或无线技术。
在一个实施方案中,游戏控制台402和服务器系统404中的任一者在本文中被称为计算装置。所述计算装置的其他示例包括平板计算机、智能手机、膝上型计算机、台式计算机和智能电视。
在一个实施方案中,游戏代码gc1到gcN中的每一者都存储在服务器系统404或传统机器的单独存储器装置中。例如,游戏代码gc1存储在第一传统机器的存储器装置中,而游戏代码gc2存储在第二传统机器的存储器装置中。作为另一示例,游戏代码gc1存储在服务器系统404的第一存储装置中,而游戏代码gc2存储在服务器系统404的第二存储装置中。
在一个实施方案中,存储器装置412或存储器装置406不是缓存。而是,存储器装置412或存储器装置406中的每一者是主存储器,诸如RAM。
在一个实施方案中,存储器装置412耦合到存储器控制器。存储器控制器从存储器装置412读取数据并将数据写入存储器装置412。存储器控制器耦合到服务器系统404的网络接口控制器。存储器控制器将从服务器系统404的网络接口控制器接收到的数据发送到存储器装置412进行存储。存储器控制器还将从存储器装置412接收的数据发送到服务器系统404的网络接口控制器,以经由计算机网络408发送到游戏控制台402。
图4B是系统450的实施方案的图,其说明仿真处理器系统409位于服务器系统404内,并且经由计算机网络408将一个或多个图像帧422从服务器系统404发送到显示装置410以便显示虚拟环境或虚拟场景。系统450包括服务器系统404、显示装置410和手持式控制器414。
服务器系统404包括存储器装置412和仿真处理器系统409。存储器装置412耦合到仿真处理器系统409。显示装置410经由显示装置410的网络接口控制器耦合到计算机网络408。显示装置410包括耦合到显示装置410的网络接口控制器的处理器。显示装置410的处理器在玩具有游戏名称GN和游戏代码gcN的传统游戏期间接收用户输入420,并且将用户输入420发送到显示装置410的网络接口控制器。显示装置410的网络接口控制器经由计算机网络408将用户输入420发送到服务器系统404的仿真处理器系统409。
在接收到用户输入420之后,仿真处理器系统409执行与上文参考图4A关于游戏代码gcN所描述的功能相同的功能,以编译基本块1到N来生成一个或多个图像帧422。服务器系统404经由计算机网络408将一个或多个图像帧422发送到显示装置410,以便在显示装置410的显示屏幕上显示虚拟环境,诸如虚拟环境452。例如,虚拟环境452包括虚拟对象454,所述虚拟对象是WarhawkTM战斗机的示例。在所述示例中,虚拟环境452包括虚拟背景,所述虚拟背景包括一个或多个虚拟对象,诸如虚拟金字塔455和虚拟结构456。在此示例中,虚拟对象454能够在玩具有游戏代码gcN的传统游戏N期间向虚拟金字塔455和虚拟结构456发射虚拟导弹。
在一个实施方案中,服务器系统404与显示装置410之间的数据通信经由网络通信协议进行。例如,服务器系统404包括网络接口控制器以将数据转换成分组。服务器系统404的网络接口控制器耦合到仿真处理器系统409,以从仿真处理器系统接收数据并且通过应用网络通信协议将数据嵌入一个或多个分组中。经由计算机网络408将所述分组从服务器系统404的网络接口控制器传递到显示装置410。显示装置410的网络接口控制器通过应用网络通信协议而从所述一个或多个分组中提取数据。所述显示装置的网络接口控制器耦合到显示装置410的处理器。所述显示装置的网络接口控制器将从计算机网络408接收的数据提供给显示装置410的处理器。显示装置410的处理器在显示装置410的显示屏幕上渲染数据,诸如图像帧422。此外,显示装置410的网络接口控制器从显示装置410的处理器接收数据,并且通过应用网络通信协议将所述数据嵌入一个或多个分组内,并且经由计算机网络408将所述一个或多个分组发送到服务器系统404。服务器系统404的网络接口控制器将网络通信协议应用于从计算机网络408接收的一个或多个分组,以从所述一个或多个分组中提取数据并将所述数据发送到仿真处理器系统409。
在一个实施方案中,作为计算机网络408的补充或代替,使用蜂窝网络在服务器系统404与显示装置410之间传送数据。例如,使用无线技术促进服务器系统404与显示装置之间的通信。
在一个实施方案中,作为显示装置410的替代,使用头戴式显示器(HMD)。头戴式显示器佩戴在用户1的头上,并且包括显示屏幕,诸如LED屏幕或OLED屏幕或LCD屏幕。HMD执行与显示装置410执行的功能相同的功能。
图5A是用以说明基本块的实施方案的图。每个基本块包括源寄存器地址、目的地寄存器地址和操作。例如,基本块1包括源寄存器地址1、目的地寄存器地址1和操作1。基本块2包括源寄存器地址2、目的地寄存器地址2和操作2,并且基本块n包括源寄存器地址n、目的地寄存器地址n和操作n。作为示例,源寄存器地址是缓存102内的一个或多个源寄存器的地址,而目的地寄存器地址是缓存102内的一个或多个目的地寄存器的地址。基本块的操作的示例包括跳转操作和分支操作、读取操作、写入操作、比较操作和返回操作。基本块的操作的其他示例包括算术操作,诸如加法操作、减法操作、乘法操作和除法操作。
作为示例,当操作n是读取操作时,从源寄存器地址n读取数据以执行基本块n。作为另一示例,当操作n是写入操作时,将数据写入目的地寄存器地址n以执行基本块n。作为另一示例,当操作n是移动操作时,从源寄存器地址n读取数据,对所述数据执行操作n,并且将数据写入目的地寄存器地址n以执行基本块n。作为又一示例,当操作n是比较操作时,将存储于在基本块n中提到的第一源寄存器地址处的数据的第一值与存储于在基本块n中提到的第二源寄存器地址处的数据的第二值进行比较以生成比较结果,并且将所述比较结果存储在目的地寄存器地址n处以执行基本块n。作为另一示例,当操作n是加法操作时,将存储于在基本块n内提到的第一源地址处的数据的第一值与存储于在基本块n内指示的第二源地址处的数据的第二值相加以生成加法结果,并且将所述加法结果存储在目的地寄存器地址n处以执行基本块n。作为又一示例,当本文描述的虚拟对象将从位置P1移动到位置P2并且操作n是其中虚拟对象的位置将从P1更新到P2的写入操作时,目的地寄存器地址n处的位置P1被位置P2覆写以执行基本块n。在所述示例中,基本块n的执行向仿真处理器系统409指示虚拟对象将从位置P1移动到位置P2。而且,在所述示例中,用户输入420(图4A)指示仿真处理器系统409将虚拟对象从位置P1移动到P2。类似地,作为另一示例,当本文描述的虚拟对象将从取向O1移动到取向O2并且操作n是其中虚拟对象的取向将从O1更新到O2的写入操作时,目的地寄存器地址n处的取向O1被取向O2覆写以执行基本块n。在所述示例中,基本块n的执行向仿真处理器系统409指示虚拟对象将从取向O1移动到取向O2。此外,在所述示例中,用户输入420指示仿真处理器系统409将虚拟对象从取向O1移动到O2。
作为又一示例,当本文描述的虚拟对象的一部分将把色彩从红色变为绿色并且操作n是其中虚拟对象的色彩将从红色更新为绿色的写入操作时,目的地寄存器地址处的表示红色色彩的数据被表示绿色色彩的数据覆写以执行基本块n。在所述示例中,基本块n的执行向仿真处理器系统409指示虚拟对象的所述部分的色彩将从红色变为绿色。而且,在所述示例中,用户输入420指示仿真处理器系统409将虚拟对象的所述部分的色彩从红色变为绿色。类似地,可基于用户输入420而修改其他参数,诸如强度和纹理。
每个基本块包括基本块的执行循环数。例如,基本块1包括基本块1的执行循环数1。作为另一示例,基本块2包括基本块2的执行循环数2,并且基本块n包括基本块n的执行循环数n。作为示例,基本块编译器104(图1)在编译基本块时估计基本块的执行循环的估计数目。在所述示例中,循环的估计数目存储在基本块中。同样在所述示例中,在块分派器302(图3)执行了基本块之后,块分派器302以上述方式使用实际计数更新估计的执行循环数,并且将实际计数提供给块编译器104。由块编译器104使用基本块中的实际计数替换估计的循环数。作为另一示例,操作n的执行循环数的实际计数由块分派器302生成并存储在基本块n中。在此示例中,不估计操作n的执行循环数。
此外,作为另一示例,基本块1到n中的一者或多者包括指示对基本块1到n中的一者或多者进行有效性检查的无效标记。例如,基本块n包括无效标记n。
应注意,通过将仿真PU代码106转换成游戏代码gcN的基本块1到n,可在基本块1到n中的任何两者之间插入钩子,诸如钩子块。例如,可在基本块(n-1)和n之间插入钩子块n。钩子块n具有与基本块n的结构相同的结构。例如,钩子块包括源寄存器地址、目的地寄存器地址、操作以及钩子块的操作的执行循环数。作为示例,由于与传统机器相关联的安全问题,无法在存储在传统机器中的用于在传统机器上执行的仿真CPU代码106(图1)的指令之间插入如本文所描述的钩子。
应进一步注意,基本块1到n被键入到(诸如固定在)缓存102(图1)内。例如,基本块1具有开始存储器地址1,所述开始存储器地址指示基本块1在缓存102中的开始位置。而且,基本块1具有结束存储器地址1,所述结束存储器地址指示基本块1在缓存102中的结束位置。作为另一示例,基本块1的结束地址1是由缓存106中与开始存储器地址1的偏移来指示。作为又一示例,基本块2具有开始存储器地址2,所述开始存储器地址指示基本块2在缓存102中的开始位置。而且,基本块2具有结束存储器地址2,所述结束存储器地址指示基本块2在缓存102中的结束位置。作为另一示例,基本块2的结束地址2是由缓存106中与开始存储器地址2的偏移来指示。类似地,作为另一示例,基本块n具有开始存储器地址n,所述开始存储器地址指示基本块n在缓存102中的开始位置。而且,基本块n具有结束存储器地址n,所述结束存储器地址指示基本块n在缓存102中的结束位置。作为另一示例,基本块n的结束地址n由缓存106中与开始存储器地址n的偏移来指示。仿真处理器系统409(图4A),诸如基本块编译器102,可从基本块1到n的存储在缓存102中的开始存储器地址和结束存储器地址来识别基本块1到n在缓存102中的位置。
还应注意,在用户输入指示更新后的机器的块分派器302在执行基本块1之后立即执行基本块n的情况下,块分派器302跳过缓存102中的基本块2到(n-1)的执行并且从基本块1跳转到基本块n。在这种情况下,当块分派器302跳转到基本块n时,块分派器302关闭基本块1的执行。而且,在这种情况下,下一个基本块的开始地址与前一个基本块的结束地址连续。例如,开始地址2与结束地址1连续,并且开始地址n与基本块(n-1)的结束地址(n-1)连续。
在一个实施方案中,源寄存器地址1到n是缓存102的寄存器的存储器地址,并且目的地寄存器地址1到n是缓存102中的寄存器的存储器地址。
在一个实施方案中,基本块包括多个操作。例如,基本块n包括第一操作、第一源寄存器地址和第一目的地寄存器地址。基本块n还包括第二操作、第二源寄存器地址和第二目的地寄存器地址。
在一个实施方案中,基本块包括操作、多个源地址和目的地地址。
在一个实施方案中,基本块包括操作、多个目的地地址和源地址。
在一个实施方案中,基本块包括多个操作、多个源地址和多个目的地地址。
在一个实施方案中,基本块包括一个或多个操作、一个或多个源地址以及一个或多个目的地地址。
在一个实施方案中,基本块包括源寄存器地址或目的地寄存器地址但不是两者。
在一个实施方案中,块编译器102不估计基本块n的执行循环数。而是,块分派器302生成基本块n的执行循环数的实际计数,并将所述实际计数存储在基本块n中。
图5B是用以说明由基本块编译器104(图1)执行的编译操作的实施方案的图。仿真PU代码指令M的示例被说明为指令550,并且基本块n的示例被说明为基本块552,其中M是正整数。指令550包括长度为a位的源地址M、长度为b位的目的地地址M和由长度为c的位表示的操作M,其中a、b和c是正整数。作为示例,a是4,b是4,且c是32。作为示例,a位、b位和c位存储在传统机器的一个或多个存储器装置中。例如,a位存储在存储器装置406或412中(图4A和图4B)。操作552包括长度为d位的源寄存器地址n、长度为e位的目的地地址n以及由长度为f的位表示的操作n,其中d、e和f是正整数。作为示例,d是8,e是8,且f是64。作为示例,d位、e位和f位存储在更新后的机器的一个或多个寄存器中。作为示例,d大于a,e大于b,且f大于c。为了说明,当a为4、b为4且c为32时,d为8、e为8且f为64。作为另一示例,当a为4、b为4且c为32时,d为16、e为16且f为128。
为了执行编译操作,基本块编译器104(图1)将源地址M转换成源寄存器地址n,将目的地地址M转换成目的地寄存器地址n,并且将操作M转换成操作n,以从仿真PU代码指令M生成基本块n。例如,基本块编译器104将源地址M的4位向右移位以占用缓存102中的8个源寄存器的4个存储器地址,并且掩蔽8个源寄存器的剩余四个存储器地址中的任何位。被源地址M的4位占用的四个存储器地址位于缓存102中的8个源寄存器的最低有效位置,并且位被掩蔽的剩余四个存储器地址位于缓存102中的8个源寄存器的最高有效位置。
作为另一示例,基本块编译器104将目的地地址M的4位向右移位以占用缓存102中的8个目的地寄存器的4个存储器地址,并且掩蔽8个目的地寄存器的剩余四个存储器地址中的任何位。被目的地地址m的4位占用的四个存储器地址位于缓存102中的8个目的地寄存器的最低有效位置,并且位被掩蔽的剩余四个存储器地址位于缓存102中的8个目的地寄存器的最高有效位置。
类似地,作为另一示例,基本块编译器104将操作M的32位向右移位以占用缓存102中的64个操作寄存器的32个存储器地址,并且掩蔽64个操作寄存器的剩余32个存储器地址中的任何位。被操作M的32位占用的32个存储器地址位于缓存102中的32个操作寄存器的最低有效位置,并且位被掩蔽的剩余32个存储器地址位于缓存102中的64个操作寄存器的最高有效位置。操作n存储在缓存102的操作寄存器中。
图6A是用以说明仿真处理器系统409的部件的系统600的实施方案的图。系统600包括存储器装置412和仿真处理器系统409。仿真处理器系统409的基本块编译器104包括解析器或解码器602。基本块编译器104还包括块创建器604、块缓存器606A和块读取器608。仿真处理器系统409包括块分派器302。
作为示例,使用软件或硬件或其组合来实施解析器609、块创建器604、块缓存器606、块读取器608和块分派器302中的每一者。例如,解析器609、块创建器604、块缓存器606、块读取器608和块分派器302中的每一者是单独的集成电路,诸如PLD或ASIC或控制器或处理器或计算机程序的一部分。作为另一示例,解析器609、块创建器604、块缓存器606、块读取器608和块分派器302中的每一者是单独的计算机软件程序。
游戏代码gcN包括多条指令,诸如仿真PU代码指令1、仿真PU代码指令2等,直到仿真PU代码指令M。例如,游戏代码gcN的每条指令是可由传统机器的处理器执行以实施一种功能的一连串位,所述功能诸如将虚拟对象从位置P1移动到位置P2,或者将虚拟对象的取向从O1改变为O2,或者修改虚拟对象的一部分的参数。
解析器602耦合到块创建器604,所述块创建器耦合到块缓存器606和块读取器608。块缓存器606和块读取器608或耦合到缓存102。块读取器608耦合到块分派器302。
图6B是用以说明用于编译和执行基本块1到n的方法650的实施方案的流程图。使用图6A的系统600来说明方法650。在方法650的操作652中,块创建器604确定是否接收到任何用户输入,诸如用户输入1。作为示例,用户输入1是包括由用户1选择的手持式控制器414(图4A)的一个或多个按钮的一个或多个标识的信号。作为另一示例,用户输入1是包括相对于以手持式控制器414为中心的xyz坐标系的原点的诸如俯仰、偏转和横滚的移动量度的信号。作为又一示例,用户输入1是包括相对于HMD的xyz坐标系的原点的诸如俯仰、偏转和横滚的移动量度的信号。用户输入1的示例是用户输入420(图4A)。
在确定未接收到用户输入之后,块创建器604在操作652中继续检查是否接收到用户输入。例如,当在操作652中未接收到用户输入时,基本块编译器104不运行存储在缓存102(图1)中的基本块(n+1)到p中的任一者,并且基本块编译器104(图1)不识别仿真PU代码指令1到M(图6A)中的任一者,其中p是正整数。假设在操作652中接收到用户输入时,基本块1到n没有生成并且没有存储在缓存102中。
另一方面,响应于确定在操作652中接收到用户输入,在方法650的操作654中,块创建器604确定存储在缓存102中的基本块(n+1)到p中的一者或多者是否满足用户输入。例如,块创建器604向块读取器608发送从缓存102访问基本块(n+1)到p的请求。在所述示例中,块读取器608在接收到所述请求后从缓存102读取基本块(n+1)到p,并且将基本块(n+1)到p发送到块创建器604。此外,在所述示例中,块创建器604确定基本块(n+1)到p中的一者或多者的功能性是否满足(诸如服务于)用户输入1。为了说明,当用户输入1指示将虚拟对象的位置从位置P1改变为位置P2时,块创建器604确定基本块(n+1)到p中的任一者是否包括用位置P2覆写位置P1的操作。在确定基本块(n+1)到p中的一者或多者包括用P2覆写位置P1的操作之后,块创建器604确定块(n+1)到p中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定基本块(n+1)到p都不包括用P2覆写位置P1的操作之后,块创建器604确定基本块(n+1)到p的功能性不满足用户输入1。
作为另一说明,当用户输入1将虚拟对象的取向从取向O1改变为取向O2时,块创建器604确定基本块(n+1)到p中的任一者是否包括用取向O2覆写取向O1的操作。在确定基本块(n+1)到p中的一者或多者包括用O2覆写取向O1的操作之后,块创建器604确定基本块(n+1)到p中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定基本块(n+1)到p都不包括用O2覆写取向O1的操作之后,块创建器604确定基本块(n+1)到p的功能性不满足用户输入1。作为又一说明,当用户输入1是将虚拟对象的一部分的参数的值从第一值改变为第二值之后,块创建者确定基本块(n+1)到p中的任一者是否包括用第二值覆写第一值的操作。在确定基本块(n+1)到p中的一者或多者包括用第二值覆写第一值的操作之后,块创建器604确定基本块(n+1)到p中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定基本块(n+1)到p都不包括在第二值处覆写第一值的操作之后,块创建器604确定基本块(n+1)到p的功能性不满足用户输入1。
在确定基本块(n+1)到p中的一者或多者的功能性满足用户输入1之后,在方法600的操作656中,块分派器302执行基本块(n+1)到p中的一者或多者。例如,在确定基本块(n+1)到p中的一者或多者的功能性满足用户输入1之后,块创建器604向块分派器302发送指令以执行基本块(n+1)到p中的一者或多者。在所述示例中,响应于接收到所述指令,块分派器302向块读取器608发送命令以从缓存102读取基本块(n+1)到p中的一者或多者,以便满足在操作652中接收到的用户输入。而且,在所述示例中,在响应于所述命令而从缓存102接收到所述基本块中的一者或多者之后,块分派器302执行基本块(n+1)到p中的一者或多者。
另一方面,在确定块(n+1)到p的功能性不满足用户输入1之后,在方法600的操作658中,块编译器102识别仿真PU代码指令1到M中的一者或多者以便服务在操作652中接收的用户输入。例如,在确定块(n+1)到p的功能性不满足用户输入1之后,块创建器604向解析器602发送请求以解析游戏代码gcN,以识别并获得游戏代码gcN的满足在用户输入1中识别的功能性的仿真PU代码指令1到M中的一者或多者。在所述示例中,响应于接收到请求,解析器602访问存储器装置412以解析游戏代码gcN,以确定仿真PU代码指令1到M中的一者或多者的功能性是否满足用户输入1,并且在确定仿真PU代码指令1到M中的一者或多者的功能性满足用户输入1之后,解析器602向块创建器604提供仿真PU代码指令1到M中的一者或多者。
为了说明,当用户输入1是将虚拟对象的位置从位置P1改变为位置P2时,解析器602确定仿真PU代码指令1到M中的任一者是否包括用位置P2覆写位置P1的操作。在确定仿真PU代码指令1到M中的一者或多者包括用P2覆写位置P1的操作之后,解析器602确定仿真PU代码指令1到M中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定仿真PU代码指令1到M都不包括用P2覆写位置P1的操作之后,解析器602确定仿真PU代码指令1到M的功能性不满足用户输入1。
作为另一说明,当用户输入1将虚拟对象的取向从取向O1改变为取向O2时,解析器602确定仿真PU代码指令1到M中的任一者是否包括用取向O2覆写取向O1的操作。在确定仿真PU代码指令1到M中的一者或多者包括用O2覆写取向O1的操作之后,解析器602确定仿真PU代码指令1到M中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定仿真PU代码指令1到M都不包括用O2覆写取向O1的操作之后,解析器602确定仿真PU代码指令1到M的功能性不满足用户输入1。作为又一说明,当用户输入1是将虚拟对象的一部分的参数的值从第一值改变为第二值之后,解析器602确定仿真PU代码指令1到M中的任一者是否包括用第二值覆写第一值的操作。在确定仿真PU代码指令1到M中的一者或多者包括用第二值覆写第一值的操作之后,解析器602确定仿真PU代码指令1到M中的一者或多者的一个或多个功能性满足用户输入1。另一方面,在确定仿真PU代码指令1到M都不包括在第二值处覆写第一值的操作之后,解析器602确定仿真PU代码指令1到M的功能性不满足用户输入1。
在方法600的操作660中,当从解析器602接收到满足用户输入1的仿真PU代码指令1到M中的一者或多者时,块创建器604应用上述编译操作以从仿真PU代码指令1到M中的一者或多者生成基本块1到n中的一者或多者。例如,块创建器604编译基本块1到n中的一者或多者,将基本块1到n中的一者或多者发送到块缓存器606,并且将指令发送到块分派器302以执行基本块1到n中的一者或多者。在接收到基本块1到n中的一者或多者之后,块缓存器606将基本块1到n中的一者或多者存储在缓存102中。
在方法600的操作662中,在从块创建器604接收到执行基本块1到n中的一者或多者的指令之后,块分派器302运行基本块1到n中的一者或多者以服务于在操作652中接收到的用户输入。例如,块分派器302向块读取器608发送从缓存102读取基本块1到n中的一者或多者的请求。在接收到命令之后,块读取器608从缓存102读取基本块1到n中的一者或多者,并且将基本块1到n中的一者或多者提供给块分派器302。在接收到基本块1到n中的一者或多者之后,块分派器302执行基本块1到n中的一者或多者以生成虚拟环境452(图4B)。为了说明,块分派器302执行基本块1到n中的一者或多者以生成图像帧,所述图像帧包括:虚拟环境数据,诸如虚拟对象454的位置和取向;虚拟对象454的参数、虚拟环境452中的其他虚拟对象的位置和取向;以及虚拟环境452中的其他虚拟对象的参数。块分派器302将图像帧提供给仿真处理器系统409的GPU,以在显示装置410(图4A)的显示屏幕上显示(诸如渲染)虚拟环境452。当在操作652中接收到用户输入1之后接收到诸如用户输入2的另一用户输入时,方法600重复。
图6C是用以说明针对不同的用户输入动态地编译不同的基本块或不同组的基本块的系统670的实施方案的图。系统670包括存储器装置412、基本块编译器104、块分派器302和缓存102。当基本块编译器104接收到用户输入1时,基本块编译器104确定对应于用户输入1的基本块1是否存储在缓存102中。当基本块1包括用于服务于用户输入1的功能时,基本块1对应于用户输入1。为了说明,当用户输入1是将虚拟对象从位置P1移动到位置P2并且基本块1包括用位置P2更新存储在目的地寄存器地址1处的位置P1的操作时,基本块1可服务于用户输入1。在所述说明中,用户输入1是指示对手持式控制器414(图4A)上的向右移动按钮或向左移动按钮或向上移动按钮或向下移动按钮的选择的信号。类似地,当基本块2不包括用于服务于用户输入1的功能之后,基本块2不对应于用户输入1。为了说明,当用户输入1是在不改变虚拟对象的取向的情况下将虚拟对象从位置P1移动到位置P2并且基本块2包括用取向O2更新存储在目的地寄存器2中的取向O1的操作之后,基本块2不能服务于用户输入1。在确定可服务于用户输入1的基本块1存储在缓存102中之后,基本块编译器104将基本块1提供给块分派器302以便执行基本块1。
另一方面,在确定基本块1未存储在缓存102中之后,基本块编译器104解析存储在存储器装置412中的仿真PU代码106以识别对应于用户输入1的仿真PU代码指令1。例如,基本块编译器104解析仿真PU代码106以识别仿真PU代码指令1满足(诸如服务于)用户输入1。为了说明,当用户输入1是将虚拟对象从位置P1移动到位置P2并且仿真PU代码指令1包括用位置P2更新存储在目的地地址1处的位置P1的功能之后,所述仿真PU代码指令1可服务于用户输入1。类似地,当仿真PU代码指令2不包括用于服务于用户输入1的功能之后,所述仿真PU代码指令2不对应于用户输入1。为了说明,当用户输入1是在不改变虚拟对象的取向的情况下将虚拟对象从位置P1移动到位置P2并且仿真PU代码指令2包括用取向O2更新存储在目的地地址2处的取向O1的操作之后,所述仿真PU代码指令2不能服务于用户输入1。
在确定仿真PU代码指令1可服务于用户输入1并且仿真PU代码指令2不能服务于用户输入1之后,基本块编译器104从存储器装置412访问(诸如读取)仿真PU代码指令1并且从仿真PU代码指令1编译基本块1。响应于接收到用户输入1,基本块编译器102不从仿真PU代码指令2编译基本块2。基本块编译器104将基本块1存储在缓存102中,并且向块分派器302发送指令以访问和执行基本块1。块分派器302在接收到所述指令后从缓存102读取基本块1并运行基本块1。
类似地,当基本块编译器104接收到用户输入2时,基本块编译器104确定对应于用户输入2的基本块2是否存储在缓存102中。当基本块2包括用于服务于用户输入2的功能时,基本块2对应于用户输入2。为了说明,当用户输入2是将虚拟对象从取向O1移动到取向O2并且基本块2包括用取向O2更新存储在目的地寄存器地址2处的取向O1的操作时,基本块2可服务于用户输入2。在所述说明中,用户输入2是指示对手持式控制器414上的顺时针旋转或逆时针旋转按钮的选择的信号。类似地,当基本块1不包括用于服务于用户输入2的功能之后,基本块1不对应于用户输入2。为了说明,当用户输入2是在不改变虚拟对象的位置的情况下将虚拟对象从取向O1移动到取向O2并且基本块1包括用位置P2更新存储在目的地寄存器1中的位置P1的操作之后,基本块1不能服务于用户输入2。在确定可服务于用户输入2的基本块2存储在缓存102中之后,基本块编译器104将基本块2提供给块分派器302以便执行基本块2。
另一方面,在确定基本块2未存储在缓存102中之后,基本块编译器104解析存储在存储器装置412中的仿真PU代码106以识别对应于用户输入2的仿真PU代码指令2。例如,基本块编译器104解析仿真PU代码106以识别仿真PU代码指令2满足(诸如服务于)用户输入2。为了说明,当用户输入2是将虚拟对象从取向O1移动到取向O2并且仿真PU代码指令2包括用取向O2更新存储在目的地地址2处的取向O1的功能之后,所述仿真PU代码指令2可服务于用户输入2。类似地,当仿真PU代码指令1不包括用于服务于用户输入2的功能之后,所述仿真PU代码指令1不对应于用户输入2。为了说明,当用户输入2是在不改变虚拟对象的位置的情况下将虚拟对象从取向O1移动到取向O2并且仿真PU代码指令1包括用位置P2更新存储在目的地地址1中的位置P1的操作之后,所述仿真PU代码指令1不能服务于用户输入2。
在确定仿真PU代码指令2可服务于用户输入2并且仿真PU代码指令1不能服务于用户输入2之后,基本块编译器104从存储器装置412访问(诸如读取)仿真PU代码指令2并且编译仿真PU代码指令2以生成基本块2。响应于接收到用户输入2,基本块编译器102不编译仿真PU代码指令1。基本块编译器104将基本块2存储在缓存102中,并且向块分派器302发送指令以访问和执行基本块2。块分派器302在接收到所述指令后从缓存102读取基本块2并运行基本块2。
图7A是用以说明从存储器装置412删除仿真PU代码106的系统700的实施方案的图。系统700包括块创建器604、指令移除器702和存储器装置412。指令移除器702的示例包括处理器、ASIC、PLD、计算机程序、计算机程序的一部分和微控制器。指令移除器702耦合到块创建器604和存储器装置412。
图7B是用以说明用于从存储器装置412(图6C)删除仿真PU代码106(图6C)的方法720的实施方案的流程图。方法720包括用于确定仿真PU代码106的所有指令是否都被编译的操作702。例如,块创建器604(图7A)确定是否编译了游戏代码gcN的所有仿真PU代码指令1到M。为了说明,在编译游戏代码gcN的仿真PU代码指令1到M中的任一者之前,块创建器604向传统机器的处理器发送请求以获得游戏代码gcN的所有仿真PU代码指令1到M的身份。在所述说明中,块创建器604将游戏代码gcN的身份(诸如一个或多个位)发送到传统机器的处理器以获得游戏代码gcN的所有仿真PU代码指令1到M的身份。仿真PU代码指令1到M的身份的示例包括一个或多个位。为了说明,仿真PU代码指令M的身份由第一位序列表示,并且仿真PU代码指令M-1的身份由不同于所述第一序列的第二位序列表示。在从传统机器的处理器接收到仿真PU代码指令1到M的身份之后,块创建器604将所述身份以表格存储在缓存102中。随着仿真PU代码指令1到M中的每一者都被编译,块创建器604更新所述表格以包括识别仿真PU代码指令1到M中的哪些仿真PU代码指令被编译的指示。块创建器604根据识别仿真PU代码指令1到M中的哪些仿真PU代码指令被编译的指示来确定是否所有仿真PU代码指令1到M都被编译。
在确定游戏代码gcN的所有仿真PU代码指令1到M都被编译之后,块创建器604向指令移除器702(图7A)发送命令以从存储器装置412删除游戏代码gcN。在接收到所述命令之后,在方法720的操作724中,指令移除器702从存储器装置412擦除仿真PU代码指令1到M。
另一方面,在基于所述表格而确定游戏代码gcN的仿真PU代码指令1到M中的一者或多者未被编译之后,在方法720的操作726中,块创建器604不向指令移除器702发送从存储器装置412删除游戏代码gcN的命令。在接收到删除游戏代码gcN的命令之前,指令移除器702不会从存储器装置412删除仿真PU代码指令1到M。
在一个实施方案中,块创建器604确定是否在从存储器装置412访问游戏代码gcN的最近时间开始在预定时期内从存储器装置412(图4A)访问存储在缓存102中的游戏代码gcN。作为示例,块创建者604可经由计算机网络408访问互联网时钟以确定最近的时间和所述预定时期。作为另一示例,块创建器604包括时钟源,诸如时钟振荡器,以对所述最近的时间和所述预定时期进行计数。在确定未在预定时期内从存储器装置412访问游戏代码gcN之后,块创建器604向指令移除器702发送命令以从存储器装置412删除游戏代码gcN。作为示例,当未在预定时期内访问游戏代码gcN时,由基本块编译器104访问大部分仿真CPU代码指令1到M以编译基本块1到n中的一者或多者。作为另一示例,当未在预定时期内访问游戏代码gcN时,由基本块编译器104访问在玩具有游戏名称GN的传统游戏N期间频繁使用的许多仿真CPU代码指令1到M以编译基本块1到n中的一者或多者。另一方面,在确定在预定时期内访问游戏代码gcN之后,块创建器604不向指令移除器702发送命令并且不从存储器装置412删除游戏代码gcN。
图8A是用以说明对基本块的验证的仿真处理器系统800的实施方案的图。仿真处理器系统800是仿真处理器系统409(图4B)的示例。仿真处理器系统800包括基本块编译器104、缓存102、块验证器802和块标记器804。块验证器802耦合到块创建器604、块分派器302、解析器602和块标记器804。时钟验证器802和块标记器804中的每一者都耦合到缓存102。
作为示例,块验证器802被实施为ASIC,或PLD,或微控制器,或处理器,或计算机程序,或计算机程序的一部分。还作为示例,块标记器804被实施为ASIC,或PLD,或微控制器,或处理器,或计算机程序,或计算机程序的一部分。
在一个实施方案中,术语ASIC、PLD、微控制器、微处理器、控制器和处理器在本文中可互换使用。
图8B是用以说明由仿真处理器系统800(图8A)执行的验证操作的方法850的实施方案的流程图。在方法800的操作852中,块验证器802(图8A)确定基本块n是否被编译。例如,块验证器802访问(诸如读取)缓存102以确定与先前存储在缓存102中的基本块1到n-1相比,新的基本块(诸如基本块n)现在是否存储在缓存102中。块验证器802先前识别了存储在缓存102中的基本块1到n-1。在确定基本块n未被缓存之后,块验证器802继续访问缓存102以确定新的基本块是否被缓存。例如,块验证器802周期性地解析存储在缓存102中的基本块1到n-1以确定基本块n是否存储在缓存102中。
在确定基本块n被缓存之后,在方法800的操作854中,块验证器802从编译基本块n所依据的仿真PU代码指令1到M中的一者或多者创建第一散列值。例如,块验证器802向解析器602发送请求以从存储器装置412获得仿真CPU代码指令1到M中的一者或多者。所述请求包括基本块n在缓存102中的存储器地址的身份。块验证器602从块创建者604接收(诸如通过请求获得)基本块n的存储器地址的身份。解析器602在接收到来自块验证器802的请求之后从存储器装置412读取仿真PU代码指令1到M中的一者或多者,并且将仿真PU代码指令1到M中的一者或多者提供给块验证器802。为了说明,当将仿真PU代码指令1到M中的一者或多者提供给基本块编译器104以编译基本块n时,解析器602存储由基本块n在缓存102中占用的一个或多个存储器地址的一个或多个身份与由仿真PU代码指令1到M中的一者或多者在存储器装置412中占用的一个或多个存储器地址的一个或多个身份之间的一一对应关系。解析器602从块验证器802接收基本块n在缓存102中的存储器地址的身份,并且根据所述一一对应关系来识别仿真PU代码指令1到M中的一者或多者在存储器装置412中的一个或多个存储器地址。解析器602从存储器装置412的一个或多个存储器地址读取仿真PU代码指令1到M中的一者或多者,并且将仿真PU代码指令1到M中的一者或多者提供给块验证器802。
继续所述示例,在从解析器602接收到仿真PU代码指令1到M中的一者或多者之后,块验证器802从仿真PU代码指令1到M中的一者或多者生成第一散列值,并且将所述第一散列值存储在缓存102中。为了说明,块验证器802从对应于基本块n的仿真PU代码指令1到M中的一者或多者生成摘要或校验和。在所述示例中,第一散列值存储在缓存102的被键入以包括基本块n的一个或多个寄存器中。
在方法800的操作856中,块验证器802向解析器602发送命令以确定存储器装置412内的在其处存储仿真PU代码指令1到M中的一者或多者的一个或多个存储器地址是否被覆写。可用来自传统机器的压缩光盘-只读存储器(CD-ROM)的数据覆写存储器装置412内的一个或多个存储器地址。所述数据可以是对仿真PU代码指令1到M中的一者或多者的更新。对仿真PU代码指令1到M中的一者或多者的更新被称为更新后的指令。可替代地,所述数据可以是损坏的数据,其不是更新后的指令。解析器602在接收到来自块验证器802的命令之后向传统机器的处理器发送请求,以确定存储器装置412内的在其处存储仿真PU代码指令1到M中的一者或多者的一个或多个存储器地址是否被覆写。
在接收到来自解析器602的请求之后,传统机器的处理器提供对所述请求的响应,并且所述响应指示存储器装置412内的在其处存储仿真PU代码指令1到M中的一者或多者的所述一个或多个存储器地址是否被覆写。在接收到存储器装置412内的在其处存储仿真PU代码指令1到M中的一者或多者的所述一个或多个存储器地址未被覆写的响应之后,块验证器802向块标记器804(图8A)发送不将基本块n标记为无效的命令。在接收到所述命令之后,在方法800的操作858中,块标记器804不将基本块n标记为无效。
另一方面,在接收到存储器装置412内的在其处存储仿真PU代码指令1到M中的一者或多者的所述一个或多个存储器地址被覆写的响应之后,在方法850的操作860中,块验证器802向块标记器804(图8A)发送将基本块n标记为无效的命令。在接收到将基本块n标记为无效的命令之后,块标记器804将基本块n标记为无效。例如,块标记器804访问缓存102内的基本块n,并且在缓存102中具有基本块n的存储器地址内包括标识符,诸如无效标记n(图5A),以指示所述基本块n无效。无效标记n的示例是位序列。
在一个实施方案中,散列值是验证结果的示例。
图8C是图8B的方法800的流程图的接续部分。在方法800的操作862中,块验证器802(图8A)确定是否将执行基本块n。例如,块分派器302向块验证器802发送将执行基本块n的指示。在从块分派器302接收到将执行基本块n的指示之后,块验证器802确定将执行基本块n。在接收到所述指示之前,块验证器802不确定基本块n经过验证。
在确定将执行基本块n之后,在方法800的操作864中,块验证器802确定基本块n是否被标记为无效。例如,块验证器802向块标记器804发送确定基本块n是否被标记为无效的命令。在接收到所述命令之后,块标记器804向块验证器802发送基本块n是否被标记为无效的指示。为了说明,块标记器804访问基本块n以确定基本块n是否包括无效标记n,以生成无效性的指示并将其发送到块验证器802。作为另一说明,块标记器804访问基本块n以确定基本块n是否不包括无效标记n,以生成缺乏无效性的指示并将其发送到块验证器802。在从块标记器804接收到基本块n被标记为无效的指示之后,块验证器802确定基本块n是无效的。另一方面,在从块标记器804接收到基本块n没有无效标记n的指示之后,块验证器802确定基本块n未被标记无效。
在确定基本块n未被标记为无效之后,在方法800的操作866中,执行基本块n。例如,操作866类似于操作662(图6B)。为了说明,块验证器802向块分派器302发送执行基本块n的命令。在接收到执行基本块n的命令之后,块分派器302运行基本块n。在此说明中,在从块验证器802接收到用于执行基本块n的命令之前,块分派器302不执行基本块n。
另一方面,响应于确定基本块n被标记为无效,在方法800的操作866中,块验证器802确定基本块n是否实际上有效。例如,在确定基本块n被标记为无效之后,块验证器802根据存储在存储器装置412内的在其处存储编译基本块n所依据的仿真PU代码指令1到M中的一者或多者的相同存储器地址中的更新后的指令或损坏的数据来创建第二散列值。在所述示例中,第二散列值存储在缓存102的被键入以包括基本块n的一个或多个寄存器中。为了说明,块验证器802向解析器602发送请求,以获得存储在存储器装置412内的一个或多个存储器地址处的更新后的指令或损坏的数据。解析器602在接收到请求之后从存储器装置412从所述一个或多个存储器地址读取更新后的指令或损坏的数据,并且将所述更新后的指令或所述损坏的数据提供给块验证器802。在所述说明中,块验证器802根据更新后的指令或损坏的数据生成第二散列值,并且将所述第二散列值存储在缓存102中。例如,块验证器802根据所述更新后的指令或所述损坏的数据生成摘要或校验和。在所述说明中,块验证器802将所述第二散列值与所述第一散列值进行比较以确定基本块n是否有效。在基于所述比较而确定所述第一散列值与所述第二散列值之间存在匹配之后,块验证器802确定基本块n是有效的。当从更新后的指令生成第二散列值时发生匹配。另一方面,在基于所述比较而确定所述第一散列值与所述第二散列值之间不存在匹配之后,块验证器802确定基本块n是无效的。当从损坏的数据生成第二散列值时,发生不匹配。
响应于确定基本块n是有效的,在方法800的操作870中,移除无效标记n。例如,块验证器802向块标记器804发送从存储在缓存102中的基本块n移除无效标记n的命令。在接收到来自块验证器802的命令之后,块标记器804从缓存102访问基本块n并且从基本块n擦除无效标记n。为了说明,块标记器804从其中存储无效标记n的缓存102的一个或多个存储器地址擦除无效标记n。在移除无效标记n之后,块标记器804向块分派器302发送执行基本块n的命令,并且在接收到所述命令之后,在操作866中,块分派器302运行基本块n。作为示例,块分派器302在从块标记器804接收到执行基本块n的命令之前不执行基本块n。
另一方面,在确定基本块n不是有效之后,在方法800的操作872中,编译具有与基本块n相同的功能性或操作的额外的基本块。例如,块验证器802向块分派器302发送不执行基本块n的命令,并且向块创建器604发送基本块n是无效的指示。在接收到所述指示之后,块创建器604重新编译基本块n。为了说明,块创建器604以与从存储在存储器装置412中的仿真PU代码指令1到M中的一者或多者编译基本块n的方式相同的方式编译额外的基本块,不同之处在于,所述额外的基本块是从存储在额外的传统机器的存储器装置内的一组额外的仿真PU代码指令(诸如仿真PU代码指令1到M中的一者或多者)进行编译。所述额外的传统机器不同于包括存储器装置412的传统机器。而且,所述额外的一组仿真PU代码指令具有与游戏代码gcN的游戏名称相同的游戏名称GN。作为另一说明,块创建器604以与从存储在存储器装置412中的多个仿真PU代码指令1到M中的一者或多者编译基本块n的方式相同的方式编译额外的基本块,不同之处在于,所述额外的基本块是从存储在存储器装置412的与存储器装置412的在其处存储仿真PU代码指令1到M的存储器地址不同的存储器地址内的一组额外的仿真PU代码指令(诸如仿真PU代码指令1到M中的一者或多者)进行编译。作为又一说明,块创建器604以与从存储在存储器装置412中的仿真PU代码指令1到M中的一者或多者编译基本块n的方式相同的方式编译额外的基本块,不同之处在于,所述额外的基本块是从存储与存储器装置412不同的存储器装置内的一组额外的仿真PU代码指令(诸如仿真PU代码指令1到M中的一者或多者)进行编译。
从块创建器604将所述额外的基本块发送到块分派器302以供执行。例如,块分派器302执行所述额外的基本块以生成额外的虚拟环境(诸如虚拟环境452(图4B))的一部分。为了说明,块分派器302执行额外的基本块以生成图像帧的一部分,所述图像帧的一部分包括额外的虚拟环境数据,诸如虚拟对象454的位置和取向、虚拟对象454的参数、其他虚拟对象在虚拟环境452中的位置和取向,以及额外虚拟环境中的其他虚拟对象的参数。块分派器302将图像帧提供给仿真处理器系统409的GPU,以在显示装置410的显示屏幕上显示(诸如渲染)所述额外的虚拟环境。
应注意,虽然方法850是参考基本块n和额外的基本块来说明的,但是方法850同样适用于以生成所述额外的基本块相同的方式生成的其他基本块1到(n-1)和更多额外的基本块。
在一个实施方案中,所述一组仿真PU代码指令1到M存储在位于传统机器外部的第一组一个或多个存储装置中,并且额外的一组仿真PU代码指令存储在位于额外的传统机器外部的第二组一个或多个存储器装置中。
图9A是用以说明传统机器900的实施方案的图。传统机器900的示例是PS1TM或PS2TM。传统机器900包括传统CPU 902、传统GPU 904、存储器装置906和CD-ROM驱动器908。存储器装置906是存储器装置412(图4A)的示例。传统CPU 902的示例是32位CPU,它在一个时钟循环期间最多可处理32位。而且,传统GPU 904的示例是32位GPU,它在一个时钟循环期间最多可处理32位。存储器装置906的示例是2兆字节(MB)RAM。
传统CPU 902和传统GPU 904耦合到存储器装置906,所述存储器装置耦合到CD-ROM驱动器908。仿真PU代码106存储在存储器装置906内。
传统CPU 902或传统GPU 904从存储器装置906访问仿真PU代码106并处理仿真PU代码106。CD-ROM驱动器908接收包括更新后的指令或损坏的代码的CD-ROM。可由传统CPU902将更新后的指令或损坏的代码从CD-ROM传递到存储器装置906。
在一个实施方案中,传统机器900不包括缓存。在一个实施方案中,传统机器900包括有限容量的缓存,诸如4千字节(KB)缓存。
图9B是用以说明更新后的机器920的实施方案的图。更新后的机器920的示例是PS4TM或PS5TM。更新后的机器920包括CPU 922、GPU 924、存储器系统926和作为缓存102(图1)的示例的缓存928。游戏控制台402(图4B)是更新后的机器920的示例。作为示例,CPU 922包括两个四核模块,并且每个模块可在每个时钟循环期间处理64位。每个核都具有32千字节(KB)的缓存。CPU 922的另一示例是64位CPU,它在一个时钟循环期间最多可处理64位。作为示例,GPU 924具有1152个核,并且每个核可在一个时钟循环期间处理64位。作为另一示例,传统GPU 924是在一个时钟循环期间最多可处理64位的64位GPU。
CPU 922和GPU 924耦合到存储器系统906。作为示例,仿真PU代码106存储在传统存储器系统906内。存储器系统926的示例包括提供500千兆字节(GB)或2兆兆字节(TB)存储的硬盘驱动器。CPU 922、GPU 924、缓存928和存储器系统926经由总线930彼此耦合。
CPU 922或GPU 924在访问存储器系统926之前首先访问缓存928。在确定缓存928没有由CPU 922或GPU 924请求的数据之后,CPU 922或GPU 924访问存储器系统926。
应注意,在一个实施方案中,游戏代码gcN不能由CPU 922或GPU 924执行,但可由传统CPU 902或传统GPU 904执行。为了说明,CPU 922或GPU 924不能执行游戏代码gcN,而传统CPU 902或传统GPU 904能够执行游戏代码gcN。而且,基本块1到n可由CPU 922或GPU924执行,但不能由传统CPU 902或传统GPU 904执行。为了说明,CPU 922或GPU 924能够执行基本块1到n,而传统CPU 902或传统GPU 904不能执行基本块1到n。
在一个实施方案中,缓存928位于CPU 922内。
在一个实施方案中,缓存928位于GPU 924内。
在一个实施方案中,缓存928位于CPU 922内,而另一缓存,诸如缓存102,位于GPU924内。
图10A是用以说明通过基本块编译器104(图1)将多个基本块组合成一个基本块的系统1000的实施方案的图。块创建器604(图6A)接收用户输入1,诸如指示在具有游戏名称GN的传统游戏N的第1关在位置P1和取向O1处启动虚拟对象454(图4B)的信号。在接收到用户输入1后,基本块编译器104基于仿真PU代码指令1而生成基本块1以服务于用户输入1。类似地,块创建器604接收用户输入2,诸如指示在传统游戏N的第2关在位置P1和取向O1处启动虚拟对象454的信号。在接收到用户输入2之后,由基本块编译器104基于仿真的PU生成代码指令2而生成基本块2以服务于用户输入2。
当接收到用户输入3时,诸如指示在传统游戏N的第3关在位置P1和取向O1处启动虚拟对象454的信号,块编译器104将基本块1和2识别为服务于用户输入3。在这样识别之后,块创建器604将基本块1和2整合(诸如组合)成单个基本块,诸如基本块1或基本块2。所述整合节省了缓存102中的存储器空间,并且还增加了访问单个基本块而不是访问基本块1和基本块2的效率。
块创建器604进一步生成缓存102的指针中的值。如本文所使用,指针的示例是寄存器。当接收到用于服务于基本块1或基本块2的用户输入时,所述指针指示块分派器302执行单个基本块。在块分派器302将执行基本块1或2时,块分派器302访问所述指针并且执行单个基本块而不是基本块1或2。
图10B是用以说明对基本块1到n中的一者或多者的修改的系统1020的实施方案的图。系统1020包括块接口1022、缓存102和块分派器302。作为示例,基本块n包括航位推算的操作n。作为另一示例,基本块n包括从显示装置410(图4B)的显示屏幕的边缘弹回十字准线的操作n。块接口1022的示例是ASIC,或PLD,或微处理器,或微控制器,或计算机程序,或计算机程序的一部分。块接口1022耦合到缓存102。
块接口1022向用户提供对存储在缓存102中的基本块1到n中的一者或多者的访问。例如,用户选择输入装置上的一个或多个按钮,诸如键盘或鼠标或小键盘,以生成修改输入1024。作为示例,修改输入1024包括呈源代码的形式的用以修改基本块n的一个或多个用户指令。为了说明,修改输入1024包括用于从基本块n移除航位推算的操作n的用户指令。作为另一示例,修改输入1024包括将操作n改变为包括以下各项的指令:十字准线滑离显示装置410的显示屏幕的边缘并且显示在显示装置410的显示屏幕的相对边缘处。所述相对边缘与十字准线滑离的边缘对角相对。
输入装置耦合到块接口1022。将修改输入1024从输入装置发送到块接口1022以修改基本块n来输出修改后的基本块n。作为示例,修改后的基本块n不包括航位推算的操作。作为另一示例,修改后的基本块n包括将十字准线从边缘滑离到相对边缘的操作n。作为又一示例,修改后的基本块n包括计算操作n的执行的时钟循环数目并将所述数目存储在基本块n中的操作。为了说明,循环的数目存储在其中存储基本块1的缓存102的存储器地址中。除了执行操作n之外,块分派器302(图3)还执行计算时钟循环的数目的操作。块分派器302在执行操作n之后计算时钟循环的数目并将所述数目存储在基本块n中。
块创建器604进一步生成缓存102内的指针中的值,并且当接收到用于服务于基本块n的用户输入时,所述指针指示块分派器302执行修改后的基本块n。在块分派器302将执行基本块n时,块分派器302访问所述指针并且执行修改后的基本块n而不是基本块n。
图10C是用以说明基于子例程而创建的基本块与基于调用所述子例程的仿真PU代码指令而生成的基本块的组合的系统1030的实施方案的图。块创建器604(图6A)接收用户输入1,诸如指示虚拟对象454(图4B)的位置和/或取向的变化的信号,所述变化导致对虚拟对象454的破坏。在接收到用户输入1之后,基本块编译器104基于仿真PU代码指令1而生成基本块1以服务于用户输入1。仿真PU代码指令1包括对子例程1的功能调用。这样,在接收到用户输入1之后,由基本块编译器104基于作为仿真PU代码指令2的示例的子例程1而生成基本块2。作为示例,基本块2包括在位置P1和取向O1处重新生成虚拟对象454的操作2。
当接收到用户输入2时,诸如指示虚拟对象454(图4B)的导致对虚拟对象454的破坏的位置和/或取向的变化的信号,块编译器104将基本块1和2识别为服务于用户输入2。在这样识别之后,块创建器604将基本块1和2整合(诸如组合)成单个基本块,诸如基本块1或基本块2。例如,在接收到用户输入2之后,触发对虚拟对象454的破坏和虚拟对象454的重新生成。当组合基本块1和2时,跳过子例程1。
块创建器604进一步生成值并将所述值存储在缓存102内的指针中。当接收到用于服务于基本块1和基本块2的用户输入时,所述值指示块分派器302执行单个基本块。在块分派器302将执行基本块1和基本块2时,块分派器302访问所述指针并且执行单个基本块而不是基本块1。
图10D是用以说明在两个基本块之间插入基本块的系统1040的实施方案的图。系统1040包括块接口1022和缓存102。在将基本块1和2存储在缓存102中之后,经由输入装置从用户接收修改输入1042。作为示例,修改输入1042是包括定义基本块1.1的源代码的信号,所述基本块包括缓存102内的源寄存器地址1.1、缓存102内的目的地寄存器地址1.1,和将对存储在源寄存器地址1.1内的数据或对目的地寄存器地址1.1或对源寄存器地址和目的地寄存器地址1.1两者执行的操作1.1。操作1.1的示例包括跳转、存储、加载、分支和算术操作。
修改输入1042还包括基本块1.1的位置的指示以及基本块1.1与基本块1或2的关联。例如,修改输入1042包括指示基本块1.1将被插入在缓存102中的基本块1和2之间的信号,和指示基本块1.1将被链接到基本块1和/或2的信号。为了说明,插入基本块1.1以包括缓存102中的用于接收基本块2的无效标记2的位置,诸如一个或多个寄存器地址。作为另一说明,插入基本块1.1以包括用于接收基本块2的执行循环数的位置,诸如缓存102中的一个或多个寄存器地址。在所述说明中,块接口1022接收修改输入1042,从修改输入1042识别基本块1.1将被插入在基本块1和基本块2之间,并且在基本块1和2之间插入基本块1.1。作为另一说明,块接口1022确定基本块1.1包括用于解锁具有游戏名称GN的传统游戏N中的关卡的操作。所述关卡介于在基本块1的操作中识别的第一关卡和在基本块2的操作中识别的第二关卡之间。所述第一关卡和所述第二关卡在具有游戏名称GN的传统游戏N中。在第一关卡与第二关卡之间插入的关卡不是游戏代码gcN的一部分,而是传统游戏N的新关卡。在第一关卡与第二关卡之间插入的关卡的示例是虚拟对象454发射激光枪来取代导弹的关卡。
此外,块接口1022从修改输入1042识别指针的值并将所述值存储在缓存102中。作为示例,指针的值指示基本块1.1的执行紧接在基本块2的执行之前发生。当块分派器302将执行基本块2时,块分派器302识别指针内的值指向基本块1.1,并紧接在执行基本块2之前执行基本块1.1。作为另一示例,指针的值指示基本块1.1的执行紧接在基本块2的执行之后发生。在块分派器302执行基本块2之后,块分派器302识别指针内的值指向基本块1.1,并紧接在执行基本块2之后执行基本块1.1。
图10E是用以说明基本块的执行顺序的切换的系统1050的实施方案的图。系统1050包括缓存102和块接口1022。缓存102在缓存102的指针内包括值,并且所述值指示在执行基本块1之后执行基本块2。用户使用输入装置提供修改输入1052,所述修改输入包括指示切换基本块1和2的执行的顺序的信号。块接口1022在接收到所述信号之后改变缓存102中的指针的值,以指示在执行基本块2之后执行基本块1。
图11A是用以说明使用存储在基本块n中的循环数的实际计数的方法1100的实施方案的流程图。方法1100包括执行基本块n的操作662。在方法1100的操作1102中,块分派器302(图3)在操作662中对基本块n的执行循环数进行计数以产生第一计数。在方法1100的操作1104中,块分派器302将所述第一计数存储在基本块n中。例如,块分派器302将实际计数写入具有在缓存102内指派给基本块n的寄存器地址中的一个寄存器地址的寄存器。
在方法1100的操作1106中,块创建器604(图6A)确定是否将再次执行相同的基本块n。例如,块创建器604确定是否从客户端装置接收到用于服务于相同基本块n的用户输入。块创建器604继续确定是否接收到用于服务于相同基本块n的用户输入,直到接收到用户输入为止。
图11B是图11A的方法1100的流程图的接续部分。在确定再次接收到用于服务于基本块n的用户输入之后,块分派器304再次执行基本块n。在方法1100的操作1108中,块分派器304在操作1106中对基本块n的执行循环数进行计数,以计算第二计数。
在方法1100的操作1108中,块分派器304确定所述第二计数是否在相对于所述第一计数的预定界限内。将所述预定界限存储在缓存102中。响应于确定所述第二计数不在相对于所述第一计数的预定界限内,在方法1100的操作1110中,块分派器304生成通知。例如,当块分派器304位于游戏控制台402(图4A)内时,游戏控制台402的GPU 924(图9B)在客户端装置的显示装置410(图4A)上显示通知的表示,并且发送所述通知并且经由计算机网络408发送到服务器系统404以通知服务器系统404。作为另一示例,当块分派器304位于服务器系统404(图4B)内时,块分派器304生成通知,并且服务器系统404的GPU在耦合到服务器系统404的显示装置上显示所述通知的表示。另一方面,在方法1100的操作1112中,确定所述第二计数在相对于所述第一计数的预定界限内,块分派器304不触发通知。
图12是用以说明将基本块1到n从第一客户端装置传递到第二客户端装置的系统1200的实施方案的图。系统1200包括游戏控制台402、计算机网络408、服务器系统404、游戏控制台1202和显示装置1204。游戏控制台1202类似于游戏控制台402。例如,游戏控制台402和1202都是PS4TM,或者游戏控制台402和1202都是PS5TM,或者游戏控制台402是PS4TM而游戏控制台1202是PS5TM,或者游戏控制台402是PS5TM而游戏控制台1202是PS4TM。作为另一示例,游戏控制台1202不是传统机器。而且,显示装置1204类似于图4A的显示装置410。例如,显示装置410是HMD或电视或智能电视或计算机监视器。
游戏控制台402包括网络接口控制器1213。游戏控制台1202包括仿真处理器系统1206、缓存1208和网络接口控制器1210。仿真处理器系统1206具有与仿真处理器系统409相同的结构和相同的功能性。而且,缓存1208具有与缓存102相同的结构和相同的功能性。仿真处理器系统1206、缓存1208和网络接口控制器1210经由总线1218彼此耦合。
一旦基本块1到n存储在缓存102中,仿真处理器系统409的基本块编译器104就将基本块1到n发送到网络接口控制器1213。网络接口控制器1213将网络通信协议应用于基本块1到n以生成嵌入基本块1到n的一个或多个分组,并且经由计算机网络408将所述一个或多个分组发送到服务器系统404。在接收到所述一个或多个数据分组之后,服务器系统404的网络接口控制器将网络通信协议应用于所述一个或多个分组,以提取具有游戏名称GN的传统游戏N的基本块1到n,并且将所述基本块1到n存储在服务器系统404的一个或多个存储器装置中。
用户2使用手持式控制器1212选择手持式控制器1212上的一个或多个按钮以登录到由服务器系统404指派给用户2的他的/她的用户账户。当用户ID2(诸如用户名)和密码被服务器系统404认证时,用户2登录到他的/她的用户账户。一旦用户2登录到他的/她的用户账户,用户2就可访问多个游戏名称,诸如游戏名称G1、游戏名称Ga、游戏名称G2等,直到游戏名称GN。
在登录到用户账户2之后,用户2使用手持式控制器1212来选择手持式控制器1212上的一个或多个按钮以生成用户输入1214。在选择了具有显示在显示装置1204上的标题GN的传统游戏N之后生成用户输入1214。当生成用户输入1214时,缓存1208不包括基本块1到n。例如,在接收到用户输入1214之后,仿真处理器系统1206的基本块编译器检查缓存102,以确定缓存102是否包括用于服务于用户输入1214的游戏代码GCN的基本块1到n中的一者或多者。在确定缓存102不包括用于服务于用户输入1214的基本块1到n中的一者或多者之后,仿真处理器系统1206生成对基本块1到n中的一者或多者的请求1220并且向网络接口控制器1210发送请求1220。
在接收到请求1220之后,网络接口控制器1210通过将网络通信协议应用于请求1220来生成嵌入请求1220的一个或多个分组,并且经由计算机网络408将所述一个或多个分组发送到服务器系统404。服务器系统404的网络接口控制器接收所述一个或多个分组,并且应用网络通信协议以从所述一个或多个分组中提取请求1220。服务器系统404的处理器分析请求1220以识别请求了基本块1到n。
响应于确定请求了基本块1到n,服务器系统404访问存储在服务器系统404的一个或多个存储器装置中的基本块1到n并且将基本块1到n提供给服务器系统404的网络接口控制器。服务器系统404的网络接口控制器应用网络通信协议以生成嵌入基本块1到n的一个或多个分组,并且经由计算机网络408将所述一个或多个分组发送到游戏控制台1202。
游戏控制台1202的网络接口控制器1210接收具有基本块1到n的一个或多个分组,应用网络通信协议以从所述一个或多个分组中提取基本块1到n,并且将基本块1到n发送到仿真处理器系统1206。仿真处理器系统1206的基本块编译器将基本块1到n存储在缓存1208中。
当在玩具有游戏名称GN的游戏期间从手持式控制器1212接收到用户输入1224时,仿真处理器系统1206的基本块编译器识别缓存1208内的基本块1到n中的用于服务于用户输入1224的一个或多个基本块。仿真处理器系统1206的块分派器执行基本块1到n中的一者或多者以用于服务于用户输入1224。以这种方式,一旦基本块1到n被仿真处理器系统409编译,基本块1到n便不需要被仿真处理器系统1206编译,而是可由仿真处理器系统1206从服务器系统404访问。
图13是用以说明从在执行多组基本块1到n之后玩的一个或多个迷你游戏(诸如挑战)生成元游戏的系统1300的实施方案的图。系统1300包括服务器系统404、计算机网络408、游戏控制台402、显示装置410、游戏控制台1202和显示装置1204。服务器系统404经由计算机网络408耦合到游戏控制台402和1202。应注意,游戏控制台402、显示装置410和手持式控制器414的组合在本文称为客户端装置1301。应进一步注意,游戏控制台1202、显示装置1204和手持式控制器1212的组合在本文称为客户端装置1303。
服务器系统404包括缓存102、记录器1302、网络接口控制器1213、存储器装置1304和存储器装置1306。服务器系统404还包括CPU 1308、GPU 1310和存储器装置412。CPU1308、GPU 1310、存储器装置412、缓存102、存储器装置1306、记录器1302、网络接口控制器1213和存储器装置1304经由总线1312彼此耦合。作为示例,CPU 1308和GPU 1310是仿真处理器系统409(图4B)的部件。例如,CPU 1308执行基本块编译器104和块分派器302(图3)。CPU 922(图9)是CPU 1308的示例。GPU 924(图9)是GPU 1310的示例。
记录器1302的示例包括CPU、PLD、ASIC、控制器、计算机程序的一部分,或计算机程序。为了说明,记录器1302是由CPU 1308执行的计算机程序。
存储器装置1306包括用户账户数据库1314,所述用户账户数据库存储多个用户账户,诸如用户账户1和用户账户2。CPU 1308将用户账户1指派给用户1,并且CPU 1308将用户账户2指派给用户2。而且,存储器装置1304包括记录数据库1316,所述记录数据库包括多个记录,诸如记录1和记录2。
记录1是用户1在玩传统游戏N期间经由用户账户1进行的挑战1的记录,并且记录2是用户1在玩传统游戏N期间经由用户账户1进行的挑战2的记录。例如,在传统游戏N的游戏关卡1期间,用户1暂停传统游戏N并且选择手持式控制器114上的按钮以生成用户输入。在所述示例中,用户输入是由手持式控制器414生成并且经由游戏控制台402(图13)和计算机网络408(图13)发送到服务器系统404的信号。而且,在所述示例中,服务器系统404基于所述用户输入确定用户1希望暂停传统游戏N,并且暂停传统游戏N。为了说明,CPU 1308和GPU1310停止执行基本块1到n中的一者或多者,以停止生成传统游戏N的一个或多个图像帧来经由计算机网络408发送到游戏控制台402。在所述说明中,CPU 1308生成识别基本块1到n中的在其处暂停玩传统游戏N的一个基本块的值,并且将所述值在指针中存储在缓存102中。
继续所述示例,用户1在暂停传统游戏N之后开始玩挑战1。在所述示例中,在接收到指示用户1希望经由用户账户1玩挑战1的用户输入之后,CPU 1308从缓存102访问所述指针以识别一个或多个基本块1到n中的哪一基本块结束执行,并且继续执行一个或多个基本块1到n。当用户1选择手持式控制器414(图13)上的一个或多个按钮时,生成指示用户1希望玩挑战1的用户输入作为信号。此外,在所述示例中,在用户1开始玩挑战1时,记录器1302开始记录用户1经由用户账户1玩挑战1以生成记录1,并且将记录1存储在记录数据库1316中。类似地,在所述示例中,在传统游戏N的游戏关卡Z期间,用户1暂停传统游戏N并且选择手持式控制器114上的一个或多个按钮以选择挑战2,其中Z是正整数。在用户1开始玩挑战2时,记录器1302开始记录玩挑战2以生成记录2,并且将记录2存储在记录数据库1316中。
作为示例,每个记录包括游戏状态。为了说明,记录1包括在传统游戏N的挑战1期间显示的一个或多个虚拟对象的游戏状态,并且记录2包括在传统游戏N的挑战2期间显示的一个或多个虚拟对象的游戏状态。游戏状态的示例包括虚拟对象的位置和取向。作为另一示例,每个记录还包括虚拟对象的渲染因素,诸如颜色或强度或纹理或形状或其组合。为了说明,记录1包括在执行基本块1到n中的一者或多者之后在挑战1期间显示的虚拟对象的渲染因素。在所述说明中,记录2包括在执行基本块1到n中的一者或多者之后在挑战2期间显示的虚拟对象的渲染因素。
作为另一示例,每个记录包括用户1玩挑战的视频和玩挑战的用户1的视频。例如,记录1包括在玩挑战1期间虚拟对象的移动的视频,和描述在挑战1期间的所述移动中的一者或多者的用户1的视频。而且,在所述示例中,记录2包括在玩挑战2期间虚拟对象的移动的视频,和描述在挑战2期间的所述移动中的一者或多者的用户1的视频。
作为又一示例,每个记录包括用户1玩挑战的视频而不包括玩挑战的用户1的视频。例如,记录1包括在玩挑战1期间虚拟对象的移动的视频,而不包括描述在挑战1期间的所述移动中的一者或多者的用户1的视频。而且,在所述示例中,记录2包括在玩挑战2期间虚拟对象的移动的视频,而不包括描述在挑战2期间的所述移动中的一者或多者的用户1的视频。
在一个实施方案中,除了CPU 1308之外,服务器系统404还包括多个CPU,并且每个CPU与服务器系统404的单独的服务器(诸如服务器刀片或更新后的机器)一起实施。类似地,除了GPU 1310之外,服务器系统404还包括多个GPU,并且每个GPU与服务器系统404的单独的服务器(诸如服务器刀片或更新后的机器)一起实施。
在一个实施方案中,用户账户数据库1314和记录数据库1316存储在同一存储器装置内。
在一个实施方案中,挑战2不是传统游戏N的一部分,而是挑战2是不同于传统游戏N的另一传统游戏(诸如传统游戏(N-1))的一部分。
在一个实施方案中,存储在缓存102中的基本块1到n分布在服务器系统404的多个缓存之间。
图14A是用以说明挑战1的示例的显示装置410的实施方案的图。在登录到用户账户1之后,用户1玩传统游戏N的游戏关卡1。在玩传统游戏N的游戏关卡1期间,用户1选择手持式控制器414上的一个或多个按钮以生成暂停传统游戏N的用户输入。一旦暂停传统游戏N,用户1进一步选择手持式控制器414上的一个或多个按钮以生成用于玩挑战1的另一用户输入。挑战1包括诸如酷动(cool move)的绝技,其中虚拟对象454上面向下翻转并且然后下面向上翻转。例如,在玩挑战1期间,虚拟对象454在时间t1位于位置P1和取向O1。用户1控制手持式控制器414以在时间t2将虚拟对象454从位置P1和取向O1移动到位置P2和取向O2。此外,用户1控制手持式控制器414以在时间t3将虚拟对象454从位置P2和取向O2移动到位置P3和取向O3。在时间t3,虚拟对象454上面向下翻转。而且,用户1控制手持式控制器414以在时间t4将虚拟对象454从位置P3和取向O3移动到位置P4和取向O4。用户1进一步控制手持式控制器414以在时间t5将虚拟对象454从位置P4和取向O4移动到位置P5和取向O5。在时间t5,虚拟对象454下面向上翻转。
应注意,虚拟对象454围绕虚拟金字塔411移动。例如,虚拟对象454从位置P1经由位置P2到P4移动到位置P5以围绕虚拟金字塔411转圈。
图14B是用以说明插入在传统游戏N的游戏关卡1的基本块1到n中的任何两者之间的钩子的图。作为示例,如本文使用的钩子是由程序员或用户1插入以改变传统游戏N的功能性的一个或多个钩子块。为了说明,所述钩子插入在存储在缓存102中的基本块1到n中的任何两个连续基本块之间。因此,钩子存储在缓存102中。作为另一说明,钩子块的结构与基本块的结构相同。为了进一步说明,钩子包括钩子块,所述钩子块包括缓存102中的源寄存器的源寄存器地址、缓存102中的目的地寄存器的目的地寄存器地址,和将对存储在源寄存器地址处的数据或存储在目的地寄存器地址处的数据或存储在源寄存器地址和目的地寄存器地址两者处的数据执行的操作。作为另一说明,钩子包括钩子块,所述钩子块包括缓存102中的一个或多个源寄存器的一个或多个源寄存器地址、缓存102中的一个或多个目的地寄存器的一个或多个目的地寄存器地址,和将对存储在一个或多个源寄存器地址处的数据或存储在一个或多个目的地寄存器地址处的数据或存储在一个或多个源寄存器地址处和一个或多个目的地寄存器地址处的数据执行的一个或多个操作。作为另一说明,由程序员或用户1经由耦合到缓存102的输入装置插入钩子。
在基本块11之后插入暂停游戏钩子1420。在传统游戏N的游戏关卡1期间执行基本块11。块分派器302(图3)执行基本块11以将虚拟对象454从位置P10和取向O10移动到位置P11和取向O11。程序员经由输入装置将暂停游戏钩子1420插入缓存102中,以允许用户1在执行基本块11之后暂停传统游戏N。暂停游戏钩子1420在缓存102中插入在基本块11存储在缓存102中的一个或多个存储器地址之后。例如,指向暂停游戏钩子1420的值插入在基本块11中,以使传统游戏N能够在传统游戏N的游戏关卡1期间从用户1接收用于暂停传统游戏N的请求。由块分派器302执行暂停游戏钩子1420。
而且,程序员经由输入装置将创建挑战钩子1422插入缓存102中,以从传统游戏N的基本块1到n中的一者或多者(诸如基本块1到5)创建挑战1。例如,将指向创建挑战钩子1422的值插入暂停游戏钩子1420中,以使传统游戏N能够从用户1接收用于发起挑战1的请求。当接收到用于发起挑战1的请求时,块分派器302基于在挑战1期间接收的用户输入来执行被包括为挑战1的一部分的基本块1到5。为了说明,当在挑战1期间接收到第一用户输入时,执行基本块1以服务于第一用户输入,并且当在挑战1期间接收到第二用户输入时,执行基本块2以服务于第二用户输入。作为另一说明,当在挑战1期间接收到第一用户输入时,执行基本块1和2以服务于第一用户输入,并且当在挑战1期间接收到第二用户输入时,执行基本块3和5以服务于第二用户输入。作为又一说明,当在挑战1期间接收到第一用户输入时,执行基本块2以将虚拟对象454从位置P1和取向O1移动到位置P2和取向O2。而且,在所述说明中,当在挑战1期间接收到第二用户输入时,执行基本块3以将虚拟对象454从位置P2和取向O2移动到位置P3和取向O3。此外,在所述说明中,当在挑战1期间接收到第三用户输入时,执行基本块4以将虚拟对象454从位置P3和取向O3移动到位置P4和取向O4。在所述说明中,当在挑战1期间接收到第四用户输入时,执行基本块5以将虚拟对象454从位置P4和取向O4移动到位置P5和取向O5。由块分派器302执行创建挑战钩子1422。
另外,程序员经由输入装置将开始记录钩子1424插入缓存102中,以一执行暂停游戏钩子1422就记录挑战1。例如,将指向开始记录钩子1424的值插入创建挑战钩子1422中,以在块分派器302发起对挑战1的基本块1到n中的一者或多者的执行之后开始记录挑战1。挑战1的记录作为记录1存储在存储器装置1304(图13)中。当执行开始记录钩子1424时,CPU1308向记录器1302发送开始记录的指令。在接收到指令之后,记录器1302记录关于用户1玩挑战1的帧,诸如图像帧和音频帧,并且将记录1存储在存储器装置1304中。由块分派器302执行开始记录钩子1424。
另外,由程序员经由输入装置将结束挑战钩子1426插入缓存102中,以结束从传统游戏N的基本块1到n中的一者或多者生成的挑战1。例如,将指向结束挑战钩子1426的值插入基本块1-5中的每一者中,以在执行基本块之后结束挑战1。为了说明,一旦执行了挑战1的所有基本块1到5以移动虚拟对象454,就执行结束挑战钩子1426。作为另一示例,CPU1308(图13)包括时钟源,诸如时钟振荡器或计时器,以对自从开始执行挑战1的基本块1到n中的一者或多者以来的时间量进行计数。CPU 1309确定所述计数是否超过预定阈值。在确定所述计数超过预定阈值之后,CPU 1308结束挑战1的基本块1到n中的一者或多者的执行。另一方面,在确定所述计数未超过预定阈值之后,CPU 1308不结束挑战1的基本块1到n中的一者或多者的执行。由块分派器302执行结束挑战钩子1426。
而且,由程序员经由输入装置将用户结束挑战钩子1428插入缓存102中,以使用户1能够在玩挑战1期间的任何时间结束从传统游戏N的基本块1到n中的一者或多者生成的挑战1。例如,将用户结束挑战钩子1428插入基本块1到n中的一者或多者中的每一者中。为了说明,将指向用户结束挑战钩子1428的值插入基本块1到5中的每一者中,以允许用户1在执行挑战1的基本块1到5中的一者或多者期间的任何点经由用户账户1结束挑战1。由块分派器302执行用户结束挑战钩子1428。
此外,由程序员经由输入装置将结束记录钩子1430插入缓存102中,以在挑战1结束时或当用户1结束挑战1时结束对挑战1的记录。作为示例,将指向结束记录钩子1430的值插入结束挑战钩子1426中,以在执行了结束挑战钩子1426之后结束对挑战1的记录。作为另一示例,将指向结束记录钩子1430的值插入用户结束挑战钩子1428中,以在执行了用户结束挑战钩子1428之后结束对挑战1的记录。由块分派器302执行结束记录钩子1430。当执行结束记录钩子1430时,CPU 1308向记录器1302发送停止记录挑战1的指令。
在一个实施方案中,块分派器302是CPU 1308或GPU 1310或CPU 1308和GPU 1310两者的一部分。
图14C是用以说明挑战2的示例的显示装置410的实施方案的图。在登录到用户账户1之后,用户1玩传统游戏N的游戏关卡Z。在玩传统游戏N的游戏关卡Z期间,用户1选择手持式控制器414上的一个或多个按钮以生成暂停传统游戏N的用户输入。一旦暂停传统游戏N,用户1进一步选择手持式控制器414上的一个或多个按钮以生成用于玩挑战2的另一用户输入。挑战2包括诸如酷动的绝技,其中虚拟对象454沿着锯齿形路径移动。例如,在玩挑战1期间,虚拟对象454在时间ta位于位置P101和取向O101。用户1控制手持式控制器414以在时间tb将虚拟对象454从位置P101和取向O101移动到位置P102和取向O102。此外,用户1控制手持式控制器414以在时间tc将虚拟对象454从位置P102和取向O102移动到位置P103和取向O103。而且,用户1控制手持式控制器414以在时间td将虚拟对象454从位置P103和取向O103移动到位置P104和取向O104。用户1进一步控制手持式控制器414以在时间te将虚拟对象454从位置P104和取向O104移动到位置P105和取向O105。
图14D是用以说明插入在传统游戏N的游戏关卡1的基本块Z到n中的任何两者之间的钩子的图。在基本块111之后插入暂停游戏钩子1450。在传统游戏N的游戏关卡Z期间执行基本块111。由块分派器302(图3)执行基本块111以将虚拟对象454从位置P110和取向O110移动到位置P111和取向O111。由程序员经由输入装置将暂停游戏钩子1450插入缓存102中,以允许用户1在执行基本块111之后暂停传统游戏N。暂停游戏钩子1450在缓存102中插入在基本块111存储在缓存102中的一个或多个存储器地址之后。例如,指向暂停游戏钩子1450的值插入在基本块111中,以使传统游戏N能够在传统游戏N的游戏关卡Z期间从用户1接收用于暂停传统游戏N的请求。由块分派器302执行暂停游戏钩子1450。
而且,程序员经由输入装置将创建挑战钩子1452插入缓存102中,以从传统游戏N的基本块1到n中的一者或多者(诸如基本块101到105)创建挑战2。例如,将指向挑战游戏钩子1452的值插入暂停游戏钩子1450中,以使传统游戏N能够从用户1接收用于发起挑战2的请求。当接收到用于发起挑战2的请求时,块分派器302基于在挑战2期间接收的用户输入来执行被包括为挑战2的一部分的基本块101到105。为了说明,当在挑战2期间接收到第一用户输入时,执行基本块101以服务于第一用户输入,并且当在挑战2期间接收到第二用户输入时,执行基本块102以服务于第二用户输入。作为另一说明,当在挑战2期间接收到第一用户输入时,执行基本块101和102以服务于第一用户输入,并且当在挑战2期间接收到第二用户输入时,执行基本块103和105以服务于第二用户输入。作为又一说明,当在挑战2期间接收到第一用户输入时,执行基本块102以将虚拟对象454从位置P101和取向O101移动到位置P102和取向O102。而且,在所述说明中,当在挑战2期间接收到第二用户输入时,执行基本块103以将虚拟对象454从位置P102和取向O102移动到位置P103和取向O103。此外,在所述说明中,当在挑战2期间接收到第三用户输入时,执行基本块104以将虚拟对象454从位置P103和取向O103移动到位置P104和取向O104。在所述说明中,当在挑战2期间接收到第四用户输入时,执行基本块102以将虚拟对象454从位置P104和取向O104移动到位置P105和取向O105。由块分派器302执行创建挑战钩子1452。
另外,程序员经由输入装置将开始记录钩子1454插入缓存102中,以一执行暂停游戏钩子1452就记录挑战2。例如,将指向开始记录钩子1454的值插入创建挑战钩子1452中,以在块分派器302发起对挑战2的基本块1到n中的一者或多者的执行之后开始记录挑战2。挑战2的记录作为记录2存储在存储器装置1304(图13)中。当执行开始记录钩子1454时,CPU1308向记录器1302发送开始记录的指令。在接收到所述指令之后,记录器1302记录关于用户1玩挑战2的帧,诸如图像帧和音频帧,并且将记录2存储在存储器装置1304中。由块分派器302执行开始记录钩子1454。
另外,由程序员经由输入装置将结束挑战钩子1456插入缓存102中,以结束从传统游戏N的基本块1到n中的一者或多者生成的挑战2。例如,将指向结束挑战钩子1456的值插入基本块101-105中的每一者,以在执行基本块之后结束挑战2。为了说明,一旦执行了基本块101-105以在挑战2期间移动虚拟对象454,就执行结束挑战钩子1456。作为另一示例,CPU1308(图13)包括时钟源,诸如时钟振荡器或计时器,以对自从开始执行挑战2的基本块1到n中的一者或多者以来的时间量进行计数。CPU 1309确定所述计数是否超过预设阈值。在确定所述计数超过预设阈值之后,CPU 1308结束挑战2的基本块1到n中的一者或多者的执行。另一方面,在确定所述计数未超过预设阈值之后,CPU 1308不结束挑战2的基本块1到n中的一者或多者的执行。由块分派器302执行结束挑战钩子1456。
而且,由程序员经由输入装置将用户结束挑战钩子1458插入缓存102中,以使用户1能够结束从传统游戏N的基本块1到n中的一者或多者生成的挑战2。例如,将用户结束挑战钩子1458插入基本块1到n中的一者或多者中的每一者中。为了说明,将指向用户结束挑战钩子1458的值插入基本块101到105中的每一者中,以允许用户1在执行挑战2的基本块1到5中的一者或多者期间的任何点经由用户账户1结束挑战2。由块分派器302执行用户结束挑战钩子1458。
此外,由程序员经由输入装置将结束记录钩子1460插入缓存102中,以在挑战2结束时或当用户结束挑战2时结束对挑战2的记录。作为示例,将指向结束记录钩子1460的值插入结束挑战钩子1456中,以在执行了结束挑战钩子1456之后结束对挑战2的记录。作为另一示例,将指向结束记录钩子1450的值插入用户结束挑战钩子1458中,以在执行了用户结束挑战钩子1458之后结束对挑战2的记录。由块分派器302执行结束记录钩子1460。当执行结束记录钩子1460时,CPU 1308向记录器1302发送停止记录挑战2的指令。
在一个实施方案中,基本块101到105属于基本块1-5所属的同一游戏关卡1,而不是属于游戏关卡Z。例如,在执行基本块1-5的同一游戏关卡内执行基本块101-105。
在一个实施方案中,基本块101到105属于与基本块1到5所属的传统游戏N不同的传统游戏,诸如传统游戏(N-1),而不是属于同一传统游戏N的游戏关卡Z。例如,在玩传统游戏(N-1)期间执行基本块101-105,并且在玩传统游戏N期间执行基本块1-5。
图15A是系统1500的一个实施方案的图。系统1500包括存储器装置1304、缓存102和块分派器302。程序员将元游戏请求钩子1506添加到缓存102。例如,在块分派器302在玩挑战1和2期间经由用户账户1执行基本块1-5中的一者或多者和基本块101-105中的一者或多者之后,块分派器302经由用户账户1执行元游戏请求钩子1506以搜索请求基于挑战1和2生成元游戏的用户输入。在所述示例中,一旦经由用户账户1接收到请求生成元游戏的用户输入,块分派器302就执行元游戏请求钩子1506以从挑战1和2的记录1和2识别在用户1玩挑战1和2期间执行的基本块1-5和101-105。为了说明,在用户结束挑战钩子1428(图14B)经由用户账户1接收到结束挑战1的用户输入的情况下,在执行挑战1期间执行基本块1-5中的一者或多者但不是全部。在所述说明中,块分派器302执行元游戏请求钩子1506以识别基本块1-5中的一者或多者但不是全部,并且包括基本块1-5中的一者或多者但不是全部以生成元游戏。作为另一说明,在分派器302执行结束挑战钩子1426(图14B)以结束挑战1的情况下,在元游戏内包括所有基本块1-5。在所述说明中,块分派器302执行元游戏请求钩子1506以识别所有基本块1-5,并且在另一次玩元游戏期间包括所有基本块1-5。
作为又一说明,在用户结束挑战钩子1458(图14D)经由用户账户1接收到结束挑战2的用户输入的情况下,在执行挑战2期间执行基本块101-105中的一者或多者但不是全部。在所述说明中,块分派器302执行元游戏请求钩子1506以识别基本块101-105中的一者或多者但不是全部,并且包括基本块101-105中的一者或多者但不是全部以生成元游戏。作为又一说明,在分派器302执行结束挑战钩子1456(图14D)以结束挑战2的情况下,在元游戏内包括所有基本块101-105。在所述说明中,块分派器302执行元游戏请求钩子1506以识别所有基本块101-105,并且在另一次玩元游戏期间包括所有基本块101-105。
此外,程序员将序列请求钩子1508添加到缓存102。例如,块分派器302经由用户账户1执行序列请求钩子1508以搜索请求基本块1-5和101-105的执行序列的用户输入。一旦经由用户账户1接收到用户输入,块分派器302就执行序列请求钩子1508以对用于元游戏的基本块1-5中的一者或多者和101-105中的一者或多者进行拼接(诸如生成其执行顺序)。为了说明,在用户2经由用户账户2玩元游戏期间在基本块101-105中的一者或多者之前执行基本块1-5中的一者或多者。当在基本块101-105中的一者或多者之前执行基本块1-5中的一者或多者时,在玩挑战2之前促进玩挑战1。在所述说明中,在基本块1-5中的一者或多者的执行完成之前不执行基本块101-105中的一者或多者。作为另一说明,在用户2经由用户账户2玩元游戏期间在基本块1-5中的一者或多者之前执行基本块101-105中的一者或多者。当在执行基本块1-5中的一者或多者之前执行基本块101-105中的一者或多者时,在玩挑战1之前促进玩挑战2。在所述说明中,在基本块101-105中的一者或多者的执行完成之前不执行基本块1-5中的一者或多者。
另外,程序员将领先计分板请求钩子1508添加到缓存102。例如,块分派器302经由用户账户1执行领先计分板请求钩子1508以搜索请求将领先计分板添加到元游戏的用户输入。在经由用户账户1接收到所述用户输入之后,块分派器302执行领先计分板请求钩子1508以将领先计分板添加到元游戏。在下文进一步描述领先计分板的使用。
而且,程序员将奖品钩子1512添加到元游戏。例如,块分派器302在玩元游戏期间执行奖品钩子1512。在下文描述奖品钩子1512的其他细节。
此外,程序员将幻影请求钩子1514添加到again。块分派器302执行幻影请求钩子1514以生成用于玩挑战1和2的对应的一个或多个虚拟对象(诸如虚拟对象454)的一个或多个幻影。幻影请求钩子1514还包括将幻影赋予对应虚拟对象的方式。例如,幻影请求钩子1514指定是将幻影覆盖在对应的虚拟对象上还是呈现在对应的虚拟对象下方。在所述示例中,所述幻影表示对应的虚拟对象并且将以不同于对应的虚拟对象的方式显示。为了说明,与对应的虚拟对象相比,将更透明地显示幻影。作为另一示例,幻影请求钩子1514指示将把第一幻影赋予挑战1的第一虚拟对象并且将把第二幻影赋予挑战2的第二虚拟对象。第一幻影具有与第一虚拟对象相似的形状或相同的形状,并且第二幻影具有与第二虚拟对象相似的形状或相同的形状。在下文提供幻影请求钩子1514的其他细节。
在用户2经由用户账户2玩元游戏期间,块分派器302按序列(诸如顺序)执行在执行序列请求钩子1510之后经由用户账户1从用户1接收的基本块1-5中的一者或多者和基本块101-105中的一者或多者。例如,当经由用户账户1从用户1接收的用户输入指示将在执行基本块101-105之后执行基本块1-5时,块分派器302首先执行基本块101-105并且然后执行基本块1-5。在所述示例中,根据所述顺序在玩挑战1之前玩挑战2。
在一个实施方案中,序列请求钩子1508、领先计分板钩子1510、奖品钩子1512和幻影请求钩子1514中的一者或多者是任选的。例如,缓存102包括领先计分板钩子1510而不包括序列请求钩子1508、奖品钩子1512和幻影请求钩子1514。
在一个实施方案中,由块分派器302执行元游戏请求钩子1506、序列请求钩子1508或领先计分板钩子1510、奖品钩子1512和幻影请求钩子1514中的每一者。
在一个实施方案中,作为幻影请求钩子1514的代替或补充,程序员在缓存102中包括游戏玩法钩子。由块分派器302执行游戏玩法钩子。在下文提供游戏玩法钩子的其他细节。
图15B是用以说明用户1经由用户账户1选择挑战1和2的执行顺序的显示装置410的图。用户1选择手持式控制器414上的一个或多个按钮以生成用户输入1550,所述用户输入是包括生成元游戏的请求的信号。由手持式控制器414生成所述信号。在经由用户账户1接收到用户输入1550之后,块分派器302(图3)执行元游戏请求钩子1506(图15A)以识别用于生成元游戏的基本块1-5中的一者或多者和基本块101-105中的一者或多者。此外,在识别基本块1-5中的一者或多者和基本块101-105中的一者或多者之后,块分派器302执行序列请求钩子1508(图15A)以生成图像1552的图像数据,并且经由用户账户1和计算机网络408(图13)发送所述图像数据以在显示装置410上显示图像1552。图像1552包括选择挑战1和2的执行顺序的通知。另外,图像1552包括图形按钮1554,用户1可经由选择手持式控制器414上的按钮来选择所述图形按钮。图像1552还包括图形按钮1556,用户1可经由选择手持式控制器414上的按钮来选择所述图形按钮。
在经由计算机网络408接收到指示对图形按钮1554的选择的用户输入之后,块分派器302执行序列请求钩子1508以生成第一序列,其中将在执行挑战2的块101-105中的一者或多者之前执行挑战1的块1-5中的一者或多者。另一方面,在经由计算机网络408接收到指示对图形按钮1556的选择的用户输入之后,块分派器302执行序列请求钩子1508以生成第二序列,其中将在执行挑战1的块1-5中的一者或多者之前执行挑战2的块101-105中的一者或多者。
图16A是用以说明生成元游戏的方法1600的实施方案的流程图。在方法1600的操作1602中,确定是否在执行传统游戏N的第一部分期间接收到针对诸如挑战1的第一挑战的用户输入。例如,块分派器302确定是否经由计算机网络408(图13)和用户账户1接收到包括在游戏关卡1处暂停传统游戏N的请求的用户输入。在所述示例中,用户输入是当用户1选择手持式控制器414(图13)上的一个或多个按钮时生成的信号。由手持式控制器414生成所述信号。在所述示例中在确定是之后,块分派器302执行暂停游戏钩子1422(图14B)以在游戏关卡1处暂停传统游戏N。而且,在所述示例中,块分派器302执行创建挑战钩子1422(图14B)以生成诸如包括用于发起挑战1的创建挑战1按钮的图像帧的图像帧,并且经由用户账户1和计算机网络408将所述图像帧发送到显示装置410进行显示。继续所述示例,用户1经由手持式控制器412选择创建挑战1按钮,并且经由游戏控制台402和计算机网络408将选择的指示发送到服务器系统404。此外,在所述示例中,在接收到选择的指示之后,块分派器302执行基本块1到n中的一者或多者以从暂停传统游戏N以生成挑战1的时间继续玩传统游戏N,并且允许用户1玩挑战1。块分派器302继续确定在操作1602中是否接收到用户输入,直到接收到用户输入为止。
在方法1600的操作1604中,记录器1302(图13)将玩第一挑战记录为记录1。例如,块分派器302执行开始记录钩子1424(图14B)以将信号发送到记录器1302,以开始记录用户1经由用户账户1玩挑战1。在接收到记录的信号之后,记录器1302发起记录用户1经由用户账户1玩挑战1。一旦记录开始,在玩挑战1期间,用户1在挑战1期间选择手持式控制器414(图14A)上的一个或多个按钮以生成一个或多个用户输入。在经由用户账户1接收到一个或多个用户输入之后,块分派器302执行基本块1-5中的一者或多者以服务于在玩挑战1期间的一个或多个用户输入。由记录器1302将记录1存储在存储器装置1304(图13)中。
在方法1600的操作1606中,确定是否在执行传统游戏N的第二部分期间接收到针对诸如挑战2的第二挑战的用户输入。例如,块分派器302确定是否经由计算机网络408在用户账户1处接收到包括在游戏关卡Z处暂停传统游戏N的请求的用户输入,诸如信号。在所述示例中,用户输入是当用户1选择手持式控制器414(图13)上的一个或多个按钮时由手持式控制器414生成。继续所述示例,在确定是之后,块分派器302执行暂停游戏钩子1450(图14D)以在游戏关卡Z处暂停传统游戏N。而且,在所述示例中,块分派器302执行创建挑战钩子1452(图14D)以生成诸如包括用于发起挑战2的创建挑战2按钮的图像帧的图像帧,并且经由用户账户1和计算机网络408将所述图像帧发送到显示装置410进行显示。在所述示例中,用户1经由手持式控制器412选择创建挑战2按钮,并且经由游戏控制台402和计算机网络408将选择的指示发送到服务器系统404。此外,在所述示例中,在接收到选择的指示之后,块分派器302执行基本块1到n中的一者或多者以从暂停传统游戏N以生成挑战2的时间继续玩传统游戏N,并且允许用户1玩挑战2。块分派器302继续确定在操作1606中是否接收到用户输入,直到接收到用户输入为止。
在方法1600的操作1608中,记录器1302将玩第二挑战记录为记录2。例如,块分派器302执行开始记录钩子1454(图14D)以将信号发送到记录器1302,以开始记录用户1经由用户账户1玩挑战2。在所述示例中,在接收到记录的信号之后,记录器1302发起记录用户1经由用户账户1玩挑战2。此外,在所述示例中,在记录开始之后,在玩挑战2期间,用户1在挑战2期间选择手持式控制器414上的一个或多个按钮以生成一个或多个用户输入。在所述示例中,在经由用户账户1接收到一个或多个用户输入之后,块分派器302执行基本块101-105中的一者或多者以服务于在玩挑战2期间的一个或多个用户输入。由记录器1302将记录2存储在存储器装置1304中。
在方法1600的操作1610中,确定是否接收到用于生成元游戏的用户输入。例如,块分派器302确定是否在用户账户1处接收到用户输入,所述用户输入是包括用于从挑战1和2生成元游戏的请求的信号。在所述示例中,由用户1通过选择手持式控制器414(图13)上的一个或多个按钮生成用户输入。为了说明,块分派器302执行元游戏请求钩子1506(图15A)以确定在用户账户1处接收到的用户输入是否包括生成元游戏的请求。块分派器302继续确定是否接收到生成元游戏的用户输入,直到接收到所述用户输入为止。
在确定接收到生成元游戏的用户输入之后,执行操作1612。操作1612包括识别在经由用户账户1玩挑战1期间执行的基本块1到n中的一者或多者(诸如基本块1-5)和在经由用户账户1玩挑战2期间执行的基本块1到n中的一者或多者,诸如基本块101-105。例如,块分派器302执行元游戏请求钩子1506以从记录1识别在经由用户账户1玩挑战1期间执行的基本块1-5中的一者或多者。在所述示例中,块分派器302执行元游戏请求钩子1506以从记录2识别在经由用户账户1玩挑战2期间执行的基本块101-105中的一者或多者。为了说明,块分派器302将请求发送到记录器1302以从存储器装置1304访问记录1和2。在所述说明中,在接收到所述请求之后,记录器1302在获得来自块分派器302的请求之后从存储器装置1304访问记录1和2并且将记录提供给块分派器302。此外,在所述说明中,块分派器302解析记录1和2以从记录1识别生成记录1所执行的基本块1到5中的一者或多者,并且从记录2识别生成记录2所执行的基本块101-105中的一者或多者。
图16B是用以说明用于对挑战1的基本块1-5中的一者或多者与挑战2的基本块101-105中的一者或多者进行拼接的方法1600的图16A的流程图的接续部分。在方法1600的操作1614中,确定是否接收到生成在操作1612中识别出的基本块1到n中的一者或多者(诸如基本块1-5)和在操作1612中识别出的基本块1到n中的一者或多者(诸如基本块101-105)的执行序列的用户输入。例如,块分派器302(图3)执行序列请求钩子1508(图15A)以针对用户账户1生成图像1552(图15B)的图像数据,并且经由计算机网络408(图13)发送所述图像数据以在显示装置410(图13)上显示图像1552。在所述示例中,块分派器302执行序列请求钩子1508以确定是否响应于显示图像1552而经由计算机网络408在服务器系统404(图13)的用户账户1处接收到包括对图形按钮1554(图15B)的选择的用户输入或包括对图形按钮1556(图15B)的选择的用户输入。
在方法1600的操作1616中,响应于确定在操作1614中接收到用户输入而对用于促进玩挑战1的基本块1到n中的一者或多者(诸如基本块1-5)与用于促进玩挑战2的基本块1到n中的一者或多者(诸如基本块101-105)进行拼接。例如,在确定接收到包括对图形按钮1554的选择的用户输入之后,块分派器302执行序列请求钩子1508(图15A),以对在经由用户账户1玩挑战1期间执行的基本块1-5与在经由用户账户1玩挑战2期间执行的基本块101-105进行拼接。在所述示例中,基本块1-5与基本块101-105拼接使得能够在执行基本块101-105之前执行基本块1-5。为了说明,CPU 1308生成指向缓存102的在其处存储基本块101-105的存储器位置(诸如地址)的指针。CPU 1308在执行了所有基本块1-5之后立即提供对所述指针的访问。因此,所述指针在执行了所有基本块1-5之后立即指向基本块101-105的存储器位置以便执行基本块101-105。
在所述示例中,另一方面,在确定接收到包括对图形按钮1556的选择的用户输入之后,块分派器302执行序列请求钩子1508,以对在经由用户账户1玩挑战2期间执行的基本块1到n中的一者或多者(诸如基本块101-105)与在经由用户账户1玩挑战1期间执行的基本块1到n中的一者或多者(诸如基本块1-5)进行拼接。在所述示例中,对一个或多个基本块101-105与一个或多个基本块1-5进行拼接,以使得能够在执行一个或多个基本块1-5之前执行一个或多个基本块101-105。为了说明,CPU 1308生成指向缓存102的在其处存储基本块1-5的存储器位置(诸如地址)的指针。CPU 1308在执行了所有基本块101-105之后立即提供对所述指针的访问。因此,所述指针在执行了所有基本块101-105之后立即指向基本块1-5的存储器位置以便执行基本块1-5。
在方法1600的操作1618中,响应于确定在操作1614中未接收到用户输入,不对基本块1-5中的一者或多者与基本块101-105中的一者或多者进行拼接。例如,在确定既未接收到包括对图形按钮1554的选择的用户输入也未接收到包括对图形按钮1556的选择的用户输入之后,块分派器302不执行序列请求钩子1508以对在经由用户账户1玩挑战1期间执行的一个或多个基本块1-5与在经由用户账户1玩挑战2期间执行的一个或多个基本块101-105进行拼接。在所述示例中,在不拼接的情况下,稍后以相同序列执行基本块1-5和101-105,其中在用户1经由用户账户1玩元游戏期间执行基本块1-5和101-105。
图16C是用以说明在元游戏内添加领先计分板并且将奖品赋予元游戏的图16B的流程图的接续部分。在方法1600的操作1620中,确定是否接收到添加领先计分板的用户输入。例如,CPU 1308确定是否经由计算机网络408(图13)和用户账户1从客户端装置1301(图13)接收到指示将领先计分板添加到元游戏的用户输入。所述用户输入是在用户1选择手持式控制器414上的一个或多个按钮时由手持式控制器414(图13)生成的信号。
在方法1600的操作1622中,在确定接收到用于添加领先计分板的用户输入之后,CPU 1308将领先计分板添加到元游戏。例如,CPU 1308执行领先计分板请求钩子1508(图15A)以将领先计分板组合到元游戏。另一方面,在方法1600的操作1624中,响应于确定未接收到用于添加领先计分板的用户输入,CPU 1308不将领先计分板包括或添加在元游戏内。
继续方法1600,在方法1600的操作1626中,CPU 1308将总积分数(诸如虚拟积分)发布到领先计分板。例如,CPU 1308将用户1在玩挑战1期间经由用户账户1累积的积分数与用户1在玩挑战2期间经由用户账户1累积的积分数相加以确定总积分数。CPU 1308在领先计分板上公布总积分数。当用户2经由用户账户2和计算机网络408从服务器系统404(图13)访问领先计分板时,在显示装置1204(图13)上显示领先计分板。
在方法1600的操作1628中,CPU 1308确定将奖品赋予元游戏。例如,CPU 1308执行奖品钩子1512以将奖品包括在元游戏内。为了说明,所述奖品钩子包括用于经由用户账户2向用户2提供虚拟奖励的标准。当在执行元游戏期间实现所述标准(诸如预定限制)时,将所述虚拟奖励授予用户账户2。所述标准的示例包括在元游戏中达成大于预定积分数或在元游戏内通过预定关卡,或其组合。
在一个实施方案中,方法1600不包括操作1628。
在一个实施方案中,可使用玩元游戏的另一种类型的虚拟量度来取代在元游戏内计算和发布操作1626中的总积分数。例如,可使用所通过的虚拟关卡的总数或所累积的金币总数来取代总积分数。
图16D是图16C的流程图的接续部分。在方法1600的操作1630中,CPU 1308(图13)确定是否从用户2接收到访问元游戏的请求。例如,CPU 1308确定是否经由用户账户2和计算机网络408(图13)从客户端装置1303(图13)接收到访问元游戏的请求。在所述示例中,访问元游戏的请求也是执行元游戏的请求。此外,在所述示例中,用户2选择手持式控制器1212(图13)上的一个或多个按钮以生成包括访问元游戏的请求的信号。由手持式控制器1212生成所述信号。
响应于确定未接收到访问元游戏的请求,在操作1632中,CPU 1308不执行元游戏。另一方面,在确定接收到访问元游戏的请求之后,在方法1600的操作1634中,CPU 1308确定是否接收到将一个或多个幻影赋予对应的一个或多个虚拟对象的用户输入。作为操作1634的示例,确定是否经由用户账户2和计算机网络408从客户端装置1303接收到覆盖幻影的用户输入。在所述示例中,所述用户输入是在用户2选择手持式控制器1212上的一个或多个按钮时由手持式控制器1212生成的信号。作为另一示例,所述一个或多个幻影包括第一幻影和第二幻影,并且对应的一个或多个虚拟对象包括第一虚拟对象和第二虚拟对象。将所述第一幻影赋予第一虚拟对象并且将所述第二幻影赋予第二虚拟对象。所述第一虚拟对象由每个用户1和2在玩挑战1期间经由他们的对应的手持式控制器414和1212控制。所述第二虚拟对象由每个用户1和2在玩挑战2期间经由他们的对应的手持式控制器414和1212控制。对幻影的说明包括覆盖虚拟对象,诸如覆盖虚拟人物。另外,在所述说明中,与在其上覆盖幻影的虚拟对象的显示相比,幻影的显示更透明。而且,在所述说明中,幻影具有与虚拟对象的形状相似的形状或相同的形状。作为另一说明,幻影是下伏的虚拟对象,诸如下伏的虚拟人物。在所述说明中,与在其上覆盖幻影的虚拟对象的显示相比,幻影的显示更透明。而且,在所述说明中,幻影具有与虚拟对象的形状相似的形状或相同的形状。
在方法1600的操作1636中,在确定未接收到将一个或多个幻影赋予对应的一个或多个虚拟对象的用户输入之后,CPU 1308执行元游戏,而不将一个或多个幻影赋予对应的一个或多个虚拟对象。例如,响应于确定未接收到针对覆盖的用户输入,CPU 1308不将第一幻影覆盖在第一虚拟对象上并且不将第二幻影覆盖在第二虚拟对象上。
另一方面,在方法的操作1638期间,响应于确定接收到用于在对应的一个或多个虚拟对象上赋予一个或多个幻影的用户输入,CPU 1308在用户2玩元游戏期间在对应的一个或多个虚拟对象上赋予一个或多个幻影。
作为示例,CPU 1308执行幻影请求钩子1514,以从存储器装置1314(图13)访问记录1和2并且解析记录1和2。对记录1和2进行解析以识别由用户1在玩挑战1和2期间经由用户账户1和手持式控制器414(图13)控制的一个或多个虚拟对象,诸如第一虚拟对象和第二虚拟对象。CPU 1308生成具有与用户1在玩挑战1期间经由用户账户1控制的第一虚拟对象的形状相似或相同形状的第一幻影,并且生成与用户1在玩挑战2期间经由用户账户1控制的第二虚拟对象的形状相似或相同形状的第二幻影。作为说明,前面示例中的第一虚拟对象和第二虚拟对象是相同的。为了进一步说明,第一虚拟对象和第二虚拟对象中的每一者是虚拟战斗机或虚拟人物。作为另一说明,前面示例中的第一虚拟对象和第二虚拟对象是不同的。为了进一步说明,第一虚拟对象是虚拟战斗机并且第二虚拟对象是虚拟人物。
作为另一示例,CPU 1308执行幻影请求钩子1514以从存储器装置1304(图13)访问记录1,并且从记录1确定虚拟对象位于各种位置和取向的时间。对时间的说明包括时间t1、时间t2、时间t3、时间t4和时间t5。继续所述示例,CPU 1308计算从CPU 1308开始执行传统游戏N的一部分以便促进玩挑战1起的时间,并且将所述时间存储在记录1内。所述部分被执行以促进所述玩挑战,其存储为记录1。因此,从开始执行所述部分起的时间与从开始记录1起的时间相同。CPU 1308执行幻影请求钩子1514(图15A)以将虚拟对象表示为幻影,并且基于对应于挑战1的时间来移动所述幻影。在所述示例中,当经由用户账户2访问传统游戏N的所述部分以便促进玩挑战1时,GPU 1310(图13)以存储在记录1内的在时间t1处的相同位置和取向显示虚拟对象和幻影。时间t1是由CPU 1308根据开始执行经由用户账户2访问的传统游戏N的所述部分来计算。CPU 1308确定时间是否已经从t1改变为t2,并且指示GPU 1310以对应于时间t2的位置和取向显示幻影。对应于时间t2的位置和取向存储在记录1中。而且,CPU 1308确定时间是否已经从t2改变为t3,并且指示GPU 1310以对应于时间t3的位置和取向显示幻影。对应于时间t3的位置和取向存储在记录1中。
作为另一示例,CPU 1308从存储器装置1304(图13)访问记录2,并且从记录2确定虚拟对象位于各种位置和取向的时间。对所述时间的说明包括时间ta、时间tb、时间tc、时间td和时间te。继续所述示例,CPU 1308计算从CPU 1308开始执行传统游戏N的一部分以便促进玩挑战2起的时间,并且将所述时间存储在记录2内。所述部分被执行以促进所述玩挑战,其记录为记录2。因此,从开始执行所述部分起的时间与从开始记录2起的时间相同。CPU1308将虚拟对象表示为幻影,并且基于对应于挑战2的时间来移动所述幻影。当经由用户账户2访问传统游戏N的所述部分以便促进玩挑战2时,GPU 1310以存储在记录2内的在时间ta处的相同位置和取向显示虚拟对象和幻影。时间ta是由CPU 1308根据开始执行经由用户账户2访问的传统游戏N的所述部分来计算。CPU 1308确定时间是否已经从ta改变为tb,并且指示GPU 1310以对应于时间tb的位置和取向显示幻影。对应于时间tb的位置和取向存储在记录2中。而且,CPU 1308确定时间是否已经从tb改变为tc,并且指示GPU 1310以对应于时间tc的位置和取向显示幻影。对应于时间tc的位置和取向存储在记录2中。
作为又一示例,当用户2经由客户端装置1303和用户账户2访问挑战1时,CPU 1308指示GPU 1310(图13)在第一虚拟对象的顶部上渲染第一幻影。在所述示例中,当用户2经由客户端装置1303和用户账户2访问挑战2时,CPU 1308指示GPU 1310在第二虚拟对象的顶部上渲染第二幻影。为了说明,第一幻影将同一人物表示为第一虚拟对象,并且第二幻影将同一人物表示为第二虚拟对象。为了进一步说明,当第一虚拟对象是射手时第一幻影是射手,并且当第二虚拟对象是虚拟平面时,第二幻影也是虚拟平面。作为另一示例,当用户2经由客户端装置1303和用户账户2访问挑战1时,CPU 1308指示GPU 1310(图13)在作为下伏虚拟对象的第一虚拟对象下方显示第一幻影。在所述示例中,当用户2经由客户端装置1303和用户账户2访问挑战2时,CPU 1308指示GPU 1310(图13)在作为下伏虚拟对象的第二虚拟对象下方显示第二幻影。
应注意,在前面的两个示例中,在第一虚拟对象和第一幻影与第二虚拟对象和第二幻影之间不存在联系。例如,第一虚拟对象是由用户2经由手持式控制器1212(图13)来控制,并且第一幻影是根据用户1玩挑战1来显示。在所述示例中,第一幻影相对于第一虚拟对象的覆盖或下伏发生在用户2经由用户账户2开始玩挑战1的时间处。而且,在所述示例中,在挑战1期间的某一玩时间之后,第一幻影是与第一虚拟对象的位置和取向不同的位置和取向。作为另一示例,第二虚拟对象是由用户2经由手持式控制器1212(图13)来控制,并且第二幻影是根据用户1玩挑战2来显示。在所述示例中,第二幻影相对于第二虚拟对象的覆盖或下伏发生在用户2经由用户账户2开始玩挑战2的时间处。而且,在所述示例中,在挑战2期间的某一玩时间之后,第二幻影是与第二虚拟对象的位置和取向不同的位置和取向。
应注意,元游戏是在操作1636中或在操作1638中根据由图形按钮1554或1556(图15B)指示的序列来执行的。例如,当接收到对图形按钮1554的选择的指示时,块分派器302在执行基本块1-5中的一者或多者之后执行基本块101-105中的一者或多者以执行元游戏。另一方面,当接收到对图形按钮1556的选择的指示时,块分派器302在执行基本块101-105中的一者或多者之后执行基本块1-5中的一者或多者以执行元游戏。
在一个实施方案中,在用户2经由用户账户2玩元游戏期间显示一个或多个视频,诸如用户1玩元游戏的一个或多个视频或玩元游戏的用户1的一个或多个视频,而不是基于操作1634和1638将一个或多个幻影赋予对应的一个或多个虚拟对象。例如,作为操作1634的替代,CPU 1308确定是否经由客户端装置1303和用户账户2从用户2接收到覆盖用户1经由客户端装置1301和用户账户1玩元游戏的一个或多个视频的用户输入。所述用户输入包括在用户2选择手持式控制器1212上的一个或多个按钮时由所述手持式控制器生成的信号。响应于确定未接收到所述用户输入,作为操作1636的替代,在不覆盖一个或多个视频的情况下执行元游戏。另一方面,在确定接收到用户输入之后,作为执行操作1638的替代,CPU1308执行玩游戏钩子以将一个或多个视频覆盖在元游戏上。例如,CPU 1308从存储器装置1314(图13)访问记录1和2,在执行第一挑战以供用户2玩期间覆盖记录1的第一视频,并且在执行第二挑战以供用户2玩期间覆盖记录2的第二视频。CPU 1308控制记录器1302以在经由用户账户1执行挑战1期间记录第一视频,并且在经由用户账户1执行挑战2期间记录第二视频。
在一个实施方案中,由GPU 1310通过使用与虚拟对象不同的渲染因素来渲染幻影,所述不同的渲染因素诸如不同的颜色或强度或纹理或形状或其组合。幻影将被赋予虚拟对象。
图16E是图16D的流程图的接续部分。在操作1640中,CPU 1308(图13)确定是否将领先计分板添加到元游戏。例如,当在操作1622(图16C)中将领先计分板添加到元游戏时,CPU 1308将指示领先计分板被添加到元游戏的标识符存储在缓存102内。CPU 1308在操作1640中检查缓存102以寻找所述标识符。在找到标识符之后,确定领先计分板被添加到元游戏。当未找到标识符时,CPU 1308确定领先计分板未被添加到元游戏。
响应于确定领先计分板被添加到元游戏,在方法1600的操作1642中,CPU 1308确定在用户2经由用户账户2玩元游戏期间累积的积分数是否超过在操作1626(图16C)中向领先计分板公布的总积分数。元游戏的总积分数由用户1在玩元游戏期间经由用户账户1累积。应注意,用户2在操作1636(图16D)中开始玩元游戏。作为示例,CPU 1308确定第一虚拟积分数由用户1在玩挑战1期间经由用户账户1累积并且第二虚拟积分数由用户1在玩挑战2期间经由用户账户1累积。CPU 1308将第一数目与第一平衡常数相乘以输出第一结果,并且将第二数目与第二平衡常数相乘以输出第二结果,并且将所述第一结果和所述第二结果相加以确定第一总数。类似地,CPU 1308确定第三虚拟积分数由用户2在玩挑战1期间经由用户账户2累积并且第四虚拟积分数由用户2在玩挑战2期间经由用户账户2累积。CPU 1308将所述第三数目与第一平衡常数相乘以输出第三结果,并且将第四数目与第二平衡常数相乘以输出第四结果,并且将所述第三结果和所述第四结果相加以确定第二总数。CPU 1308确定所述第二总数大于所述第一总数。
响应于在操作1642中确定在用户2经由用户账户2玩元游戏期间累积的积分数超过在操作1626中公布的总积分数,CPU 1308在操作1644中向用户账户2指派比用户账户1更高的排名或更高的顺序。例如,在前面的示例中在确定第二总数大于第一总数之后,CPU1308确定用户2是领先者并且将指派给用户2的用户ID2添加到领先计分板。CPU 1308控制GPU 1310(图13)以将用户ID2渲染在用户ID1上方。
另一方面,当在操作1642中确定在用户2经由用户账户2玩元游戏期间累积的积分数未超过在操作1626中公布的总积分数之后,CPU 1308在操作1646中向用户账户2指派比用户账户1更低的排名。例如,在确定第二总数不大于第一总数之后,CPU 1308确定用户1仍然是领先者并且将指派给用户2的用户ID2添加到领先计分板。CPU 1308控制GPU 1310(图13)以将用户ID2渲染在用户ID1下方。
响应于确定在操作1640中未将领先计分板添加到元游戏,CPU 1308在操作1648中确定是否将奖品赋予元游戏。例如,当在操作1628(图16C)中将奖品赋予元游戏时,CPU1308将指示奖品被包括在元游戏内的标识符存储在缓存102内。CPU 1308在操作1648中检查缓存102以寻找所述标识符。在找到标识符之后,确定奖品被赋予元游戏。当未找到标识符时,CPU 1308确定奖品未被赋予元游戏。
CPU 1308在确定奖品未被赋予元游戏之后继续检查奖品是否被赋予元游戏。另一方面,响应于确定奖品被赋予元游戏,在方法1600的操作1650中,CPU 1308确定在用户2经由用户账户2玩元游戏期间累积的积分数是否超过预定限制。例如,CPU 1308确定在经由用户账户2玩元游戏期间累积的第二总数大于与操作1628(图16C)相关联的预定积分数。
在确定所述积分数超过所述预定限制之后,CPU 1308确定在方法1600的操作1652中将奖品授予用户账户2。奖品的示例是荣誉或虚拟奖励,诸如虚拟皮肤或虚拟积分数或元游戏中的游戏关卡。游戏关卡被解锁以提供奖品。在授予奖品之前,游戏关卡被锁定并且用户2无法经由用户账户2访问。另一方面,当确定积分数未超过预定阈值时,CPU 1308确定在方法1600的操作1654中不将奖品授予用户账户2。
图17是用以说明在显示装置1204上显示幻影的情况下的元游戏的实施方案的图。在用户2经由用户账户2玩元游戏的挑战1和2期间,在显示屏幕1204上显示虚拟对象454。GPU 1310(图13)将虚拟对象454渲染在显示装置1204上。
为了促进经由用户账户2玩挑战1,CPU 1308执行元游戏的被执行以促进经由用户账户1玩挑战1的同一部分。例如,CPU 1308执行传统游戏N的第一部分以促进经由用户账户1玩传统游戏N,并且执行所述第一部分以促进经由用户账户2玩传统游戏N。类似地,为了促进经由用户账户2玩挑战2,CPU 1308执行元游戏的被执行以促进经由用户账户1玩挑战2的同一部分。例如,CPU 1308执行传统游戏N的第二部分以促进经由用户账户1玩传统游戏N,并且执行所述第二部分以促进经由用户账户2玩传统游戏N。作为另一示例,CPU 1308执行传统游戏(N-1)的一部分以促进经由用户账户1玩传统游戏(N-1),并且执行所述部分以促进经由用户账户2玩传统游戏(N-1)。
在作为开始玩元游戏的挑战1的时间的时间t1处,在显示装置1204的显示屏幕上以位置P1和取向O1显示虚拟对象454。而且,在时间t1处,虚拟幻影1704覆盖在虚拟对象454的顶部上。GPU 1310将虚拟幻影1704渲染在显示装置1204上。虚拟幻影1704在时间t1处位于与虚拟对象454的位置和取向相同的位置P1和取向O1。虚拟幻影1704是虚拟对象454(图14C)的表示。在图17中使用虚线来绘示虚拟幻影1704并且在图17中使用实线来绘示虚拟对象454。
在玩挑战1期间,用户2经由手持式控制器1212(图13)将虚拟对象454从位置P1和取向O1移动到位置Pb和取向Ob。在虚拟对象454位于位置Pb和取向Ob的时间t2处,虚拟幻影1704位于位置P2和取向O2。位置Pb不同于位置P2并且取向Ob不同于取向O2。
其后,在玩挑战1期间,用户2经由手持式控制器1212将虚拟对象454从位置Pb和取向Ob移动到位置Pc和取向Oc。在虚拟对象454位于位置Pc和取向Oc的时间t3处,虚拟幻影1704位于位置P3和取向O3。位置Pc不同于位置P3并且取向Oc不同于取向O3。
此外,在玩挑战1期间,用户2经由手持式控制器1212将虚拟对象454从位置Pc和取向Oc移动到位置Pd和取向Od。在虚拟对象454位于位置Pd和取向Od的时间t4处,虚拟幻影1704位于位置P4和取向O4。位置Pd不同于位置P4并且取向Od不同于取向O4。
而且,在玩挑战1期间,用户2经由手持式控制器1212将虚拟对象454从位置Pd和取向Od移动到位置Pe和取向Oe。在虚拟对象454位于位置Pe和取向O5的时间t5处,虚拟幻影1704位于位置P5和取向O5。位置Pe不同于位置P5并且取向Oe不同于取向O5。
虚拟对象454的位置P1、Pb、Pc、Pd和Pe以及取向O1、Ob、Oc、Od和Oe发生在执行传统游戏N的一部分以促进玩挑战1期间。所述部分对应于在经由用户账户2进行访问时的挑战1。而且,虚拟幻影1704的位置P1到P5以及取向O1到O5发生在经由用户账户1进行访问时执行传统游戏N的同一部分期间。
在作为开始经由用户账户2玩元游戏的挑战2的时间的时间ta处,在显示装置1204的显示屏幕上以位置P101和取向O101显示虚拟对象454。例如,在元游戏中,CPU 1308指示GPU 1310将虚拟对象454从位置Pe移动到位置P101以及从取向Oe移动到取向O101。而且,在时间ta处,虚拟幻影1704覆盖在虚拟对象454的顶部上。虚拟幻影1704在时间ta处位于与虚拟对象454的位置和取向相同的位置P101和取向O101。
在玩挑战2期间,用户2经由手持式控制器1212将虚拟对象454从位置P101和取向O101移动到位置Px2和取向Ox2。在虚拟对象454位于位置Px2和取向Ox2的时间tb处,虚拟幻影1704位于位置P102和取向O102。位置Px2不同于位置P102并且取向Ox2不同于取向O102。
其后,在玩挑战2期间,用户2经由手持式控制器1212将虚拟对象454从位置Px2和取向Ox2移动到位置Px3和取向Ox3。在虚拟对象454位于位置Px3和取向Ox3的时间tc处,虚拟幻影1704位于位置P103和取向O103。位置Px3不同于位置P103并且取向Ox3不同于取向O103。
此外,在玩挑战2期间,用户2经由手持式控制器1212将虚拟对象454从位置Px3和取向Ox3移动到位置Px4和取向Ox4。在虚拟对象454位于位置Px4和取向Ox4的时间td处,虚拟幻影1704位于位置P104和取向O104。位置Px4不同于位置P104并且取向Ox4不同于取向O104。
而且,在玩挑战2期间,用户2经由手持式控制器1212将虚拟对象454从位置Px4和取向Ox4移动到位置Px5和取向Ox5。在虚拟对象454位于位置Px5和取向Ox5的时间te处,虚拟幻影1704位于位置P105和取向O105。位置Px5不同于位置P105并且取向Ox5不同于取向O105。
虚拟对象454的位置P101、Px2、Px3、Px4和Px5以及取向O101、Ox2、Ox3、Ox4和Ox5到O105发生在执行传统游戏N的一部分(诸如传统游戏N的一部分或传统游戏(N-1)的一部分)以促进玩挑战2期间。元游戏的所述部分是经由用户账户2来访问。而且,虚拟幻影1704的位置P101到P105以及取向O101到O105发生在经由用户账户1进行访问时执行元游戏的同一部分期间。
应注意,在玩元游戏期间,由GPU 1310在执行挑战1和2的位置处渲染虚拟金字塔411。例如,在虚拟金字塔411上方实现位置P1、Pb、Pc、Pd和Pe并且在虚拟金字塔411下方实现位置P101、Px2、Px3、Px4和Px5。
图18A是在由用户1操作的显示装置410上显示的领先计分板1802的实施方案的图。领先计分板1802包括行1804,所述行包括用户1在玩元游戏期间经由用户账户1累积的积分数。领先计分板1802由用户1在登录到用户账户1之后访问。
图18B是在由用户2操作的显示装置1204上显示的领先计分板1802的实施方案的图。领先计分板1802包括附加的行1806。附加的行1806包括用户ID2和用户2在玩元游戏期间经由用户账户2累积的积分数。应注意,用户1与用户2相比已经累积了更高的积分数,并且因此在行1804中显示用户ID1。行1804与行1806相比位于更高的层级。因此,用户1累积的积分数比用户2累积的积分数更高地排序或排名。
图19是用以说明指示用户2已经在玩元游戏之后赢得奖品的通知1902的由用户2操作的显示装置1204的实施方案的图。作为示例,通知1902包括文本描述,诸如句子或短语。作为另一示例,指示他们的用户2已经在用户账户2中赢得奖品的通知包括一系列字母数字字符或符号或图形或其组合。
在一个实施方案中,指示用户2已经赢得奖品的通知包括奖励。用户2经由用户账户2赢得奖励。例如,所述通知包括用户2现在可访问元游戏的游戏关卡。用户2在赢得奖品之前无法经由用户账户2访问游戏关卡。作为另一示例,所述通知包括CPU 1308(图13)经由用户账户2授予用户2的虚拟积分数。
图20是在概念上说明根据本公开的实现方式的经过执行以用于将云视频游戏流式传输到客户端装置的各种操作的流程图。客户端装置的示例包括游戏控制器、智能电话、游戏机和计算机。游戏服务器2002执行视频游戏,诸如元游戏或传统游戏N,并且生成原始(未压缩)视频2004和音频2006。虚拟环境,诸如虚拟环境452(图4A)、在图14中绘示的虚拟场景、在图17A中绘示的虚拟场景或在图17C中绘示的虚拟场景,以及在呈现所述虚拟环境期间的音频输出是视频2004和音频2006的示例。游戏服务器2002是服务器系统404(图4A)的示例。视频2004和音频2006被捕获和编码以用于流式传输目的,如在所说明的图中的参考标号2008处所指示。编码提供对视频流和音频流的压缩,以减少带宽使用并且优化游戏体验。编码格式的示例包括H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPE G-2、WMV、VP6/7/8/9等。
经编码的音频2010和经编码的视频2012被进一步分组化成网络分组,如附图标记2014处所指示,以用于在计算机网络2020上进行传输,所述计算机网络是计算机网络408(图4A和图13)的示例。在一些实施方案中,网络数据分组编码过程还采用数据加密过程,从而提供增强的数据安全性。在所说明的实现方式中,生成音频分组2016和视频分组2018以用于经由计算机网络2020进行传输。
游戏服务器2002另外生成触觉反馈数据2022,所述触觉反馈数据也被分组化为网络分组以用于网络传输。在所说明的实现方式中,生成触觉反馈分组2024以用于经由计算机网络2020进行传输。
在数据中心的游戏服务器2002上执行生成原始视频和音频和触觉反馈数据的前述操作,并且由数据中心的流引擎执行对视频和音频进行编码以及将经编码的音频/视频和触觉反馈数据分组化以进行传输的操作。如所指示,经由计算机网络2020传输音频、视频和触觉反馈分组。如在附图标记2026处所指示,音频分组2016、视频分组2018和触觉反馈分组2024被客户端装置碎解,例如,解析等,以在所述客户端装置处从网络分组提取经编码的音频2028、经编码的视频2030和触觉反馈数据2022。如果数据已被加密,则数据还被解密。然后,如附图标记2034处所指示,由客户端装置对经编码的音频2028和经编码的视频2030进行解码,以生成客户端侧的原始音频和视频数据以便在所述客户端装置的显示装置2040上渲染。由客户端装置的处理器处理触觉反馈数据2022,以在控制器装置2024或可借以渲染触觉效果的其他接口装置(例如,HMD等)处产生触觉反馈效果。控制器装置2024是客户端装置的手持式控制器的示例。触觉效果的一个示例是控制器装置2024的振动或隆隆声。
将了解,视频游戏对玩家输入进行响应,并且因此执行与上述用于玩家输入的传输和处理的过程类似但是在从客户端装置到服务器的相反方向上的程序流程。如图所示,控制器装置2024或另一输入部件(例如,用户1的身体部位、用户2的身体部位等)或其组合生成输入数据2048。输入数据2048在客户端装置处被分组化,以便在计算机网络2020上运输到数据中心。输入数据分组2046被游戏服务器2002拆开和重组以在数据中心侧上限定输入数据2048。输入数据2048被馈送到游戏服务器2002,所述视频游戏服务器处理输入数据2048以生成视频游戏的游戏状态。
在经由计算机网络2020运输音频分组2016、视频分组2018和触觉反馈分组2024期间,在一些实施方案中,对经由计算机网络2020传输数据进行监视以确保服务质量。例如,如附图标记2050所指示,监视计算机网络2020的网络条件,包括上游和下游网络带宽两者,并且是响应于可用带宽的变化而调整游戏流式传输。即,如附图标记2052所指示,基于当前网络状况来控制对网络分组的编码和解码。
图21是用于与客户端装置的显示装置介接并且能够经由计算机网络2020(图20)与游戏主机系统(诸如服务器系统404(图4A、图12和图13))通信的兼容的游戏控制台2100的实施方案的框图。游戏控制台2100是游戏控制台402或游戏控制台1202(图13)的示例。游戏控制台2100位于数据中心内或者位于诸如用户1或2的玩家所在的位置。在一些实施方案中,游戏控制台2100用于执行显示在HMD上的游戏。游戏控制台2100具备能够连接到游戏控制台2100的各种外围装置。游戏控制台2100具有单元处理器2128、动态随机存取存储器(XDRAM)单元2126、具有专用视频随机存取存储器(VRAM)单元2132的现实合成器图形处理器单元2130,和输入/输出(I/O)桥2134。游戏控制台2100还具有Blu 只读存储器(BD-ROM)光盘读取器2140,以便从盘2140a和能够通过I/O桥2134访问的可移除吸入式硬盘驱动器(HDD)2136进行读取。任选地,游戏控制台2100还包括存储器卡读取器2138,用于读取能够类似地通过I/O桥2134访问的紧凑型快闪存储器卡、memory />存储器卡等。I/O桥2134还连接到USB2.0端口2124、千兆以太网端口2122、IEEE 802.11b/g无线网络(Wi-FiTM)端口2120,和能够支持蓝牙连接的/>无线链接端口2118。
在操作中,I/O桥2134处置所有无线、USB和以太网数据,包括来自游戏控制器和来自HMD 2105的数据。例如,当玩家正在玩通过执行诸如游戏代码GCN的游戏代码的一部分而生成的视频游戏时,I/O桥2134经由蓝牙链接从游戏控制器2042(图20)或2103和/或从HMD2105接收本文描述的输入数据或输入信号,并且将所述输入数据引导到单元处理器2128,所述单元处理器相应地更新视频游戏的当前状态。作为示例,HMD 2105内的相机捕获玩家的姿势以生成表示所述姿势的图像。游戏控制器2042是手持式控制器406或1212(图13)的示例。
除了游戏控制器2042和2103以及HMD 2105之外,无线、USB和以太网端口还为其他外围装置提供连接性,所述其他外围装置诸如遥控器2104、键盘2106、鼠标2108、便携式娱乐装置2110(诸如Sony Playstation 娱乐装置等)、摄像机(诸如,/>摄像机2112等)、麦克风耳机2114和麦克风2115。便携式娱乐装置2110是游戏控制器的示例。在一些实施方案中,此类外围装置无线连接到游戏控制台2100,例如,便携式娱乐装置2110经由Wi-FiTM特设连接进行通信,而麦克风耳机2114经由蓝牙链接进行通信。
这些接口的提供意味着游戏控制台2100还潜在地与诸如数字视频记录仪(DVR)、机顶盒、数码相机、便携式媒体播放器、互联网协议语音(IP)电话、移动电话、打印机和扫描仪的其他外围装置兼容。
另外,传统存储器卡读取器2116经由USB端口2124连接到游戏控制台2100,使得能够读取由游戏控制台2100使用的种类的存储器卡2148。游戏控制器2042和2103,以及HMD2105可操作以经由蓝牙链接2118与游戏控制台2100无线地通信,或者连接到USB端口2124,进而还接收电力,通过所述电力向游戏控制器2042和2103以及HMD 2105的电池充电。在一些实施方案中,游戏控制器2042和2103以及HMD 2105中的每一者包括存储器、处理器、存储器卡读取器、诸如闪存存储器的持久存储器、诸如发光球形区段、发光二极管(LED)或红外光等的光发射器、用于超声波通信的麦克风和扬声器、隔音箱、数码相机、内部时钟、诸如面向游戏控制台2100的球形区段的可辨识形状,以及使用诸如蓝牙、Wi-Fi等的协议的无线装置。
游戏控制器2042是被设计成由诸如用户1或2的玩家双手使用的控制器,并且游戏控制器2103是带有附件的单手控制器。HMD 2105被设计成装配在玩家的头顶上和/或眼睛前方。除了一个或多个模拟操纵杆和常规的控制按钮之外,每个游戏控制器2042和2103易受三维位置确定影响。类似地,HMD 2105易受三维位置确定影响。因此,在一些实施方案中,作为常规按钮或操纵杆命令的补充或代替,使用游戏控制器2042和2103的玩家以及HMD2105的玩家的手势和移动被转译为视频游戏的游戏代码的输入。任选地,诸如PlaystationTM便携式装置等的其他无线启用的外围装置用作控制器。在PlaystationTM便携式装置的情况下,在装置的显示屏幕上提供额外的游戏或控制信息,例如,控制指令或生命数目等。在一些实施方案中,使用其他替代性或补充性控制装置,诸如跳舞毯(未示出)、光枪(未示出)、方向盘和踏板(未示出)、定制控制器等。定制控制器的示例包括用于快速问答游戏(也未示出)的单个或若干大按钮。
遥控器2104还可操作以经由蓝牙链接2118与游戏控制台2100无线地通信。遥控器2104包括适合于操作Blu RayTM盘BD-ROM读取器2140并且适合于导航盘内容的控件。
Blu RayTM Disk BD-ROM读取器2140可操作以除了常规的预录和可记录的CD和所谓的超级音频CD之外还读取与游戏控制台2100兼容的CD-ROM。Blu RayTMDisk BD-ROM读取器2140还可操作以除了常规的预先记录和可记录的DVD之外还读取与游戏控制台2100兼容的数字视频盘ROM(DVD-ROM)。Blu RayTMDisk BD-ROM读取器2140进一步可操作以读取与游戏控制台2100兼容的BD-ROM,以及常规的预先记录和可记录的蓝光盘。
游戏控制台2100可操作以通过音频连接器2150和视频连接器2152将经由现实合成器图形单元2130生成或解码的音频和视频供应给具有显示屏幕2144和一个或多个扩音器2146的显示和声音输出装置2142,诸如监视器或电视机等,或经由无线链接端口2118将音频和视频供应给HMD 2105的显示装置。在各种实施方案中,音频连接器2150包括常规的模拟和数字输出,而视频连接器2152不同地包括分量视频、S-视频、合成视频,以及一个或多个高清晰度多媒体接口(HDMI)输出。因此,视频输出可呈诸如逐行倒相(PAL)或国家电视系统委员会(NTSC)的格式,或者处于2220p、1080i或1080p高清。由单元处理器2108执行例如生成、解码等的音频处理。游戏控制台2100的操作系统支持/>环绕声、/>影院环绕声(DTS)以及来自/>盘的7.1环绕声的解码。显示和声音输出装置2142是显示装置410或1204(图4A和图13)的示例。
在一些实施方案中,诸如摄像机2112等的摄像机包括单个电荷耦合装置(CCD)、LED指示器和基于硬件的实时数据压缩和编码设备,使得压缩后的视频数据以诸如基于图像内的运动图像专家组(MPEG)标准的适当格式传输,以供游戏控制台2100解码。摄像机2112的LED指示器被布置为响应于来自游戏控制台2100的适当控制数据而照亮,例如,以表示不利的照明条件等。摄像机2112的一些实施方案经由USB、蓝牙或Wi-Fi通信端口连接到游戏控制台2100。摄像机的各种实施方案包括一个或多个相关联的麦克风,并且还能够传输音频数据。在摄像机的若干实施方案中,CCD具有适合于高清视频捕获的分辨率。在使用中,由摄像机捕获的图像并入游戏内或者被解译为游戏控制输入。在另一实施方案中,摄像机是适合于检测红外光的红外相机。
在各种实施方案中,为了经由游戏控制台2100的通信端口中的一者与外围装置(例如,摄像机或遥控器)进行成功的数据通信,提供一件适当的软件,诸如装置驱动程序。
在一些实施方案中,包括游戏控制台2100和游戏控制器2042或2103的前述系统装置使得HMD 2105能够显示和捕获视频游戏的交互式会话的视频。系统装置发起视频游戏的交互式会话。所述交互式会话限定视频游戏的玩家和其他玩家之间的交互性。所述系统装置进一步确定由玩家操作的游戏控制器2042或2103和/或HMD 2105的初始位置和取向。游戏控制台2100基于玩家与视频游戏之间的交互性来确定游戏的当前状态。所述系统装置在玩家与视频游戏的交互式会话期间跟踪游戏控制器2042或2103和/或HMD 2105的位置和取向。所述系统装置基于传统游戏N的当前状态以及手持式控制器(HHC)和/或HMD 2105的被跟踪的位置和取向而生成交互会话的观众视频流。HHC的示例包括控制器2042和控制器2103。在一些实施方案中,HHC在HHC的显示屏幕上渲染所述观众视频流。在各种实施方案中,HMD 2105在HMD 2105的显示屏幕上渲染观众视频流。
参考图22,示出了绘示HMD 2202的部件的图。HMD 2202是HMD 2105(图21)的示例。HMD 2202包括用于执行程序指令的处理器2200。提供用于存储目的的存储器装置2202。存储器装置2202的示例包括易失性存储器、非易失性存储器或它们的组合。包括显示装置2204,所述显示装置提供玩家观看的视觉界面,例如从保存数据等生成的图像帧的显示器。提供电池2206作为HMD 2202的电源。运动检测模块2208包括各种运动敏感硬件中的任一者,诸如磁力计2210、加速度计2212和陀螺仪2214。
加速度计是用于测量加速度和重力诱发的反作用力的装置。可使用单轴模型和多轴模型检测不同方向上的加速度的量值和方向。使用加速度计来感测倾斜度、振动和冲击。在一个实施方案中,使用三个加速度计2212来提供重力的方向,其给出对例如世界空间俯仰和世界空间横滚等两个角度的绝对参考。
磁力计测量HMD 2202附近的磁场的强度和方向。在一些实施方案中,在HMD 2202内使用三个磁力计2210,从而确保对世界空间偏航角度的绝对参考。在各种实施方案中,磁力计被设计为横跨±80微特斯拉的地球磁场。磁力计受到金属影响,并且提供与实际偏航单调的偏航测量结果。在一些实施方案中,由于现实世界环境中的金属,磁场被扭曲,这导致偏航测量结果的扭曲。在各种实施方案中,使用来自例如陀螺仪2214、相机2216等的其他传感器的信息来校准此扭曲。在一个实施方案中,一起使用加速度计2212与磁力计2210以获得HMD 2202的倾角和方位角。
陀螺仪是用于基于角动量的原理来测量或维持取向的装置。在一个实施方案中,作为陀螺仪2214的替代,三个陀螺仪基于惯性感测而提供关于跨相应轴线(x、y和z)的移动的信息。陀螺仪有助于检测快速旋转。然而,在一些实施方案中,陀螺仪在不存在绝对基准的情况下随时间漂移。这触发了周期性地重置陀螺仪,这可基于对象的视觉跟踪、加速度计、磁力计等使用诸如位置/取向确定的其他可用信息来完成。
提供相机2216来捕获玩家周围的现实世界环境(例如,房间、车厢、自然环境等)的图像和图像流。在各种实施方案中,在HMD 2202中包括一个以上相机,包括:面向后的相机,其在玩家观看HMD 2202的显示器等时背向玩家;以及面向前的相机,例如,在玩家观看HMD2202的显示器等时指向玩家。另外,在若干实施方案中,在HMD 2202中包括深度相机2218来感测现实世界环境中的对象的深度信息。
HMD 2202包括用于提供音频输出的扬声器2220。而且,在一些实施方案中,包括麦克风2222以便从现实世界环境捕获音频,包括来自周围环境的声音,和由玩家作出的语音等。HMD 2202包括触觉反馈模块2224,例如,振动装置等,以便向玩家提供触觉反馈。在一个实施方案中,触觉反馈模块2224能够引起HMD 2202的移动和/或振动,以向玩家提供触觉反馈。
提供LED 2226作为HMD 2202的状态的视觉指示器。举例来说,LED可指示电池电量、通电等。提供读卡器2228以使得HMD 2202能够从存储器卡读取信息以及将信息写入存储器卡。包括USB接口2230作为用于启用外围装置的连接或到其他装置(诸如其他便携式装置、计算机等)的连接的接口的一个示例。在HMD 2202的各种实施方案中,可包括各种接口中的任一者以启用HMD 2202的更大的连接性。
包括Wi-FiTM模块2232以便实现经由无线连网技术到互联网的连接。而且,HMD2202包括BluetoothTM模块2234以便实现到其他装置的无线连接。在一些实施方案中,还包括通信链路2236以用于连接到其他装置。在一个实施方案中,通信链接2236利用红外传输进行无线通信。在其他实施方案中,通信链路2236利用各种无线或有线传输协议中的任一者来与其他装置进行通信。
包括输入按钮/传感器2238来为玩家提供输入接口。包括各种类型的输入接口中的任一者,诸如按钮、触摸板、操纵杆、轨迹球等。在各种实施方案中,在HMD 2202中包括超声波通信模块2240,以用于促进经由超声波技术与其他装置通信。
包括生物传感器2242以实现对来自玩家的生理数据的检测。在一个实施方案中,生物传感器2242包括一个或多个干电极以用于通过玩家的皮肤检测玩家的生物电信号。
已经将HMD 2202的前述部件描述为可包括在HMD 2202中的仅仅示例性部件。在各种实施方案中,HMD 2202包括或不包括各种前述部件中的一些部件。
图23说明信息服务提供者(INSP)架构的实施方案。INSP 2302向在地理上分散并经由计算机网络2306(例如,局域网(LAN)、广域网(WAN)或其组合等)连接的玩家递送众多信息服务。计算机网络2306是计算机网络2020(图20)的示例。WAN的示例包括互联网,并且LAN的示例包括内联网。用户1操作客户端装置2320-1,用户2操作另一客户端装置2320-2,并且用户3操作又一客户端装置2320-3。
在一些实施方案中,每个客户端装置2320-1、2320-2和2320-3包括中央处理单元(CPU)、显示器和输入/输出(I/O)接口。每个客户端装置2320-1、2320-2和2320-3的示例包括个人计算机(PC)、移动电话、上网本、平板计算机、游戏系统、个人数字助理(PDA)、游戏控制台2100和显示装置、HMD 2202(图22)、游戏控制台2100和HMD 2202、桌上型计算机、膝上型计算机和智能电视等。在一些实施方案中,INSP 2302辨识客户端装置的类型并且调整所采用的通信方法。
在一些实施方案中,INSP 2302递送一种类型的服务,诸如股票价格更新,或可递送多种服务,诸如广播媒体、新闻、体育、游戏等。另外,每个INSP所提供的服务都是动态的,即,可在任何时间点添加或解除服务。因此,向特定个人提供特定类型的服务的INSP可随时间变化。举例来说,当客户端装置2320-1在用户1的家乡时,通过在客户端装置2320-1附近的INSP服务于客户端装置2320-1,并且当用户1去到不同的城市时,通过不同的INSP服务于客户端装置2320-1。家乡的INSP将把所请求的信息和数据传递到新的INSP,使得信息“跟随”客户端装置2320-1到新的城市,从而使数据更靠近客户端装置2320-1并且更容易访问。在各种实施方案中,在管理客户端装置2320-1的信息的主INSP与服务器INSP之间确立主-服务器关系,所述服务器INSP在主INSP的控制下直接与客户端装置2320-1介接。在一些实施方案中,当客户端装置2320-1在世界各地移动时,数据从一个ISP传递到另一个ISP,以使服务于客户端装置2320-1的位于更好位置的INSP是递送这些服务的INSP。
INSP 2302包括应用服务提供者(ASP)2308,其经由计算机网络2306向客户提供基于计算机的服务。使用ASP模型提供的软件有时还被称为按需软件或软件即服务(SaaS)。提供对基于计算机的服务(例如,客户关系管理等)的访问的简单形式是通过使用例如超文本传输协议(HTTP)等的标准协议。应用程序软件驻留在供应商的服务器上,并且由每个客户端装置2320-1、2320-2和2320-3通过使用超文本标记语言(HTML)等的网络浏览器通过供应商提供的专用客户端软件和/或例如瘦客户端等的其他远程接口来访问。
在广阔地理区域上递送的服务经常使用云计算。云计算是一种计算方式,其中经由计算机网络2306作为服务来提供可动态缩放且常常虚拟化的资源。用户1到3不需要成为支持他们的“云”中的技术基础设施方面的专家。在一些实施方案中,将云计算划分为不同的服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务常常在线提供从网络浏览器访问的普通的商业应用,而软件和数据存储在服务器上。基于在计算机网络图中如何描绘计算机网络2306,术语云被用作例如使用服务器、存储装置和逻辑等的计算机网络2306的隐喻,并且是其隐藏的复杂基础设施的抽象。
此外,INSP 2302包括游戏处理提供者(GPP)2310,所述游戏处理提供者在本文中有时还称为游戏处理服务器,客户端装置2320-1、2320-2和2320-3使用所述游戏处理提供者来玩单人和多玩家视频游戏。经由计算机网络2306玩的大多数视频游戏经由到游戏服务器的连接进行操作。通常,游戏使用专用服务器应用程序,所述专用服务器应用程序从客户端装置2320-1、2320-2和2320-3收集数据,并将所述数据分发给由其他用户操作的其他客户端。与对等布置相比,这更加高效和有效,但是使用单独的服务器来托管服务器应用程序。在一些实施方案中,GPP 2310在客户端装置2320-1、2320-2和2320-3之间建立通信,所述客户端装置在不进一步依赖于集中式GPP 2310的情况下交换信息。
专用GPP是独立于客户端运行的服务器。此类服务器通常在位于数据中心中的专用硬件上运行,从而提供更多的带宽和专用的处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的方法。大量多玩家在线游戏在通常由拥有游戏名称的软件公司托管的专用服务器上运行,从而允许它们控制和更新内容。
在本文有时被称为广播处理提供者的广播处理服务器(BPS)2312向受众分发音频或视频信号。向很小范围的观众广播有时称为窄播。广播分发的最后一站是信号如何到达客户端装置2320-1、2320-2和2320-3,并且在一些实施方案中,信号与无线电台或电视台一样以无线方式分发到天线和接收器,或者经由所述台通过有线电视或有线广播进行分发。在各种实施方案中,计算机网络2306还尤其通过允许共享信号和带宽的多播将无线电或电视信号带到客户端装置2320-1、2320-2和2320-3。历史上,在若干实施方案中,广播由例如国家广播、地方广播等的地理区域来界定。然而,随着高速互联网的普及,由于内容几乎可到达世界上的任何一个国家,所以广播不受地理位置限定。
存储服务提供者(SSP)2314提供计算机存储空间和相关的管理服务。SSP 2314还提供周期性备份和存档。通过提供存储作为服务,与在存储不用作服务时相比,客户端装置2320-1、2320-2和2320-3使用更多的存储。另一个主要优势在于,SSP 2314包括备份服务,并且客户端装置2320-1、2320-2和2320-3在其硬盘驱动器发生故障的情况下将不会丢失数据。此外,在一些实施方案中,多个SSP具有从客户端装置2320-1、2320-2和2320-3接收的数据的全部或部分副本,从而允许客户端装置2320-1、2320-2和2320-3以独立于客户端装置2320-1、2320-2和2320-3所处的位置或客户端的类型的有效方式访问数据。举例来说,当玩家在移动时,所述玩家经由家用计算机以及经由移动电话访问个人文件。
通信提供者2316提供到客户端装置2320-1、2320-2和2320-3的连接性。一种通信提供者2316是互联网服务提供者(ISP),其提供对计算机网络2306的访问。ISP使用对于递送互联网协议数据报适当的数据传输技术(诸如拨号、数字订户线(DSL)、缆线调制解调器、光纤、无线或专用高速互连)来连接客户端装置2320-1、2320-2和2320-3。在一些实施方案中,通信提供者2316还提供诸如电子邮件、即时消息接发和短消息服务(SMS)文本的消息接发服务。另一类型的通信提供者是网络服务提供者(NSP),其通过提供对计算机网络2306的直接主干访问来出售带宽或网络访问。网络服务提供者的示例包括电信公司、数据运营商、无线通信提供者、互联网服务提供者、提供高速互联网访问的有线电视经营商等。
数据交换2318将INSP 2302内部的若干模块互连,并且经由计算机网络2306将这些模块连接到客户端装置2320-1、2320-2和2320-3。在各种实施方案中,数据交换2318覆盖其中INSP 2302的所有模块紧密接近的较小区域,或者当不同的模块在地理上分散时覆盖较大的地理区域。举例来说,数据交换2302包括数据中心的机柜内的快速千兆位以太网,或洲际虚拟LAN。
在一些实施方案中,可使用无线技术来促进服务器系统404(图4A和图13)与客户端装置2320-1到2320-3之间的通信。此技术可包括例如5G无线通信技术。
在一个实施方案中,诸如本文描述的传统游戏N或元游戏的视频游戏在游戏机、个人计算机上在本地执行或在服务器上执行。在一些情况下,视频游戏由数据中心的一个或多个服务器执行。当执行视频游戏时,视频游戏的一些实例可以是视频游戏的模拟。例如,视频游戏可由生成视频游戏的模拟的环境或服务器执行。在一些实施方案中,模拟是视频游戏的实例。在其他实施方案中,所述模拟可由仿真器产生。在任一情况下,如果视频游戏被表示为模拟,则能够执行所述模拟以渲染可由用户输入交互地流式传输、执行和/或控制的交互内容。
应注意,在各种实施方案中,本文描述的一些实施方案的一个或多个特征与本文描述的其余实施方案中的一者或多者的一个或多个特征相结合。
可使用各种计算机系统配置来实践在本公开中描述的实施方案,包括手持式装置、微处理器系统、基于微处理器或可编程的消费者电子器件、小型计算机、主机计算机等。在一个实现方式中,在本公开中描述的实施方案可在分布式计算环境中实践,其中通过经由基于电线的或无线的网络链接的远程处理装置来执行任务。
在了解了以上实施方案的情况下,应理解,在一个实现方式中,在本公开中描述的实施方案采用涉及计算机系统中存储的数据的各种计算机实施的操作。这些操作是需要对物理量的物理操纵的操作。形成在本公开中描述的实施方案的部分的本文描述的操作中的任一者是有用的机器操作。在本公开中的一些实施方案还涉及用于执行这些操作的装置或设备。所述设备被特别构造成用于所需的目的,或者所述设备是由计算机中存储的计算机程序选择性地激活或配置的通用计算机。具体来说,在一个实施方案中,各种通用机器与根据本文的教导而编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能会更加便利。
在一个实现方式中,在本公开中描述的一些实施方案被体现为计算机可读介质上的计算机可读代码。计算机可读介质是存储数据的任何数据存储装置,所述数据其后由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附属存储(NAS)、ROM、RAM、CD-ROM、可录式CD(CD-R)、可再写式CD(CD-RW)、磁带、光学数据存储装置、非光学数据存储装置等。作为示例,计算机可读介质包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得计算机可读代码以分布式方式存储和执行。
此外,尽管关于游戏环境描述了上述实施方案中的一些实施方案,但在一些实施方案中,使用了其他环境,例如视频会议环境等,而不是游戏。
虽然以特定次序描述方法操作,但应理解,其他内务操作可在操作之间执行,或者可对操作进行调整,使得它们在略微不同的时间出现,或者可分布在系统中,这允许处理操作以与处理相关联的各种间隔出现,只要是以期望的方式执行覆盖操作的处理即可。
虽然已经出于理解清楚起见而稍微详细地描述了在本公开中描述的前述实施方案,但将明白,可在所附权利要求的范围内实践某些改变和修改。因此,本实施方案将被视为说明性而非限制性的,并且所述实施方案不限于本文给出的细节,而是可在所附权利要求的范围和等效物内修改。

Claims (20)

1.一种用于生成元游戏的方法,所述方法包括:
在玩一个或多个传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入,其中所述第一挑战是由所述一个或多个传统游戏的第一多个基本块创建的;
记录所述第一挑战的至少一部分;
在所述玩所述一个或多个传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入,其中所述第二挑战是由所述一个或多个传统游戏的第二多个基本块创建的,其中所述第一多个基本块是从所述一个或多个传统游戏的第一多个指令编译的,并且所述第二多个基本块是从所述一个或多个传统游戏的第二多个指令编译的,以使得能够在更新后的机器上玩所述一个或多个传统游戏;
记录所述第二挑战的至少一部分;
确定是否经由所述第一用户账户接收到请求创建所述元游戏的第三用户输入;以及
在确定接收到所述第三用户输入之后,由所述第一挑战和所述第二挑战生成所述元游戏。
2.如权利要求1所述的方法,所述方法还包括:
经由所述第一用户账户提供选择所述第一挑战和所述第二挑战的执行序列的选项;
经由所述第一用户账户接收所述序列;
根据所述序列对所述第一多个基本块和所述第二多个基本块进行拼接;
经由第二用户账户接收请求执行所述元游戏的用户输入;以及
响应于经由所述第二用户账户接收到的所述用户输入,按所述序列执行所述第一多个基本块和所述第二多个基本块。
3.如权利要求1所述的方法,所述方法还包括:
经由所述第一用户账户接收针对所述元游戏创建领先计分板的第四用户输入;
响应于所述第四用户输入而创建所述领先计分板,其中所述领先计分板包括在玩所述第一挑战期间经由所述第一用户账户累积的第一积分数和在玩所述第二挑战期间经由所述第一用户账户累积的第二积分数的总数;
将所述总数发布到所述领先计分板;
接收在玩所述元游戏期间在第二用户账户中累积的积分数;
确定所述总数是否超过在所述第二用户账户中累积的所述积分数;以及
确定所述总数和在所述第二用户账户中累积的所述积分数的显示顺序。
4.如权利要求1所述的方法,所述方法还包括:
将奖品赋予所述元游戏;
接收经由第二用户账户玩所述元游戏的请求;
确定在经由所述第二用户账户玩所述元游戏期间累积的积分数是否超过预定限制;
响应于确定在所述玩所述元游戏期间累积的所述积分数超过所述预定限制,将所述奖品授予所述第二用户账户。
5.如权利要求1所述的方法,所述方法还包括:
确定经由所述第二用户账户接收到玩所述元游戏的第一用户输入;
确定是否经由第二用户账户接收到将幻影赋予所述元游戏的虚拟对象的第二用户输入,其中在玩所述第一挑战和玩所述第二挑战期间经由所述第一用户账户控制所述虚拟对象;
在确定经由所述第二用户账户接收到所述第二用户输入之后,将所述幻影赋予经由所述第二用户账户控制的所述虚拟对象。
6.如权利要求1所述的方法,所述方法还包括:
确定经由第二用户账户接收到玩所述元游戏的第一用户输入;
确定是否经由所述第二用户账户接收到播放所述第一挑战和所述第二挑战的所述记录的第二用户输入;
在确定经由所述第二用户账户接收到所述第二用户输入之后,将所述记录覆盖在所述元游戏的显示上。
7.如权利要求1所述的方法,其中所述第一多个指令和所述第二多个指令不能在包括64位处理器的所述更新后的机器中执行,而能够在包括32位处理器的传统机器中执行。
8.如权利要求1所述的方法,其中所述第一多个基本块和所述第二多个基本块不能在包括32位处理器的传统机器中执行,而能够在包括64位处理器的所述更新后的机器中执行。
9.一种用于生成元游戏的计算机系统,所述计算机系统包括:
处理器,所述处理器被配置为:
在玩一个或多个传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入,其中所述第一挑战是由所述一个或多个传统游戏的第一多个基本块创建的;
记录所述第一挑战的至少一部分;
在所述玩所述一个或多个传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入,其中所述第二挑战是由所述一个或多个传统游戏的第二多个基本块创建的,其中所述第一多个基本块是从所述一个或多个传统游戏的第一多个指令编译的,并且所述第二多个基本块是从所述一个或多个传统游戏的第二多个指令编译的,以使得能够在更新后的机器上玩所述一个或多个传统游戏;
记录所述第二挑战的至少一部分;
确定是否经由所述第一用户账户接收到请求玩所述元游戏的第三用户输入;以及
在确定接收到所述第三用户输入之后,由所述第一挑战和所述第二挑战生成所述元游戏;以及
存储器装置,所述存储器装置耦合到所述处理器。
10.如权利要求9所述的计算机系统,其中所述处理器被配置为:
经由所述第一用户账户提供选择所述第一挑战和所述第二挑战的执行序列的选项;
经由所述第一用户账户接收所述序列;
根据所述序列对所述第一多个基本块和所述第二多个基本块进行拼接;
经由第二用户账户接收请求执行所述元游戏的用户输入;以及
响应于经由所述第二用户账户接收到的所述用户输入,按所述序列执行所述第一多个基本块和所述第二多个基本块。
11.如权利要求9所述的计算机系统,其中所述处理器被配置为:
经由所述第一用户账户接收针对所述元游戏创建领先计分板的第四用户输入;
响应于所述第四用户输入而创建所述领先计分板,其中所述领先计分板包括在玩所述第一挑战期间经由所述第一用户账户累积的第一积分数和在玩所述第二挑战期间经由所述第一用户账户累积的第二积分数的总数;
将所述总数发布到所述领先计分板;
接收在玩所述元游戏期间在第二用户账户中累积的积分数;
确定所述总数是否超过在所述第二用户账户中累积的所述积分数;以及
确定所述总数和在所述第二用户账户中累积的所述积分数的显示顺序。
12.如权利要求9所述的计算机系统,其中所述处理器被配置为:
将奖品赋予所述元游戏;
接收经由第二用户账户玩所述元游戏的请求;
确定在经由所述第二用户账户玩所述元游戏期间累积的积分数是否超过预定限制;
响应于确定在所述玩所述元游戏期间累积的所述积分数超过所述预定限制,将所述奖品授予所述第二用户账户。
13.如权利要求9所述的计算机系统,其中所述处理器被配置为:
确定经由所述第二用户账户接收到玩所述元游戏的第一用户输入;
确定是否经由第二用户账户接收到将幻影赋予所述元游戏的虚拟对象的第二用户输入,其中在玩所述第一挑战和玩所述第二挑战期间经由所述第一用户账户控制所述虚拟对象;
在确定经由所述第二用户账户接收到所述第二用户输入之后,将所述幻影赋予经由所述第二用户账户控制的所述虚拟对象。
14.如权利要求9所述的计算机系统,其中所述处理器被配置为:
确定经由第二用户账户接收到玩所述元游戏的第一用户输入;
确定是否经由所述第二用户账户接收到播放所述第一挑战和所述第二挑战的所述记录的第二用户输入;
在确定经由所述第二用户账户接收到所述第二用户输入之后,将所述记录覆盖在所述元游戏的显示上。
15.如权利要求9所述的计算机系统,其中所述第一多个指令和所述第二多个指令不能在包括64位处理器的所述更新后的机器中执行,而能够在包括32位处理器的传统机器中执行。
16.如权利要求9所述的计算机系统,其中所述第一多个基本块和所述第二多个基本块不能在包括32位处理器的传统机器中执行,而能够在包括64位处理器的所述更新后的机器中执行。
17.一种包含用于生成元游戏的程序指令的非暂时性计算机可读介质,其中计算机系统的一个或多个处理器执行所述程序指令致使所述一个或多个处理器执行以下多个操作:
在玩一个或多个传统游戏期间经由第一用户账户接收针对第一挑战的第一用户输入,其中所述第一挑战是由所述一个或多个传统游戏的第一多个基本块创建的;
记录所述第一挑战的至少一部分;
在所述玩所述一个或多个传统游戏期间经由所述第一用户账户接收针对第二挑战的第二用户输入,其中所述第二挑战是由所述一个或多个传统游戏的第二多个基本块创建的,其中所述第一多个基本块是从所述一个或多个传统游戏的第一多个指令编译的,并且所述第二多个基本块是从所述一个或多个传统游戏的第二多个指令编译的,以使得能够在更新后的机器上玩所述一个或多个传统游戏;
记录所述第二挑战的至少一部分;
确定是否经由所述第一用户账户接收到请求玩所述元游戏的第三用户输入;以及
在确定接收到所述第三用户输入之后,由所述第一挑战和所述第二挑战生成所述元游戏。
18.如权利要求17所述的非暂时性计算机可读介质,其中所述多个操作包括:
经由所述第一用户账户提供选择所述第一挑战和所述第二挑战的执行序列的选项;
经由所述第一用户账户接收所述序列;
根据所述序列对所述第一多个基本块和所述第二多个基本块进行拼接;
经由第二用户账户接收请求执行所述元游戏的用户输入;以及
响应于经由所述第二用户账户接收到的所述用户输入,按所述序列执行所述第一多个基本块和所述第二多个基本块。
19.如权利要求17所述的非暂时性计算机可读介质,其中所述多个操作包括:
经由所述第一用户账户接收针对所述元游戏创建领先计分板的第四用户输入;
响应于所述第四用户输入而创建所述领先计分板,其中所述领先计分板包括在玩所述第一挑战期间经由所述第一用户账户累积的第一积分数和在玩所述第二挑战期间经由所述第一用户账户累积的第二积分数的总数;
将所述总数发布到所述领先计分板;
接收在玩所述元游戏期间在第二用户账户中累积的积分数;
确定所述总数是否超过在所述第二用户账户中累积的所述积分数;以及
确定所述总数和在所述第二用户账户中累积的所述积分数的显示顺序。
20.如权利要求17所述的非暂时性计算机可读介质,其中所述多个操作包括:
将奖品赋予所述元游戏;
接收经由第二用户账户玩所述元游戏的请求;
确定在经由所述第二用户账户玩所述元游戏期间累积的积分数是否超过预定限制;
响应于确定在所述玩所述元游戏期间累积的所述积分数超过所述预定限制,将所述奖品授予所述第二用户账户。
CN202280026930.7A 2021-04-01 2022-03-24 用于由传统游戏生成元游戏的系统和方法 Pending CN117136092A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/220,227 2021-04-01
US17/220,227 US11504628B2 (en) 2021-04-01 2021-04-01 Systems and methods for generating a meta-game from legacy games
PCT/US2022/021792 WO2022212178A1 (en) 2021-04-01 2022-03-24 Systems and methods for generating a meta-game from legacy games

Publications (1)

Publication Number Publication Date
CN117136092A true CN117136092A (zh) 2023-11-28

Family

ID=81307831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280026930.7A Pending CN117136092A (zh) 2021-04-01 2022-03-24 用于由传统游戏生成元游戏的系统和方法

Country Status (6)

Country Link
US (1) US11504628B2 (zh)
EP (1) EP4313338A1 (zh)
JP (1) JP2024513862A (zh)
CN (1) CN117136092A (zh)
TW (1) TWI809786B (zh)
WO (1) WO2022212178A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8641521B2 (en) * 2004-08-25 2014-02-04 Igt Emulation in a secure regulated environment
US10406429B2 (en) 2012-08-29 2019-09-10 Sony Interactive Entertainment, LLC User-based mini-game generation and distribution
US9707476B2 (en) * 2012-09-28 2017-07-18 Sony Interactive Entertainment Inc. Method for creating a mini-game
EP2745893B1 (en) 2012-12-21 2019-03-20 Sony Computer Entertainment America LLC Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
US20140256445A1 (en) * 2013-03-07 2014-09-11 Cfph, Llc Fantasy gaming
US11207600B2 (en) * 2018-01-08 2021-12-28 Sony Interactive Entertainment LLC Utilizing social engagement to generate metagaming resources
US10559281B2 (en) * 2018-05-31 2020-02-11 Sony Interactive Entertainment LLC Challenge game system

Also Published As

Publication number Publication date
JP2024513862A (ja) 2024-03-27
EP4313338A1 (en) 2024-02-07
US20220314124A1 (en) 2022-10-06
WO2022212178A1 (en) 2022-10-06
US11504628B2 (en) 2022-11-22
TWI809786B (zh) 2023-07-21
TW202247876A (zh) 2022-12-16

Similar Documents

Publication Publication Date Title
US11496551B2 (en) Systems and methods for using a distributed game engine
US11537264B2 (en) Methods and systems for providing shortcuts for fast load when moving between scenes in virtual reality
US11321900B2 (en) Systems and methods for adjusting one or more parameters of a GPU
US12017140B2 (en) Systems and methods for emulation of graphical and audio parameters during a play of a legacy game
US20220360812A1 (en) Systems and methods for decoding and displaying image frames
US11360750B1 (en) Systems and methods for converting a legacy code into an updated code
US11813522B2 (en) Systems and methods for emulation of user input during a play of a legacy game
US11806625B2 (en) Patch and bulk operations for a legacy game
US11504628B2 (en) Systems and methods for generating a meta-game from legacy games
CN116635120A (zh) 用于将传统代码转换为更新代码的系统和方法
WO2022140167A1 (en) Systems and methods for converting a legacy code into an updated code
US11900136B2 (en) AoT compiler for a legacy game

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination