Gamelets - Multiplayer Mobile Games With Distributed Micro-Clouds
Gamelets - Multiplayer Mobile Games With Distributed Micro-Clouds
I. I NTRODUCTION
Cloud computing conventionally follows three fundamental
models, Infrastructure as a Service(IaaS) , Platform as a
Service (PaaS) and Software as a Service (SaaS). At present,
although it is still a relatively young, cloud computing has
proven to be a very welcomed system, with revenue from
Software-as-a-Service (SaaS) alone reached an astonishing
$14.5 billion in 2012 [3] and forecasted to grow five times
faster than traditional software packages [4].
Lately games have also started to make an appearance
into the cloud scene with Games on Demand (GoD) which
has tapped onto the SaaS type of cloud technology. A cloud
gaming system must collect a players actions, transmit them
to the cloud server, process the action, render the results,
encode the resulting changes to the game world, compress,
and stream the video (game scenes) back to the player. To
ensure interactivity, all of these serial operations must happen
within milliseconds. Intuitively, this amount of time, which
is defined as interaction delay, must be kept as short as
possible in order to provide a rich Quality of Experience
(QoE) to cloud game players. This latency should be less than
100ms for FPS games, 500ms for RPG games and 1000ms
for RTS games [5]. This makes cloud gaming one of the most
challenging multimedia application. There are two distinct
methods used by cloud gaming services in general. In the
first method, the game is played on a virtual machine and
the rendered results are compressed and streamed. In the
second method, streaming is built-in into the game itself.
However, these conventional cloud gaming approaches suffer
from three fundamental issues - latency [5], server scalability
(in terms of bandwidth, computation, memory) and lack of
game data and game knowledge at the client side to use latency
hiding and synchronisation techniques such as Dead-reckoning
[6] and Local Perception Filters [7] for smooth gameplay.
B. Distributed Rendering
Most distributed rendering frameworks build on two primary
modules: the Real-Time Scene Graph (RTSG) [16] and the
Network-Integrated Multimedia Middleware (NMM) [17].
And at present all of the top used game engines (Unity [18],
Unreal [19], RAGE [20] , cryENGINE [21]) do not have
the NMM layer, and do not allow developer access to the
RTSG layer so developers are not able to implement their
own NMM layers. Games today are developed in a way
that they can be rendered at a playable frame rate on the
minimum hardware specifications of the game, so there is little
motivation in investing in developing a distributed rendering
system. Thus, this paradigm of distributed rendering is not
usable if a developer chooses to use a game engine to develop
his game.
Although the RTSG layer of the development architecture
cannot be accessed by game developers developing on game
engines, there still exists a unique workaround catered specifically for the Gamelet. Distributed rendering can still be done
Fig. 10. Background region outside the red box (Non-key region)
Overhead
3ms
5ms
Size
Rendering
Rendering
Rendering
Rendering
full screen
half screen
half screen for another Gamelet
1/6 of the screen
Unno(ceable
Barely
No(ceable
No(ceable
200ms Latency
4
3
2
Very
1
No(ceable
CPU
13%
14%
14%
14%
GPU
81%
37%
38%
26%
120ms Latency
No dierence