Suorituskykyisen palvelinrungon suunnittelu ja toteutus suuren pelaajamäärän verkkomoninpeliin
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology |
Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Authors
Date
2008
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Tietotekniikan tutkinto-ohjelma
Language
fi
Pages
80
Series
Abstract
Tässä diplomityössä tarkastellaan suorituskykyisen Java-pohjaisen palvelinrungon suunnittelua ja toteutusta suuren pelaajamäärän verkkomoninpeliin. Työssä perehdytään yleisimpiin kuljetuskerroksen protokolliin sekä verkkosiirräntä-, samanaikaisuus- ja synkronointitekniikoihin ja arvioidaan niiden soveltuvuutta palvelinrungon toteutukseen. Arvioiden pohjalta toteutetaan palvelinrunko, joka tarjoaa tehokkaat palvelut viestien samanaikaiseen vastaanottamiseen, käsittelyyn ja lähettämiseen. Työssä esiteltävän palvelinrungon korkea suorituskyky perustuu yksisäikeisen kanavoidun estämättömän verkkosiirrännän ja säievarantopohjaisen tehtävien käsittelyn yhdistämiseen. Pelikohtaisten tehtävien käsittely synkronoidaan käyttäen uudentyyppisistä varattavista luku-kirjoitus-lukoista muodostettua puumaista lukitushierarkiaa. Tämä mahdollistaa tehtävien samanaikaisen käsittelyn oikeassa suoritusjärjestyksessä erittäin pienin estävyyksin. Konseptin toimivuus osoitetaan integroimalla suuren pelaajamäärän mäkihyppypelin pelilogiikka palvelinrungon yhteyteen ja kuormittamalla palvelintoteutusta asiakassovellussimulaattorin luomalla keinotekoisella kuormalla. Työssä havaitaan, että geneerisellä Java-pohjaisella palvelinrungolla pystytään mahdollistamaan pelilogiikan suorituskykyinen käsittely sekä samalla yksinkertaistamaan verkkomoninpelipalvelinten toteutusta huomattavasti. Sovelluskohtaisen ohjelmakoodin synkronointi jää kuitenkin edelleen vaativaksi ja virhealttiiksi tehtäväksi.Description
Supervisor
Saikkonen, HeikkiThesis advisor
Saikkonen, HeikkiKeywords
servers, palvelimet, computer games, tietokonepelit, network input/output, verkkosiirräntä, concurrency, samanaikaisuus, synchronization, synkronointi