Uniquitous is an open source cloud-based game system implemented in Unity, which gives
game developers and researchers control over both the cloud system and the game content.
Cloud gaming is estimated to grow from $1 billion in 2010 to $9 billion in 20171, a
rate much faster than either boxed games sold through traditional retail or games sold
online. In 2012, Sony bought the Gaikai cloud gaming service for $380 million and
integrated this service into their PlayStation 42,3.
Cloud gaming provides benefits to users, developers and publishers over traditional gaming. Cloud gaming services mean
players no longer need to upgrade their gaming hardware, such as desktops, laptops and
game consoles, in order to play the latest games, as well as opens up game opportunities
for users with low-end gaming hardware. Game developers only need to develop one version
for the cloud server platform instead of developing a version for each client type, thus
reducing game development time and cost. Publishers can more easily protect against piracy
since cloud games are only installed in the cloud, thus limiting the ability of malicious users to copy them.
Despite some recent success, cloud gaming faces a number of challenges before it can be deployed widely for all types of games, game devices and network connections: 1) network latency, inherent in the physical distance between the server and the client, must be overcome; 2) high network capacities are needed in order to stream game content as video down to the client; and 3) processing delays at the cloud gaming server need to be minimized in order for the game to be maintained, rendered and streamed to the client effectively for playing. Research and development required to overcome these challenges needs cloud gaming testbeds that allow identification of performance bottlenecks and exploration of possible solutions.
Currently, several commercial cloud gaming systems, such
as OnLive and StreamMyGame have been used for cloud
gaming research. Although these commercial services can
be readily accessed, their technologies are proprietary, providing no way for researchers to access their code. This
makes it difficult for researchers to explore new technologies in cloud-based gaming, such as latency compensation
techniques, and makes it difficult for game developers to
test their games for suitability for cloud-based deployment.
While GamingAnywhere provides a complete open source
cloud gaming system, it remains completely separated from
the game itself, not supporting integration and simultaneous
exploration of game code and the cloud system.
In order to provide a more flexible and easily accessed platform for cloud gaming researchers and game developers, we present Uniquitous, a cloud gaming system implemented using Unity. Unity is a cross-platform game creation system with a game engine and integrated development environment. Uniquitous blends seamlessly with Unity, making it especially convenient for Unity developers, one of the largest and most active developer communities in the world - the Unity community increased from 1 million registered developers in 2012 to 2.5 million in 2014, with approximately 600,000 active monthly4.
Uniquitous allows modification and configuration of internal cloud gaming structures,
such as frame rate, image quality, image resolution and audio quality, in order to explore
system bottlenecks and meet different client-server requirements. In addition to system
modifications, by being in Unity, Uniquitous enables game content adjustments for further
exploring the relationship between game content and cloud gaming performance. For example,
game objects can be adjusted to study the effect of scene complexity on network bitrates,
or camera settings can be altered to study the effect of perspective on cloud gaming frame
rates.
Uniquitous, shown in Figure 1, is composed of three entities: Unity Project, Uniquitous Server and Uniquitous Thin Client. The Uniquitous Server and the Uniquitous Thin Client run on two separate computers connected by an Internet connection while the Unity Project runs on the same computer as the Uniquitous Server.
Figure 1 shows three types of data flows in Uniquitous,
illustrated with different shades/colors: the red image data
flow carries data for the game frames; the green
audio data flow carries data for the game audio;
and the blue input data flow carries data for user input. Flows within components on the same machine are
represented with dashed lines while flows across the network
are shown with solid lines. Implementation details for each component are discussed in Implementation Section
in the thesis, which you can find on Download page.
Figure 1. Uniquitous Architecture.