CN117355360A - 用于在玩传统游戏期间仿真用户输入的系统和方法 - Google Patents

用于在玩传统游戏期间仿真用户输入的系统和方法 Download PDF

Info

Publication number
CN117355360A
CN117355360A CN202280037211.5A CN202280037211A CN117355360A CN 117355360 A CN117355360 A CN 117355360A CN 202280037211 A CN202280037211 A CN 202280037211A CN 117355360 A CN117355360 A CN 117355360A
Authority
CN
China
Prior art keywords
legacy
updated
input device
input
handheld controller
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
CN202280037211.5A
Other languages
English (en)
Inventor
E·科维
G·威辛
D·撒奇
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 CN117355360A publication Critical patent/CN117355360A/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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • 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/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • 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/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (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是用以说明仿真在玩传统游戏期间从更新后的手持式控制器接收的用户输入的系统的实施方案的图。
图14A-1是用以说明从默认映射到当前映射的改变的系统的实施方案的图。
图14A-2是用以说明默认映射和当前映射的存储器装置的实施方案的图。
图14B是用以说明在玩传统游戏期间使用当前映射而不是默认映射的系统的实施方案的图。
图15是用以说明基于更新后的手持式控制器的右控制杆的移动来识别传统手持式控制器的向右移动按钮的系统的实施方案的图。
图16A是用以说明当用户选择触摸板时生成十字准线的虚拟图像的系统的实施方案的图。
图16B是用以说明用户在触摸板上的选择位置与十字准线在图像帧上的位置之间的对应关系的系统的实施方案的图。
图17是用以说明在使用不同类型的手持式控制器的情况下使用不同映射的系统的实施方案的图。
图18是用以说明将当前映射从游戏控制台传送到另一个游戏控制台的系统的实施方案的图。
图19A是用以说明接收更新后的手持式控制器的类型和子类型的图像的屏幕截图。
图19B是用以说明用于接收一种类型的更新后的手持式控制器的菜单的图像的屏幕截图。
图20是用以说明传统手持式控制器的输入装置与更新后的手持式控制器之间的映射的图像的屏幕截图的实施方案。
图21是在概念上说明根据本公开的实现方式的经过执行以用于将云视频游戏流式传输到客户端装置的各种操作的流程图。
图22是用于与客户端装置的显示装置介接并且能够经由计算机网络与游戏主机系统通信的兼容的游戏控制台的实施方案的框图。
图23是用以说明头戴式显示器(HMD)的部件的图。
图24说明信息服务提供者(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执行的基本块,所述更新后的机器的示例包括游戏控制台、台式计算机、膝上型计算机、平板计算机、智能手机和智能电视。作为示例,源代码是使用人类可读的编程语言编写的,所述编程语言可以是纯文本。作为示例,如本文所使用的基本块编译器是使用硬件或软件或其组合来实施的。为了说明,基本块编译器的功能性是使用控制器或可编程逻辑装置(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执行。作为另一示例,仿真PU代码106能够在传统机器上执行,但不能在更新后的机器上执行。
作为示例,仿真PU代码106由传统机器的处理器执行以执行传统游戏N中的操作。为了说明,执行仿真PU代码106以在传统机器上玩传统游戏。传统游戏的示例包括视频游戏,诸如战斗机游戏、舞蹈课游戏、冒险游戏和动作游戏。为了说明,游戏开发商不会更新传统游戏。为了进一步说明,传统游戏没有当前版本。作为另一进一步的说明,传统游戏是在当前游戏创建之前几年创建的。
基本块编译器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。作为示例,服务器系统包括更新后的机器作为服务器。为了说明,每个服务器刀片都是更新后的机器,诸如游戏控制台。
在一个实施方案中,直到接收到用户输入才执行方法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是更新后的机器的示例。显示装置410的示例包括电视、智能电视和计算机监视器。为了说明,显示装置410是液晶显示(LCD)装置或发光二极管(LED)显示装置,或有机发光二极管(OLED)显示装置。
系统400还包括手持式控制器(HHC)414,其握在用户1的一只手或两只手中。如本文使用的手持式控制器的示例包括具有按钮的控制器、来自SonyTMCorporation的MoveTM控制器,和枪形控制器。手持式控制器的按钮的示例包括操纵杆、用于在显示屏幕410上向上、向下、向左或向右移动虚拟对象的按钮,以及用于选择具有游戏名称GN的传统游戏N的各种特征的其他按钮。
游戏控制台402包括存储器装置406、输入处理器系统407和仿真处理器系统409。作为示例,如本文使用的处理器系统包括彼此耦合的一个或多个处理器。仿真处理器系统409耦合到存储器装置406,并且输入处理器系统407耦合到仿真处理器系统409。仿真处理器系统409包括基本块编译器104和缓存102。基本块编译器104耦合到缓存102。
游戏控制台402经由诸如高清媒体接口(HDMI)缆线的有线通信介质或无线连接耦合到显示装置410。如本文使用,无线连接的示例包括Wi-FiTM连接和BluetoothTM连接。而且,手持式控制器414经由有线连接或无线连接耦合到游戏控制台402。如本文使用,有线连接的示例包括串行传递缆线、并行传递缆线和通用串行总线(USB)缆线。
客户端装置的示例包括手持式控制器、游戏控制台与显示装置的组合。客户端装置的另一示例包括手持式控制器与显示装置的组合。
当用户识别(ID)和口令经过服务器系统404认证时,用户1登录到他/她的用户账户1。服务器系统1向用户账号1指派用户ID1。一旦用户1登录到用户账号1,用户1便可访问多个游戏名称,诸如游戏名称G1、游戏名称Ga、游戏名称G2等,直到游戏名称GN。游戏名称G1、G2等直到游戏名称GN是传统游戏的名称的示例。游戏名称Ga是并非传统游戏的游戏的名称。而是,游戏名称Ga属于当前游戏,诸如不能在传统机器中玩的FortniteTM
在登录到用户账户1之后,用户1选择手持式控制器414上的一个或多个按钮来选择游戏名称GN来玩传统游戏N。一旦用户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接收到用户输入419时,输入处理器系统407将用户输入419转换成用户输入420,并且向仿真处理器系统409提供用户输入420。作为示例,用户输入419包括在玩传统游戏N期间将战斗机从位置P1移动到位置P2或从一个取向移动到另一取向的请求。战斗机是虚拟对象的示例。在接收到用户输入420之后,仿真处理器系统409执行基本块编译器104以从存储在存储器装置406中的游戏代码gcN的一部分生成游戏代码GCN的一部分。基于用户输入420而生成游戏代码GCN的部分。例如,当用户输入420包括在玩传统游戏N期间将战斗机从位置P1移动到位置P2的请求时,基本块编译器104解析游戏代码gcN以识别从位置P1计算位置P2的指令。基本块编译器104将所述指令转换成游戏代码GCN的基本块,并且然后执行所述基本块以将战斗机的位置从P1改变为P2。此外,在所述示例中,当位置从P1变为P2时,将战斗机位于位置P1的虚拟环境修改为战斗机位于位置P2的虚拟环境。在所述示例中,通过仿真处理器系统409的GPU执行游戏代码GCN的基本块以生成一个或多个图像帧422。为了说明,一个或多个图像帧422显示在显示装置410上以显示战斗机位于位置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进行存储。网络接口控制器的示例包括网络接口卡、以太网卡和网络适配器。为了说明,游戏控制台402的网络接口控制器使输入处理器系统407能够与计算机网络408通信。
在一个实施方案中,作为计算机网络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和输入处理器系统407位于服务器系统404内,并且经由计算机网络408将一个或多个图像帧422从服务器系统404发送到显示装置410以便显示虚拟环境或虚拟场景。系统450包括服务器系统404、显示装置410和手持式控制器414。
服务器系统404包括存储器装置412、输入处理器系统407和仿真处理器系统409。存储器装置412耦合到仿真处理器系统409,并且输入处理器系统407耦合到仿真处理器系统409。显示装置410经由显示装置410的网络接口控制器耦合到计算机网络408。显示装置410包括耦合到显示装置410的网络接口控制器的处理器。显示装置410的处理器在玩具有游戏名称GN和游戏代码gcN的传统游戏N期间接收用户输入419,并且将用户输入419发送到显示装置410的网络接口控制器。显示装置410的网络接口控制器经由计算机网络408将用户输入419发送到服务器系统404的输入处理器系统407。
在接收到用户输入419之后,输入处理器系统407将用户输入419转换成用户输入420,并且将用户输入420提供给仿真处理器系统409。在接收到用户输入420之后,仿真处理器系统409执行与上文参考图4A关于游戏代码gcN所描述的功能相同的功能,以编译基本块1到N来生成一个或多个图像帧422。服务器系统404经由计算机网络408将一个或多个图像帧422发送到显示装置410,以便在显示装置410的显示屏幕上显示虚拟环境,诸如虚拟环境452。例如,虚拟环境452包括虚拟对象454,所述虚拟对象是战斗机的示例。在所述示例中,虚拟环境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的结构相同的结构。例如,钩子块包括源寄存器地址、目的地寄存器地址、操作以及钩子块的操作的执行循环数。作为示例,由于与传统机器相关联的安全问题,无法在存储在传统机器中的用于在传统机器上执行的仿真PU代码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中的其他虚拟对象的参数。此外,在所述示例中,当虚拟对象454的位置或取向或其组合改变时,虚拟环境改变。块分派器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访问大部分仿真PU代码指令1到M以编译基本块1到n中的一者或多者。作为另一示例,当未在预定时期内访问游戏代码gcN时,由基本块编译器104访问在玩具有游戏名称GN的传统游戏N期间频繁使用的许多仿真PU代码指令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获得仿真PU代码指令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包括传统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)缓存。
在一个实施方案中,传统机器900不是由诸如公司或社团的实体在当前制造,而是由所述实体在过去制造。
图9B是用以说明更新后的机器920的实施方案的图。更新后的机器920包括CPU922、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执行。而且,基本块1到n可由CPU 922或GPU 924执行,但不能由传统CPU 902或传统GPU 904执行。
在一个实施方案中,缓存928位于CPU 922内。
在一个实施方案中,缓存928位于GPU 924内。
在一个实施方案中,缓存928位于CPU 922内,而另一缓存,诸如缓存102,位于GPU924内。
在一个实施方案中,更新后的机器920当前正由实体制造或最近已经由实体制造。例如,更新后的机器920由制造传统机器900的实体制造。
图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都是更新后的机器的示例。作为另一示例,游戏控制台1202不是传统机器。而且,显示装置1204类似于图4A的显示装置410。例如,显示装置410是HMD或电视或智能电视或计算机监视器。
游戏控制台402包括网络接口控制器1212。游戏控制台1202包括仿真处理器系统1206、输入处理器系统1207、缓存1208和网络接口控制器1210。仿真处理器系统1206具有与仿真处理器系统409相同的结构和相同的功能性。输入处理器系统1207具有与输入处理器系统407(图4A)相同的结构和相同的功能性。而且,缓存1208具有与缓存102相同的结构和相同的功能性。仿真处理器系统1206、输入处理器系统1207、缓存1208和网络接口控制器1210经由总线1218彼此耦合。
一旦基本块1到n存储在缓存102中,仿真处理器系统409的基本块编译器104就将基本块1到n发送到网络接口控制器1212。网络接口控制器1212将网络通信协议应用于基本块1到n以生成嵌入基本块1到n的一个或多个分组,并且经由计算机网络408将所述一个或多个分组发送到服务器系统404。在接收到所述一个或多个数据分组之后,服务器系统404的网络接口控制器将网络通信协议应用于所述一个或多个分组,以提取具有游戏名称GN的传统游戏N的基本块1到n,并且将所述基本块1到n存储在服务器系统404的一个或多个存储器装置中。
用户2使用手持式控制器1212选择手持式控制器1212上的一个或多个按钮以登录到由服务器系统404指派给用户2的用户账户2中。当用户ID2和密码被服务器系统404认证时,用户2登录到用户账户2。一旦用户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时,输入处理器系统1207以与输入处理器系统407将用户输入419转换成用户输入420相同的方式将用户输入1224转换成用户输入1225。在接收到用户输入1225之后,仿真处理器系统1206的基本块编译器识别缓存1208内的用于服务于用户输入1225的基本块1到n中的一者或多者。仿真处理器系统1206的块分派器执行基本块1到n中的一者或多者以用于服务于用户输入1225。以这种方式,一旦基本块1到n被仿真处理器系统409编译,基本块1到n便不需要被仿真处理器系统1206编译,而是可由仿真处理器系统1206从服务器系统404访问。
图13是用以说明仿真在玩传统游戏N期间从手持式控制器414接收的用户输入419的系统1300的实施方案的图。系统1300包括输入处理器系统407、仿真处理器系统409、手持式控制器414和手持式控制器1306。
手持式控制器1306是传统手持式控制器的示例。作为示例,手持式控制器1306可与传统机器900(图9A)一起使用,但不能与更新后的机器920(图9B)一起使用。为了说明,输入处理器系统407包括输入处理器1314,所述输入处理器不能解译由手持式控制器1306生成以及从所述手持式控制器接收的用户输入。为了进一步说明,输入处理器1314能够解译由64位或128位表示的用户输入419,但不能解译从手持式控制器1306接收的具有32位的用户输入。作为另一示例,手持式控制器1306是传统控制器的示例,并且手持式控制器414是更新后的控制器的示例。为了说明,手持式控制器1306当前不是由实体制造,而手持式控制器414当前正由实体制造。为了进一步说明,手持式控制器414是最新版本,而手持式控制器1306是较老的版本。作为另一进一步说明,手持式控制器1306是在实体制造手持式控制器414数年之前由实体制造。作为又一示例,手持式控制器1306不包括控制杆,而是包括选择按钮,并且手持式控制器414不包括选择按钮。输入处理器1314的示例是集成在串行输入/输出(I/O)芯片内的处理器。
输入处理器系统407还包括输入仿真器1318、存储器装置1316和通信装置1320。在存储器装置1316内,存储了默认映射1308。应注意,默认映射1308与用户账户1和2相关联。例如,当经由用户账户1访问传统游戏N时,除非存在存储在存储器装置1316中的当前映射并且被选择用于与用户帐户1一起使用,否则输入仿真器1318应用默认映射1308。
作为示例,如本文描述的输入仿真器是硬件或软件或其组合。为了说明,输入仿真器是处理器,或PLD,或ASIC,或控制器。为了进一步说明,输入仿真器1318当在更新后的机器920内实施时使更新后的机器920能够接收和处理从手持式控制器414接收的用户输入以促进玩传统游戏N。输入仿真器1318促进使用手持式控制器414来玩传统游戏N。通信装置1320的示例是应用近程通信协议的通信电路,所述近程通信协议诸如无线传输协议或有线传输协议。有线传输协议的示例是USB协议,并且无线传输协议的示例是BluetoothTM协议。通信装置1320耦合到输入处理器1314,所述输入处理器耦合到输入仿真器1318。输入仿真器1318耦合到基本块编译器104。输入处理器1314和输入仿真器1318都耦合到存储器装置1316。
而且,手持式控制器414经由诸如有线连接或无线连接的连接耦合到输入处理器1314。有线连接的示例包括并行传输连接,其中信息是以并行方式同时从手持式控制器414传送到输入处理器1314。
用户1操作手持式控制器414上的一个或多个输入装置以选择游戏名称GN以生成用户输入418(图4A)。手持式控制器414的输入装置的示例包括左控制杆1302A、右控制杆1302B和一个或多个按钮。为了说明,为了选择游戏名称GN,用户1选择手持式控制器414上的按钮,诸如推或按。基于用户输入418,服务器系统404经由计算机网络408将游戏代码gcN发送到游戏控制台402以存储在游戏控制台402的存储器装置406(图4A)中。
在玩传统游戏N期间,手持式控制器414的一个或多个输入装置由用户1操作以生成对应的一个或多个电信号,所述一个或多个电信号最终形成用户输入419。例如,当用户1在向前方向或向后方向或向右方向或向左方向上移动手持式控制器414的控制杆时,生成电信号。为了说明,向前方向和向后方向是沿着手持式控制器414的xyz坐标系的y轴,而向右方向和向左方向是沿着xyz坐标系的x轴。在所述说明中,向前方向与向后方向相反,并且向右方向与向左方向相反。
手持式控制器414包括耦合到手持式控制器414的一个或多个输入装置的运动敏感硬件,诸如一个或多个磁力计、一个或多个加速度计、一个或多个电位计以及一个或多个陀螺仪。手持式控制器414还包括耦合到运动敏感硬件的模拟-数字转换器。手持式控制器414包括耦合到模拟-数字转换器的处理器(诸如编码器)和耦合到处理器的通信装置。当用户1操作手持式控制器414的一或多个输入装置时,运动敏感硬件生成对应的电信号,诸如一或多个模拟运动敏感信号。所述一个或多个模拟运动敏感信号被从运动敏感硬件发送到手持式控制器414的模拟-数字转换器。手持式控制器414的模拟-数字转换器将模拟运动敏感信号从模拟形式转换成数字形式以输出数字运动敏感信号。数字运动敏感信号被从模拟-数字转换器发送到手持式控制器414的处理器。
手持式控制器414的处理器应用编码协议来编码数字运动敏感信号以输出经编码信号。例如,在确定第一数字运动敏感信号表示选择手持式控制器414上的选项按钮之后,手持式控制器414的处理器使用第一频率对所述第一数字运动敏感信号进行编码。在所述示例中,响应于确定第二数字运动敏感信号表示手持式控制器414的左控制杆1302A的移动,手持式控制器414的处理器使用第二频率对第二数字运动敏感信号进行编码,所述第二频率不同于(诸如大于或小于)所述第一频率。而且,在所述示例中,响应于确定第三数字运动敏感信号表示手持式控制器414的右控制杆1302B的移动,手持式控制器414的处理器使用第三频率对第三数字运动敏感信号进行编码,所述第三频率不同于所述第一频率和所述第二频率。
手持式控制器414的处理器将经编码信号发送到手持式控制器414的通信装置。手持式控制器414的通信装置将诸如BluetoothTM协议的无线传输协议应用于所述经编码信号以生成一个或多个数据分组,所述一个或多个数据分组是用户输入419的示例。手持式控制器414的通信装置经由无线连接将用户输入419发送到输入处理器系统407的通信装置1320。
在接收到用户输入419之后,通信装置1320应用无线传输协议以从所述一个或多个数据分组中提取经编码信号,并且将所述经编码信号发送到输入处理器1314。输入处理器1314解析(诸如解码和分析)经编码信号以确定与手持式控制器414的操作相关联的初始输入装置信息。例如,输入处理器1314基于一个或多个数字运动敏感信号而识别用户1操作手持式控制器414的哪个输入装置、输入装置的移动量和所述移动量的方向。为了说明,输入处理器1314根据基于从手持式控制器414的加速度计接收的一个或多个模拟运动敏感信号生成的一个或多个数字运动敏感信号确定用户1选择手持式控制器414上的特定按钮,诸如选项按钮。为了进一步说明,在确定使用第一频率对第一数字运动敏感信号进行编码之后,输入处理器1314确定选择了选项按钮,并且响应于确定第二数字运动敏感信号是使用第二频率编码的,输入处理器1314确定用户1操作左控制杆1302A。
作为另一说明,输入处理器1314根据基于从手持式控制器414的加速度计、陀螺仪和磁力计接收的一个或多个模拟运动敏感信号生成的一个或多个数字运动敏感信号确定控制杆在特定方向(诸如向前方向、向后方向、向右方向或向左方向)上移动,并且移动量在所述特定方向上超过预定阈值。在所述说明中,在所述特定方向上的移动和移动量是控制杆的功能性的示例。为了进一步说明,输入处理器1314确定左控制杆1302A的移动量超过预定移动量以确定移动量超过预定阈值。所述预定移动量存储在存储器装置1316中。手持式控制器414的按钮的功能性的另一示例是用户1对按钮的选择,诸如推或按。在所述示例中,当输入处理器1314将所述按钮识别为由用户1操作时确定所述按钮的功能性。作为手持式控制器414的按钮的功能性的另一示例,输入处理器1314确定当用户1操作所述按钮时生成数字运动敏感信号的次数。在所述示例中,所述次数等于确定输入处理器1314将从手持式控制器414接收数字运动敏感信号的次数。而且,在所述示例中,所述次数等于用户1选择按钮的次数。
输入处理器1314将初始输入装置信息发送到输入仿真器1318。当在玩传统游戏N期间接收到初始输入装置信息之后,输入仿真器1318访问存储在存储器装置1316内的默认映射1308,以基于手持式控制器414的更新后的输入装置中的一者或多者的标识符1312而识别手持式控制器1306的传统输入装置中的一者或多者。例如,在接收到初始输入装置信息之后,输入仿真器1318根据默认映射1308确定与由用户1操作的手持式控制器414的更新后的输入装置中的一者或多者的更新后的输入装置标识符1312中的一者或多者相对应的传统输入装置标识符1310中的一者或多者。默认映射1408包括手持式控制器1306的传统输入装置中的每一者与手持式控制器414的更新后的输入装置中的对应一者之间的一一对应关系,诸如链接。
更新后的输入装置标识符1312的示例包括识别手持式控制器414的更新后的输入装置中的一者或多者的标识字符,诸如字母数字字符和符号或位。为了说明,更新后的输入装置标识符1312包括左控制杆1302A的符号和右控制杆1302B的符号。作为另一说明,更新后的输入装置标识符1312包括用于手持式控制器414上的触摸板的符号。
传统输入装置标识符1310的示例包括识别手持式控制器1306的传统输入装置中的一者或多者的标识字符,诸如字母数字字符和符号或位。为了说明,更新后的输入装置标识符1310包括手持式控制器1306的左移动按钮1304A的符号、手持式控制器1306的向前移动按钮1304B的符号、手持式控制器1306的向右移动按钮1304C的符号,以及手持式控制器1306的向后移动按钮1304D的符号。作为另一说明,传统输入装置标识符1310包括手持式控制器1306上的选择按钮的符号。
此外,输入仿真器1318根据由用户1操作的手持式控制器414的一个或多个功能性来确定手持式控制器1306的一个或多个传统输入装置的一个或多个功能性。为了说明,输入仿真器1318确定左控制杆1302A在向左方向上的超过预定阈值的移动量对应于用户1三次对向左移动按钮1304A的选择。作为另一说明,输入仿真器1318确定左控制杆1302A在向左方向上的超过第一预定阈值的移动量对应于用户1两次对向左移动按钮1304A的选择。在所述说明中,输入仿真器1318确定左控制杆1302A在向左方向上的超过第二预定阈值的移动量对应于用户1三次对向左移动按钮1304A的选择。所述第二预定阈值大于或高于所述第一预定阈值。作为又一说明,根据手持式控制器414的一个或多个功能性而确定的手持式控制器1306的一个或多个传统输入装置的一个或多个功能性实现与由手持式控制器414的一个或多个功能性实现的结果相同的结果。在所述说明中,手持式控制器1306的一个或多个传统输入装置的一个或多个功能性和手持式控制器414的一个或多个功能性导致虚拟对象在虚拟环境452内的相同的移动量。相同的移动量的示例是从一个位置到另一个位置或从一个取向到另一个取向或其组合的移动。
输入仿真器1318生成用户输入420,所述用户输入具有与由用户1操作的更新后的输入装置标识符1312中的一者或多者相对应的传统输入装置标识符1310中的一者或多者。而且,用户输入420包括由传统输入装置标识符1310中的一者或多者识别的一个或多个传统输入装置的一个或多个功能性。输入仿真器1318将用户输入420发送到基本块编译器104。
基本块编译器104基于用户输入420而确定用于服务于用户输入420的基本块1到n中的一者或多者是否存储在缓存102(图1)中。例如,基本块编译器104基于用户输入420而确定可执行存储在缓存102中的基本块1到n中的一者或多者以在玩传统游戏N期间将战斗机从位置P1移动到位置P2。为了说明,基本块编译器104基于对向左移动按钮1304A的选择而确定战斗机将从位置P1移动到位置P2。基本块编译器104进一步根据对向左移动按钮1304A的选择而确定执行存储在缓存102中的基本块1到n中的一者或多者是否将使得能够将战斗机从位置P1移动到位置P2。
在确定用于服务于用户输入420的基本块1到n中的一者或多者存储在缓存102中之后,基本块编译器104将指令发送到块分派器302(图3)。块分派器302响应于所述指令而执行来自缓存102的基本块1到n中的一者或多者以用于服务于用户输入420。例如,执行基本块1到n中的一者或多者以将战斗机从位置P1移动到位置P2。此外,执行基本块1到n中的一者或多者以生成其中战斗机将从位置P1移动到位置P2的一个或多个图像帧。
另一方面,响应于确定用于服务于用户输入420的基本块1到n中的一者或多者未存储在缓存102中,基本块编译器102识别用于服务于用户输入420的仿真PU代码指令1到M中的一者或多者。基本块编译器102编译仿真PU代码指令1到M中的一者或多者以生成基本块1到n中的一者或多者来服务于用户输入420,并且将基本块1到n中的一者或多者提供到缓存102进行存储。而且,基本块编译器102向块分派器302发送指令以执行最近存储在缓存102中的基本块1到n中的一者或多者。然后由块分派器302执行基本块1到n中的一者或多者以服务于用户输入420。
在一个实施方案中,手持式控制器414与传统机器900(图9A)不兼容。例如,传统机器900的输入处理器系统包括输入处理器,所述输入处理器可解译由手持式控制器1306生成以及从所述手持式控制器接收的用户输入。传统系统900的输入处理器系统不能解译由手持式控制器414产生以及从所述手持式控制器接收的用户输入419。为了进一步说明,传统系统900的输入处理器能够解译从手持式控制器1306接收并通过32位表示的用户输入,但不能解译通过64位或128位表示的用户输入419。
在一个实施方案中,输入仿真器1318是输入处理器1314的一部分。例如,输入仿真器1318是存储在输入处理器1314的缓存内以供输入处理器1314的控制单元和算术逻辑单元(ALU)执行的计算机程序。
在一个实施方案中,手持式控制器414的通信装置耦合到手持式控制器414的运动敏感硬件。通信装置应用有线传输协议以经由有线连接的不同通道将数字运动敏感信号发送到输入处理器系统407的通信装置。例如,在接收到表示手持式控制器414上的按钮的移动的第一数字运动敏感信号之后,手持式控制器414的通信装置经由有线连接的第一通道(诸如第一连接链路或第一导体)传递第一数字运动敏感信号。在所述示例中,响应于接收到表示手持式控制器414的左控制杆1302A的移动的第二数字运动敏感信号,手持式控制器414的通信装置经由有线连接的第二通道(诸如第二连接链路或第二导体)传递第二数字运动敏感信号。而且,在所述示例中,响应于接收到表示手持式控制器414的右控制杆1302B的移动的第三数字运动敏感信号,手持式控制器414的通信装置经由有线连接的第三通道(诸如第三连接链路或第三线路)传递第三数字运动敏感信号。
继续所述实施方案,输入处理器系统407的通信装置接收数字运动敏感信号并将所述数字运动敏感信号与通道信息一起提供给输入处理器1314。例如,输入处理器407的通信装置向输入处理器1314指示经由第一通道接收到第一数字运动敏感信号,经由第二通道接收到第二数字运动敏感信号,以及经由第三通道接收到第三数字运动敏感信号。输入处理器1314基于所述通道而识别用户1操作手持式控制器414的哪个输入装置。
在一个实施方案中,手持式控制器414自身是输入装置。例如,用户1在向前方向、向后方向、向右方向或向左方向上移动手持式控制器414,以控制虚拟对象在所述方向上移动。
图14A-1是用以说明用户1从默认映射1308改变为当前映射1404的系统1400的实施方案的图。系统1400包括手持式控制器414、输入处理器系统407、NIC 1212、计算机网络408和服务器系统404。
服务器系统404的存储器装置412存储关于用户账户1和2的信息。例如,存储器装置412存储用户账户1和2,以及允许登录到用户账户1和2的验证信息。作为另一示例,存储器装置412存储用户1在玩传统游戏N和具有游戏名称Ga的当前游戏期间在用户账户1内累积的点数。在所述示例中,存储器装置412存储用户2在玩传统游戏N和具有游戏名称Ga的当前游戏期间在用户账户2内累积的点数。
用户1操作手持式控制器414的更新后的输入装置中的一者或多者,并且当操作更新后的输入装置中的一者或多者时,以类似于上文说明的方式生成一个或多个数字运动敏感信号。例如,用户1操作手持式控制器414的更新后的输入装置中的一者或多者以暂停传统游戏N。在所述示例中,一旦暂停传统游戏N,用户1便操作手持式控制器414的更新后的输入装置中的一者或多者以将默认映射1308改变为当前映射1414。作为另一示例,在玩传统游戏N之前,用户1操作手持式控制器414的更新后的输入装置中的一者或多者以将默认映射1308改变为当前映射1414。
作为示例,默认映射1308将控制器414的更新后的输入装置中的第一者的第一标识符映射到控制器1306的传统输入装置中的第一者的第一标识符(图13)。还是示例,默认映射1308将控制器414的更新后的输入装置中的第二者的第二标识符映射到控制器1306的传统输入装置中的第二者的第二标识符。
手持式控制器414的通信装置生成嵌入一个或多个数字运动敏感信号的一个或多个数据分组,所述一个或多个数字运动敏感信号指示默认映射1308被修改为当前映射1414。手持式控制器414的通信装置应用无线传输协议来生成一个或多个数据分组。将用于将默认映射1308改变为当前映射1414的一个或多个数据分组数据分组经由无线连接从手持式控制器414的通信装置作为用户输入1402发送到通信装置1320。
通信装置1320应用无线传输协议来提取一个或多个数字运动敏感信号以根据所述一个或多个分组将默认映射1308改变为当前映射1414。通信装置1320将用于改变默认映射1308的一个或多个数字运动敏感信号发送到输入处理器1314。在接收到一个或多个数字运动敏感信号之后,输入处理器1314确定从默认映射1308生成当前映射1404。例如,响应于接收到控制器414的更新后的输入装置中的第一者的第一标识符被映射到控制器1306的传统输入装置中的第二者的第二标识符的指示,输入处理器1314将所述第一标识符链接到所述第二标识符以生成当前映射1404,并且使当前映射1404与输入仿真器1318和用户账户1相关联。作为另一示例,响应于接收到控制器414的更新后的输入装置中的第二者的第二识别符被映射到控制器1306的传统输入装置中的第一者的第一标识符的指示,输入处理器1314将所述第二标识符链接到所述第一标识符以生成当前映射1404,并且使当前映射1404与输入仿真器1318相关联。
此外,在经由用户账户1生成当前映射1404之后,输入处理器1314将当前映射1404存储在存储器装置1316中并使当前映射1404关联到用户账户1。例如,在访问用户账户1之后,除了默认映射1308之外,用户1还可访问当前映射1404。为了说明,当用户1登录到用户账户1时,在接收到指示对游戏名称GN的选择的数字运动敏感信号之后,输入处理器1314向用户1提供在默认映射1308与当前映射1404之间进行选择来玩传统游戏N的选项。作为另一说明,响应于生成当前映射1404,输入处理器1314指示输入仿真器1318仿真在玩传统游戏N期间从手持式控制器414接收的未来用户输入。在所述说明中,在用户1登录到用户帐户1之后,输入处理器系统407接收未来用户输入。而且,在所述说明中,根据当前映射1404而不是默认映射1308来仿真未来用户输入。为了进一步说明,在操作手持式控制器414的更新后的输入装置中的一者或多者以指示默认映射1308被修改为当前映射1404之后,用户1退出用户账户1。在进一步的说明中,用户1在退出用户帐户1之后登录到用户帐户1。继续所述进一步的说明,在用户s1登录到用户帐户1之后,输入仿真器1318将当前映射1404应用于未来用户输入而不是默认映射1308,直到从手持式控制器414接收到对默认映射1308的选择为止。
图14A-2是用以说明默认映射1308和当前映射1404的存储器装置1316的实施方案的图。默认映射1308映射手持式控制器1306(图13)的传统输入装置的传统输入装置标识符1310与传统输入装置的功能性的标识符、手持式控制器414(图13)的更新后的输入装置的更新后的输入装置标识符1312和更新后的输入装置的功能性的标识符。例如,默认映射1308包括手持式控制器1306的传统输入装置的传统输入装置标识符LID1、传统输入装置的功能性LIF1、手持式控制器1306的更新后的输入装置的更新后的输入装置标识符UID1与更新后的输入装置的功能性UIF1之间的一一对应关系。作为另一示例,默认映射1308包括手持式控制器1306的传统输入装置的传统输入装置标识符LID2、传统输入装置的功能性LIF2、手持式控制器1306的更新后的输入装置的更新后的输入装置标识符UID2与更新后的输入装置的功能性UIF2之间的一一对应关系。作为又一示例,默认映射1308包括手持式控制器1306的传统输入装置的传统输入装置标识符LID5、传统输入装置的功能性LIF5、手持式控制器1306的更新后的输入装置的更新后的输入装置标识符UID5与更新后的输入装置的功能性UIF5之间的一一对应关系。
类似地,默认映射1404映射手持式控制器1306的传统输入装置的传统输入装置标识符1310与传统输入装置的功能性的标识符、手持式控制器414的更新后的输入装置的更新后的输入装置标识符和更新后的输入装置的功能性的标识符。例如,当前映射1404包括传统输入装置标识符LID1、功能性LIF1、更新后的输入装置标识符UID2与更新后的输入装置的功能性UIF2之间的一一对应关系。作为另一示例,当前映射1404包括传统输入装置标识符LID2、功能性LIF2、更新后的输入装置标识符UID1与功能性UIF1之间的一一对应关系。应注意,在当前映射1404中,对默认映射1308的标识符LID1和UID1之间的映射进行切换,以生成标识符LID1与UID2之间的映射。而且,在当前映射1404中,对默认映射1308的标识符LID2和UID2之间的映射进行切换,以生成标识符LID2与UID1之间的映射。
在一个实施方案中,将多个传统输入装置标识符映射到一个或多个更新后的输入装置标识符。例如,识别向左移动按钮1304A和向右移动按钮1304C的多个传统输入装置标识符被映射到手持式控制器414的控制杆(诸如左控制杆1302A或右控制杆1302B(图13))的单个更新后的输入标识符。作为另一示例,识别向前移动按钮1304B和向后移动按钮1304D的多个传统输入装置标识符被映射到手持式控制器414的控制杆(诸如左控制杆1302A或右控制杆1302B)的单个更新后的输入标识符。
在一个实施方案中,默认映射1308不包括手持式控制器1306的传统输入装置的功能性的标识符和手持式控制器414的更新后的输入装置的功能性的标识符。
在一个实施方案中,如本文描述的映射包括用于更新后的手持式控制器的相同数目的更新后的输入装置的任何数目的标识符。而且,所述映射包括用于传统手持式控制器的相同数目的传统输入装置的任何数目的标识符。
图14B是用以说明在玩传统游戏N期间使用当前映射1404而不是默认映射1308(图13)的系统1450的实施方案的图。用户1登录到用户账户1并且经由手持式控制器414的更新后的输入装置中的一者或多者选择当前映射1404。在从手持式控制器414接收到指示对当前映射1404的选择的用户输入之后,输入处理器1314指示输入仿真器1318应用当前映射1404而不是默认映射1308。
在玩传统游戏N期间,用户1操作手持式控制器414的一个或多个输入装置以生成对应的一个或多个电信号,所述一个或多个电信号最终形成用户输入1452。例如,当用户1在向前方向或向后方向或向右方向或向左方向上移动手持式控制器414的控制杆时,生成电信号。
当用户1操作手持式控制器414的一或多个输入装置时,运动敏感硬件生成对应的额外的电信号,诸如一或多个额外的模拟运动敏感信号。所述一个或多个额外的模拟运动敏感信号被从运动敏感硬件发送到手持式控制器414的模拟-数字转换器。手持式控制器414的模拟-数字转换器将所述额外的模拟运动敏感信号从模拟形式转换成数字形式以输出额外的数字运动敏感信号。所述额外的数字运动敏感信号被从模拟-数字转换器发送到手持式控制器414的处理器。
手持式控制器414的处理器应用编码协议来编码所述额外的数字运动敏感信号以输出额外的经编码信号。例如,在确定第一额外的数字运动敏感信号表示手持式控制器414上的选项按钮的移动之后,手持式控制器414的处理器使用第一频率对所述第一额外的数字运动敏感信号进行编码。在所述示例中,响应于确定第二额外的数字运动敏感信号表示手持式控制器414的左控制杆1302A的移动,手持式控制器414的处理器使用第二频率对第二额外的数字运动敏感信号进行编码。而且,在所述示例中,响应于确定第三额外的数字运动敏感信号表示手持式控制器414的右控制杆1302B的移动,手持式控制器414的处理器使用第三频率对第三额外的数字运动敏感信号进行编码。
手持式控制器414的处理器将额外的经编码信号发送到手持式控制器414的通信装置。手持式控制器414的通信装置将无线传输协议应用于所述额外的经编码信号以生成一个或多个额外的数据分组,所述一个或多个额外的数据分组是用户输入1452的示例。手持式控制器414的通信装置经由无线连接将用户输入1452发送到输入处理器系统407的通信装置1320。
在接收到用户输入1452之后,通信装置1320应用近程通信协议以从一个或多个额外的数据分组中提取额外的经编码信号,并且将所述额外的经编码信号发送到输入处理器1314。输入处理器1314解析(诸如解码和分析)所述额外的经编码信号以确定与手持式控制器414的操作相关联的额外的输入装置信息。例如,输入处理器1314基于一个或多个额外的数字运动敏感信号而识别用户1操作手持式控制器414的哪个输入装置、输入装置的移动量和所述移动量的方向。为了说明,输入处理器1314根据从自手持式控制器414的加速度计输出的额外的模拟运动敏感信号生成的一个或多个额外的数字运动敏感信号确定用户1选择手持式控制器414上的特定按钮,诸如选项按钮。为了进一步说明,在确定使用第一频率对第一额外的数字运动敏感信号进行编码之后,输入处理器1314确定选择了选项按钮,并且响应于确定第二额外的数字运动敏感信号是使用第二频率编码的,输入处理器1314确定用户1操作左控制杆1302A。
作为另一说明,输入处理器1314根据从自手持式控制器414的加速度计、陀螺仪和磁力计输出的额外的模拟运动敏感信号生成的一个或多个额外的数字运动敏感信号确定控制杆在特定方向(诸如向前方向、向后方向、向右方向或向左方向)上移动,并且移动量在所述特定方向上超过预定阈值。为了进一步说明,输入处理器1314确定左控制杆1302A的移动量超过预定移动量以确定移动量超过预定阈值。在所述说明中,在所述特定方向上的移动和移动量是控制杆的功能性的示例。手持式控制器414的按钮的功能性的另一示例是用户1对按钮的选择。在所述示例中,当输入处理器1314将所述按钮识别为被用户1选择时确定所述按钮的功能性。作为手持式控制器414的按钮的功能性的另一示例,输入处理器1314确定当用户1操作所述按钮时生成额外的数字运动敏感信号的次数。所述次数等于确定输入处理器1314将从手持式控制器414接收额外的数字运动敏感信号的次数。而且,所述次数等于用户1选择按钮的次数。
当在玩传统游戏N期间接收到额外的输入装置信息之后,输入仿真器1318访问存储在存储器装置1316内的当前映射1404,以基于手持式控制器414的更新后的输入装置中的一者或多者的标识符1312而识别手持式控制器1306的传统输入装置中的一者或多者。例如,在接收到额外的输入装置信息之后,输入仿真器1318根据当前映射1404来确定与由用户1操作的手持式控制器414的更新后的输入装置中的一者或多者的更新后的输入装置标识符1312中的一者或多者相对应的传统输入装置标识符1310中的一者或多者。
此外,输入仿真器1318根据由用户1操作的用于生成额外的输入装置信息的手持式控制器414的一个或多个功能性来确定手持式控制器1306的一个或多个传统输入装置的一个或多个功能性。为了说明,输入仿真器1318确定左控制杆1302A在向左方向上的超过预定阈值的移动量对应于用户1三次对向左移动按钮1304A的选择。作为另一说明,输入仿真器1318确定左控制杆1302A在向左方向上的超过第一预定阈值的移动量对应于用户1两次对向左移动按钮1304A的选择。在所述说明中,输入仿真器1318确定左控制杆1302A在向左方向上的超过第二预定阈值的移动量对应于用户1三次对向左移动按钮1304A的选择。
输入仿真器1318生成用户输入1454,所述用户输入具有与由用户1操作的手持式控制器414的一个或多个更新后的输入装置的更新后的输入装置标识符1312中的一者或多者相对应的传统输入装置标识符1310中的一者或多者。而且,用户输入1454包括由传统输入装置标识符1310中的一者或多者识别的一个或多个传统输入装置的一个或多个功能性。输入仿真器1318将用户输入1454发送到基本块编译器104。
基本块编译器104基于用户输入1454而确定用于服务于用户输入1454的基本块1到n中的一者或多者是否存储在缓存102(图1)中。例如,基本块编译器104基于用户输入1454而确定用以在玩传统游戏N期间将战斗机从位置P1移动到位置P2的基本块1到n中的一者或多者存储在缓存102中。为了说明,基本块编译器104基于对向左移动按钮1304A的选择而确定战斗机将从第一位置移动到第二位置或从第一取向移动到第二取向或其组合。基本块编译器104进一步根据对向左移动按钮1304A的选择而确定执行存储在缓存102中的基本块1到n中的一者或多者是否将使得能够将战斗机从第一位置移动到第二位置或从第一取向移动到第二取向或其组合。
在确定用于服务于用户输入1454的基本块1到n中的一者或多者存储在缓存102中之后,基本块编译器104将指令发送到块分派器302(图3)。块分派器302响应于所述指令而执行来自缓存102的基本块1到n中的一者或多者以用于服务于用户输入1454。例如,执行基本块1到n中的一者或多者以将战斗机从第一位置移动到第二位置或从第一取向移动到第二取向或其组合。另外,执行基本块1到n中的一者或多者以生成其中战斗机将从第一位置移动到第二位置或从第一取向移动到第二取向或其组合的一个或多个图像帧。
另一方面,响应于确定用于服务于用户输入1454的基本块1到n中的一者或多者未存储在缓存102中,基本块编译器102识别用于服务于用户输入1454的仿真PU代码指令1到M中的一者或多者。基本块编译器102编译仿真PU代码指令1到M中的一者或多者以生成基本块1到n中的一者或多者来用于服务于用户输入1454,并且将所述基本块中的一者或多者提供到缓存102进行存储。而且,基本块编译器102向块分派器302发送指令以执行最近存储在缓存102中的基本块1到n中的一者或多者。
在一个实施方案中,手持式控制器414的通信装置耦合到手持式控制器414的运动敏感硬件。通信装置应用有线传输协议以经由有线传输介质的不同通道将额外的数字运动敏感信号发送到输入处理器系统407的通信装置。例如,在接收到表示手持式控制器414上的按钮的移动的第一额外的数字运动敏感信号之后,手持式控制器414的通信装置经由有线连接的第一通道传递第一额外的数字运动敏感信号。在所述示例中,响应于接收到表示手持式控制器414的左控制杆1302A的移动的第二额外的数字运动敏感信号,手持式控制器414的通信装置经由有线连接的第二通道传递第二额外的数字运动敏感信号。而且,在所述示例中,响应于接收到表示手持式控制器414的右控制杆1302B的移动的第三额外的数字运动敏感信号,手持式控制器414的通信装置经由有线连接的第三通道传递第三额外的数字运动敏感信号。
继续所述实施方案,输入处理器系统407的通信装置接收额外的数字运动敏感信号并将所述额外的数字运动敏感信号与通道信息一起提供给输入处理器1314。例如,输入处理器407的通信装置向输入处理器1314指示经由第一通道接收到第一额外的数字运动敏感信号,经由第二通道接收到第二额外的数字运动敏感信号,以及经由第三通道接收到第三额外的数字运动敏感信号。输入处理器1314基于所述通道而识别用户1操作手持式控制器414的哪个输入装置。
图15是用以说明基于右控制杆1302B的移动而识别向向右移动按钮1302C的系统1500的实施方案的图。系统1500包括手持式控制器414、手持式控制器1306、输入处理器系统407和仿真处理器系统409。
手持式控制器1306包括方向垫(Dpad)1510和衬垫1512。按钮1302A-1302B位于方向垫1510上。而且,方形按钮、三角形按钮、圆形按钮和X按钮位于衬垫1512上。此外,手持式控制器1306包括左肩按钮1506和右肩按钮1508。
用户1在向右方向1502上移动右控制杆1302。如右控制杆1302B的放大视图所示,当用户在向右方向1502上移动右控制杆时,力矩超过预定阈值1504。预定阈值1504是从中心轴1516测得的,所述中心轴是穿过右控制杆1302B的中心的垂直轴。例如,中心轴1516穿过右控制杆1302B的质心。为了说明,在中心轴1516与预定阈值1504之间存在预定水平距离。作为示例,预定阈值1504是垂直轴。
当右控制杆1302在向右方向1502上的移动超过预定阈值1504时,手持式控制器414生成用户输入1514,所述用户输入包括一个或多个数字运动敏感信号。所述一个或多个数字运动敏感信号指示右控制杆1302B在向右方向1502上移动并超过预定阈值1504。用户输入1514是用户输入419(图13)的示例。用户输入1514被从手持式控制器414发送到输入处理器系统407。
输入处理器1314接收嵌入在用户输入1514内的一个或多个数字运动敏感信号,并且基于频率通道而确定所述一个或多个数字运动敏感信号识别用户1移动右控制杆1302B。所述频率通道用于将嵌入在用户输入1514内的一个或多个数字运动敏感信号从手持式控制器414无线传输到输入处理器系统407。基于频率频道的标识符,诸如具有第一频率的频道或具有第二频率的频道,所述一个或多个数字运动敏感信号识别右控制杆1302B存在移动。例如,当以第一频率经由通道传输所述一个或多个数字运动敏感信号时,输入处理器1314确定右控制杆1302B被移动,并且当以第二频率经由通道传输所述一个或多个数字运动敏感信号时,输入处理器1314确定左控制杆1302A被移动。在所述示例中,所述第二频率大于或小于所述第一频率。
此外,输入处理器1314进一步基于由一个或多个数字运动敏感信号指示的方向性而确定右控制杆1302B已在向右方向1502上移动。例如,基于由手持式控制器414的陀螺仪生成的一个或多个模拟运动敏感信号而输出一个或多个数字运动敏感信号,并且陀螺仪测量右控制杆1302B的移动方向性。
而且,输入处理器1314基于根据由手持式控制器414的电位计生成的一个或多个模拟运动敏感信号输出的一个或多个数字运动敏感信号而确定右控制杆1302B在向右方向1502上的移动量。输入处理器1314进一步确定右控制杆1302B的移动量超过存储在存储器装置1316中的预定阈值1504。
右控制杆1302B的移动、在向右方向1502上的移动,以及在向右方向1502上的超过预定阈值1504的移动是输入装置信息的示例,诸如初始输入装置信息或额外的输入装置信息。输入处理器1314将所述输入装置信息提供给输入仿真器1318。输入仿真器1318接收所述输入装置信息,并且基于所述输入装置信息而访问映射1530,诸如默认映射1308(图14A-2)或当前映射1404(图14A-2)。例如,在接收到右控制杆1302B在向右方向1502上移动的指示之后,输入仿真器1318从默认映射1308识别右控制杆1302B的移动对应于对向右移动按钮1302C的选择。此外,输入仿真器1318根据默认映射1308来确定右控制杆1302B的移动量对应于选择向右移动按钮1302C的预定次数,诸如两次或三次或四次。
输入仿真器1318生成包括信息的用户输入1520,所述信息指示向右移动按钮1302C的操作。所述信息指示对向右移动按钮1302C的选择以及向右移动按钮1302C被选择的预定次数。应注意,右移动按钮1302C实际上不是由用户1选择的。而是,右控制杆1302B的移动被仿真为对向右移动按钮1302C的选择。用户输入1520是用户输入420(图13)的示例。输入仿真器1318向基本块编译器104提供用户输入1520,所述基本块编译器以上文参考图13说明的方式操作。
应注意,上文参考图15描述的实施方案是针对右控制杆1302B在向右方向1502上的移动。在一个实施方案中,作为右控制杆1302B的代替,左控制杆1302A在向右、向左、向前或向后方向上移动,并且手持式控制器414基于所述移动而生成用户输入。在一个实施方案中,作为在向右方向1502上的移动的代替,发生在任何其他方向上的移动,诸如向右、向前、向后或其组合。
在一个实施方案中,作为手持式控制器414的代替,使用方向盘式控制器。方向盘式控制器具有驾驶方向盘的形状。作为示例,方向盘式控制器不包括左控制杆1302A和右控制杆1302B。而是,用户1操作驾驶方向盘以在向左、向右、向前和向后方向上移动传统游戏N的虚拟对象。驾驶方向盘可在顺时针方向上或逆时针方向上旋转。当用户1在顺时针方向上旋转驾驶方向盘时,输入处理器1314基于一个或多个数字运动敏感信号而确定驾驶方向盘旋转以及驾驶方向盘是在顺时针方向上还是逆时针方向上旋转。输入处理器1314进一步确定旋转量是否超过预设阈值。输入处理器1314向输入仿真器1318提供信息,诸如驾驶方向盘的标识符、旋转方向以及旋转量是否超过预设阈值的指示。输入仿真器1318访问映射,诸如默认映射或当前映射,以识别手持式控制器1306的对应按钮和所述对应按钮的操作以生成用户输入。例如,输入仿真器1318基于所述信息和所述映射而识别手持式控制器1306的对应按钮被选择以及对应按钮被选择以生成用户输入的次数。输入仿真器1318向基本块编译器104提供用户输入,所述基本块编译器以上文参考图13或图14B说明的方式操作。
图16A是用以说明当用户1选择触摸板1602时生成十字准线的虚拟图像的系统1600的实施方案的图。触摸板1602是按钮的示例。系统1600包括输入处理器系统407、手持式控制器414和仿真处理器系统409。手持式控制器414包括触摸板1602、方向垫1604、衬垫1606、左控制杆1302A和右控制杆1302B。
在玩传统游戏N期间,用户1使用他/她的手指选择触摸板1602。触摸板1602是手持式控制器414的更新后的输入装置中的一者的示例。手持式控制器414的运动敏感硬件响应于对触摸板1602的选择而生成一个或多个模拟运动敏感信号。例如,一个或多个模拟运动敏感信号指示对触摸板1602的选择和相对于触摸板1602的参考坐标系的对触摸板1602的选择的位置。为了说明,基于沿x轴的选择的位置,手持式控制器414的第一电位计生成第一电信号,并且基于沿y轴的选择的位置,手持式控制器414的第二电位计生成第二电信号。在下文进一步描述与触摸板1602相关联的x轴和y轴。由手持式控制器414的模拟-数字转换器将一个或多个模拟运动敏感信号转换成一个或多个数字运动敏感信号。手持式控制器414的处理器将编码协议应用于一个或多个数字运动敏感信号以输出一个或多个经编码信号。例如,所述一个或多个经编码信号具有对应于触摸板1602的频率,诸如与触摸板1602具有唯一关系。手持式控制器414的通信装置应用无线传输协议以将一个或多个经编码信号嵌入到一个或多个数据分组中,并且经由无线连接将一个或多个数据分组发送到通信装置1320。在图16A中将所述一个或多个数据分组说明为用户输入1612。通信装置1320将无线传输协议应用于从手持式控制器414接收的一个或多个数据分组以获得经编码信号,并且将所述经编码信号发送到输入处理器1314。
输入处理器1314以类似于参考图13所说明的方式确定或识别触摸板1602被用户1选择。例如,响应于确定从手持式控制器414以与预定频率通道匹配的频率接收到在一个或多个经编码信号内编码的一个或多个数字运动敏感信号,输入处理器1314确定选择了触摸板1602。在所述示例中,预定频率通道存储在存储器装置1316内。而且,在所述示例中,输入处理器1314通过对经编码信号应用傅里叶变换来确定频率。
输入处理器1314进一步相对于触摸板1602的参考坐标系来确定用户1在触摸板1602上的选择的位置。例如,输入处理器1314基于从手持式控制器414的第一电位计接收的电压量而确定用户1相对于触摸板1602的参考坐标系在坐标(x1,0)处选择了触摸板1602。例如,在所述示例中,输入处理器1314基于从手持式控制器414的第二电位计接收的电压量而确定用户1相对于触摸板1602的参考坐标系在坐标(0,y1)处选择了触摸板1602。在所述示例中,在一个或多个经编码信号内接收第一电压量和第二电压量。为了说明,从手持式控制器414的运动敏感硬件输出的一个或多个模拟运动敏感信号包括表示第一电压量和第二电压量的信息。用户1选择的触摸板1602的标识符和在触摸板1602上的选择位置是输入装置信息的示例,诸如初始输入装置信息和额外的输入装置信息。
输入处理器1318将被选择的触摸板1602的标识符和触摸板1602上的选择的位置提供给输入仿真器1318。输入仿真器1318访问映射1610以基于被选择的触摸板1602的标识符而识别手持式控制器1306上的对应按钮。例如,输入仿真器1318根据映射1610确定手持式控制器1306上的选择按钮与触摸板1602具有唯一关系。映射1610是默认映射1308(图13)或当前映射1404(图14A-2)的示例。
而且,输入仿真器1318向块分派器302发送请求以获得具有传统游戏N的虚拟场景的图像帧的大小。作为示例,将在基于用户输入1612生成用户输入1614之后生成请求其大小的传统游戏N的图像帧。为了说明,将基于用户输入1614而生成请求其大小的传统游戏N的第一图像帧,并且在生成第一图像帧之前不基于用户输入1614而生成其他图像帧。块分派器302将图像帧的大小提供给输入仿真器1318。例如,块分派器302将图像帧的大小提供为与紧接在将基于用户输入1614而生成的图像帧之前生成的前一图像帧相同。为了说明,块分派器302不在基于用户输入1614而生成的图像帧的生成与前一图像帧之间生成其他图像帧。输入仿真器1318耦合到块分派器302。
输入仿真器1318确定十字准线的虚拟图像在基于用户输入1614而生成的图像帧内的位置。十字准线的虚拟图像在图像帧内的位置对应于触摸板1602上的选择的位置。参考图16B描述对十字准线的虚拟图像在图像帧内的位置与触摸板1602上的选择的位置具有一对一关系的方式的说明。
输入仿真器1318生成用户输入1614,所述用户输入具有手持式控制器1306上的选择按钮的指示以及十字准线的虚拟图像在基于用户输入1614而生成的图像帧内的位置。将用户输入1614从输入仿真器1318提供给块编译器104。
在接收到用户输入1614之后,块编译器104确定用于服务于用户输入1614的基本块1到n中的一者或多者是否存储在缓存102(图1)中。响应于确定基本块1到n中的一者或多者存储在缓存102中,块分派器302(图3)执行一个或多个基本块1到n以生成用于服务于用户输入1614的一个或多个图像帧。例如,块分派器302(图3)接收将从块编译器104生成的图像帧内的十字准线的虚拟图像的位置,并且执行一个或多个基本块1到n以生成所述十字准线作为图像帧内的虚拟对象。此外,在图像帧内在与用户1选择触摸板1602的位置相对应的位置处生成十字准线。
在一个实施方案中,输入仿真器1318生成让块分派器302确定图像帧内的十字准线的虚拟图像的位置的命令,并且将所述命令发送到块分派器302。例如,所述命令向块分派器302指示由块分派器302生成的图像帧将在与用户1在触摸板1602上的选择的位置成比例的位置处包括十字准线的虚拟图像。所述命令包括用户1在触摸板1602上的选择的位置。输入仿真器1318耦合到块分派器302。在所述实施方案中,用户输入1614不包括图像帧内的十字准线的虚拟图像的位置。块分派器302执行基本块1到n中的一者或多者以生成图像帧。此外,块分派器302以与本文诸如参考图16B描述的相同方式确定图像帧内的十字准线的虚拟图像的位置,其中输入仿真器1318基于用户1在触摸板1602上的选择的位置而确定图像帧内的十字准线的虚拟图像的位置。
图16B是用以说明用户1在触摸板1062上的选择的位置与具有虚拟环境452的图像帧1654上的十字准线1652的位置之间的对应关系的系统1650的实施方案的图。所述对应关系由输入仿真器1318(图16A)确定。图像帧1654显示在显示装置410(图4B)的显示屏幕上。系统1650包括触摸板1602和图像帧1654。
触摸板1602具有顶部边缘1666A、右边缘1666B、底部边缘1666C和左边缘1666D。顶部边缘1666A与右边缘和左边缘相邻并邻接。而且,底部边缘1666C与右边缘和左边缘相邻并邻接。底部边缘1666C面向顶部边缘1666A,并且右边缘1666B面向左边缘1666D。
触摸板1602上的选择的位置是坐标(x1,y1)。触摸板1602与在触摸板1602的角落处具有原点(0,0)的参考坐标系相关联。触摸板1602具有四个角落,诸如矩形的四个顶点。作为示例,触摸板1602是具有顶点的矩形形状。触摸板1602的参考坐标系的x轴沿着触摸板1602的底部边缘1666C,并且所述参考坐标系的y轴沿着触摸板1602的左边缘1666D。坐标x1是沿x轴距原点(0,0)的距离,并且坐标y1是沿y轴距原点(0,0)的距离。参考坐标系的x轴垂直于参考坐标系的y轴。
类似地,图像帧1654具有顶部边缘1668A、右边缘1668B、底部边缘1668C和左边缘1668D。顶部边缘1668A与右边缘和左边缘相邻并邻接。而且,底部边缘1668C与图像帧1654的右边缘和左边缘相邻并且邻接。底部边缘1668C面向顶部边缘1668A,并且右边缘1668B面向左边缘1668D。
十字准线1652的位置在坐标(X1,Y1)处。图像帧1654与在图像帧1654的角落处具有原点(0,0)的参考坐标系相关联。图像帧1654具有四个角落,诸如矩形的四个顶点。作为示例,图像帧1654是具有顶点的矩形形状。图像帧1654的参考坐标系的X轴沿着底部边缘1668C,并且图像帧1654的参考坐标系的Y轴沿着左边缘1668D。坐标X1是沿X轴距图像帧1654的角落处的原点(0,0)的距离,并且坐标Y1是沿Y轴距所述原点(0,0)的距离。
输入仿真器1318确定沿图像帧1654的参考坐标系的X轴的距离与沿触摸板1602的参考坐标系的x轴的距离成比例。例如,输入仿真器1318确定图像帧1654的宽度是P乘以触摸板1602的宽度,其中P是大于零的整数。图像帧1654的宽度是沿图像帧1654的参考坐标系的X轴测量的,并且触摸板1602的宽度是沿触摸板1602的参考坐标系的x轴测量的。在所述示例中,输入仿真器1318确定图像帧1654的高度是Q乘以触摸板1602的高度,其中Q是大于零的整数。图像帧1654的高度是沿图像帧1654的参考坐标系的Y轴测量的,并且触摸板1602的高度是沿触摸板1602的参考坐标系的y轴测量的。在所述示例中,输入仿真器1318将沿X轴的距离确定为P乘以沿触摸板1602的参考坐标系的x轴的距离。而且,在所述示例中,输入仿真器1318将沿Y轴的距离确定为Q乘以沿着触摸板1602的参考坐标系的x轴的距离。
图17是用以说明在使用不同类型的手持式控制器的情况下使用不同映射的系统1700的实施方案的图。系统1700包括方向盘式控制器1702、手持式控制器414和输入处理器系统407。方向盘式控制器1702具有驾驶方向盘的形状并且包括更新后的输入装置,诸如方向盘1708、方向垫1706、方形按钮、三角形按钮、圆形按钮和X按钮。
应注意,方向盘式控制器1702与手持式控制器414的类型不同。例如,手持式控制器414具有左手柄1704A和右手柄1704B,并且不包括方向盘。手柄1704A和1704B从手持式控制器414的主体向下延伸。相比之下,方向盘式控制器1702具有方向盘1708但不包括左右手柄。
此外,当第一手持式控制器和第二手持式控制器的类型相同但由不同的实体制造时,第一手持式控制器的子类型与第二手持式控制器的子类型不同。例如,由LogitechTM公司制造的方向盘式控制器与由SonyTM公司制造的方向盘式控制器是不同的子类型。作为另一个例子,由SonyTM公司制造的手持式控制器与由MicrosoftTM公司制造的手持式控制器是不同的类型。
方向盘式控制器1702具有与手持式控制器414相同或相似的内部部件。例如,方向盘式控制器1702包括运动敏感硬件、模拟-数字转换器、处理器和通信装置。方向盘式控制器1702的内部部件以与手持式控制器414的内部部件彼此耦合的相同方式彼此耦合。
当用户1将诸如手持式控制器414或方向盘式控制器1702的更新后的控制器与输入处理器系统407耦合时,用户1操作更新后的控制器的一个或多个更新后的输入装置以提供所述类型和所述子类型的更新后的控制器。例如,用户1将手持式控制器414与输入处理器系统407解除耦合,并且替代地将方向盘式控制器1702耦合到输入处理器系统407。当用户1操作更新后的控制器时,更新后的控制器生成具有更新后的控制器的类型的识别信号,并且将所述识别信号发送到输入处理器系统407。而且,更新后的控制器生成具有更新后的控制器的子类型的识别信号,并且将所述识别信号发送到输入处理器系统407。输入处理器1314接收更新后的控制器的类型和子类型,并且将所述类型和所述子类型提供给输入仿真器1318。
在接收到更新控制器的类型和子类型之后,输入仿真器1318基于所述类型和所述子类型而选择映射1710或映射1712。例如,当更新后的控制器的类型是手持式控制器414并且更新后的控制器的子类型是由SonyTM公司制造的手持式控制器414时,输入仿真器1318选择映射1710。当更新后的控制器的类型是方向盘式控制器1702并且更新后的控制器的子类型是由SonyTM公司制造的方向盘式控制器1702时,输入仿真器选择映射1712。映射1710的示例是用户账户1的默认映射或用户账户1的当前映射。映射1712的示例是用户账户1的默认映射或用户账户1的当前映射。
在玩传统游戏N期间,输入处理器系统407从方向盘式控制器1702接收用户输入419,所述方向盘式控制器在将手持式控制器414解除耦合之后耦合到输入处理器系统407。用户输入419是由方向盘式控制器1702以手持式控制器414生成用户输入419的相同方式生成,不同之处在于,驾驶方向盘1708被旋转而不是控制杆1302A和1302B。例如,用户1操作方向盘式控制器1702的更新后的输入装置中的一者或多者。方向盘式控制器1702的运动敏感硬件响应于方向盘式控制器1702的更新后的输入装置中的一者或多者的操作而生成一个或多个模拟运动敏感信号。方向盘式控制器1702的模拟-数字转换器将所述一个或多个模拟运动敏感信号转换成一个或多个数字运动敏感信号。方向盘式控制器1702的处理器应用编码协议对所述一个或多个数字敏感信号进行编码以输出一个或多个经编码信号。方向盘式控制器1702的通信装置将无线传输协议应用于一个或多个经编码信号以生成一个或多个数据分组,并且将所述一个或多个数据分组发送到通信装置1320。
通信装置1320将无线传输协议应用于所述一个或多个数据分组以提取一个或多个经编码信号,并且将一个或多个经编码信号发送到输入处理器1314。输入处理器1314从所述一个或多个经编码信号识别用户1操作方向盘式控制器1702的哪个更新后的输入装置,并且将更新后的输入装置中的一者或多者的一个或多个标识符提供给输入仿真器1318。输入仿真器1318访问映射1712并应用映射1712来识别手持式控制器1306(图13)的对应的一个或多个传统输入装置以生成用户输入420。
图18是用以说明将当前映射从游戏控制台402传送到游戏控制台1202的系统1800的实施方案的图。系统1800包括游戏控制台402、计算机网络408、服务器系统404和游戏控制台1202。
游戏控制台1202包括输入处理器系统1207,所述输入处理器系统包括输入处理器1804、输入仿真器1806、存储器装置1808和通信装置1810。作为说明,输入仿真器1806当在游戏控制台1202内实施时使得能够通过使用手持式控制器1212来玩传统游戏N。通信装置1810的示例是应用近程通信协议的通信装置。
通信装置1810耦合到输入处理器1804。输入处理器1804和输入仿真器1806耦合到存储器装置1808。输入处理器系统1207耦合到总线1218。
游戏控制台402的输入处理器1314从存储器装置1316访问(诸如读取)当前映射1404,并将当前映射1404发送到NIC 1212。例如,在生成当前映射1404之后的预定时期内,输入处理器1314将当前映射1404发送到NIC 1212。为了说明,在创建当前映射1404之后立即将当前映射1404存储在存储器装置1316中并同时发送到NIC 1212。NIC 1212将网络通信协议应用于当前映射1404以生成一个或多个数据分组,并经由计算机网络408将所述一个或多个数据分组发送到服务器系统404以存储在服务器系统404的一个或多个存储器装置中。
用户1使用手持式控制器1212登录用户账户1并经由游戏控制台1202访问传统游戏N。此外,在玩传统游戏N之前或期间,用户1选择手持式控制器1212的一个或多个更新后的输入装置以生成用于从服务器系统404访问当前映射1404的指示,诸如请求。在接收到对手持式控制器1212的一个或多个更新后的输入装置的选择之后,手持式控制器1212应用无线传输协议来生成一个或多个数据分组并将所述一个或多个数据分组发送到通信装置1810。通信装置1810应用无线传输协议以获得将为用户账户1获得当前映射1404的指示,并将所述指示存储在游戏控制台1202的存储器装置1808中。
游戏控制台1202的CPU,诸如CPU 922(图9B),访问用于从存储器装置1808获得当前映射1404的指示,并将所述指示发送到NIC 1210。NIC 1210将网络通信协议应用于获得当前映射1404的指示以生成一个或多个数据分组,并经由计算机网络408将所述一个或多个数据分组发送到服务器系统404。
响应于从游戏控制台1202接收到当前映射1404的指示,服务器系统404从服务器系统404的一个或多个存储器装置访问当前映射1404,并且经由计算机网络408将当前映射1404发送到游戏机1202。例如,服务器系统404的处理器确定用于获得当前映射1404的指示对应于用户帐户1。为了说明,服务器系统404的处理器确定在用户1登录到用户账户1时接收到指示,以确定所述指示对应于用户账户1。继续所述示例,服务器系统404的处理器从服务器系统404的一个或多个存储器装置访问当前映射1404,并且将当前映射1404发送到服务器系统404的网络接口控制器。服务器系统404的网络接口控制器将网络通信协议应用于当前映射1404以生成一个或多个数据分组,并且经由计算机网络408将所述一个或多个数据分组发送到游戏控制台1202。
游戏控制台1202的NIC 1210从自服务器系统404接收的一个或多个数据分组中提取当前映射1404,并将当前映射404存储在存储器装置1808中。输入处理器系统1207以与输入处理器系统407从手持式控制器414接收用户输入1452的相同方式从手持式控制器1212接收用户输入1452。当接收到用户输入1452时,输入仿真器1806从存储器装置1808访问当前映射1404以确定用户输入1454。例如,输入仿真器1806以与输入仿真器1318根据用户输入1452确定用户输入1454的相同方式根据用户输入1452确定用户输入1454。输入仿真器1806经由总线1218将用户输入1454发送到仿真处理器系统1206。
在接收到用户输入1454后,仿真处理器系统1206的基本块编译器检查仿真处理器系统1206的缓存1208以确定缓存1208是否包括用于服务于用户输入1454的游戏代码GCN的基本块1到n中的一者或多者。在确定缓存1208不包括用于服务于用户输入1454的基本块1到n中的一者或多者之后,仿真处理器系统1206的基本块编译器从仿真处理器系统1206的一个或多个存储器装置访问用于服务于用户输入1454的仿真PU代码指令1到M中的一者或多者,并且编译仿真PU代码指令1到M中的一者或多者以生成用于服务于用户输入1454的基本块1到n中的一者或多者。仿真处理器系统1206的基本块编译器将基本块1到n中的一者或多者发送到仿真处理器系统1206的块分派器。在接收到一个或多个基本块1到n之后,仿真处理器系统1206的块分派器执行一个或多个基本块1到n以基于用户输入1454而生成一个或多个图像帧。另一方面,在确定缓存1208包括用于服务于用户输入1454的基本块1到n中的一者或多者之后,仿真处理器系统1206的基本块编译器向仿真处理器系统1206的块分派器发送指令。响应于接收到所述指令,仿真处理器系统1206的块分派器执行基本块1到n中的一者或多者以服务于用户输入1454。
图19A是用以说明对更新后的手持式控制器的类型和子类型的接收的图像1900的屏幕截图,所述更新后的手持式控制器的所述类型和所述子类型诸如手持式控制器414或方向盘式控制器1702(图17)或手持式控制器1212(图18)。图像1900包括传统游戏N的虚拟环境452(图4B)。
在玩传统游戏N期间或之前,用户1将第一更新后的手持式控制器与输入处理器系统407解除耦合,并将第二更新后的手持式控制器耦合到输入处理器系统407。用户1然后操作第二更新后的手持式控制器的一个或多个更新后的输入装置以访问菜单1902,所述菜单包括设置选项。仿真处理器系统409的CPU,诸如CPU 922(图9B),指示仿真处理器系统409的GPU,诸如GPU 924(图9B),在显示装置410(图4B)的显示屏幕上显示菜单1902。用户1进一步操作第二更新后的手持式控制器的一个或多个更新后的输入装置以选择设置选项。当选择设置选项时,仿真处理器系统409的CPU指示仿真处理器系统409的GPU在显示装置410(图4B)的显示屏幕上显示另一菜单。另一菜单包括控件和外围设备选项。用户1然后操作第二更新后的手持式控制器的一个或多个更新后的输入装置以选择所述控件和所述外围设备选项。当选择所述控件和外围设备选项时,仿真处理器系统409的CPU指示仿真处理器系统409的GPU在显示装置410的显示屏幕上显示菜单1912(图19B)。
图19B是用以说明菜单1912的图像1910的屏幕截图。菜单1910包括用以重新指派按钮的重新指派按钮选项、用以向输入处理器系统407(图4B)指示将把枪形控制器用作输入处理器系统407的第二更新后的手持式控制器的枪手持式控制器选项,以及用以向输入处理器系统407(图4B)指示将把方向盘式控制器用作输入处理器系统407的第二更新后的手持式控制器的方向盘手持式控制器选项。枪形控制器是一种类型的更新后的手持式控制器的示例。
用户1操作第二更新后的手持式控制器的一个或多个更新后的输入装置来选择方向盘手持式控制器选项。当选择方向盘手持式控制器选项时,仿真处理器系统409的CPU指示仿真处理器系统409的GPU在显示装置410的显示屏幕上显示包括第一子类型控制器选项和第二子类型控制器选项的菜单。所述第一子类型控制器和所述第二子类型控制器是方向盘式控制器的子类型的示例。
用户1操作第二更新后的手持式控制器的一个或多个更新后的输入装置来选择第二子类型控制器选项。在接收到对第二子类型控制器选项的选择之后,仿真处理器系统409的CPU指示仿真处理器系统409的GPU继续或开始玩传统游戏N。
图20是用以说明诸如默认映射的映射2002的图像2000的屏幕截图的实施方案。图像2000包括传统游戏N的虚拟环境452。映射2002是默认映射1308(图13)的示例。在玩传统游戏N期间或之前,仿真处理器系统409的CPU指示仿真处理器409的GPU在显示装置410的显示屏幕上显示映射2002。
映射2022包括传统手持式控制器的输入装置与更新后的手持式控制器的输入装置之间的唯一关系,诸如对应关系或一对一关系。例如,传统手持式控制器的传统输入装置1,诸如三角形按钮,映射到更新后的手持式控制器的更新后的输入装置1,诸如三角形按钮。作为另一示例,更新后的手持式控制器的诸如触摸板1602(图16A)的传统输入装置2与传统手持式控制器的更新后的输入装置2(诸如选择按钮)具有对应关系。作为又一示例,传统手持式控制器的传统输入装置3与更新后的手持式控制器的更新后的输入装置2具有一对一关系。
图21是在概念上说明根据本公开的实现方式的经过执行以用于将云视频游戏流式传输到客户端装置的各种操作的流程图。客户端装置的示例包括手持式控制器和显示装置的组合、智能手机、手持式控制器和显示装置和游戏控制台的组合、手持式控制器和头戴式显示器(HMD)的组合、手持式控制器和游戏控制台和头戴式显示器的组合、平板计算机和计算机。游戏服务器2102执行游戏程序,诸如视频游戏或游戏代码GCN,并生成原始(未压缩)视频2104和音频2106。虚拟环境452(图4A)和在呈现虚拟环境452期间输出的音频是视频2104和音频2106的示例。游戏服务器2102是服务器系统404(图4A)的示例。视频2104和音频2106被捕获和编码以用于流式传输目的,如在所说明的图中的参考标号2108处所指示。编码提供对视频流和音频流的压缩,以减少带宽使用并且优化游戏体验。编码格式的示例包括H.265/MPEG-H、H.264/MPEG-4、H.263/MPEG-4、H.262/MPEG-2、WMV、VP6/7/8/9等。
经编码音频2110和经编码视频2112被进一步分组化成网络分组,如附图标记2114处所指示,以用于在计算机网络2120上进行传输,所述计算机网络是计算机网络408(图4A)的示例。在一些实施方案中,网络数据分组编码过程还采用数据加密过程,从而提供增强的数据安全性。在所说明的实现方式中,生成音频分组2116和视频分组2118以用于经由计算机网络2120进行传输。
游戏服务器2102另外生成触觉反馈数据2122,所述触觉反馈数据也被分组化为网络分组以用于网络传输。在所说明的实现方式中,生成触觉反馈分组2124以用于经由计算机网络2120进行传输。
在数据中心的游戏服务器2102上执行生成原始视频和音频和触觉反馈数据的前述操作,并且由数据中心的流引擎执行以下操作:对视频和音频进行编码以及将经编码音频/视频和触觉反馈数据分组化以进行传输。如所指示,经由计算机网络2120传输音频、视频和触觉反馈分组。如在附图标记2126处所指示,音频分组2116、视频分组2118和触觉反馈分组2124被客户端装置碎解,例如,解析等,以在所述客户端装置处从网络分组中提取经编码音频2128、经编码视频2130和触觉反馈数据2122。如果数据已被加密,则数据还被解密。然后,如附图标记2134处所指示,由客户端装置对经编码音频2128和经编码视频2130进行解码,以生成客户端侧的原始音频和视频数据以便在所述客户端装置的显示装置2140上渲染。由客户端装置的处理器处理触觉反馈数据2122,以在控制器装置2142或可借以渲染触觉效果的其他接口装置(例如,HMD等)处产生触觉反馈效果。控制器装置2142是客户端装置的手持式控制器的示例,诸如手持式控制器414(图4A)或1212(图12)。触觉效果的一个示例是控制器装置2142的振动或隆隆声。
将了解,视频游戏对玩家输入进行响应,并且因此执行与上述用于玩家输入的传输和处理的过程类似但是在从客户端装置到服务器的相反方向上的程序流程。如图所示,控制器装置2142或另一更新后的控制器,例如头戴式显示器等,或其组合生成输入数据2148。输入数据2148在客户端装置处被分组化,以便经由计算机网络2120作为用户输入运输到数据中心。输入数据分组2146被游戏服务器2102拆开和重组以在数据中心侧上限定输入数据2148。输入数据2148被馈送到游戏服务器2102,所述游戏服务器处理输入数据2148以生成传统游戏N的游戏状态。
在经由计算机网络2120运输音频分组2116、视频分组2118和触觉反馈分组2124期间,在一些实施方案中,对经由计算机网络2120传输数据进行监视以确保服务质量。例如,如附图标记2150所指示,监视计算机网络2120的网络条件,包括上游和下游网络带宽两者,并且是响应于可用带宽的变化而调整游戏流式传输。即,如附图标记2152所指示,基于当前网络状况来控制对网络分组的编码和解码。
图22是用于与客户端装置的显示装置介接并且能够经由计算机网络2120(图21)与游戏主机系统(诸如服务器系统404(图4A))通信的兼容的游戏控制台2200的实施方案的框图。游戏控制台2200是游戏控制台402(图4A)和游戏控制台1202(图12)的示例。游戏控制台2200位于数据中心内或者位于诸如用户1或2的玩家所在的位置。在一些实施方案中,游戏控制台2200用于执行游戏代码GCN以在HMD 2205上显示传统游戏N。游戏控制台2200具备能够连接到游戏控制台2200的各种外围装置。游戏控制台2200具有单元处理器2228、动态随机存取存储器(XDRAM)单元2226、具有专用视频随机存取存储器(VRAM)单元2232的现实合成器图形处理器单元2230,和输入/输出(I/O)桥2234。游戏控制台2200还具有BluDisk只读存储器(BD-ROM)光盘读取器2240,以便从盘2240a和能够通过I/O桥2234访问的可移除吸入式硬盘驱动器(HDD)2236进行读取。任选地,游戏控制台2200还包括存储器卡读取器2238,用于读取能够类似地通过I/O桥2234访问的紧凑型快闪存储器卡、memory/>存储器卡等。I/O桥2234还连接到USB 2.0端口2224、千兆以太网端口2222、IEEE 802.11b/g无线网络(Wi-FiTM)端口2220,和能够支持蓝牙连接的/>无线链接端口2218。
在操作中,I/O桥2234处置所有无线、USB和以太网数据,包括来自游戏控制器和来自HMD 2205的数据。例如,当玩家正在玩通过执行诸如游戏代码GCN的游戏代码的一部分而生成的传统游戏N时,I/O桥2234经由蓝牙链接从游戏控制器2142和/或从HMD 2205接收本文描述的输入数据或输入信号,并且将所述输入数据引导到单元处理器2228,所述单元处理器相应地更新传统游戏N的当前状态。作为示例,HMD 2205内的相机捕获玩家的姿势以生成表示所述姿势的图像。
无线、USB和以太网端口还为游戏控制器2142和2203、HMD 2205和其他外围装置提供连接性,所述其他外围装置诸如遥控器2204、键盘2206、鼠标2208、便携式娱乐装置2210(诸如Sony Playstation娱乐装置等)、摄像机(诸如/>摄像机2212等)、麦克风耳机2214,和麦克风2215。便携式娱乐装置2210是游戏控制器的示例。在一些实施方案中,此类外围装置无线连接到游戏控制台2200,例如,便携式娱乐装置2210经由Wi-FiTM特设连接进行通信,而麦克风耳机2214经由蓝牙链接进行通信。
这些接口的提供意味着游戏控制台2200还潜在地与诸如数字视频记录仪(DVR)、机顶盒、数码相机、便携式媒体播放器、互联网协议语音(IP)电话、移动电话、打印机和扫描仪的其他外围装置兼容。
另外,传统存储器卡读取器2216经由USB端口2224连接到游戏控制台2200,使得能够读取由游戏控制台2200使用的种类的存储器卡2248。游戏控制器2142和2203,以及HMD2205可操作以经由蓝牙链接2218与游戏控制台2200无线地通信,或者连接到USB端口2224,进而还接收电力,通过所述电力向游戏控制器2142和2203以及HMD 2205的电池充电。在一些实施方案中,游戏控制器2142和2203以及HMD 2205中的每一者包括存储器、处理器、存储器卡读取器、诸如闪存存储器的持久存储器、诸如发光球形区段、发光二极管(LED)或红外光等的光发射器、用于超声波通信的麦克风和扬声器、隔音箱、数码相机、内部时钟、诸如面向游戏控制台2200的球形区段的可辨识形状,以及使用诸如蓝牙、Wi-Fi等的协议的无线装置。
游戏控制器2142是被设计成由诸如玩家1或2或3或4的玩家双手使用的控制器,并且游戏控制器2203是带有附件的单手控制器。HMD 2205被设计成装配在玩家的头顶上和/或眼睛前方。除了一个或多个模拟操纵杆和常规的控制按钮之外,每个游戏控制器2142和2203易受三维位置确定影响。类似地,HMD 2205易受三维位置确定影响。因此,在一些实施方案中,作为常规按钮或操纵杆命令的补充或代替,使用游戏控制器2142和2203的玩家以及HMD 2205的手势和移动被转译为游戏的输入。任选地,诸如PlaystationTM便携式装置等的其他无线启用的外围装置用作控制器。在PlaystationTM便携式装置的情况下,在装置的显示屏幕上提供额外的游戏或控制信息,例如,控制指令或生命数目等。在一些实施方案中,使用其他替代性或补充性控制装置,诸如跳舞毯(未示出)、光枪(未示出)、方向盘和踏板(未示出)、定制控制器等。定制控制器的示例包括用于快速问答游戏(也未示出)的单个或若干大按钮。
遥控器2204还可操作以经由蓝牙链接2218与游戏控制台2200无线地通信。遥控器2204包括适合于操作Blu RayTM Disk BD-ROM读取器2240并且适合于导航盘内容的控件。
Blu RayTM Disk BD-ROM读取器2240可操作以便除了常规的预录和可记录的CD和所谓的超级音频CD之外还读取与游戏控制台2200兼容的CD-ROM。Blu RayTM Disk BD-ROM读取器2240还可操作以除了常规的预先记录和可记录的DVD之外还读取与游戏控制台2200兼容的数字视频盘-ROM(DVD-ROM)。Blu RayTM Disk BD-ROM读取器2240进一步可操作以读取与游戏控制台2200兼容的BD-ROM,以及常规的预先记录和可记录的蓝光盘。
游戏控制台2200可操作以通过音频连接器2250和视频连接器2252将经由现实合成器图形单元2230生成或解码的音频和视频供应给具有显示屏幕2244和一个或多个扩音器2246的显示和声音输出装置2242,诸如监视器或电视机等,或经由无线链接端口2218将音频和视频供应给HMD 2205的显示装置。在各种实施方案中,音频连接器2250包括常规的模拟和数字输出,而视频连接器2252不同地包括分量视频、S-视频、合成视频,以及一个或多个高清晰度多媒体接口(HDMI)输出。因此,视频输出可呈诸如逐行倒相(PAL)或国家电视系统委员会(NTSC)的格式,或者处于2220p、1080i或1080p高清。由单元处理器2208执行例如生成、解码等的音频处理。游戏控制台2200的操作系统支持/>5.1环绕声、/>影院环绕声(DTS)以及从/>盘对7.1环绕声的解码。显示和声音输出装置2242是显示装置410(图4A)的示例。
在一些实施方案中,诸如摄像机2212等的摄像机包括单个电荷耦合装置(CCD)、LED指示器和基于硬件的实时数据压缩和编码设备,使得压缩后的视频数据以诸如基于图像内的运动图像专家组(MPEG)标准的适当格式传输,以供游戏控制台2200解码。摄像机2212的LED指示器被布置为响应于来自游戏控制台2200的适当控制数据而照亮,例如,以表示不利的照明条件等。摄像机2212的一些实施方案经由USB、蓝牙或Wi-Fi通信端口连接到游戏控制台2200。摄像机的各种实施方案包括一个或多个相关联的麦克风,并且还能够传输音频数据。在摄像机的若干实施方案中,CCD具有适合于高清视频捕获的分辨率。在使用中,由摄像机捕获的图像并入游戏内或者被解译为游戏控制输入。在另一实施方案中,摄像机是适合于检测红外光的红外相机。
在各种实施方案中,为了经由游戏控制台2200的通信端口中的一者与外围装置(例如,摄像机或遥控器)进行成功的数据通信,提供一件适当的软件,诸如装置驱动程序。
在一些实施方案中,包括游戏控制台2200、游戏控制器2142(图21)或2203和HMD2205的前述系统装置使得HMD 2205能够显示和捕获传统游戏N的交互式会话的视频。系统装置发起传统游戏N的交互式会话,所述交互式会话限定玩家1和其他玩家与传统游戏N之间的交互性。所述系统装置进一步确定由玩家操作的游戏控制器2142(图21)或2103和/或HMD 2205的初始位置和取向。游戏控制台2200基于玩家与传统游戏N之间的交互性来确定游戏的当前状态。所述系统装置在玩家与传统游戏N的交互式会话期间跟踪游戏控制器2142或2203和/或HMD 2205的位置和取向。系统装置基于传统游戏N的当前状态以及游戏控制器2142或2203和/或HMD 2205的被跟踪的位置和取向来生成交互式会话的观众视频流。在一些实施方案中,HHC在HHC的显示屏幕上渲染所述观众视频流。在各种实施方案中,HMD2205在HMD 2205的显示屏幕上渲染观众视频流。
参考图23,示出了绘示HMD 2302的部件的图。HMD 2302是HMD 2205(图22)的示例。HMD 2302包括用于执行程序指令的处理器2300。提供用于存储目的的存储器装置2302。存储器装置2302的示例包括易失性存储器、非易失性存储器或其组合。包括显示装置2304,所述显示装置提供玩家观看的视觉界面,例如从保存数据等生成的图像帧的显示器。提供电池2306作为HMD 2302的电源。运动检测模块2308包括各种运动敏感硬件(例如,磁力计2310、加速度计2312和陀螺仪2314)中的任一者。
加速度计是用于测量加速度和重力诱发的反作用力的装置。可使用单轴模型和多轴模型检测不同方向上的加速度的量值和方向。使用加速度计来感测倾斜度、振动和冲击。在一个实施方案中,使用三个加速度计2312来提供重力的方向,其给出对例如世界空间俯仰和世界空间横滚等两个角度的绝对参考。
磁力计测量HMD 2302附近的磁场的强度和方向。在一些实施方案中,在HMD 2302内使用三个磁力计2310,从而确保对世界空间偏航角度的绝对参考。在各种实施方案中,磁力计被设计为横跨±80微特斯拉的地球磁场。磁力计受到金属影响,并且提供与实际偏航单调的偏航测量。在一些实施方案中,由于现实世界环境中的金属,磁场被扭曲,这导致偏航测量结果的扭曲。在各种实施方案中,使用来自例如陀螺仪2314、相机2316等的其他传感器的信息来校准此扭曲。在一个实施方案中,一起使用加速度计2312与磁力计2310以获得HMD 2302的倾角和方位角。
陀螺仪是用于基于角动量的原理来测量或维持取向的装置。在一个实施方案中,作为陀螺仪2314的替代,三个陀螺仪基于惯性感测而提供关于跨相应轴(x、y和z)的移动的信息。陀螺仪有助于检测快速的旋转。然而,在一些实施方案中,陀螺仪在不存在绝对基准的情况下随时间漂移。这触发了周期性地重置陀螺仪,这可基于对象的视觉跟踪、加速度计、磁力计等使用诸如位置/取向确定的其他可用信息来完成。
提供相机2316来捕获玩家周围的现实世界环境(例如,房间、车厢、自然环境等)的图像和图像流。在各种实施方案中,在HMD 2302中包括一个以上相机,包括:面向后的相机,其在玩家观看HMD 2302的显示器等时背向玩家;以及面向前的相机,例如,在玩家观看HMD2302的显示器等时指向玩家。另外,在若干实施方案中,在HMD 2302中包括深度相机2318来感测现实世界环境中的对象的深度信息。
HMD 2302包括用于提供音频输出的扬声器2320。而且,在一些实施方案中,包括麦克风2322以便从现实世界环境捕获音频,包括来自周围环境的声音,和由玩家发出的语音等。HMD 2302包括触觉反馈模块2324,例如,振动装置等,以便向玩家提供触觉反馈。在一个实施方案中,触觉反馈模块2324能够引起HMD 2302的移动和/或振动,以向玩家提供触觉反馈。
提供LED 2326作为HMD 2302的状态的视觉指示器。举例来说,LED可指示电池电量、通电等。提供读卡器2328以使得HMD 2302能够从存储器卡读取信息以及将信息写入到存储器卡。包括USB接口2330作为用于实现外围装置的连接或到其他装置(诸如其他便携式装置、计算机等)的连接的接口的一个示例。在HMD 2302的各种实施方案中,可包括各种接口中的任一者以启用HMD 2302的更大的连接性。
包括Wi-FiTM模块2332以便启用经由无线连网技术到互联网的连接。而且,HMD2302包括BluetoothTM模块2334以便实现到其他装置的无线连接。在一些实施方案中,还包括通信链路2336以用于连接到其他装置。在一个实施方案中,通信链路2336利用红外传输进行无线通信。在其他实施方案中,通信链路2336利用各种无线或有线传输协议中的任一者来与其他装置进行通信。
包括输入按钮/传感器2338来为玩家提供输入接口。包括各种类型的输入接口中的任一者,诸如按钮、触摸板、操纵杆、轨迹球等。在各种实施方案中,在HMD 2302中包括超声波通信模块2340,以用于促进经由超声波技术与其他装置通信。
包括生物传感器2342以实现对来自玩家的生理数据的检测。在一个实施方案中,生物传感器2342包括一个或多个干电极以用于通过玩家的皮肤检测玩家的生物电信号。
已经将HMD 2302的前述部件描述为可包括在HMD 2302中的仅仅示例性部件。在各种实施方案中,HMD 2302包括或不包括各种前述部件中的一些部件。
图24说明信息服务提供者(INSP)架构的实施方案。INSP 2402向在地理上分散并经由计算机网络2406(例如,LAN、WAN或其组合等)连接的玩家递送众多信息服务。计算机网络2406是计算机网络2120(图21)的示例。WAN的示例包括互联网,并且LAN的示例包括内联网。用户1操作客户端装置2420-1,用户2操作另一客户端装置2420-2,并且用户3操作又一客户端装置2420-3。
在一些实施方案中,每个客户端装置2420-1、2420-2和2420-3包括中央处理单元(CPU)、显示器和输入/输出(I/O)接口。每个客户端装置2420-1、2420-2和2420-3的示例包括个人计算机(PC)、移动电话、上网本、平板计算机、游戏系统、个人数字助理(PDA)、游戏控制台2200和显示装置、HMD 2302(图23)、游戏控制台2200和HMD 2302、桌上型计算机、膝上型计算机和智能电视等。上文提供了客户端装置2420-1、2420-2和2420-3中的每一者的其他示例。在一些实施方案中,INSP 2402辨识客户端装置的类型并且调整所采用的通信方法。
在一些实施方案中,INSP 2402递送一种类型的服务,诸如股票价格更新,或可递送多种服务,诸如广播媒体、新闻、体育、游戏等。另外,每个INSP所提供的服务都是动态的,即,可在任何时间点添加或解除服务。因此,向特定个人提供特定类型的服务的INSP可随时间变化。举例来说,当客户端装置2420-1在用户1的家乡时,通过在客户端装置2420-1附近的INSP服务于客户端装置2420-1,并且当用户1去到不同的城市时,通过不同的INSP服务于客户端装置2420-1。家乡的INSP将把所请求的信息和数据传递到新的INSP,使得信息“跟随”客户端装置2420-1到新的城市,从而使数据更靠近客户端装置2420-1并且更容易访问。在各种实施方案中,在管理客户端装置2420-1的信息的主INSP与服务器INSP之间确立主-服务器关系,所述服务器INSP在主INSP的控制下直接与客户端装置2420-1介接。在一些实施方案中,当客户端装置2420-1在世界各地移动时,数据从一个ISP传递到另一个ISP,以使服务于客户端装置2420-1的位于更好位置的INSP是递送这些服务的INSP。
INSP 2402包括应用服务提供者(ASP)2408,其经由计算机网络2406向客户提供基于计算机的服务。使用ASP模型提供的软件有时还被称为按需软件或软件即服务(SaaS)。提供对基于计算机的服务(例如,客户关系管理等)的访问的简单形式是通过使用例如超文本传输协议(HTTP)等的标准协议。应用程序软件驻留在供应商的服务器上,并且由每个客户端装置2420-1、2420-2和2420-3通过使用超文本标记语言(HTML)等的网络浏览器通过供应商提供的专用客户端软件和/或例如瘦客户端等的其他远程接口来访问。
在广阔地理区域上递送的服务常常使用云计算。云计算是一种计算方式,其中经由计算机网络2406作为服务来提供可动态缩放且常常虚拟化的资源。用户1到3不需要成为支持他们的“云”中的技术基础设施方面的专家。在一些实施方案中,将云计算划分为不同的服务,诸如基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。云计算服务常常在线提供从网络浏览器访问的共同业务应用程序,而软件和数据存储在服务器上。基于在计算机网络图中如何描绘计算机网络2406,术语云被用作例如使用服务器、存储装置和逻辑等的计算机网络2406的隐喻,并且是其隐藏的复杂基础设施的抽象。
此外,INSP 2402包括游戏处理提供者(GPP)2410,在本文中有时还称为游戏处理服务器,客户端装置2420-1、2420-2和2420-3使用所述游戏处理提供者来玩单玩家和多玩家视频游戏,诸如传统游戏N。经由计算机网络2406玩的大多数视频游戏经由与游戏服务器的连接进行操作。通常,游戏使用专用服务器应用程序,所述专用服务器应用程序从客户端装置2420-1、2420-2和2420-3收集数据,并将所述数据分发给由其他用户操作的其他客户端。与对等布置相比,这更加高效和有效,但是使用单独的服务器来托管服务器应用程序。在一些实施方案中,GPP 2410在客户端装置2420-1、2420-2和2420-3之间建立通信,所述客户端装置在不进一步依赖于集中式GPP 2410的情况下交换信息。
专用的GPP是独立于客户端运行的服务器。此类服务器通常在位于数据中心中的专用硬件上运行,从而提供更多的带宽和专用处理能力。对于大多数基于PC的多玩家游戏,专用服务器是托管游戏服务器的方法。大量多玩家在线游戏在通常由拥有游戏名称的软件公司托管的专用服务器上运行,从而允许它们控制和更新内容。
在本文有时被称为广播处理提供者的广播处理服务器(BPS)2412向受众分发音频或视频信号。向很小范围的观众广播有时称为窄播。广播分发的最后一站是信号如何到达客户端装置2420-1、2420-2和2420-3,并且在一些实施方案中,信号与无线电台或电视台一样以无线方式分发到天线和接收器,或者经由所述台通过有线电视或有线广播或“无线广播”进行分发。在各种实施方案中,计算机网络2406还尤其通过允许共享信号和带宽的多播将无线电或电视信号带到客户端装置2420-1、2420-2和2420-3。历史上,在若干实施方案中,广播由例如国家广播、地方广播等的地理区域来界定。然而,随着高速互联网的普及,由于内容几乎可到达世界上的任何一个国家,所以广播不受地理位置限定。
存储服务提供者(SSP)2414提供计算机存储空间和相关的管理服务。SSP 2414还提供周期性备份和存档。通过提供存储作为服务,与在存储不用作服务时相比,客户端装置2420-1、2420-2和2420-3使用更多的存储。另一个主要优势在于,SSP 2414包括备份服务,并且客户端装置2420-1、2420-2和2420-3在其硬盘驱动器发生故障的情况下将不会丢失数据。此外,在一些实施方案中,多个SSP具有从客户端装置2420-1、2420-2和2420-3接收的数据的全部或部分副本,从而允许客户端装置2420-1、2420-2和2420-3以独立于客户端装置2420-1、2420-2和2420-3所处的位置或客户端的类型的有效方式访问数据。举例来说,当玩家在移动时,所述玩家经由家用计算机以及经由移动电话访问个人文件。
通信提供者2416提供到客户端装置2420-1、2420-2和2420-3的连接性。一种通信提供者2416是互联网服务提供者(ISP),其提供对计算机网络2406的访问。ISP使用对于递送互联网协议数据报适当的数据传输技术(诸如拨号、数字订户线(DSL)、缆线调制解调器、光纤、无线或专用高速互连)来连接客户端装置2420-1、2420-2和2420-3。在一些实施方案中,通信提供者2416还提供诸如电子邮件、即时消息接发和短消息服务(SMS)文本的消息接发服务。另一类型的通信提供者是网络服务提供者(NSP),其通过提供对计算机网络2406的直接主干访问来出售带宽或网络访问。网络服务提供者的示例包括电信公司、数据运营商、无线通信提供者、互联网服务提供者、提供高速互联网访问的有线电视经营商等。
数据交换2418将INSP 602内部的若干模块互连,并且经由计算机网络2406将这些模块连接到客户端装置2420-1、2420-2和2420-3。在各种实施方案中,数据交换2418覆盖其中INSP 2402的所有模块紧密接近的较小区域,或者当不同的模块在地理上分散时覆盖较大的地理区域。举例来说,数据交换2402包括数据中心的机柜内的快速千兆位以太网,或洲际虚拟LAN。
在一些实施方案中,可使用无线技术来促进服务器系统404(图4A)与客户端装置2420-1到2420-3之间的通信。此技术可包括例如5G无线通信技术。
在一个实施方案中,诸如本文描述的传统游戏N的视频游戏在游戏机、个人计算机上在本地执行或在服务器上执行。在一些情况下,视频游戏由数据中心的一个或多个服务器执行。当执行视频游戏时,视频游戏的一些实例可以是视频游戏的模拟。例如,视频游戏可由生成视频游戏的模拟的环境或服务器执行。在一些实施方案中,模拟是视频游戏的实例。在其他实施方案中,所述模拟可由仿真器产生。在任一情况下,如果视频游戏被表示为模拟,则能够执行所述模拟以渲染可由用户输入交互地流式传输、执行和/或控制的交互内容。
应注意,在各种实施方案中,本文描述的一些实施方案的一个或多个特征与本文描述的其余实施方案中的一者或多者的一个或多个特征相结合。
可使用各种计算机系统配置来实践在本公开中描述的实施方案,包括手持式装置、微处理器系统、基于微处理器或可编程的消费者电子器件、小型计算机、主机计算机等。在一个实现方式中,在本公开中描述的实施方案可在分布式计算环境中实践,其中通过经由基于电线的或无线的网络链接的远程处理装置来执行任务。
在了解了以上实施方案的情况下,应理解,在一个实现方式中,在本公开中描述的实施方案采用涉及计算机系统中存储的数据的各种计算机实施的操作。这些操作是需要对物理量的物理操纵的操作。形成在本公开中描述的实施方案的部分的本文描述的操作中的任一者是有用的机器操作。在本公开中的一些实施方案还涉及用于执行这些操作的装置或设备。所述设备被特别构造成用于所需的目的,或者所述设备是由计算机中存储的计算机程序选择性地激活或配置的通用计算机。具体来说,在一个实施方案中,各种通用机器与根据本文的教导而编写的计算机程序一起使用,或者构造更专门的设备来执行所需的操作可能会更加便利。
在一个实现方式中,在本公开中描述的一些实施方案被体现为计算机可读介质上的计算机可读代码。计算机可读介质是存储数据的任何数据存储装置,所述数据其后由计算机系统读取。计算机可读介质的示例包括硬盘驱动器、网络附属存储(NAS)、ROM、RAM、CD-ROM、可录式CD(CD-R)、可再写式CD(CD-RW)、磁带、光学数据存储装置、非光学数据存储装置等。作为示例,计算机可读介质包括分布在网络耦合的计算机系统上的计算机可读有形介质,使得计算机可读代码以分布式方式存储和执行。
此外,尽管关于游戏环境描述了上述实施方案中的一些实施方案,但在一些实施方案中,使用了其他环境,例如视频会议环境等,而不是游戏。
虽然以特定次序描述方法操作,但应理解,其他内务操作可在操作之间执行,或者可对操作进行调整,使得它们在略微不同的时间出现,或者可分布在系统中,这允许处理操作以与处理相关联的各种间隔出现,只要是以期望的方式执行覆盖操作的处理即可。
虽然已经出于理解清楚起见而稍微详细地描述了在本公开中描述的前述实施方案,但将明白,可在所附权利要求的范围内实践某些改变和修改。因此,本实施方案将被视为说明性而非限制性的,并且所述实施方案不限于本文给出的细节,而是可在所附权利要求的范围和等效物内修改。

Claims (21)

1.一种用于使用更新后的手持式控制器来玩传统游戏的方法,所述方法包括:
在玩所述传统游戏期间从所述更新后的手持式控制器接收用户输入;
解析所述用户输入以识别所述更新后的手持式控制器的更新后的输入装置;
确定所述更新后的输入装置的功能性;
基于所述更新后的输入装置的身份确定传统手持式控制器的传统输入装置的身份;
识别与所述更新后的输入装置的所述功能性相对应的所述传统输入装置的功能性;
确定用于服务于所述传统手持式控制器的所述传统输入装置的所述功能性的一个或多个代码块是否被缓存;
在确定所述一个或多个代码块未被缓存时访问所述传统游戏的传统游戏代码的一个或多个指令;以及
对来自所述传统游戏代码的所述一个或多个指令的所述一个或多个代码块进行编译。
2.如权利要求1所述的方法,所述方法还包括响应于确定所述一个或多个代码块被缓存而执行所述一个或多个代码块以修改所述传统游戏的虚拟环境。
3.如权利要求1所述的方法,其中所述传统输入装置的所述身份是所述传统手持式控制器的多个传统输入装置的身份与所述更新后的手持式控制器的多个更新后的输入装置的身份之间的默认映射的一部分,其中所述传统输入装置是所述多个传统输入装置中的一者。
4.如权利要求1所述的方法,其中所述传统输入装置的所述功能性是所述传统手持式控制器的多个传统输入装置的功能性与所述更新后的手持式控制器的多个更新后的输入装置的功能性之间的默认映射的一部分,其中所述传统输入装置是所述多个传统输入装置中的一者,所述方法还包括:
确定是否从所述更新后的手持式控制器接收到用于将所述默认映射修改为当前映射的用户输入,其中所述默认映射与用户账户相关联;
使所述当前映射与所述用户账户相关联;
在所述玩所述传统游戏期间从所述更新后的手持式控制器接收附加用户输入;
解析所述附加用户输入以识别所述更新后的手持式控制器的附加的更新后的输入装置;
确定所述附加的更新后的输入装置的附加功能性;
基于所述附加的更新后的输入装置的所述身份确定所述传统手持式控制器的附加传统输入装置的身份;
识别与所述更新后的输入装置的所述附加功能性相对应的所述附加传统输入装置的附加功能性;
确定用于服务于所述附加传统输入装置的所述附加功能性的一个或多个代码块是否被缓存;
在确定用于服务于所述附加功能性的所述一个或多个代码块未被缓存时访问所述传统游戏的所述传统游戏代码的一个或多个指令;以及
在确定用于服务于所述附加功能性的所述一个或多个代码块未被缓存时,对来自所述传统游戏代码的所述一个或多个指令的用于服务于所述附加功能性的所述一个或多个代码块进行编译。
5.如权利要求4所述的方法,所述方法还包括:
经由计算机网络将所述当前映射从第一计算装置传递到服务器系统,其中所述服务器系统被配置为从第二计算装置接收对所述当前映射的请求,其中所述服务器系统被配置为响应于所述请求的所述接收而经由所述计算机网络将所述当前映射发送到所述第二计算装置。
6.如权利要求1所述的方法,其中所述确定所述更新后的输入装置的所述功能性包括:
确定基于所述用户输入的所述更新后的输入装置的移动方向是否与预定方向匹配;
在确定所述更新后的输入装置的所述移动方向与所述预定方向匹配时,确定所述更新后的输入装置的所述移动是否超过预定阈值,其中所述更新后的输入装置的所述功能性被确定为所述更新后的输入装置在所述预定方向上超过所述预定阈值的所述移动。
7.如权利要求6所述的方法,其中所述确定所述传统输入装置的所述功能性包括确定所述传统输入装置的所述功能性实现与由所述更新后的输入装置的所述功能性实现的结果相同的结果。
8.如权利要求1所述的方法,其中所述更新后的输入装置是触摸板,
其中所述解析所述用户输入包括确定是否接收到对所述触摸板的选择,其中所述确定所述更新后的输入装置的所述功能性包括识别所述触摸板上的所述选择的位置;以及
访问映射,
其中所述识别所述传统输入装置包括基于所述映射识别所述传统手持式控制器上的按钮,
所述方法还包括:
基于所述按钮的功能性执行所述一个或多个代码块以生成虚拟对象,其中所述虚拟对象在图像内的某一位置处生成,其中所述图像内的所述虚拟对象的所述位置对应于所述触摸板上的所述选择的所述位置。
9.如权利要求8所述的方法,其中所述虚拟对象是十字准线。
10.如权利要求1所述的方法,其中所述更新后的输入装置是所述更新后的手持式控制器的多个更新后的输入装置中的一者,其中所述传统输入装置是所述传统手持式控制器的多个传统输入装置中的一者,所述方法还包括:
接收所述更新后的手持式控制器的类型;
接收所述更新后的手持式控制器的子类型;
从所述更新后的手持式控制器的所述类型和所述子类型识别所述多个更新后的输入装置与所述传统手持式控制器的所述多个传统输入装置之间的默认映射,其中所述传统输入装置是基于所述默认映射来识别。
11.一种用于使用更新后的手持式控制器来玩传统游戏的系统,所述系统包括:
一个或多个处理器,所述一个或多个处理器被配置为进行以下操作:
在玩所述传统游戏期间从所述更新后的手持式控制器接收用户输入;
解析所述用户输入以识别所述更新后的手持式控制器的更新后的输入装置;
确定所述更新后的输入装置的功能性;
基于所述更新后的输入装置的身份确定传统手持式控制器的传统输入装置的身份;
识别与所述更新后的输入装置的所述功能性相对应的所述传统输入装置的功能性;
确定用于服务于所述传统手持式控制器的所述传统输入装置的所述功能性的一个或多个代码块是否被缓存;
响应于所述确定所述一个或多个代码块未被缓存,访问所述传统游戏的传统游戏代码的一个或多个指令;以及
对来自所述传统游戏代码的所述一个或多个指令的所述一个或多个代码块进行编译;以及
存储器装置,所述存储器装置耦合到所述一个或多个处理器。
12.如权利要求11所述的系统,所述系统还包括缓存,所述缓存耦合到所述一个或多个处理器,其中所述缓存经耦合以存储所述一个或多个代码块,其中所述一个或多个处理器被配置为执行所述一个或多个代码块以修改所述传统游戏的虚拟环境。
13.如权利要求11所述的系统,其中所述传统输入装置的所述身份是所述传统手持式控制器的多个传统输入装置的身份与所述更新后的手持式控制器的多个更新后的输入装置的身份之间的默认映射的一部分,其中所述传统输入装置是所述多个传统输入装置中的一者。
14.如权利要求11所述的系统,其中所述传统输入装置的所述功能性是所述传统手持式控制器的多个传统输入装置的功能性与所述更新后的手持式控制器的多个更新后的输入装置的功能性之间的默认映射的一部分,其中所述传统输入装置是所述多个传统输入装置中的一者,所述一个或多个处理器被配置为进行以下操作:
确定是否从所述更新后的手持式控制器接收到用于将所述默认映射修改为当前映射的用户输入,其中所述默认映射与用户账户相关联;
使所述当前映射与所述用户账户相关联;
在所述玩所述传统游戏期间从所述更新后的手持式控制器接收附加用户输入;
解析所述附加用户输入以识别所述更新后的手持式控制器的附加的更新后的输入装置;
确定所述附加的更新后的输入装置的附加功能性;
基于所述附加的更新后的输入装置的所述身份确定所述传统手持式控制器的附加传统输入装置的身份;
识别与所述更新后的输入装置的所述附加功能性相对应的所述附加传统输入装置的附加功能性;
确定用于服务于所述附加传统输入装置的所述附加功能性的一个或多个代码块是否被缓存;
在确定用于服务于所述附加功能性的所述一个或多个代码块未被缓存时访问所述传统游戏的所述传统游戏代码的一个或多个指令;以及
在确定用于服务于所述附加功能性的所述一个或多个代码块未被缓存时,对来自所述传统游戏代码的所述一个或多个指令的用于服务于所述附加功能性的所述一个或多个代码块进行编译。
15.如权利要求14所述的系统,所述系统还包括网络控制器接口,所述网络控制器接口耦合到所述一个或多个处理器,其中所述网络控制器接口被配置为进行以下操作:
经由计算机网络将所述当前映射从第一计算装置传递到服务器系统,其中所述服务器系统被配置为从第二计算装置接收对所述当前映射的请求,其中所述服务器系统被配置为响应于所述请求的所述接收而经由所述计算机网络将所述当前映射发送到所述第二计算装置。
16.如权利要求11所述的系统,其中为了确定所述更新后的输入装置的所述功能性,所述一个或多个处理器被配置为进行以下操作:
确定基于所述用户输入的所述更新后的输入装置的移动方向是否与预定方向匹配;
在确定所述更新后的输入装置的所述移动方向与所述预定方向匹配时,确定所述更新后的输入装置的所述移动是否超过预定阈值,其中所述更新后的输入装置的所述功能性被识别为所述更新后的输入装置在所述预定方向上超过所述预定阈值的所述移动。
17.如权利要求16所述的系统,其中为了确定所述传统输入装置的所述功能性,所述处理器被配置为确定所述传统输入装置的所述功能性实现与由所述更新后的输入装置的所述功能性实现的结果相同的结果。
18.如权利要求11所述的系统,其中所述更新后的输入装置是触摸板,
其中为了解析所述用户输入,所述一个或多个处理器被配置为确定是否接收到对所述触摸板的选择,其中为了确定所述更新后的输入装置的所述功能性,所述一个或多个处理器被配置为识别所述触摸板上的所述选择的位置,
其中所述一个或多个处理器被配置为访问映射,
其中为了识别所述传统输入装置,所述一个或多个处理器被配置为基于所述映射识别所述传统手持式控制器上的按钮,其中所述按钮是所述传统输入装置,
其中所述一个或多个处理器被配置为基于所述按钮的功能性执行所述一个或多个代码块以生成虚拟对象,其中所述虚拟对象在图像内的某一位置处生成,其中所述图像内的所述虚拟对象的所述位置对应于所述触摸板上的所述选择的所述位置。
19.如权利要求11所述的系统,其中所述更新后的输入装置是所述更新后的手持式控制器的多个更新后的输入装置中的一者,其中所述传统输入装置是所述传统手持式控制器的多个传统输入装置中的一者,其中所述一个或多个处理器还被配置为进行以下操作:
接收所述更新后的手持式控制器的类型;
接收所述更新后的手持式控制器的子类型;
从所述更新后的手持式控制器的所述类型和所述子类型识别所述多个更新后的输入装置与所述传统手持式控制器的所述多个传统输入装置之间的默认映射,其中所述传统输入装置是基于所述默认映射来识别。
20.一种用于使用更新后的手持式控制器来玩传统游戏的系统,所述系统包括:
更新后的手持式控制器,所述更新后的手持式控制器具有更新后的输入装置,其中所述更新后的手持式控制器被配置为在玩所述传统游戏期间生成用户输入;
计算装置,所述计算装置耦合到所述更新后的手持式控制器,其中所述计算装置被配置为进行以下操作:
从所述更新后的手持式控制器接收所述用户输入;
解析所述用户输入以识别所述更新后的手持式控制器的所述更新后的输入装置;
确定所述更新后的输入装置的功能性;
基于所述更新后的输入装置的身份确定传统手持式控制器的传统输入装置的身份;
识别与所述更新后的输入装置的所述功能性相对应的所述传统输入装置的功能性;
确定用于服务于所述传统手持式控制器的所述传统输入装置的所述功能性的一个或多个代码块是否被缓存;
响应于所述确定所述一个或多个代码块未被缓存,访问所述传统游戏的传统游戏代码的一个或多个指令;以及
对来自所述传统游戏代码的所述一个或多个指令的所述一个或多个代码块进行编译。
21.如权利要求20所述的系统,其中所述计算装置包括缓存,其中所述缓存被配置为存储所述一个或多个代码块,其中所述计算装置被配置为执行所述一个或多个代码块以修改所述传统游戏的虚拟环境。
CN202280037211.5A 2021-05-25 2022-03-24 用于在玩传统游戏期间仿真用户输入的系统和方法 Pending CN117355360A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/330,239 US11813522B2 (en) 2021-05-25 2021-05-25 Systems and methods for emulation of user input during a play of a legacy game
US17/330,239 2021-05-25
PCT/US2022/021817 WO2022250773A1 (en) 2021-05-25 2022-03-24 Systems and methods for emulation of user input during a play of a legacy game

Publications (1)

Publication Number Publication Date
CN117355360A true CN117355360A (zh) 2024-01-05

Family

ID=81307953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280037211.5A Pending CN117355360A (zh) 2021-05-25 2022-03-24 用于在玩传统游戏期间仿真用户输入的系统和方法

Country Status (5)

Country Link
US (1) US11813522B2 (zh)
EP (1) EP4347067A1 (zh)
JP (1) JP2024521138A (zh)
CN (1) CN117355360A (zh)
WO (1) WO2022250773A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220387886A1 (en) * 2021-06-07 2022-12-08 Sony Interactive Entertainment LLC Systems and methods for emulation of graphical and audio parameters during a play of a legacy game

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896125A (en) * 1995-11-06 1999-04-20 Niedzwiecki; Richard H. Configurable keyboard to personal computer video game controller adapter
US20070016895A1 (en) 2005-07-15 2007-01-18 Microsoft Corporation Selective omission of endian translation to enhance emulator performance
US8795078B1 (en) * 2006-07-14 2014-08-05 Ailive Inc. Method and system providing compatibility between two different controllers
US20090079690A1 (en) 2007-09-21 2009-03-26 Sony Computer Entertainment America Inc. Method and apparatus for enhancing entertainment software through haptic insertion
US20100069154A1 (en) * 2008-09-15 2010-03-18 Claussen Seth A Retroactive Compatibility Interactive System and Method Thereof
US20100075756A1 (en) * 2008-09-19 2010-03-25 Adam Roberts Secondary controller for emulating a console controller
US9089768B2 (en) * 2011-04-01 2015-07-28 Electronic Arts Inc. Method and system for remote game display
US11185783B2 (en) 2013-03-14 2021-11-30 Sony Interactive Entertainment Inc. Controller emulation for cloud gaming
KR101529120B1 (ko) 2013-12-30 2015-06-29 주식회사 케이티 바이오 문헌 정보의 마이닝을 위한 마이닝 패턴 생성 방법 및 시스템
US9213563B2 (en) * 2013-12-30 2015-12-15 Unisys Corporation Implementing a jump instruction in a dynamic translator that uses instruction code translation and just-in-time compilation
WO2016170512A1 (en) * 2015-04-24 2016-10-27 Tager Sean Universal game controller
US10974144B2 (en) 2016-09-01 2021-04-13 Razer (Asia-Pacific) Pte. Ltd. Methods for emulating a virtual controller device, emulators, and computer-readable media
US11534681B2 (en) * 2020-10-29 2022-12-27 Google Llc Virtual console gaming controller

Also Published As

Publication number Publication date
JP2024521138A (ja) 2024-05-28
US20220379205A1 (en) 2022-12-01
EP4347067A1 (en) 2024-04-10
US11813522B2 (en) 2023-11-14
WO2022250773A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
US11943281B2 (en) Systems and methods for using a distributed game engine
US11321900B2 (en) Systems and methods for adjusting one or more parameters of a GPU
CN117396255A (zh) 用于在玩传统游戏期间仿真图形参数和音频参数的系统和方法
CN117355360A (zh) 用于在玩传统游戏期间仿真用户输入的系统和方法
US11360750B1 (en) Systems and methods for converting a legacy code into an updated code
US11806625B2 (en) Patch and bulk operations for a legacy game
US11504628B2 (en) Systems and methods for generating a meta-game from legacy games
JP7436579B2 (ja) レガシーゲーム用aotコンパイラ
CN116635120A (zh) 用于将传统代码转换为更新代码的系统和方法
WO2022140167A1 (en) Systems and methods for converting a legacy code into an updated code

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