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. I. I NTRODUCTION 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. II. R ELATED W ORK 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. III. BACKGROUND 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). IV. S YSTEM D ESCRIPTION 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. V. S YSTEM D EMONSTRATION 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. R EFERENCES [1] [2] [3] 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. [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] VI. C ONCLUSION AND F UTURE W ORK 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 [15] 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: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1354485 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.
© Copyright 2024