Bakalářská práce

Server hry pro mnoho hráčů založený na databázi

Massive multiplayer game server based on database

Daniel Mikula
Anotace

Cílem práce bylo navrhnout a implementovat vysoce škálující server jednoduché hry pro mnoho hráčů. Hra vznikla pro otřeby průzkumu technologií vhodných pro nasazení v potenciálním budoucím projektu zapojené firmy. Důraz byl kladen predevším na použití existujících nerelačních databází jako nástrojů na zajištění perzistence herního světa.

Abstract

The goal of the thesis was to design and implement a highly scalable server of a simple massively multiplayer game. The game was conceived as a research tool for evaluation of technologies suitable for deployment in a prospective project of an involved company. Stress was laid on the utilisation of existing non-relational databases as a means for securing the persistence of the game world.

Zadání práce

Hry pro mnoho hráčů implementované s využitím modelu klient-server kladou vysoké nároky na serverovou část. Server musí být schopen obsloužit velké množství hráčů a zároveň musí být schopen zajistit dostatečnou odezvu pro všechny hráče, aby nedocházelo k degradaci kvality či spravedlivosti hry. Má-li existovat pouze jedna instance herního světa sdílená všemi hráči, musí být serverová část hry schopna škálovat přes více procesorů či více výpočetních uzlů. Server by měl být také odolný vůči výpadkům -- ať už udržením dostatečně aktuální a konzistentní podoby herního světa při totálním výpadku, nebo i možností přežít výpadek menšího množství výpočetních uzlů.

V rámci průzkumu možných technologií použitelých pro vývoj vysoce škálujícího serveru umožňujícího masivní zapojení hráčů bude implementováno jádro jednoduché hry. Ta bude umožňovat hráčům pohybovat se po prostorové mapě (dané trojrozměrnou pravidelnou mřížkou), kdy každý hráč obarvuje svou barvou ta políčka, která navštíví. Hráči také mohou vzájemně políčka obchodovat. Jádro hry tak demonstruje dva stěžejní problémy her pro mnoho hráčů: aktualizaci jedné velké datové struktury všemi hráči (aktualizace políček mapy) a provádění atomických operací (výměna vlastněných políček).

Úkolem studenta je navrhnout a implementovat herní server s využitím existujícího databázového systému. Student nejprve prozkoumá existující přístupy a jejich možný přínos s hlediska výkonu, škálovatelnosti a tolerance výpadků (jedná se především o možné zapojení NoSQL databází), následně implementuje jádro hry využívající tuto databázi. S pomocí simulátoru klientské části hry (vzniká v rámci jiné práce) vyhodnotí výkon, škálovatelnost a odolnost na výpadky své implementace.

Práce je vypisována v rámci projektu OP Vpk s názvem Platforma výzkumné a vzdělávací spolupráce FI MU v oblasti zpracování dat, reg. číslo CZ.1.07/2.4.00/12.0049.

Práce zkontrolována:
6. 1. 2012 17:04, doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
Jazyk práce
slovenština slovenština
Termín obhajoby
2. 2. 2012
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
VSJF CERIT-SC ÚVT MU

Oponenti

Ing. Martin Procházka
Hammerware
Autor posudku dosud neidentifikován.

 
Název
Vložil
Vloženo
Práva
Archiv závěrečné práce Daniel Mikula FI B-AP BcAP w6p48/7
Mikula, D.
3. 1. 2012
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.