Koekepan: Minecraft as a Research Platform Herman Arnold Engelbrecht Gregor Schiele

Koekepan: Minecraft as a Research Platform
Herman Arnold Engelbrecht
Gregor Schiele
Dept. of Electrical and Electronic Engineering
Stellenbosch University, Stellenbosch, South Africa
Email: [email protected]
DERI, National University of Ireland
Galway, Ireland
Email: [email protected]
Abstract—Massive Multi-user Virtual Environment (MMVE)
research is typically evaluated using traces obtained in emulated
environments. Evaluation results obtained using commercially
successful MMVEs , such as Minecraft, could aid industry when
considering the adoption of newly published MMVE techniques
or alternate architectures. In this paper we present our ongoing
work in extending Minecraft to become a research platform. By
modifying Minecraft on different layers and functional areas, we
demonstrate how Minecraft’s single server/client architecture can
be reconfigured into either a distributed server/client architecture
or a peer-to-peer architecture. This is achieved without modifying
the Minecraft client and with minimal modification of the server.
Massively Multi-user Virtual Environments (MMVEs) are
an important networked games research area for topics like
e.g. networking and communication, distributed data management, consistency and persistency. Evaluating the performance
of novel MMVE techniques using real-world experiments
requires either the development of a custom MMVE from
scratch, or the modification of an existing MMVE, as well
as – additionally – a large user base of thousands of users.
Developing an MMVE is expensive and time-consuming,
while modifying an existing MMVE implies access to the
software code, which is difficult to obtain from commercial
entities. Obtaining a large user base is even more difficult since
it requires a robust implementation of an interesting game.
Therefore, evaluations are typically performed in simulated
MMVEs using user traces obtained from real MMVEs [4].
This restricts the significance and quality of obtained results.
Our goal is to solve this problem by allowing researchers
to use an existing and well established game platform to
perform MMVE research. We chose Minecraft as the basis
of this platform. Minecraft is a popular networked game that
allows for the modification (but not redistribution) of the
client and server software. Server plugins can be developed
for Minecraft and may be redistributed. In this demo we
present Koekepan, our ongoing work in extending Minecraft
to become a research platform. Such a platform allows MMVE
researchers to leverage the large Minecraft community when
performing experiments using a real MMVE, without the effort
of developing an MMVE from scratch.
This paper is organised as follows: Section II discusses
MMVE platforms that have been used for real-world experiments, followed by some Minecraft background in Section III.
In Section IV the architecture of Koekepan is described
while Section V explains how Koekepan will be demoed,
e.g. by showing how it is configured as either a distributed
server/client architecture or a P2P architecture. We conclude
and discuss future work in Section VI.
A number of research platforms that use a real MMVE
have been developed. Bharambe et al. use Quake 3 (a FirstPerson Shooter) to develop Donnybrook, which uses a P2P
architecture and mainly focuses on limiting updates sent between peers, while not allowing modification of the VE [5].
P2P SecondLife replaces the C/S architecture of SecondLife
(SL) with a P2P architecture based on Kad and investigates
the consistency, persistence and scalability of P2P SL [6].
Although the platform is based on a real MMVE, the experimental evaluation was performed using emulated clients with
object and avatar traces collected from SL. OpenSimulator [7]
is an open source MMVE framework that is most related to our
work. The framework is designed to be easily extensible, can
be used to simulate virtual environments similar to SL, and can
be accessed with the regular SL clients. OpenSimulator is built
on the premise that the VE is partitioned into regions using
zoning [8]. Our Minecraft research platform allows researches
more flexibility in configuring the MMVE network architecture
and distributing the VE, and we plan to publish Koekepan as
open source software.
A. Minecraft Background
Minecraft is a sandbox construction game [9]. The game
involves players placing and breaking various types of blocks
in a three-dimensional environment that consists completely
of blocks. The player controls an avatar that can break and
place blocks on multi-player servers and single-player worlds
across multiple game modes. The Minecraft VE is divided into
chunks, which are the smallest data structure used to store and
distribute the landscape of the VE. Chunks are columns with
a length and width of 16 blocks and a height of 256 blocks.
Minecraft differs from most commercial MMOGs since the
whole VE is modifiable by the users. It uses a C/S architecture
that is limited to using multiple cores on a single machine [9].
The communication protocol of Minecraft is well-known and
documented [10].
B. Minecraft Server Clone: Bukkit
The Minecraft software is written in Java, which has
enabled Minecraft enthusiasts to decompile and de-obfuscate
the software, and has led to the establishment of a large
”modding” community. A number of open source server clones
Fig. 1.
Network architecture
have been created that are mostly compatible with the native
Minecraft client [9]. One of the more popular and mature
server clones is Bukkit [11]. The Bukkit API allows for the development of separate server plugins. Bukkit introduced eventbased software hooks into the native Minecraft server code that
allow third-party plugins to be notified of events processed by
the Minecraft server (such as users connecting/disconnecting,
entities being created/destroyed, blocks being placed/broken).
Fig. 1 illustrates the architecture of Koekepan, our system
used to transform Minecraft into a research platform. Our
architecture is similar to other proposed distributed architectures [8], [12], [13], and consists of four software components:
the Minecraft server clone (Bukkit), the unmodified Minecraft
client, a client proxy and Augeo, a server plugin for Bukkit.
Since the Bukkit server and Augeo plugin will always be
executed on the same machine, we refer to the combined
component as a server node. Keeping the components of
Koekepan separate allow for the modification of Minecraft on
different layers and functional areas. For example, the proxy
gives full control of the networking layer allowing for rerouting of network traffic between the server and client, for
rewriting of packets, for bridging of the Minecraft protocol
and flexibility in configuring the network architecture. On
the application layer, the server plugin gives a convenient
abstraction if a researcher wants to replace a specific functional
area of the MMVE, such as the migration strategy, the area of
interest management, or the partitioning of the VE.
Distributing the Minecraft VE to either a distributed server
cluster or a peer-to-peer architecture, requires a network
topology for communication between server nodes. We use
a self-organising P2P overlay for the server network topology,
since it allows server nodes to be easily added and removed.
Our current implementation uses zoning [8] to partition the
VE into master zones, representing the authoritative version
of that region of the VE. Each server node is responsible
for the hosting of a single master zone , representing the
authoritative version of that region of the VE. Each server
node is responsible for the hosting of a single master zone
i.e. for handling the event received from player entities within
its master zone and for generating state updates for nonplayer entities within its zone. This allows for an arbitrarily
large VE to be hosted by adding more server nodes. Dynamic
load balancing of the server nodes can be performed by
Fig. 2.
Koekepan architecture configurations
dynamically altering the geometry of the zones. If a node
becomes overloaded the size of the zone can be reduced and
the users migrated to nodes hosting the neighbouring zones
in the VE. When a client connection is migrated between
server nodes, the proxy prevents server/client communication
from being interrupted. In essence, a server node regards a
connection from a proxy as a normal client connection while
the client regards its proxy as the single server to which it is
always connected. Since the P2P overlay require the use of a
bootstrap node, we use the same node as a directory server
(or lobby) for client connections to be redirected to the master
node hosting the VE region in which the client’s avatar exists.
In our demonstration we plan to show to the networked
games community how they can use Koekepan for their
research work. To do so we showcase a comparison of different
system distribution architectures, how to realise them starting
from the research idea all the way to the implementation, and
how to do performance measurements.
The Koekepan architecture can be configured as either a
P2P or a distributed server/client architecture. This flexibility
means researchers using Minecraft for performing real-world
experiments, are not limited to a specific MMVE architecture.
Augeo and the proxy also allow researchers to log activities
and messages on all the different layers of the architecture,
which is useful for evaluations.
Since dynamic partitioning of the VE has not yet been implemented, the system demonstration uses manual partitioning
of the Minecraft VE into rectangular zones. The rectangular
zones have been calculated beforehand to form a 3×3 grid of
neighboring master zones and the player’s avatar is prevented
from leaving this predefined region in the VE. Users can join
by connecting to the directory server via a proxy. Users are
able to modify the VE by placing and destroying blocks, and
the state of the VE is kept consistent amongst the master
zones. Both player and non-player entity migration have been
successfully demonstrated. It is possible to add new server
nodes to the server cluster while clients are connected to
Minecraft. The users can navigate within the VE, enter the
new zones added as a result of new master nodes joining the
server cluster, and be migrated to those server nodes.
To present a consistent view of the VE to the client, state
updates regarding neighboring master zones need to be sent
to the client when a client’s area of interest is not wholly
within the master zone. This problem is usually solved using
spatial partitioning [6] by having the proxy make simultaneous
connections to all server nodes within the client’s area of
interest. The Koekepan architecture allows us to experiment
with mirroring of entities outside of the master zone, but within
the client’s area of interest [14], [15]. Mirroring involves a
master server replicating the state within the master zone to
server nodes hosting the neighboring zones.
A. Peer-to-Peer Configuration
Fig. 2(a) shows that, by each peer executing the client,
proxy and Augeo-enabled Minecraft server on the same machine, a P2P MMVE architecture can be configured. One of
the peers is chosen beforehand to fulfill the role of bootstrap
node and directory server. Apart from the predetermined zone
partitioning, the IP address of the bootstrap node is the only
information initially known by joining peers. The server node
on each peer will establish connections to the proxies being
executed by peers that are currently within the master zone
hosted by the server node. The client software is directly connected to the proxy, and the proxy will establish a connection
to the peer hosting the master zone in which the client’s avatar
currently resides. Each peer can measure the additional the
network traffic, processing and memory usage as a result of
donating resources for hosting a portion of the MMVE in a
P2P architecture.
and server allows for flexibility in configuring the MMVE network architecture. This is done without modifying the existing
Minecraft client, with minimal modification to the existing
Bukkit server and allows for server nodes to be added even
while clients are connected to the MMVE. The components of
Koekepan allow for the modification of Minecraft on different
layers and functional areas and also allow researchers to log
activities and messages on all the different layers of the
architecture, which is useful for evaluations.
Future work includes investigating dynamic load balancing
of the distributed server cluster. We are currently investigating
the use of Voronoi diagrams and Quad-trees for dynamically
altering the size of the master zones hosted on server nodes.
Changes to the geometry of the master zones will result
in the migration of environment object and virtual entities
to server nodes with a lower load. In addition we plan to
make the usage of our platform easier for researchers. To
do so we investigate offering standard measurement tools
and deployment examples. We are also currently preparing to
publish the Koekepan sources as open source.
B. Distributed Server/Client Configuration
Fig. 2(b) shows how a distributed server/client architecture is configured, by executing the client and Augeoenabled Minecraft server on different machines. We demonstrate Koekepan’s distributed server/client configuration using
9 instances of Amazon’s EC2 Cloud computing service. Each
instance executes a Bukkit server and the Augeo server plugin
to form a server node. Users can join the Minecraft server
by executing the native Minecraft client and the proxy on
their client machines. The Minecraft client connects locally
to the proxy and the proxy reroutes the client traffic to the
server instance responsible for the master zone in which the
user’s avatar currently resides. When the user migrates from
one master zone to another, the master node instructs the
proxy to establish a connection to the new master node, and
migrates the user’s avatar to the server node. This configuration
removes the single-server limitation of Minecraft by replacing
the server with a distributed server cluster, and distributing
the VE amongst the server node. On the networking layer,
each server node can measure the inter-server traffic caused
by the introduction of a distributed server architecture and
also characterise the distribution and size of packets sent to
the clients.
In this paper we described our approach to transform
Minecraft into a platform for MMVE research. Adding P2P
functionality to the Minecraft server clone (Bukkit) with the
server plugin (Augeo), and inserting a proxy between the client
B. Knutsson, H. Lu, W. Xu, and B. Hopkins, “Peer-topeer support for massively multiplayer games,” in IEEE
INFOCOM 2004, vol. 1. IEEE, pp. 96–107. [Online]. Available:
A. Yahyavi and B. Kemme, “Peer-to-Peer Architectures for Massively
Multiplayer Online Games : A Survey,” ACM Computing Surveys,
vol. 46, no. 1, 2013.
E. Carlini, M. Coppola, and L. Ricci, “Integration of P2P and Clouds
to support Massively Multiuser Virtual Environments,” in 2010 9th
Annual Workshop on Network and Systems Support for Games. IEEE,
Nov. 2010, pp. 1–6.
Y. Guo and A. Iosup, “The Game Trace Archive,” in 2012 11th Annual
Workshop on Network and Systems Support for Games (NetGames),
no. Section III. Venice: IEEE, Nov. 2012, pp. 1–6.
A. Bharambe, J. R. Douceur, J. R. Lorch, T. Moscibroda, J. Pang,
S. Seshan, and X. Zhuang, “Donnybrook: Enabling Large-Scale, HighSpeed, Peer-to-Peer Games,” in Proceedings of the ACM SIGCOMM
2008 conference on Data communication, 2008, pp. 389–400.
S. Kumar, J. Chhugani, C. Kim, D. Kim, A. Nguyen, P. Dubey,
C. Bienia, and Y. Kim, “Second Life and the New Generation of
Virtual Worlds,” Computer, vol. 41, no. 9, pp. 46–53, Sep. 2008.
“OpenSimulator.” [Online]. Available: http://opensimulator.org
W. Cai, P. Xavier, S. J. Turner, and B.-S. Lee, “A scalable architecture
for supporting interactive games on the internet,” in Proc. of the 16th
workshop on Parallel and distributed simulation. IEEE Computer
Society, 2002, pp. 60–67.
“Minecraft.net.” [Online]. Available: https://minecraft.net
“Minecraft Coalition Wiki.” [Online]. Available: http://wiki.vg/Protocol
“Bukkit: Minecraft Server Mod.” [Online]. Available: http://bukkit.org
M. Assiotis and V. Tzanov, “A distributed architecture for MMORPG,”
Proceedings of 5th ACM SIGCOMM workshop on Network and system
support for games NetGames 06, p. 4, 2006.
S. Rieche, K. Wehrle, M. Fouquet, H. Niedermayer, L. Petrak, and
G. Carle, “Peer-to-Peer-Based Infrastructure Support for Massively
Multiplayer Online Games,” 2007 4th IEEE Consumer Communications
and Networking Conference, pp. 763–767, 2007.
E. Cronin, A. R. Kurc, B. Filstrup, and S. Jamin, “An Efficient
Synchronization Mechanism for Mirrored Game Architectures,”
Multimedia Tools and Applications, vol. 23, no. 1, pp. 7–30, 2004.
M. Mauve, S. Fischer, and J. Widmer, “A generic proxy system for
networked computer games,” in Proceedings of the 1st workshop on
Network and system support for games - NETGAMES ’02. New
York, New York, USA: ACM Press, 2002, pp. 25–28.