VAST : a scalable spatial publish and subscribe system integrated with Minecraft

Smith, Miguel (2020-03)

Thesis (MEng)--Stellenbosch University, 2020.

Thesis

ENGLISH ABSTRACT: With the world becoming more connected by the day, the need for modern massively multi-user virtual environments (MMVEs) to be capable of hosting an increasing number of players is vital. Unless large sums of money are spent, current system architectures limit how many players can join a single system due to bandwidth and computational strains that arise from interactions between players and the virtual world. This thesis proposes using VAST, a spatial publish/subscribe system, to handle the update and event dissemination of MMVEs in order to make it more scalable. VAST allows clients within the system to efficiently send and receive messages to each other in a scalable way. It achieves this with a multi-layered system that handles different aspects of the system. The Voronoi-overlay network handles the network connections of different VAST nodes to each other by using a dynamic Voronoi diagram to determine a node’s neighbours. It only connects to these neighbours, allowing it to be a part of the system as a whole whilst only interacting with a part of it. This layer is shown to have scalable characteristics, handling up to 1000 nodes with response times of under 25ms. The spatial publish and subscribe system is handled by the Voronoi-spatial overlay. This layer uses a Voronoi diagram to section the virtual world into regions, each one handled by a single VAST node. Clients connect to the world and are assigned to a node depending on which region their joining location falls under. These VAST nodes are dynamic, allowing for load balancing to occur should one node become overloaded. The layer showed latencies of 3ms and a drift distance of under 0.0024 for 350 clients. An entry server handles client logins and packet routing. Minecraft is used to test the real world applicability of VAST to an MMVE by allowing VAST to handle its update and event dissemination. The Koekepan project provides client and server proxies that allow Minecraft packets to be converted into packets that can be published to VAST. The system is shown to be able to reduce the amount of packets sent in a system containing two Minecraft clients by 33.52% when using a spatial publish/subscribe system to disseminate updates. The system is shown to be capable of handling over 350 simulated clients on a single system without any decrease in performance.

AFRIKAANSE OPSOMMING: Met die wêreld se toenemende elektroniese verbindings raak die behoefte al hoe groter vir moderne, massieve multigebruiker virtuele omgewings (MMVEs) om meer gebruikers te kan huisves. Tensy groot bedrae geld spandeer word, beperk die huidige stelselargitektuur die aantal gebruikers wat by ’n enkele stelsel kan aansluit as gevolg van beperkte bandwydte en berekeningsvereistes wat onstaan a.g.v. die interaksies tussen gebruikers en die virtuele omgewing. Om die virtuele omgewing meer skaleerbaar te maak, word daar in hierdie tesis voorgestel dat VAST, a ruimtelike publikasie/subskripsie stelsel, gebruik word om vir die verspreiding van opdaterings- en gebeure-boodskappe. VAST stel kliënte in die stelsel in staat om hierdie boodskappe effektief aan mekaar te stuur en te ontvang op ’n skaleerbare manier. Dit word bereik deur die gebruik van ’n multivlak stelsel wat verskillende aspekte van die stelsel hanteer. Die Voronoi-netwerklaag hanteer die netwerk konneksies van verskillende VAST nodusse aan hul bure deur ’n dinamiese Voronoi diagram te gebruik om nodusse se bure te bepaal. ’n VAST nodus konnekteer slegs aan sy bure, wat dit toelaat om deel te vorm van totale stelsel terwyl dit slegs kommunikeer met ’n gedeelte van die virtuele omgewing. Ons toon dat die Voronoi-netwerklaag skaleerbaar is, deur tot en met 1000 nodusse te hanteer met responstye van minder as 25ms. Die ruimtelike publiseer/subskripsie stelsel work hanteer deur ’n aparte ruimtelike Voronoi-laag. Die ruitemlike laag gebruik ’n Voronoi-diagram om die virtuele omgewing te verdeel in verskillende streke, waar elke streek beheer word deur ’n enkele VAST nodus. Kliënte konnekteer aan die virtuele omgewing en, afhangende van die streek waarin die klient hom bevind, word dit toegewys aan die VAST nodus wat daardie streek beheer. Hierdie VAST nodusse is dinamies, wat toelaat vir balansering van die las van die VAST nodusse indien ’n nodus oorlaai word. Die ruimtelike laag toon vertragings van 3ms en ’n dryfafstand van onder 0.0024 wanneer 350 kliënte gelyktydig konnekteerd is aan die stelsel. ’n Toegangsbediener word gebruik om aantekening van kliente te hanteer asook roetering van netwerk pakkies. Om die werklike toepaslikheid van VAST op ’n MMVE te toets word daar van Minecraft gebruik gemaak. VAST is verantwoordelik vir die verspreiding van opdaterings- en gebeure-boodskappe.Die Koekepan-projek bied instaanbedieners vir beide die Minecraft kliënte en bedieners. Hierdie instaanbedieners omskep die Minecraft-pakkies in pakkies wat deur VAST gepubliseer kan word. Daar word gewys dat die VAST stelsel die aantal Minecraft pakkies wat versprei moet word kan verminder met 33.52%, wanneer twee Minecraft-kliënte konnekteer is aan die virtuele omgewing. Daar word ook getoon dat die stelsel meer as 350 gesimuleerde Minecraft kliënte kan hanteer op ’n enkele stelsels sonder om ’n verlies in prestasie.

Please refer to this item in SUNScholar by using the following persistent URL: http://hdl.handle.net/10019.1/108007
This item appears in the following collections: