写在之前:
这周开始就急急忙忙的修改CloudStack的使用界面,采用kvm做为hypervisor,然后重新编译生成rpm,制作自动化部署的脚本,今天完成了,然后我喜欢的CloudStack就这样放下了。开始转战Gaming Anywhere,这是一个很新的领域,采用H.264,对我来说是陌生的,前面充满未知,但我就是想静静的弄一个东西,不怕困难,今天是第一天作为这一系列的开始吧,坚持下去。
1. 概览
Gaming Anywhere是一个开源的云游戏平台。除了开源它还拥有高扩展性、可移植性和可重构性。当前,Gaming Anywhere支持Windows和Linux,还可以被移植到其它例如:OS X(苹果操作系统)和Android系统。表一列出了它最新支持的平台和版本。我们的性能研究证明Gaming Anywhere使用较少的网络流量提供高相应能力和较高的视频质量。Gaming Anywhere的价值在于它的开源性,研究者、服务提供商和游戏玩家可以定制Gaming Anywhere以符合自己的需求。这在其它封闭私有的云游戏平台中是不可能的。
表一:支持的平台
Windows | Linux | Mac OS X | Android | |
Server | Windows 7+ | 支持 | 支持 | ----- |
Client | Windows XP+ | 支持 | 支持 | 支持 |
2. 动机
云游戏已经变得非常流行,例如在2011年的调查显示游戏玩家在电脑游戏、硬件以及其它辅助产品上花费了247.5亿美元,电脑游戏通过Game Box交付或通过互联网下载。游戏玩家必须在物理机上安装游戏才能玩。安装过程变得极度无聊,因为游戏太复杂而计算机硬件和系统软件又非常独立。以暴雪的星级争霸Ⅱ为例,在一台I5的PC机上安装要超过一个小时,另一个小时安装在线的补丁。除此之外,游戏玩家还发现他们的PC机的配置不能使所有的视觉效果达到高速帧率,因此游戏玩家必须反复地升级他们的电脑以便能玩到最新的电脑游戏。
云游戏是交付高质量的游戏体验的一种比较好的方式,也开启了一项新的商业机遇。在一个云游戏系统中,当游戏玩家利用瘦客户端通过互联网交互的时候,电脑游戏在强大的云服务器上运行。瘦客户端是一种轻量的而且可以被移植到资源受限的平台,比如:移动设备和电视机顶盒。通过云游戏平台,玩家可以随时、随地的玩最新的电脑游戏,而游戏开发者可以为特定的PC配置优化他们的游戏。云游戏巨大的潜力已经被游戏行业公认:1> 市场预测报告显示在2011和2017年间,云游戏市场将会增长9倍。2> 几个云游戏初创公司得到几个先进游戏开发商的支持。
虽然云游戏对游戏行业来说是一个有前途的方向,但是不通过过多的硬件投资而取得好的用户体验也是面临的一个棘手问题。这是因为玩家很难被取悦,他们同时需要高响应和高的视频质量,但是不想投入太多。因此,服务提供商不得不只是设计满足用户需求的系统,忽略了可扩展性、资源的合理分配。这使得云游戏系统的设计和实现极具挑战性。确实,实时的视频流咋一看似乎是一项成熟的技术,云游戏系统必须执行游戏、获取用户的输入、执行渲染、捕捉、编码、打包、传输、解码以及实时地显示,因此优化变得更加困难。
幸运地是,许多系统研究人员有新的想法去为游戏玩家提高云游戏体验,为服务提供商降低资本支出以及运营支出。然而,所有现存的云游戏平台私有的封闭的,组织研究人员在真正的云游戏平台上测试他们的想法。因此这些想法往往是通过模拟器或仿真器来测试,更糟的是从来没有被评估发表。因此在游戏行业很少有想法出现在云游戏或高交互分布式系统上。通过媒体研究社区和游戏/软件行业发现这些新想法是一个比较好的渠道,我们推荐Gaming Anywhere,在写这个的时候是第一个开源的云游戏平台。虽然只是初步阶段,我们希望Gaming Anywhere云游戏平台能引起足够的关注,并迅速成长为一个成熟的社区,就像Openflow,它与Gaming Anywhere在不通的领域却有相同的目的。
3. 系统设计
Gaming Anywhere的部署场景如上图所示。用户首先通过入口服务器(Portal Servers)登录到系统,它为终端用户提供一个可用的游戏列表。用户可以选择一个比较喜欢的游戏并发送玩的请求,在收到请求后,入口服务器会寻找可用的游戏服务器,并在该服务器上将游戏启动,然后将这台服务器的URL返回给用户。最终,用户连接到游戏服务器开始玩游戏。对于入口服务器来说没有过多的讨论,它就像一个最常见的基于web的服务器,提供一个简单的登录和可用游戏列表给用户。如果登录和发送游戏的请求是从一个定制的客户端发送的,它甚至不需要一个用户界面。操作可以通过标准的HTTP或HTTPS协议来发送。