CN105453051A - 信息处理设备、控制方法、程序以及记录介质 - Google Patents
信息处理设备、控制方法、程序以及记录介质 Download PDFInfo
- Publication number
- CN105453051A CN105453051A CN201480044851.4A CN201480044851A CN105453051A CN 105453051 A CN105453051 A CN 105453051A CN 201480044851 A CN201480044851 A CN 201480044851A CN 105453051 A CN105453051 A CN 105453051A
- Authority
- CN
- China
- Prior art keywords
- rendering order
- rendering
- component
- terminal device
- client terminal
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 93
- 230000010365 information processing Effects 0.000 title abstract 3
- 238000009877 rendering Methods 0.000 claims abstract description 210
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 75
- 238000012360 testing method Methods 0.000 description 37
- 230000009471 action Effects 0.000 description 33
- 238000004364 calculation method Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 25
- 230000001186 cumulative effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000007906 compression Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000006837 decompression Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/49—Saving the game status; Pausing or ending the game
- A63F13/497—Partially or entirely replaying previous game actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Processing Or Creating Images (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种信息处理设备,其获取用来致使绘制设备绘制屏幕的绘制命令,并且记录获取的绘制命令。所述信息处理设备将记录的绘制命令输出到所述绘制设备,以用于绘制屏幕。
Description
技术领域
本发明涉及一种信息处理设备、控制方法、程序以及记录介质,确切地说,涉及一种屏幕绘制仿真技术。
背景技术
诸如电子游戏和软件应用等程序在开发过程中会经历一些测试,例如,检查是否实施了具体说明定义的所需操作或功能,或者检查与功能实施相关联的硬件上的负载。一些程序实际上由多个测试用户在一个或多个阶段使用,以测试同一项目,直到它们实际上被发布(出售或分配)并由普通用户使用为止。
之后将尤其针对与经由MMORPG等服务器提供的服务相关联的程序进行测试。通常,后续测试包括通过使得有限的用户自由操作产品的一些功能来执行的所谓“α测试”,以及通过使得非有限的用户自由操作产品的一些或所有功能来执行的“β测试”,并且在规定时间内由用户操作引起的行为等都被测试。
在上述测试中,如果没有实施所需的操作或功能,或者发现非预期的操作,那么指定复制相同功能的情形(例如,操作模式或负载状态),执行必要的校正,并且再次检查相同情形下是否进行了改进(所谓的错误修正)。然而,为了再次实现相同的情形以检查错误修正,可能需要未必简单的条件。因此,实际上,使用一种方法,其中用户的操作输入等被记录成日志(按键和按钮输入的历史),并且在检查的时候,再现所述日志,以复制相同的情形(第2012-063818和2013-149178号日本专利公开案)。
然而,当使用此类操作输入日志时,相同情形的复制可能会失败。实际上,在包括屏幕绘制的程序中,理想的是,在屏幕的更新频率(帧速率)确定的一个帧周期内完成屏幕绘制所需的参数的更新过程、执行绘制的硬件的命令以及硬件的绘制过程。另一方面,如果将被绘制在屏幕上的对象的数量比较大,或者同时将要执行的线程的数量比较大,那么显示帧速率和处理帧速率可以不同。也就是说,用于完成与每个帧相关联的过程的显示更新间隔和时间间隔可因各个参数而不同。因此,如果记录操作输入的处理帧速率不同于检查时的处理帧速率,那么处理中的移位可累积,因此,难以复制相同的情形。尤其是在针对与屏幕绘制内容相关联的错误修正的测试中,不可能指定通过校正绘制相关的过程来完成错误修正还是通过包括帧变化的其他因素来实施所需的操作。
发明内容
鉴于传统技术中的此类问题提出本发明。本发明提供一种用于复制相同绘制内容的信息处理设备、控制方法、程序以及记录介质。
在第一观点,本发明提供一种信息处理设备,其包括:获取构件,其用于获取绘制命令,所述绘制命令用来致使绘制构件绘制屏幕;记录构件,其用于记录所述获取构件获取的所述绘制命令;以及输出构件,其用于将所述记录构件记录的所述绘制命令输出到所述绘制构件,以用于绘制所述屏幕。
在第二观点,本发明提供一种信息处理设备的控制方法,所述方法包括:获取绘制命令的获取步骤,所述绘制命令用来致使绘制构件绘制屏幕;记录所述获取步骤中获取的所述绘制命令的记录步骤;以及将所述记录步骤中记录的所述绘制命令输出到所述绘制构件以用于绘制所述屏幕的输出步骤。
通过下文对示例性实施例的描述(参考附图),将容易了解本发明的其他特征。
附图说明
附图并入本说明书中并构成本说明书的一部分,示出了本发明的各个实施例,并与具体说明一起解释本发明的原理。
图1A是根据本发明的非限制性实施例的包括服务器系统的基于云端的视频游戏系统架构的框图。
图1B是根据本发明的非限制性实例的图1A的基于云端的视频游戏系统架构的框图,示出了玩游戏期间通过数据网络与客户端装置组的交互。
图2A是示出根据本发明的非限制性实施例的图1的架构的各种物理部件的框图。
图2B是图2A的变体。
图2C是示出图1的架构中的服务器系统的各个模块的框图,所述模块可由图2A或图2B的物理部件实施并且可在玩游戏期间操作。
图3A到图3C是示出根据本发明的非限制性实施例的由绘制命令生成器实施的一组视频游戏过程的执行的流程图。
图4A和图4B是示出根据本发明的非限制性实施例的分别处理所接收的视频和音频的客户端装置的操作的流程图。
图5是只示出根据至少一个实施例的绘制服务器200R的功能布置的框图;以及
图6是示出根据至少一个实施例的绘制服务器200R执行的图像绘制过程的流程图。
具体实施方式
图1A示意性地示出根据本发明的非限制性实施例的基于云端的系统架构。所述架构可包括通过数据网络(例如,互联网130)连接到信息处理设备(例如,服务器系统100)的客户端装置120n(其中1≤n≤N,并且其中N表示参与视频游戏的用户的数量)。应了解,基于云端的系统架构中的客户端装置的数量N并不特别限制。
服务器系统100提供虚拟空间,其中多个客户端装置用户可同时参与。在一些情况下,这个虚拟空间可代表视频游戏,而在其他情况下,它可提供视觉效果,以用作支持通信或提高用户的通信体验的工具。每个用户可在所述空间内操作和移动其位于虚拟空间中的对应化身。当用户在虚拟空间中操作化身时,设置在空间中的用于视角的屏幕被提供给用户的客户端装置。所述视角可从预设的固定视角中选择,或可由用户选择性地改变,或者可以根据用户对化身的移动(旋转)操作而改变。
客户端装置120n(1≤n≤N)的配置并不特别限制。在一些实施例中,客户端装置120n(1≤n≤N)中的一个或多个可体现在个人计算机(PC)、家用游戏机(控制台)、便携式游戏机、智能电视、机顶盒(STB)等。在其他实施例中,客户端装置120n(1≤n≤N)中的一个或多个可以是通信或计算装置,例如,移动电话、个人数字助理或平板电脑。
客户端装置120n(1≤n≤N)中的每个均可通过任何合适的方式连接到互联网130,包括通过相应的局部访问网络(未示出)。服务器系统100也可通过局部访问网络(未示出)连接到互联网130,但服务器系统100可直接连接到互联网130,而不需要局部访问网络作为中介。云端游戏服务器系统100与客户端装置120n(1≤n≤N)中的一个或多个之间的连接可包括一个或多个通道。这些通道可由物理和/或逻辑链路组成,并且可通过各种物理介质进行传送,包括射频、光纤、自由空间光通信、同轴电缆以及双绞线。所述通道遵守UDP或TCP/IP等协议。此外,通道中的一个或多个可支持虚拟专用网络(VPN)。在一些实施例中,连接中的一个或多个可基于会话。
服务器系统100可使得客户端装置120n(1≤n≤N)的用户能够玩视频游戏,无论单独玩(即,单玩家视频游戏)还是组队玩(即,多玩家视频游戏)。服务器系统100也可使得客户端装置120n(1≤n≤N)的用户能够观看其他玩家玩的游戏。视频游戏的非限制性实例可包括休闲、教育和/或运动类的游戏。视频游戏可以(但并非需要)为用户提供获取货币的可能性。
服务器系统100也可使得客户端装置120n(1≤n≤N)的用户能够测试视频游戏和/或管理服务器系统100。
服务器系统100可包括一个或多个计算资源,所述计算资源可能包括一个或多个游戏服务器,并且可包括或访问一个或多个数据库,所述数据库可能包括用户数据库10。用户数据库10可存储有关各个用户和客户端装置120n(1≤n≤N)的账户信息,例如,识别数据、财务数据、位置数据、人口数据、连接数据等。游戏服务器可体现在常用硬件中,或者它们可以是经由通信链路连接的不同服务器,包括可能通过互联网130连接。类似地,数据库可体现在服务器系统100内,或者它们可经由通信链路连接到所述服务器系统,可能通过互联网130进行连接。
服务器系统100可定义了管理应用或入口的执行计算机可读指令。当计算机可读指令执行时,管理应用处理游戏环境之外(例如,玩游戏之前)的与客户端装置120n(1≤n≤N)的交互。例如,管理应用可被配置成将客户端装置120n(1≤n≤N)中的一个的用户注册成一定的用户类别(例如,“玩家”、“观众”、“管理员”或“测试员”),通过互联网来跟踪用户的连接性,并且在若干非限制性功能之中,响应于用户的命令而开始、加入、退出或终止游戏的实例。为此,管理应用可能需要访问用户数据库10。
管理应用可采用不同的方式与不同用户类别的用户交互,所述用户类别可包括“玩家”、“观众”、“管理员”或“测试员”,这里仅列出一些非限制性的可能。因此,例如,管理应用可与玩家(即,“玩家”用户类别中的用户)交互,以允许玩家在用户数据库10中建立账户并选择玩视频游戏。根据此选择,管理应用可启用服务器端视频游戏应用。服务器端视频游戏应用可由计算机可读指令定义,所述指令执行用于玩家的一组模块,从而允许玩家在视频游戏的虚拟世界中控制人物、化身、赛车、驾驶舱等。在多玩家视频游戏的情况下,虚拟世界可由两个或更多玩家分享,并且一个玩家的游戏玩法可影响另一玩家。在另一实例中,管理应用可与观众(即,“观众”用户类别中的用户)交互,以允许观众在用户数据库10中建立账户并且从用户可能想要观看的正在进行的视频游戏列表中选择视频游戏。根据此选择,管理应用可启用用于观众的一组模块,从而允许观众观察其他用户玩的游戏,但不能控制游戏中的活动人物。(除非另有说明,否则所用的术语“用户”意图同样应用于“玩家”用户类别和“观众”用户类别。
在另一实例中,管理应用可与管理员(即,“管理员”用户类别中的用户)交互,以允许管理员改变管理应用本身的各个特征、执行更新以及管理玩家/观众账户。
在又一实例中,管理应用可与测试员(即,“测试员”用户类别中的用户)交互,以允许测试员选择要测试的视频游戏。根据此选择,管理应用可启用用于测试员的一组模块,从而允许测试员来测试视频游戏。
图1B示出针对“玩家”或“观众”用户类别中的用户,在玩游戏的过程中可能发生在客户端装置120n(1≤n≤N)与服务器系统100之间的交互。
在一些非限制性实施例中,服务器端视频游戏应用可与客户端视频游戏应用协作,所述客户端视频游戏应用可由客户端装置(例如,客户端装置120n(1≤n≤N))上执行的计算机可读指令集定义。使用客户端视频游戏应用可为用户提供自定义界面,以玩或观看游戏和访问游戏特征。在其他非限制性实施例中,客户端装置的特征并不在于可由客户端装置直接执行的客户端视频游戏应用。相反,从客户端装置视角看,网络浏览器可用作界面。网络浏览器本身可实例化自己软件环境中的客户端视频游戏应用,以便优化与服务器端视频游戏应用的交互。
在给定的客户端装置上运行(无论独立运行还是在浏览器内运行)的客户端视频游戏应用可将所接收的用户输入和检测到的用户移动转译成“客户端装置输入”,所述输入可通过互联网130发送到云端游戏服务器系统100。
在图1B所示的实施例中,客户端装置120n(1≤n≤N)可分别产生客户端装置输入140n(1≤n≤N)。服务器系统100可处理接收自各个客户端装置120n(1≤n≤N)的客户端装置输入140n(1≤n≤N),并且可针对各个客户端装置120n(1≤n≤N)生成相应的“媒体输出”150n(1≤n≤N)。媒体输出150n(1≤n≤N)可包括编码的视频数据流(表示显示在屏幕上的图像)和音频流(表示经由扬声器播放的声音)。媒体输出150n(1≤n≤N)可通过互联网130以包的形式发送。去往客户端装置120n(1≤n≤N)中的特定一个的包可采用此方式写地址,以便通过互联网130路由到所述装置。客户端装置120n(1≤n≤N)中的每个可包括用于缓冲和处理从云端游戏服务器系统100接收的包中的媒体输出的电路,以及用于显示图像的显示器和用于输出音频的换能器(例如,扬声器)。也可提供额外的输出装置,例如,机电系统,以产生运动。
应了解,视频数据流可被分成“帧”。本文中所用的“帧”并不需要视频数据帧与视频数据表示的图像之间存在一对一对应。也就是说,尽管视频数据帧可能含有表示相应显示的整体图像的数据,但视频数据帧也有可能含有仅部分表示图像的数据,并且图像有可能实际上需要两个或更多帧,以便适当重构和显示。同样地,视频数据帧可含有表示一个以上完整图像的数据,从而可使用M个视频数据帧来表示N个图像,其中M<N。
I.云端游戏服务器系统100(分布式架构)
图2A示出云端游戏服务器系统100的部件的一种可能的非限制性物理布置。在此实施例中,云端游戏服务器系统100内的独立服务器可被配置成实施专门的功能。例如,计算服务器200C可主要负责基于用户输入来跟踪视频游戏中的状态变化,而同时绘制服务器200R可主要负责绘制图形(视频数据)。
客户端装置120n(1≤n≤N)的用户可以是玩家或观众。应理解,在一些情况下,可能只有单个玩家并且没有观众;而在其他情况下,可能有多个玩家和单个观众;在另外其他的情况下,可能有单个玩家和多个观众;以及在又一些其他情况下,可能有多个玩家和多个观众。
为简洁起见,以下描述参考连接到单个绘制服务器200R的单个计算服务器200C。然而,应了解,可能有一个以上的绘制服务器200R连接到相同的计算服务器200C,或者一个以上的计算服务器200C连接到相同的绘制服务器200R。在有多个绘制服务器200R的情况下,这些可在任何合适的地理区域上分布。
如图2A中的部件的非限制性物理布置所示,计算服务器200C可包括一个或多个中央处理单元(CPU)220C,222C和随机存取存储器(RAM)230C。例如,CPU220C,222C可通过通信总线架构来访问RAM230C。尽管只示出CPU220C,222C,但应理解,在计算服务器200C的一些示例性实施方案中,可提供更多数量的CPU或者只有单个的CPU。计算服务器200C也可包括接收器,其用于通过互联网130接收来自参与视频游戏的客户端装置中的每个的客户端装置输入。在当前描述的示例性实施例中,客户端装置120n(1≤n≤N)被假定为参与视频游戏,因此,所接收的客户端装置输入可包括客户端装置输入140n(1≤n≤N)。在非限制性实施例中,接收器可由网络接口部件(NIC)210C2实施。
计算服务器200C可进一步包括发射器,其用于输出绘制命令集204m,其中1≤m≤M。在非限制性实施例中,M表示用户(或客户端装置)的数量,但这无需是每个实施例中的情况,尤其是在单个绘制命令集被多个用户分享的情况下。因此,M只表示生成的绘制命令集的数量。从计算服务器200C输出的绘制命令集204m(1≤m≤M)可发送到绘制服务器200R。在非限制性实施例中,发射器可由网络接口部件(NIC)210C1体现。在一个实施例中,计算服务器200C可直接连接到绘制服务器200R。在另一实施例中,计算服务器200C可通过网络260连接到绘制服务器200R,所述网络可以是互联网130或另一网络。通过网络260,计算服务器200C与绘制服务器200R之间可建立虚拟专用网络(VPN)。
在绘制服务器200R处,计算服务器200C发送的绘制命令集204m(1≤m≤M)可在接收器处被接收(所述接收器可由网络接口部件(NIC)210R1实施),并且可传送到一个或多个CPU220R,222R。CPU220R,222R可连接到图形处理单元(GPU)240R,250R。通过非限制性实例,GPU240R可包括一组GPU核心242R和视频随机存取存储器(VRAM)246R。类似地,GPU250R可包括一组GPU核心252R和视频随机存取存储器(VRAM)256R。CPU220R,222R中的每个可连接到GPU240R,250R中的每个或者连接到GPU240R,250R的子集。例如,使用通信总线架构可在CPU220R,222R与GPU240R,250R之间建立通信。尽管只示出两个CPU和两个GPU,但在绘制服务器200R的实施方案的具体实例中,可以有两个以上的CPU和GPU,或甚至只有单个CPU或GPU。
CPU220R,222R可与GPU240R,250R协作,以将绘制命令集204m(1≤m≤M)转换成图形输出流206n,其中1≤n≤N,并且其中N表示参与视频游戏的用户(或客户端装置)的数量。具体而言,针对客户端装置120n(1≤n≤N),可分别有N个图形输出流206n(1≤n≤N)。这在之后将更详细地描述。绘制服务器200R可包括另一发射器(其可由网络接口部件(NIC)210R2实施),通过所述发射器,图形输出流206n(1≤n≤N)可分别发送到客户端装置120n(1≤n≤N)。
II.云端游戏服务器系统100(混合架构)
图2B示出云端游戏服务器系统100的部件的第二可能的非限制性物理布置。在此实施例中,混合服务器200H可负责基于用户输入来跟踪视频游戏中的状态变化,以及负责绘制图形(视频数据)。
如图2B中的部件的非限制性物理布置所示,混合服务器200H可包括一个或多个中央处理单元(CPU)220H、222H和随机存取存储器(RAM)230H。例如,CPU220H,222H可通过通信总线架构来访问RAM230H。尽管只示出CPU220H,222H,但应理解,在混合服务器200H的一些示例性实施方案中,可提供更多数量的CPU或者只有单个的CPU。混合服务器200H也可包括接收器,其用于通过互联网130接收来自参与视频游戏的客户端装置中的每个的客户端装置输入。在当前描述的示例性实施例中,客户端装置120n(1≤n≤N)被假定为参与视频游戏,因此,所接收的客户端装置输入可包括客户端装置输入140n(1≤n≤N)。在非限制性实施例中,接收器可由网络接口部件(NIC)210H实施。
此外,CPU220H,222H可连接到图形处理单元(GPU)240H,250H。通过非限制性实例,GPU240H可包括一组GPU核心242H和视频随机存取存储器(VRAM)246H。类似地,GPU250H可包括一组GPU核心252H和视频随机存取存储器(VRAM)256H。CPU220H,222R中的每个可连接到GPU240H,250H中的每个或者连接到GPU240H,250H的子集。例如,使用通信总线架构可在CPU220H,222H与GPU240H,250H之间建立通信。尽管只示出两个CPU和两个GPU,但在混合服务器200H的实施方案的具体实例中,可以有两个以上的CPU和GPU,或甚至只有单个CPU或GPU。
CPU220H,222H可与GPU240H,250H协作,以将绘制命令集204m(1≤m≤M)转换成图形输出流206n(1≤n≤N)。具体而言,针对参与的客户端装置120n(1≤n≤N),可分别有N个图形输出流206n(1≤n≤N)。图形输出流206n(1≤n≤N)可分别经由发射器发送到客户端装置120n(1≤n≤N),在非限制性实施例中,所述发射器可至少部分由NIC210H实施。
III.云端游戏服务器系统100
(功能概述)
在玩游戏的过程中,服务器系统100运行服务器端视频游戏应用,所述应用可由一组模块组成。参考图2C,这些模块可包括绘制命令生成器270、绘制功能模块280以及视频编码器285。这些模块可由(图2A中的)计算服务器200C和绘制服务器200R和/或(图2B中的)混合服务器200H的上述物理部件实施。例如,根据图2A的非限制性实施例,绘制命令生成器270可由计算服务器200C实施,而绘制功能模块280和视频编码器285可由绘制服务器200R实施。根据图2B的非限制性实施例,混合服务器200H可实施绘制命令生成器270、绘制功能模块280以及视频编码器285。
为便于说明,本示例性实施例论述了单个绘制命令生成器270。然而,应注意,在云端游戏服务器系统100的实际实施方案中,可并行执行类似于绘制命令生成器270的许多绘制命令生成器。因此,云端游戏服务器系统100可同时支持相同视频游戏的多个独立例示,或多个不同的视频游戏。此外,应注意,视频游戏可以是任何类型的单玩家视频游戏或者多玩家游戏。
绘制命令生成器270可由(图2A中的)计算服务器200C或(图2B中的)混合服务器200H的某些物理部件实施。具体而言,绘制命令生成器270可被编码成可由CPU(例如,计算服务器200C中的CPU220C,222C或混合服务器200H中的CPU220H,222H)执行的计算机可读指令。所述指令可与常数、变量和/或绘制命令生成器270使用的其他数据一起有形地存储在(计算服务器200C中的)RAM230C中或(混合服务器200H中的)RAM230H中,或者存储在另一存储区域。在一些实施例中,绘制命令生成器270可在虚拟机的环境中执行,其中,也由CPU(例如,计算服务器200C中的CPU220C,222C或混合服务器200H中的CPU220H,222H)执行的操作系统可支持所述环境。
绘制功能模块280可由(图2A中的)绘制服务器200R或(图2B中的)混合服务器200H的某些物理部件实施。在实施例中,绘制功能模块280可占用一个或多个GPU(图2A中的240R,250R,图2B中的240H,250H),并且可以或可不使用CPU资源。
视频编码器285可由(图2A中的)绘制服务器200R或(图2B中的)混合服务器200H的某些物理部件实施。所属领域的技术人员将了解,实施视频编码器285的方式有多种。在图2A的实施例中,视频编码器285可由CPU220R,222R和/或GPU240R,250R实施。在图2B的实施例中,视频编码器285可由CPU220H,222H和/或GPU240H,250H实施。在又一实施例中,视频编码器285可由单独的编码器芯片(未示出)实施。
在操作中,基于所接收的客户端装置输入140n(1≤n≤N),绘制命令生成器270可产生绘制命令集204m(1≤m≤M)。所接收的客户端装置输入可携载识别其去往的绘制命令生成器270的数据(例如,地址),和/或可能还有识别其起源于的用户和/或客户端装置的数据。
绘制命令是指可用来指示专用图形处理单元(GPU)产生视频数据帧或视频数据帧序列的命令。参考图2C,绘制命令集204m(1≤m≤M)导致绘制功能模块280产生视频数据帧。这些帧表示的图像可根据对客户端装置输入140n(1≤n≤N)的响应而改变,所述响应被编程到绘制命令生成器270中。例如,绘制命令生成器270可采用这种方式编程,以便响应于某些具体激励而将前进体验提供给用户(其中未来的交互变得不同,更有挑战性或更精彩),而对某些其他具体激励的响应将为用户提供倒退或终止的体验。尽管用于绘制命令生成器270的指令可固定采用二进制可执行文件的形式,但客户端装置输入140n(1≤n≤N)未知,直到与使用对应客户端装置120n(1≤n≤N)的玩家交互时刻为止。因此,根据提供的具体客户端装置输入,可存在广泛多种可能的结果。玩家/观众经由客户端装置120n(1≤n≤N)与绘制命令生成器270之间的这一交互可称为“玩游戏”或“玩视频游戏”。
绘制功能模块280可处理绘制命令集204m(1≤m≤M),以创建多个视频数据流205n(1≤n≤N,其中N是指参与视频游戏的用户/客户端装置的数量)。因此,通常每个用户(或等效地,每个客户端装置)可创建一个视频数据流。当执行绘制时,以三维空间表示的一个或多个对象(例如,物理对象)或以二维空间表示的对象(例如,文本)可加载到特定GPU240R,250R,240H,250H的高速缓冲存储器(未示出)中。这个数据可由GPU240R,250R,240H,250H转换成代表二维图像的数据,所述数据可存储在适当的VRAM246R,256R,246H,256H中。因此,VRAM246R,256R,246H,256H可为游戏屏幕提供图片元素(像素)值的临时存储。
视频编码器285可将每个视频数据流205n(1≤n≤N)中的视频数据压缩并编码成对应的压缩/编码视频数据流。可基于每个客户端装置而产生所得的压缩/编码视频数据流,称为图形输出流。在本示例性实施例中,视频编码器285可分别针对客户端装置120n(1≤n≤N)产生图形输出流206n(1≤n≤N)。额外的模块可用于将视频数据格式化成包,从而使得它们可通过互联网130传输。视频数据流205n(1≤n≤N)中的视频数据以及给定图形输出流内的压缩/编码视频数据可被分成帧。
IV.绘制命令的生成
现在将参考图2C、图3A和图3B更详细地描述绘制命令生成器270生成绘制命令。具体而言,绘制命令生成器270的执行可涉及若干过程,包括主游戏过程300A和图形控制过程300B,下文将更详细地描述所述过程。
主游戏过程
参考图3A描述主游戏过程300A。主游戏过程300A可重复执行,作为连续循环。作为主游戏过程300A的一部分,可提供动作310A,在所述动作的过程中可接收客户端装置输入。如果视频游戏是单玩家视频游戏没有观看的可能,那么接收来自单个客户端装置(例如,客户端装置1201)的客户端装置输入(例如,客户端装置输入1401),作为动作310A的一部分。如果视频游戏是多玩家视频游戏,或者是单玩家视频游戏但有观看的可能,那么可接收来自一个或多个客户端装置的客户端装置输入,作为动作310A的一部分。
通过非限制性实例,来自给定客户端装置的输入可将传达以下信息:给定客户端装置的用户想要使人物在他或她的控制下移动、跳跃、踢打、转向、摇摆、抓取等。或者或此外,来自给定客户端装置的输入可传达给定客户端装置的用户作出的菜单选择,以便改变一个或多个音频、视频或游戏玩法设置,以加载/保存游戏或者创建或加入网络会话。或者或此外,来自给定客户端装置的输入可将传达以下信息:给定客户端装置的用户想要选择特定的相机视图(例如,第一人称或第三人称)或者复原他或她在虚拟世界内的视角。
在动作320A处,至少部分基于动作310A处接收到的客户端装置输入以及其他参数,可更新游戏状态。更新游戏状态可涉及以下动作:
第一,更新游戏状态可涉及更新与可从中接收到客户端装置输入的客户端装置相关联的用户(玩家或观众)的某些属性。这些属性可存储在用户数据库10中。可维护在用户数据库10中并在动作320A处更新的用户属性的实例可包括相机视角选择(例如,第一人称、第三人称)、游戏模式、选择的音频或视频设置、技能等级、客户等级(例如,访客、奖励等)。
第二,更新游戏状态可涉及基于客户端装置输入的解译来更新虚拟世界中的某些对象的属性。在一些情况下,属性将被更新的对象可由二维或三维模型表示,并且可包括游戏人物、非游戏人物以及其他对象。在游戏人物的情况下,可更新的属性可包括对象的位置、力量、武器/装甲、剩余的寿命、特殊能力、速度/方向(速度)、动画、视觉效果、能量、弹药等。在其他对象(例如,背景、草木、建筑物、车辆、记分板等)的情况下,可更新的属性可包括对象的位置、速度、动画、伤害/健康、文本内容等。
应了解,除了客户端装置输入之外的参数可影响(用户的)上述属性和(虚拟世界对象的)属性。例如,各种计时器(例如,流逝的时间、特定事件经过的时间、虚拟时间、玩家的总数量、用户的地理位置等)可影响游戏状态的各方面。
一旦进一步更新游戏状态以执行动作320A,那么主游戏过程300A可返回到动作310A,因此,可收集并处理自从上一次通过主游戏过程之后接收到的新客户端装置输入。
图形处理过程
现在参考图3B描述被称为图形控制过程的第二过程。尽管示为与主游戏过程300A分开,但图形控制过程300B可作为主游戏过程300A的延伸执行。图形控制过程300B可不断执行,从而导致生成绘制命令集204m(1≤m≤M)。在单玩家视频游戏但没有观看可能的情况下,只有一个用户(即,N=1),因此,只将生成一个所得的绘制命令集2041(即,M=1)。在其他情况下,N(用户的数量)大于1。例如,在多玩家视频游戏的情况下,需要针对多个玩家生成多个不同的绘制命令集(M>1),因此,可并行执行多个子过程,每个玩家一个子过程。另一方面,在单玩家游戏但有观看可能的情况下(同样,多个用户且因此N>1),可能只有单个绘制命令集2041(M=1),其中针对观众通过绘制功能模块280来复制所得视频数据流。当然,这些仅仅是实施方案的实例,且不应视作限制。
考虑用于需要视频数据流205n(1≤n≤N)中的一个的给定用户的图形控制过程300B的操作。在动作310B处,绘制命令生成器270可确定要针对给定用户绘制的对象。这个动作可包括识别以下类型的对象:第一,此动作可包括针对给定用户来识别虚拟世界中的“游戏屏幕绘制范围”(也称为“场景”)内的那些对象。游戏屏幕绘制范围可包括从给定用户的相机角度“可见”的虚拟世界的一部分。这可取决于相机相对于虚拟世界中的对象的位置和取向。在动作310B的实施方案的非限制性实例中,可将截头锥体应用于虚拟世界,并且保留或标记截头锥体内的对象。截头锥体具有可位于给定用户的相机位置的顶点,并且可具有也由所述相机的方向性定义的方向性。
第二,此动作可包括识别没有出现在虚拟世界中的额外对象,但仍需要针对给定用户绘制所述额外对象。例如,这些额外的对象可包括文本消息、图形警告和仪表盘指示器,这里仅列出一些非限制性的可能。
在动作320B处,绘制命令生成器270可生成命令集204m(1≤m≤M),以用于将动作310B处识别的对象绘制成图形(视频数据)。绘制可以指根据观察视角和主要的照明条件,将对象或一组对象的3-D或2-D坐标转换成表示可显示图像的数据。这可使用任何数量的不同算法和技术来实现,例如,如2005年施普林格出版社伦敦有限公司(Springer-VerlagLondonLimited)出版的马克斯·K·阿格斯顿(MaxK.Agoston)的“计算机图形和几何建模:实施和算法(ComputerGraphicsandGeometricModelling:Implementation&Algorithms)”中有所描述,所述文献以引用的方式并入本文中。绘制命令可具有符合3D应用编程接口(API)的格式,例如但不限于,来自华盛顿州雷德蒙德的微软公司(MicrosoftCorporation)的“Direct3D”以及俄勒冈州比佛顿的科纳斯集团(KhronosGroup)管理的“开放图形语言(OpenGL)”。
在动作330B处,动作320B处生成的绘制命令可被输出到绘制功能模块280。这可包括将生成的绘制命令分包成绘制命令集204m(1≤m≤M),然后发送到绘制功能模块280。
V.图形输出的生成
绘制功能模块280可解译绘制命令集204m(1≤m≤M),并产生多个视频数据流205n(1≤n≤N),其中N个参与的客户端装置120n(1≤n≤N)中的每个客户端装置都有一个。绘制可通过(图2A中的)CPU220R,222R和(图2B中的)220H,222H控制下的GPU240R,250R,240H,250H来实现。针对参与的客户端装置产生视频数据帧的速率可被称为帧速率。
在有N个用户的实施例中,N个视频数据流205n(1≤n≤N)可根据相应的绘制命令集204m(1≤m≤M,其中M=N)创建而成。在这种情况下,绘制功能并不在用户之中共享。然而,N个视频数据流205n(1≤n≤N)也可根据M个绘制命令集204m(1≤m≤M,其中M小于N)创建而成,从而使得绘制功能模块280需要处理更少的绘制命令集。在这种情况下,绘制功能模块280可执行共享或复制,以便根据更少数量的绘制命令集204m(1≤m≤M,其中M<N)生成更大数量的视频数据流205n(1≤n≤N)。当多个用户(例如,观众)需要观看同一相机视角时,这种共享或复制可能比较普遍。因此,绘制功能模块280可执行一些功能,例如,针对一个或多个观众而复制创建的视频数据流。
接着,每个视频数据流205n(1≤n≤N)中的视频数据可由视频编码器285进行编码,从而产生与每个客户端装置相关联的编码视频数据序列,称为图形输出流。在图2A到图2C的示例性实施例中,去往每个客户端装置120n(1≤n≤N)的编码视频数据序列被称为图形输出流206n(1≤n≤N)。
视频编码器285可以是允许或实施或者定义了数字视频的视频压缩或解压缩算法的装置(或计算机可读指令集)。视频压缩可将原始的数字图像数据流(用像素定位、颜色值等来表示)压缩成基本传达相同的信息但使用更少比特的输出数字图像数据流。可使用任何合适的压缩算法。除了数据压缩之外,用来对特定视频数据帧编码的编码过程可以或可不包括密码加密。
以上述方式创建的图形输出流206n(1≤n≤N)可通过互联网130发送到相应的客户端装置。通过非限制性实例,图形输出流可分割并格式化成包,每个包都具有标头和载荷。含有用于给定用户的视频数据的包的标头可包括与给定用户相关联的客户端装置的网络地址,而载荷可包括整个或部分视频数据。在非限制性实施例中,用来对某些视频数据编码的压缩算法的标识和/或版本可编码在传达视频数据的一个或多个包的内容中。所属领域的技术人员可了解传输编码视频数据的其他方法。
尽管本说明着重于表示单独2-D图像的视频数据的绘制,但本发明并不排除绘制表示每帧多个2-D图像以创建3-D效果的视频数据的可能。
VI.客户端装置处的游戏屏幕再现
现在参考图4A,该图示出了可由与给定用户相关联的客户端装置执行的客户端视频游戏应用的操作,所述客户端装置可以是客户端装置120n(1≤n≤N)中的任一个,这是非限制实例。在操作中,客户端视频游戏应用可直接由客户端装置执行,或者可在网络浏览器中运行,这里仅列出一些非限制性的可能。
在动作410A处,可通过互联网130从绘制服务器200R(图2A)或从混合服务器200H(图2B)接收(来自图形输出流206n(1≤n≤N)之中的)图形输出流,根据实施例而定。所接收的图形输出流可包括可被分成帧的压缩/编码视频数据。
在动作420A处,视频数据的压缩/编码帧可根据与编码/压缩过程中使用的编码/压缩算法互补的解压缩算法进行解码/解压缩。在非限制性实施例中,可提前已知用来编码/压缩视频数据的编码/压缩算法的标识或版本。在其他实施例中,用来编码视频数据的编码/压缩算法的标识或版本本身可伴随视频数据。
在动作430A处,可处理视频数据的(解码/解压缩)帧。这可包括将视频数据的解码/解压缩帧放到缓冲器中、执行错误校正、记录和/或组合多个连续帧中的数据、α混合、内插缺失数据的部分等等。结果可能是基于每帧得到表示将被呈现给用户的最终图像的视频数据。
在动作440A处,最终图像可经由客户端装置的输出机构输出。例如,复合视频帧可显示在客户端装置的显示器上。
VII.音频生成
现在参考图3C描述被称为音频生成过程的第三过程。针对需要不同音频流的每个用户,可不断执行音频生成过程。在一个实施例中,音频生成过程可独立于图形控制过程300B执行。在另一实施例中,音频生成过程和图形控制过程的执行可协调一致。
在动作310C处,绘制命令生成器270可确定将要产生的声音。具体而言,所述动作可包括识别与虚拟世界中的对象相关联的那些声音,所述声音由于其音量(响度)和/或接近虚拟世界内的用户而主导声音景观。
在动作320C处,绘制命令生成器270可生成音频段。音频段的持续时间可跨过音频帧的持续时间,尽管在一些实施例中,与视频帧相比,可不那么频繁地生成音频段,但在其他实施例中,与视频帧相比,可更频繁地生成音频段。
在动作330C处,音频段可(例如)由音频编码器进行编码,从而产生编码音频段。音频编码器可以是允许或实施或者定义音频压缩或解压缩算法的装置(或指令集)。音频压缩可将原始的数字音频流(表达成振幅和相位随时间变化的声波)转换成基本传达相同的信息但使用更少比特的输出数字音频数据流。可使用任何合适的压缩算法。除了音频压缩之外,用来对特定视频音频段编码的编码过程可以或可不应用密码加密。
应了解,在一些实施例中,音频段可由计算服务器200C(图2A)或混合服务器200H(图2B)中的专门硬件(例如,声卡)生成。在可应用于图2A的分布式布置的替代实施例中,音频段可被绘制命令生成器210参数化成语音参数(例如,LPC参数),并且所述语音参数可由绘制服务器200R重新分布到目的客户端装置。
以上述方式创建的编码音频通过互联网130发送。通过非限制性实例,编码音频输入可分解并格式化成包,每个包都具有标头和载荷。标头可携载与为其执行音频生成过程的用户相关联的客户端装置的地址,而载荷可包括编码音频。在非限制性实施例中,用来对给定音频段编码的压缩算法的标识和/或版本可编码在传达给定段的一个或多个包的内容中。所属领域的技术人员可了解传输编码音频的其他方法。
现在参考图4B,该图示出了与给定用户相关联的客户端装置的操作,所述客户端装置可以是客户端装置120n(1≤n≤N)中的任一个,这是非限制实例。
在动作410B处,可从计算服务器200C、绘制服务器200R或混合服务器200H接收到编码音频段(根据实施例而定)。在动作420B处,编码音频可根据与编码过程中使用的压缩算法互补的解压缩算法进行解码。在非限制性实施例中,用来编码音频段的压缩算法的标识或版本可指定在传达音频段的一个或多个包的内容中。
在动作430B处,可处理(解码)音频段。这可包括将解码音频段放到缓冲器中、执行错误校正、组合多个连续的波形等等。结果可能是基于每帧得到将被呈现给用户的最终声音。
在动作440B处,最终生成的声音可经由客户端装置的输出机构输出。例如,声音可通过客户端装置的声卡或扬声器播放。
VIII.非限制性实施例的具体描述
下文将参考附图详细描述本发明的示例性实施例。应注意,在下文描述的实施例中,为简洁起见,结合以下服务器的布置将示例绘制服务器200R执行的过程:用作绘制命令生成器270的计算服务器200C,其执行与游戏内容相关联的各种计算并且发送绘制命令,以及用作绘制功能模块280的绘制服务器200R,其基于从计算服务器200C发送的绘制命令来执行屏幕绘制过程,如图2A所示。也就是说,下文将描述一个实例,其中本发明应用于基于获取的绘制命令来执行屏幕绘制过程的绘制服务器200R,作为信息处理设备的实例。然而,本发明并不限于图2A所示的布置,并且也可应用于提供用于发出绘制命令的实体(绘制命令生成器270)的布置,并且只要针对执行屏幕绘制的硬件发出绘制命令,用于绘制屏幕的实体(绘制功能模块280)便整体提供在设备中。也就是说,本发明可应用于通过某种方法获取绘制命令并基于绘制命令来执行屏幕绘制过程的任何任意装置。
<<绘制服务器200R的布置>>
图5的框图示出根据本发明的实施例的绘制服务器200R的功能布置。绘制服务器200R的概况与上述相同。图5更简单具体地示出在此实施例中执行特征操作的绘制服务器200R中的功能布置。
如图5所示,在此实施例中,绘制服务器200R包括多个功能部件,包括代替图2A中示出的那些的部件。在与图2A的关系中,CPU501代替CPU220R或222R,存储器503代替RAM230R,GPU507代替GPU240R或250R,VRAM508代替VRAM246R或256R,以及通信单元504代替NIC210R1或210R2。
通信单元504是绘制服务器200R的外部设备的通信接口。在此实施例中,通信单元504接收绘制命令和信息,其用来指定基于来自计算服务器200C的绘制命令而绘制的屏幕的发送目的地(客户端装置120)。通信单元504也将基于绘制命令而绘制的屏幕数据传输到对应的客户端装置120,作为图形输出206。
存储介质502是存储装置,例如,永久存储数据的非易失性存储器或HDD,例如,不同于存储器503。在此实施例中,描述的前提是,假设与各种对象相关联的数据(模型数据、纹理数据、绘制程序等)提前存储在存储介质502中,所述数据是绘制屏幕必需的。然而,本发明并不限于此,并且与各种对象相关联的数据可接收自计算服务器200C并存储在存储介质502中,或者经由通信单元504从具体的外部设备中获取。
选择器505控制如下操作:获取绘制命令的操作以及在CPU501的控制下将所述命令传输到传输目的地的操作。当经由通信单元504获取绘制命令时,选择器505将绘制命令传输到用作绘制功能模块280的CPU501或GPU507。此时,选择器505也将绘制命令传输到累积单元506。累积单元506结合发出时间或接收时间以及用于指定对应屏幕的传输目的地的信息,按时间顺序将计算服务器200C发出的绘制命令累积起来。换言之,累积单元506是将针对每个客户端装置120发出的绘制命令的日志累积起来的数据库。另一方面,当绘制服务器200R中选择执行测试模式时,通信单元504没有获取到绘制命令。因此,选择器505按时间顺序获取累积单元506中累积的绘制命令,并将其传输到用作绘制功能模块280的CPU501或GPU507。应注意,在此实施例中,为简洁起见,描述的前提是,假设当绘制服务器200R中选择执行测试模式时,通信单元504没有获取绘制命令。然而,本发明并不限于此。也就是或,应理解,测试模式可与对客户端装置120的服务提供(屏幕提供)并行执行,并且通信单元504甚至在测试模式下也可获取绘制命令。
通过提供因而操作的选择器505和累积单元506,根据此实施例的绘制服务器200R可复制与已经执行一次的绘制命令相同的绘制过程。也就是说,有可能复制执行相同绘制内容的情形,如上所述。因此,可完成与过程相关绘制相关联的除错,而同时(例如)准备绘制命令。
<<屏幕绘制过程>>
接着将参考图6的流程图来描述根据此实施例的具有上述布置的绘制服务器200R的详细屏幕绘制过程。当CPU501读出存储在(例如)存储介质502中的对应处理程序并且在存储器503上加载和执行程序时,可实施对应于流程图的过程。应注意,描述的前提是,假设屏幕绘制过程在(例如)通信单元504已接收到绘制命令或者绘制服务器200R设置成测试模式时开始。
在步骤S60l中,CPU501确定绘制服务器200R当前是否设置成测试模式。在确定绘制服务器200R设置成测试模式之后,CPU501将所述过程前进到步骤S604。在确定绘制服务器200R未设置成测试模式之后,CPU501将所述过程前进到步骤S602。
在步骤S602中,选择器505将通信单元504接收到的绘制命令(目标命令)传输到绘制功能模块280,并且也(例如)结合用于指定对应客户端装置120(目标装置)的接收时间和信息而将目标命令传输到累积单元506,而且在CPU501的控制下,致使累积单元506存储所述命令。
在步骤S603中,绘制功能模块280基于接收到的目标命令通过CPU501和GPU507的协作来执行屏幕的绘制过程,以便传输到目标装置。例如,在完成绘制过程之后,GPU507输出与所绘制的屏幕相关联的数据并且完成屏幕绘制过程。
另一方面,在步骤S601中确定绘制服务器200R设置成测试模式之后,在步骤S604中,选择器505连续开始按结合的时间顺序从累积单元506获取与目标装置相关联的绘制命令。应注意,描述的前提是,为简洁起见,假设在根据此实施例的屏幕绘制过程中,用于一个目标装置的绘制命令的日志累积在累积单元506中。然而,本发明并不限于此,并且例如,当执行与将由多个人同时玩的游戏相关联的测试时,绘制命令的日志可累积在累积单元506中,以用于多个客户端装置120中的每个。
在步骤S605中,基于与获取的绘制命令相关联的接收时间的信息,选择器505将按顺序获取的绘制命令传输到绘制功能模块280,作为目标命令。接收时间的信息用来表明将接连存储在累积单元506中的绘制命令发送到绘制功能模块280的时间的相对关系。也就是说,至于以(例如)35ms的间隔接收的绘制命令A和B,信息“35ms”可从接收时间的差异获取。因此,选择器505发送绘制命令A,然后在内部计时器(未示出)经过35ms之后再发送绘制命令B。
在步骤S606中,绘制功能模块280基于接收到的目标命令来执行屏幕绘制过程。例如,在完成绘制过程之后,GPU507输出与所绘制的屏幕相关联的数据。应注意,在此步骤中生成的屏幕旨在测试,并且无需始终传输到目标装置。
在步骤S607中,CPU501确定选择器505尚未发送的绘制命令是否存在于累积单元506中。在确定存在未发送的绘制命令后,CPU501将所述过程返回到步骤S605。在确定不存在未发送的绘制命令后,CPU501完成所述屏幕绘制过程。
通过这一过程,根据此实施例的绘制服务器200R可将实际接收到的绘制命令保留在累积单元506中,可从测试模式下的累积单元506获取绘制命令,并且根据(例如)接收时间,实施将绘制命令发送到绘制功能模块280。也就是说,与通过记录来自客户端装置120的操作输入的日志来执行过程的传统情况相比,可执行屏幕绘制过程的测试,从而复制相同的绘制内容。
在计算服务器200C和绘制服务器200R(也就是,绘制命令生成器270和绘制功能模块280)分开的系统布置中,如此实施例中所述,通过以上述方式存储绘制命令来执行测试。这使得在分开导致与游戏内容相关联的整个过程中出现程序错误的那个装置时能够除错。也就是说,因此在与生成绘制命令相关联的过程或硬件或者用于基于绘制命令来执行屏幕绘制过程的过程或硬件中区别出哪个有问题时,有可能除错。
应注意,在此实施例中,存储绘制命令以复制相同的绘制内容。然而,存储的绘制命令也可用于其他目的。例如,当绘制服务器200R并行执行与多个客户端装置120相关联的屏幕绘制过程时,存储在累积单元506中的用于多个客户端装置120中的每个的绘制命令可根据接收时间并行发送到绘制功能模块280,作为负载测试。此处,“并行发送绘制命令”是指多个绘制命令同时发送到(例如)绘制功能模块280的一个或多个绘制硬件,或者是指通过分别调节发送时间,而在某一时间帧内将多个绘制命令中的每个连续发送到一个或多个绘制硬件。此时,将被发送的绘制命令并不限于同时获取的那些或者结合相同游戏内容获取的那些,而是可根据所需的负载条件选择。如上所述,在α测试(玩游戏)等中,可只针对有限数量的用户存储绘制命令。即使在这种情况下,如果绘制服务器200R想要实施比玩游戏更高的负载,那么可输出多个获取的绘制命令,也就是说,获取的绘制命令集的数量可从一增加,并且例如,三个绘制命令集可发送到绘制功能模块280。由于并行执行的屏幕绘制过程的数量可易于增加,因此,可能易于在负载发生或执行绘制过程时测试绘制服务器200R中的错误,根据绘制结果测试对屏幕质量的影响等。
如上所述,根据此实施例的信息处理设备可复制相同的绘制内容。信息处理设备获取用来致使绘制设备绘制屏幕的绘制命令,并且记录获取的绘制命令。此外,信息处理设备将记录的绘制命令输出到绘制了屏幕的绘制设备。
其他实施例
尽管已参考示例性实施例描述本发明,但应理解,本发明并不限于所揭示的示例性实施例。所附权利要求书的范围将符合最宽泛的说明,以便涵盖所有此类修改和等效结果以及功能。此外,根据本发明的信息处理设备和控制方法可由在一个或多个计算机上执行方法的程序实现。所述程序可通过存储在计算机可读存储介质或通过电子通信线路来提供/分配。
本申请案主张2013年8月6日提交的第61/862,590号美国临时专利申请案的权益,所述申请案以全文引用的方式并入本文中。
权利要求书(按照条约第19条的修改)
1.一种信息处理设备,其包括:
获取构件,其用于获取绘制命令,所述绘制命令用来致使绘制构件绘制屏幕,并且是基于用户输入而生成的;
记录构件,其用于记录所述获取构件获取的所述绘制命令;以及
输出构件,其用于复制所述记录构件记录的所述绘制命令,并且将复制的绘制命令输出到所述绘制构件,以用于绘制屏幕。
2.根据权利要求1所述的设备,其中在所述获取构件没有获取到绘制命令的情况下,所述输出构件输出所述复制的绘制命令。
3.根据权利要求1或2所述的设备,其中所述输出构件将所述复制的绘制命令并行输出到多个绘制构件。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述记录构件结合所述获取的绘制命令来记录对应于所述绘制命令的生成和获取中的其中一个的时间信息,并且
所述输出构件基于相关联的时间信息来输出所述复制的绘制命令。
5.根据权利要求1到4中任一权利要求所述的设备,其中所述绘制构件包含在所述信息处理设备中,并且
所述设备进一步包括评估构件,其用于评估所述绘制构件基于从所述输出构件输出的所述复制的绘制命令所绘制的所述屏幕中的其中一个以及在已经绘制所述屏幕后所述信息处理设备的能力。
6.根据权利要求1到5中任一权利要求所述的设备,其中所述记录构件记录所述绘制构件基于所述获取构件获取的所述绘制命令而绘制的所述屏幕的传输目的地的信息,并且
所述输出构件复制针对一个传输目的地获取的所述记录的绘制命令,并且将多个复制的绘制命令输出到所述绘制构件。
7.根据权利要求1到6中任一权利要求所述的设备,其中所述获取构件从外部设备获取所述绘制命令。
8.一种信息处理设备的控制方法,所述方法包括:
获取步骤,获取绘制命令,所述绘制命令用来致使绘制构件绘制屏幕,并且是基于用户输入生成的;
记录步骤,记录所述获取步骤中获取的所述绘制命令;以及
输出步骤,复制所述记录构件记录的所述绘制命令并且将复制的绘制命令输出到所述绘制构件以用于绘制屏幕。
9.一种程序,其致使包括绘制构件的至少一个计算机用作权利要求1到7中的任一权利要求定义的信息处理设备的每个构件。
10.一种计算机可读记录介质,其存储权利要求9中定义的程序。
Claims (10)
1.一种信息处理设备,其包括:
获取构件,其用于获取绘制命令,所述绘制命令用来致使绘制构件绘制屏幕;
记录构件,其用于记录所述获取构件获取的所述绘制命令;以及
输出构件,其用于将所述记录构件记录的所述绘制命令输出到所述绘制构件,以用于绘制所述屏幕。
2.根据权利要求1所述的设备,其中在所述获取构件没有获取到绘制命令的情况下,所述输出构件输出所述记录的绘制命令。
3.根据权利要求1或2所述的设备,其中所述输出构件将所述记录的绘制命令并行输出到多个绘制构件。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述记录构件结合所述获取的绘制命令来记录对应于所述绘制命令的生成和获取中的其中一个的时间信息,并且
所述输出构件基于相关联的时间信息来输出所述获取的绘制命令。
5.根据权利要求1到4中任一权利要求所述的设备,其中所述绘制构件包含在所述信息处理设备中,并且
所述设备进一步包括评估构件,其用于评估所述绘制构件基于从所述输出构件输出的所述绘制命令所绘制的所述屏幕中的其中一个以及在已经绘制所述屏幕后所述信息处理设备的能力。
6.根据权利要求1到5中任一权利要求所述的设备,其中所述记录构件记录所述绘制构件基于所述绘制命令而绘制的所述屏幕的传输目的地的信息,并且
所述输出构件复制针对一个传输目的地获取的所述绘制命令,并且将多个获得的绘制命令输出到所述绘制构件。
7.根据权利要求1到6中任一权利要求所述的设备,其中所述获取构件从外部设备获取所述绘制命令。
8.一种信息处理设备的控制方法,所述方法包括:
获取步骤,获取绘制命令,所述绘制命令用来致使绘制构件绘制屏幕;
记录步骤,记录所述获取步骤中获取的所述绘制命令;以及
输出步骤,将所述记录步骤中记录的所述绘制命令输出到所述绘制构件以用于绘制所述屏幕。
9.一种程序,其致使包含绘制构件的至少一个计算机用作权利要求1到7中的任一权利要求定义的信息处理设备的每个构件。
10.一种计算机可读记录介质,其存储权利要求9中定义的程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361862590P | 2013-08-06 | 2013-08-06 | |
US61/862,590 | 2013-08-06 | ||
PCT/JP2014/070957 WO2015020178A1 (en) | 2013-08-06 | 2014-08-01 | Information processing apparatus, control method, program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453051A true CN105453051A (zh) | 2016-03-30 |
CN105453051B CN105453051B (zh) | 2018-12-28 |
Family
ID=52461502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480044851.4A Active CN105453051B (zh) | 2013-08-06 | 2014-08-01 | 信息处理设备、控制方法、程序以及记录介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9904972B2 (zh) |
EP (1) | EP3030968A4 (zh) |
JP (1) | JP6200062B2 (zh) |
CN (1) | CN105453051B (zh) |
CA (1) | CA2918725C (zh) |
WO (1) | WO2015020178A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017216667A (ja) * | 2016-05-31 | 2017-12-07 | フォーブ インコーポレーテッド | 画像提供システム |
US11880422B2 (en) * | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
US10452868B1 (en) | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
CN111951366B (zh) * | 2020-07-29 | 2021-06-15 | 北京蔚领时代科技有限公司 | 一种云原生3d场景游戏方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219032B1 (en) * | 1995-12-01 | 2001-04-17 | Immersion Corporation | Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface |
US7095416B1 (en) * | 2003-09-22 | 2006-08-22 | Microsoft Corporation | Facilitating performance analysis for processing |
US20060274072A1 (en) * | 2005-06-07 | 2006-12-07 | Microsoft Corporation | System and method for validating the graphical output of an updated software module |
US20100211933A1 (en) * | 2009-02-19 | 2010-08-19 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US20120081378A1 (en) * | 2010-10-01 | 2012-04-05 | Jean-Francois Roy | Recording a Command Stream with a Rich Encoding Format for Capture and Playback of Graphics Content |
CN102830938A (zh) * | 2012-09-13 | 2012-12-19 | 济南大学 | 一种基于手势动画的3d人机交互方法 |
CN102866919A (zh) * | 2012-07-31 | 2013-01-09 | 电子科技大学 | 一种基于云端绘制的大规模三维场景多人协同创作方法 |
CN202844541U (zh) * | 2012-08-09 | 2013-04-03 | 陈滟滪 | 一种全息显示的电子游戏设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110157196A1 (en) | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
JP5588807B2 (ja) | 2010-09-14 | 2014-09-10 | エスペック株式会社 | 環境試験装置用コントローラ、及びこれを有する環境試験装置、並びにこの環境試験装置用デバッガ |
JP5076132B1 (ja) | 2011-05-25 | 2012-11-21 | 株式会社スクウェア・エニックス・ホールディングス | 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム |
GB2491819A (en) | 2011-06-08 | 2012-12-19 | Cubicspace Ltd | Server for remote viewing and interaction with a virtual 3-D scene |
JP2013149178A (ja) | 2012-01-23 | 2013-08-01 | Arp Co Ltd | デバッガ機能を利用したテストコード自動生成プログラム |
-
2014
- 2014-08-01 CN CN201480044851.4A patent/CN105453051B/zh active Active
- 2014-08-01 CA CA2918725A patent/CA2918725C/en active Active
- 2014-08-01 EP EP14834332.0A patent/EP3030968A4/en not_active Withdrawn
- 2014-08-01 WO PCT/JP2014/070957 patent/WO2015020178A1/en active Application Filing
- 2014-08-01 JP JP2016504409A patent/JP6200062B2/ja active Active
- 2014-08-01 US US14/906,619 patent/US9904972B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219032B1 (en) * | 1995-12-01 | 2001-04-17 | Immersion Corporation | Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface |
US7095416B1 (en) * | 2003-09-22 | 2006-08-22 | Microsoft Corporation | Facilitating performance analysis for processing |
US20060274072A1 (en) * | 2005-06-07 | 2006-12-07 | Microsoft Corporation | System and method for validating the graphical output of an updated software module |
US20100211933A1 (en) * | 2009-02-19 | 2010-08-19 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US20120081378A1 (en) * | 2010-10-01 | 2012-04-05 | Jean-Francois Roy | Recording a Command Stream with a Rich Encoding Format for Capture and Playback of Graphics Content |
CN102866919A (zh) * | 2012-07-31 | 2013-01-09 | 电子科技大学 | 一种基于云端绘制的大规模三维场景多人协同创作方法 |
CN202844541U (zh) * | 2012-08-09 | 2013-04-03 | 陈滟滪 | 一种全息显示的电子游戏设备 |
CN102830938A (zh) * | 2012-09-13 | 2012-12-19 | 济南大学 | 一种基于手势动画的3d人机交互方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3030968A1 (en) | 2016-06-15 |
US20160163017A1 (en) | 2016-06-09 |
CN105453051B (zh) | 2018-12-28 |
US9904972B2 (en) | 2018-02-27 |
JP6200062B2 (ja) | 2017-09-20 |
CA2918725C (en) | 2020-09-29 |
JP2016527576A (ja) | 2016-09-08 |
CA2918725A1 (en) | 2015-02-12 |
EP3030968A4 (en) | 2017-05-10 |
WO2015020178A1 (en) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
JP6232423B2 (ja) | 情報処理装置、描画装置、方法及びプログラム | |
JP5987060B2 (ja) | ゲームシステム、ゲーム装置、制御方法、プログラム及び記録媒体 | |
JP6069528B2 (ja) | 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体 | |
CN110536725A (zh) | 基于应用程序内行为的个性化用户界面 | |
US9873045B2 (en) | Systems and methods for a unified game experience | |
JP6576245B2 (ja) | 情報処理装置、制御方法及びプログラム | |
US20140232819A1 (en) | Systems and methods for generating and sharing panoramic moments | |
JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
CN110809175A (zh) | 视频推荐方法及装置 | |
CN108171160B (zh) | 一种任务结果识别方法、装置、存储介质及电子设备 | |
CN105556574A (zh) | 渲染设备、其渲染方法、程序和记录介质 | |
US20160343045A1 (en) | Content delivery system, storage medium storing a program for delivering content, and method of delivering content | |
CN105453051A (zh) | 信息处理设备、控制方法、程序以及记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |