Overview

GamingAnywhere is an open-source clouding gaming platform. In addition to its
openness, we design GamingAnywhere for high extensibility, portability, and
reconfigurability. GamingAnywhere currently supports Windows and Linux, and can
be ported to other OS's including OS X and Android.
Table 1 gives the latest supported OS's and versions.
Our performance study demonstrates that GamingAnywhere
achieves high responsiveness and video quality yet imposes low network traffic.
The value of GamingAnywhere, however, is from its openness: researchers,
service providers, and gamers may customize GamingAnywhere to meet their needs.
This is not possible in other closed and proprietary cloud gaming platforms.

Table 1: The supported platforms

Windows

Linux

Mac OS X

Android

Server

Windows 7+

Supported

Supported

--

Client

Windows XP+

Supported

Supported

4.1+

Motivation

Computer games have become very popular, e.g., gamers spent 24.75 billion USD on
computer games, hardware, and accessories in 20115
Traditionally,
computer games are delivered either in boxes or via Internet downloads. Gamers
have to install the computer games on physical machines to play them. The
installation process becomes extremely tedious because the games are too
complicated and the computer hardware and system software are very fragmented.
Take Blizzard's Starcraft II as example, it may take more than an hour to
install it on an i5 PC, and another hour to apply the online patches.
Furthermore, gamers may find their computers are not powerful enough to enable
all the visual effects yet achieve high frame rates. Hence, gamers have to
repeatedly upgrade their computers so as to play the latest computer games.
Cloud gaming is a better way to deliver high-quality gaming experience
and opens new business opportunity8.
In a cloud gaming system,
computer games run on powerful cloud servers, while gamers interact with the
games via networked thin clients. The thin clients are light-weight and can be
ported to resource-constrained platforms, such as mobile devices and TV set-top
boxes. With cloud gaming, gamers can play the latest computer gamers anywhere
and anytime, while the game developers can optimize their games for a specific
PC configuration. The huge potential of cloud gaming has been recognized by the
game industry: (i) a market report predicts that cloud gaming market will
increase 9 times between 2011 and 20173 and (ii) several cloud gaming
startups were recently acquired by leading game developers1,4.
Although cloud gaming is a promising direction for the game industry, achieving
good user experience without excessive hardware investment is a tough problem.
This is because gamers are hard to please, as they concurrently demand for high
responsiveness and high video quality, but do not want to pay too much.
Therefore, service providers have to not only design the systems to meet the
gamers' needs but also take error resiliency, scalability, and resource
allocation into considerations. This renders the design and implementation of
cloud gaming systems extremely challenging. Indeed, while real-time video
streaming seems to be a mature technology at first glance, cloud gaming systems
have to execute games, handle user inputs, and perform rendering, capturing,
encoding, packetizing, transmitting, decoding, and displaying in real-time, and
thus are much more difficult to optimize.
Fortunately, many systems researchers have new ideas to improve cloud gaming
experience for gamers and reduce capital expenditure (CAPEX) and operational
expenditure (OPEX) for service providers. However, all existing cloud gaming
platforms2,6,9
are closed and proprietary, which
prevent the researchers from testing their ideas on real cloud gaming systems.
Therefore, the new ideas were either only tested using simulators/emulators,
or, worse, never evaluated and published. Hence, very few new ideas on cloud
gaming (in specific) or highly-interactive distributed systems (more general)
have been transferred to the industry. To better bridge the multimedia research
community and the game/software industry, we present GamingAnywhere, the first open
source cloud gaming testbed in this paper.
While in its infancy, we hope GamingAnywhere cloud gather enough attentions, and quickly
grow into a community with critical mass, just like Openflow7,
which shares the same motivation with GamingAnywhere in a different research area.

Figure 1: The deployment scenario of GamingAnywhere.

System Deployment

The deployment scenario of GamingAnywhere is shown in Figure 1. A
user first logs into the system via a portal server, which provides a
list of available games to the user. The user then selects a preferred
game and requests to play the game. Upon receipt of the request, the
portal server finds an available game server, launches the selected game
on the server, and returns the game server's URL to the user. Finally,
the user connects to the game server and starts to play.
There is not too much to discuss for the portal server, which
is just like most Web-based services and provides only a simple
login and game selection user interface. If login and game
selection requests are sent from a customized client, it does
not even need a user interface. Actions can be sent as
REST-like requests via standard
HTTP or HTTPS protocols.

Design Philosophy

GamingAnywhere aims to provide an open platform for researchers to
develop and study real-time multimedia streaming applications
in the cloud. The design objectives of GamingAnywhere include:

Extensibility:
GamingAnywhere adopts a modularized design. Both platform-dependent components
such as audio and video capturing and platform-independent
components such as codecs and network protocols can be easily
modified or replaced. Developers should be able to follow the
programming interfaces of modules in GamingAnywhere to extend the
capabilities of the system. It is not limited only to games, and any
real-time multimedia streaming application such as live casting can
be done using the same system architecture.

Portability:
In addition to desktops, mobile devices are now becoming one of the
most potential clients of cloud services as wireless networks are
getting increasingly more popular. For this reason, we maintain the
principle of portability when designing and implementing GamingAnywhere. Currently
the server supports Windows and Linux, while the client supports
Windows, Linux, and OS X. New platforms can be easily included by
replacing platform-dependent components in GamingAnywhere. Besides the easily
replaceable modules, the external components leveraged by GamingAnywhere are
highly portable as well. This also makes GamingAnywhere easier to be ported to
mobile devices.

Configurability:
A system researcher may conduct experiments for real-time multimedia
streaming applications with diverse system parameters. A large
number of built-in audio and video codecs are supported by GamingAnywhere.
In addition, GamingAnywhere exports all available configurations to users
so that it is possible to try out the best combinations of
parameters by simply editing a text-based configuration file and
fitting the system into a customized usage scenario.

Openness:
GamingAnywhere is publicly available at this website.
Use of GamingAnywhere in academic research is free of charge but researchers
and developers should follow the license terms claimed in the binary
and source packages.