一种基于图形虚拟化技术的云游戏框架的利记博彩app

文档序号:11117180阅读:863来源:国知局
一种基于图形虚拟化技术的云游戏框架的制造方法与工艺

本发明涉及一种基于图形虚拟化技术的云游戏框架,属于云计算虚拟游戏技术领域。



背景技术:

随着计算机领域的发展,电脑游戏的市场也在不断扩大,仅2011年,玩家就在电脑游戏,硬件和配件上花费了247亿5000万美元。传统的游戏是通过光盘或在线下载进行发售,玩家必须将游戏安装在本地的物理机器上才可以使用。但是因为游戏的复杂和多样性,对硬件和软件环境的要求也各不相同,导致游戏的安装过程十分复杂。

此外,玩家可能会发现他们的电脑性能不够强大,不能在全高特效的情况下保证游戏的帧速率。因此,玩家必须不断升级他们的电脑,以便玩最新的电脑游戏,获得更好的游戏体验。

云游戏是一个更好的方式来提供高品质的游戏体验。在云游戏系统中,电脑游戏运行在强大的云服务器上,而玩家通过网络化的瘦客户端与游戏交互。瘦客户端是轻量级的,可以移植到资源受限的平台,如移动设备和电视机顶盒。通过云游戏系统,玩家可以在任何地方、任何时间玩最新的电脑游戏,而游戏开发者也可以根据一个特定的电脑配置来优化他们的游戏。

虽然云游戏是游戏行业的一个很有前途的方向,但是如何在控制硬件投资的情况下实现良好的用户体验,仍然是一个棘手的问题。游戏玩家在要求高性能的同时,还要求高的游戏画面质量,但是又不想付出太多。因此,服务提供商设计的系统不仅要满足玩家的需求,而且还要考虑弹性性能,可扩展性和资源配置。事实上,虽然实时视频流传输已经是一项成熟的技术,但是云游戏系统在运行游戏的同时,还要处理用户的输入,并进行渲染、采集、编码、传输、解码、打包,并实时显示,因而更加难以优化。

OnLive作为一家云游戏平台服务公司,早在2009年的旧金山GDC游戏开发者大会上提出了云游戏这个概念。但是仅仅三年半,OnLive就因在服务器租用和购置方面的巨大投入,出现了财政困难。云游戏提供商在硬件投资和提高游戏质量之间的权衡,面临着巨大的挑战。如果使用低端硬件会导致不愉快的用户体验,这可能会推动玩家远离云游戏,但是使用高端硬件,按照以往一个用户必须对应一台实体服务器的方式,会产生巨大的财务负担。

游戏对机器的硬件配置,尤其是显卡水平要求很高,如果基于图形虚拟化的技术就可以在一台服务器上虚拟化运行多个游戏,从而减少硬件投入。此外,不同的游戏类型拥有不同的硬件要求,如果不对服务器资源进行很好的分配,会造成资源的浪费。例如运行3D射击游戏的服务器处理2D休闲游戏就存在性能过剩的情况。



技术实现要素:

本发明所要解决的技术问题是提供一种基于云环境,通过图形虚拟化技术,能够使游戏服务器根据游戏的需要配置,减少硬件资源浪费的基于图形虚拟化技术的云游戏框架。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于图形虚拟化技术的云游戏框架,用户通过客户端经网络访问云游戏服务器,获得云游戏服务器上所运行游戏的音视频信号,并针对所运行游戏发送控制指令,所述云游戏框架包括游戏门户服务器和至少两台游戏服务器,其中,各台游戏服务器上分别设置图形虚拟机,以及与图形虚拟机相对应的至少两台虚拟机,虚拟机的数量大于或等于游戏种类的数量,各台游戏服务器上的各台虚拟机分别安装指定游戏,并设置代理,其中,各台游戏服务器上的图形虚拟机独占游戏服务器的图形处理器,各台游戏服务器上的各台虚拟机通过对应图形虚拟机共享所设游戏服务器的图形处理器;门户服务器用于存储游戏列表,以及各个游戏分别所在游戏服务器中对应虚拟机的网络地址,客户端通过门户服务器选择、并获得指定游戏所在游戏服务器中对应虚拟机的网络地址,客户端根据指定游戏所在游戏服务器中对应虚拟机的网络地址,连接对应游戏服务器中的对应虚拟机;各台虚拟机上的代理分别实现所连客户端控制指令的接收,以及针对虚拟机上所运行游戏进行游戏音视频信号的截取,并发送至所连客户端。

作为本发明的一种优选技术方案:所述各台游戏服务器上各台虚拟机上所设置的代理分别包括音频源处理模块、视频源处理模块、音视频网络传输服务模块和输入事件处理模块,其中,音频源处理模块用于针对虚拟机上所运行游戏进行游戏音频信号的截取;视频源处理模块用于针对虚拟机上所运行游戏进行游戏视频信号的截取;音视频网络传输服务模块用于将所获对应虚拟机上所运行游戏的游戏音视频信号发送至所连客户端;输入事件处理模块用于实现所连客户端所发出控制指令的接收,并将其转化为游戏动作、传递给对应虚拟机上所运行的游戏。

作为本发明的一种优选技术方案:所述代理中的音视频网络传输服务模块为基于RTSP网络协议的音视频网络传输服务模块,音视频网络传输服务模块基于RTSP网络协议,将所获对应虚拟机上所运行游戏的游戏音视频信号发送至所连客户端;所述代理中的输入事件处理模块基于TCP/UDP网络协议,实现所连客户端控制指令的接收,并发送至对应虚拟机上所运行的游戏中。

作为本发明的一种优选技术方案:所述客户端基于Live555库处理所连虚拟机中音视频网络传输服务模块基于RTSP网络协议所发送的游戏音视频信号,并且客户端中不针对所接收到的音视频信号进行缓冲。

作为本发明的一种优选技术方案:所述门户服务器中还包括游戏服务器选择模块,游戏服务器选择模块用于根据客户端所选游戏,按客户端所在地理位置、网络状况以及各个游戏服务器的运行状态,选择客户端所选游戏对应的最佳游戏服务器,并经网络启动该最佳游戏服务器上所选游戏对应的虚拟机,以及获得该最佳游戏服务器上所选游戏所对应虚拟机的网络地址。

作为本发明的一种优选技术方案:所述游戏服务器为安装XenServer软件的物理机。

作为本发明的一种优选技术方案:所述云游戏框架还包括中心服务器,中心服务器和所述各台游戏服务器处于同一局域网中,中心服务器用于实现各台游戏服务器之间的调度。

作为本发明的一种优选技术方案:所述游戏服务器为安装XenServer软件的物理机;所述中心服务器为安装XenCenter软件的物理机。

本发明所述一种基于图形虚拟化技术的云游戏框架采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计的基于图形虚拟化技术的云游戏框架,使得游戏画面的响应延迟可以达到100ms左右,可以满足大部分游戏对延迟的要求,响应延迟由处理延迟、传输延迟和显示延迟三部分组成,其中,显示延迟为30ms,和其他云游戏系统一样,解码器对于不同的游戏拥有一个稳定的解码时间;处理延迟降低到了30ms,相对于使用设备仿真法和应用层接口重定向法来提供3D处理能力,并且本发明使用的图形虚拟化方案具有更强的处理能力和更小的处理延迟;不仅如此,相对现有其它虚拟化方案对物理GPU利用率平均只有20%左右,且非常不稳定的缺点,本发明使用的图形虚拟化技术对GPU卡的利用率一直在50%以上,且状态保持非常稳定。

附图说明

图1是本发明所设计基于图形虚拟化技术的云游戏框架中图形虚拟化技术架构示意图;

图2是本发明所设计基于图形虚拟化技术的云游戏框架应用部署示意图;

图3是本发明所设计基于图形虚拟化技术的云游戏框架中游戏服务器端组件示意图;

图4是本发明所设计基于图形虚拟化技术的云游戏框架中客户端组件示意图;

图5是本发明所设计基于图形虚拟化技术的云游戏框架示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

云游戏框架实质上是一种远程渲染系统,可以将其分为传递图形流和传递视频流两种,这两种方式最大的不同在于服务器与客户端之间如何划分负载。图形流的方式,云服务器拦截图形命令,压缩命令,并将它们传递给客户端,然后客户端基于图形指令集如OpenGL和Direct3D使用图形芯片对游戏场景进行渲染。这种方式云服务器上不使用图形芯片,从而允许每个云服务器同时支持多个客户,但是客户端需要承担更多的负载,因而不能适用于性能受限的设备如移动设备和机顶盒。视频流的方式,云服务器根据3D图形命令渲染出2D视频,压缩视频,并传递到客户端,然后客户端解码和显示视频流。这种方式客户端不需要进行3D图形绘制,而解码可以使用低成本的视频解码器芯片,更加适合瘦客户端采用。由于视频流方法不依赖于特定的3D芯片,相同的瘦客户端可以很容易地移植到不同的平台上。

如图1和图2所示,本发明设计了一种基于图形虚拟化技术的云游戏框架,实际应用当中,用户通过客户端经网络访问云游戏服务器,获得云游戏服务器上所运行游戏的音视频信号,并针对所运行游戏发送控制指令,所述云游戏框架包括中心服务器、游戏门户服务器、游戏服务器选择模块和至少两台游戏服务器,其中,各台游戏服务器上分别设置图形虚拟机,以及与图形虚拟机相对应的至少两台虚拟机,虚拟机的数量大于或等于游戏种类的数量,各台游戏服务器上的各台虚拟机分别安装指定游戏,并设置代理,其中,各台游戏服务器上的图形虚拟机独占游戏服务器的图形处理器,各台游戏服务器上的各台虚拟机通过对应图形虚拟机共享所设游戏服务器的图形处理器;门户服务器用于存储游戏列表,以及各个游戏分别所在游戏服务器中对应虚拟机的网络地址。实际应用中,各台游戏服务器为安装XenServer软件的物理机,采用XenServer这种虚拟化服务平台,XenServer提供基于Windows的图形化用户界面,使之更加易于管理XenServer主机,池和共享存储,通过安装在物理机上的XenCenter可以很方便的部署,管理以及监控虚拟机。另外,XenServer的服务器虚拟化是基于hypervisor的,这是一种运行在基础物理服务器和操作系统之间的中间软件层,不同于安装在宿主操作系统之上的虚拟机软件,它可以直接访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,使运行在其上的虚拟机更加出色的发挥服务器硬件的性能。同时也在各个虚拟机之间施加防护,分配给每一台虚拟机适量的内存,CPU,网络和磁盘;中心服务器为安装XenCenter软件的物理机,图1所示中,Qemu表示一套开源的模拟处理器;Mediator表示资源调度介质;Dom0表示图形虚拟机(一个修改的linux内核,是一个运行在xen hypervisor之上的独特虚拟机,对访问物理I/O和其它domu虚拟机具有特殊的权利,在其它任何虚拟机之前先启动);VM1、VM2分别表示游戏虚拟机(所有运行在Xen hypervisor上的虚拟化客户机);Graphics Driver表示显卡驱动;Xen表示xen hypervisor虚拟机管理器;GPU表示物理显卡。

现有的GPU虚拟化技术主要包括设备独占使用(Direct pass-through)和应用层接口重定向方法(API forwarding),前者一台虚拟机独占一块GPU,其他虚拟机没有权限直接访问GPU。本发明所设计的图像虚拟化技术,可以获得最接近物理GPU的图形处理能力,但是服务器的图形处理资源不能共享,不能根据实际需要灵活分配,这会造成硬件资源的浪费,增加硬件资源的投入。后者通过在应用层拦截对GPU的调用,通过将OpenGL和DirectX的API重定向的方式,转发给主机上的显卡驱动来完成部分显卡的功能。这种方式不能完全发挥出GPU的性能,且一些GPU的特性也不能使用。

安装XenServer软件的游戏服务器上使用的图形虚拟化技术结合了设备直通和API重定向的方法。在这种虚拟化技术中,使用Hypervisors创建一台虚拟机(图形虚拟机)使用设备直通的方法完全独占GPU,通过专业的显卡驱动,可以发挥GPU的全部特性,再创建多台虚拟机(桌面虚拟机)提供给用户使用,这些虚拟机不能直接访问GPU,但是它们可以与图形虚拟机共享GPU的数据存储空间和指令通道。通过API重定向的方法,可以将其他桌面虚拟机对GPU的调用指令传递给图形虚拟机,调用图形虚拟机的API来快速访问物理GPU。这种方法实现了多台虚拟机共享一个物理GPU,使多台虚拟机可以同时在一个GPU上完成图形处理业务。通过这种方法桌面虚拟机调用图形虚拟机的API对GPU进行访问,相当于将GPU直通给多个虚拟机。相比于对OpenGL和DirectX的API重定向,这种方法在实现GPU共享的同时,可以使用GPU的所有特性,拥有更好的性能。

客户端通过门户服务器选择、并获得指定游戏所在游戏服务器中对应虚拟机的网络地址,其中,客户端通过门户服务器选择指定游戏,门户服务器控制游戏服务器选择模块根据客户端所选游戏,按客户端所在地理位置、网络状况以及各个游戏服务器的运行状态,选择客户端所选游戏对应的最佳游戏服务器,并经网络启动该最佳游戏服务器上所选游戏对应的虚拟机,以及获得该最佳游戏服务器上所选游戏所对应虚拟机的网络地址,并将网络地址返回给门户服务器,门户服务器将该网络地址返回给客户端;在云游戏中网络延迟更为关键,因为云游戏客户端不具备游戏状态信息,很难有机会进行延迟补偿,例如像在普通网络游戏中一样进行死亡预测。因此,在本发明所设计框架中,门户服务器会根据玩家选择的游戏类型评估该游戏对网络延迟的敏感程度以及推荐的硬件配置,然后根据玩家的地理位置,网络状况以及各个游戏服务器的运行状态来选择一个最佳的游戏服务器。

本发明基于上述客户端所获网络地址,即客户端获得指定游戏所在游戏服务器中对应虚拟机的网络地址,客户端根据指定游戏所在游戏服务器中对应虚拟机的网络地址,连接对应游戏服务器中的对应虚拟机;各台虚拟机上的代理分别实现所连客户端控制指令的接收,以及针对虚拟机上所运行游戏进行游戏音视频信号的截取,并发送至所连客户端;其中,如图3所示,各台游戏服务器上各台虚拟机上所设置的代理分别包括音频源处理模块、视频源处理模块、音视频网络传输服务模块和输入事件处理模块,其中,音频源处理模块用于针对虚拟机上所运行游戏进行游戏音频信号的截取;视频源处理模块用于针对虚拟机上所运行游戏进行游戏视频信号的截取;音视频网络传输服务模块为基于RTSP网络协议的音视频网络传输服务模块,音视频网络传输服务模块基于RTSP网络协议,将所获对应虚拟机上所运行游戏的游戏音视频信号发送至所连客户端;输入事件处理模块基于TCP/UDP网络协议,实现所连客户端控制指令的接收,并将其转化为游戏动作、传递给对应虚拟机上所运行的游戏中,使用TCP或UDP协议单独的连接,这样做的好处是可以减小延迟;如果使用相同的RTSP协议连接,输入事件可能或因为其他消息被延迟,另外,RTSP协议是基于文本的,而文本解析相对耗时,所以使用RTSP协议传输可能会带来更长的延迟。客户端基于Live555库处理所连虚拟机中音视频网络传输服务模块基于RTSP网络协议所发送的游戏音视频信号,并且为了提高延迟方面的用户体验,客户端中不针对所接收到的音视频信号进行缓冲,Live555的数据包没有文件头,所以客户端根据数据包的标记位来判断这些连续的数据包是不是属于同一个视频帧,虽然零缓冲策略可能会导致在网络延迟不稳定时视频播放速率的不一致,但是它最大限度地减少了输入响应延迟,权衡画面质量与输入响应后,这种方式能提供更好的用户体验;中心服务器和所述各台游戏服务器处于同一局域网中,中心服务器用于实现各台游戏服务器之间的调度,即为所有游戏服务器创建了一个资源池,它将这些游戏服务器结合在一起形成一个管理实体。通过这个资源池,可以把多台主机和它们连接的共享存储看作一个统一的资源,并基于它们的资源需求和业务优先级,实现虚拟机的灵活部署。结合共享存储,虚拟机可以在池中任何一台主机上启动,如果有一个游戏服务器硬件故障,你可以在池中的另一个游戏服务器中重启失败的虚拟机,并且只有很短的停机时间。

在游戏中实时捕获桌面屏幕主要有两种方式,一种是按照一定频率截取整个屏幕,也可以根据需要截取指定的区域。另一种是拦截游戏对图形绘制函数的调用,当一个新游戏画面渲染完成时立刻从游戏的缓冲区捕获桌面屏幕。桌面截取方式是以轮询方式触发的,它是按照指定的频率主动的在桌面上截图。API拦截方式是事件驱动的,每当一个游戏画面在后台缓冲区完成绘制时,该方式都有机会获取一个游戏画面。代理进程使用一个速率控制器决定模块是否应该捕获一个屏幕,以满足所需的视频流帧速率。

本发明所设计云游戏框架在实际应用中,采用了上述两种捕获桌面屏幕的方式。屏幕捕获是有平台依赖性的,在Linux下使用MIT-SHM截取屏幕,在Windows下使用GDI截取屏幕。对于支持DirectDraw和Direct3D的游戏,可以使用拦截DirectX API的方式,这种方式效率更高,延迟更低。

对于音频和视频帧来说,分别由两个不同的编码器模块进行编码,编码的模式主要有两种,一种是由两个编码器分别负责所有的音频和视频帧编码,这种编码方式拥有更好的效率,不会增加CPU的负载,因为不论有多少用户,所有的音频和视频帧只被编码一次,然后发送到各个客户端。另一种方式为每一个用户分配一个专用的编码器,优点是它可以针对不同用户使用不同的编码配置,如比特率、分辨率和视频质量参数,但是相应的也会增加CPU的负载,这种方式无法支持太多的用户。本发明实际应用中,对捕获的帧进行编码可以根据需要使用上述任何一种编码模式。一对多的方式支持更多的用户同时使用,一对一的方式更加灵活,支持使用不同的编码配置。

如图4所示,客户端主要由两部分组成,一是RTSP客户端,是用来接收视音频流的,这部分基于Live555库实现,并采用了零缓冲的机制来减少延迟,在接收完一个帧的数据后立刻解码交给SDL库渲染显示。2D视频流的渲染显示不需要专用的显示芯片,极大的减小了客户端的图形处理压力,因此瘦客户端可以移植到很多资源受限的平台,例如移动设备和机顶盒。二是输入事件的捕获,通过钩子拦截底层键盘和鼠标事件来完美地模仿每一个游戏服务器上的玩家的输入,这种方式可以跨平台捕获SDL事件,更好的支持各种特殊的输入设备。

如图5所示,这是云游戏系统的架构图,说明了一个云游戏服务的示例,其中游戏服务器将游戏屏幕以视频流的形式发送给瘦客户端,瘦客户端将用户的输入如键盘和鼠标的动作,发送到游戏服务器。通过云游戏,游戏玩家可以随时随地玩最新的电脑游戏,而游戏开发人员可以根据一个特定的服务器配置优化他们的游戏。

基于上述所设计基于图形虚拟化技术的云游戏框架,实际应用中,使得游戏画面的响应延迟可以达到100ms左右,可以满足大部分游戏对延迟的要求,响应延迟由处理延迟、传输延迟和显示延迟三部分组成,其中,显示延迟为30ms,和其他云游戏系统一样,解码器对于不同的游戏拥有一个稳定的解码时间;处理延迟降低到了30ms,相对于使用设备仿真法和应用层接口重定向法来提供3D处理能力,并且本发明使用的图形虚拟化方案具有更强的处理能力和更小的处理延迟;不仅如此,相对现有其它虚拟化方案对物理GPU利用率平均只有20%左右,且非常不稳定的缺点,本发明使用的图形虚拟化技术对GPU卡的利用率一直在50%以上,且状态保持非常稳定。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1