Reaaliaikaisen moninpelijärjestelmän suunnittelu ja toteutus Android-käyttöjärjestelmälle
Pyylampi, Tero Antero (2015)
Pyylampi, Tero Antero
2015
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2015-12-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201511251786
https://urn.fi/URN:NBN:fi:tty-201511251786
Tiivistelmä
Reaaliaikaisesti muiden pelaajien kanssa pelattavat moninpelit ovat yleistyneet mobiilipelimaailmassa merkittävästi. Tähän kehitykseen on osaltaan vaikuttanut niin mobiililaitteiden ja -käyttöjärjestelmien kuin langattomien verkkoyhteyksienkin tekninen kehitys, mutta suurin merkitys lienee kuitenkin kuluttajien eli pelaajien kasvaneilla tarpeilla. Ovathan internetin yli pelattavat verkkopelit olleet arkipäivää PC- ja konsolimaailmassa jo lähes kahden vuosikymmenen ajan.
Olemassaolevia järjestelmiä moninpelien toteuttamiseksi mobiililaitteille on saatavilla toistaiseksi varsin niukasti, ja niiden käyttöön saattaa liittyä joitakin rajoituksia esimerkiksi käyttäjämäärien tai saatavuuden suhteen. Lisäksi järjestelmien perustuessa suljettuun lähdekoodiin, olemassaolevien virheiden korjaaminen tai toimintojen lisääminen on käytännössä mahdotonta.
Tässä diplomityössä tutkitaan Hyperkani Oy -yrityksen tällä hetkellä hyödyntämän Google Play Games Services SDK -moninpelirajapinnan korvaamista itse toteutetulla järjestelmällä. Ratkaisun toiminta perustuu vertaisverkkoihin sekä avoimen lähdekoodin Libnice-kirjastoon, eikä se ole riippuvainen kolmannen osapuolen rajoitetusti saatavilla olevista komponenteista. Tämä mahdollistaa järjestelmän hyödyntämisen myös sellaisilla maantieteellisillä alueilla, joissa Google Play -palvelun toiminnot eivät ole saatavilla.
Vaikka järjestelmä toimiikin suunnitellusti, sitä ei kuitenkaan toistaiseksi otettu yrityksessä käyttöön. Testausprosessin aikana havaittiin suuren osan mobiiliverkkojen käyttäjistä sijaitsevan varsin rajoittavien osoitteenmuunnosten tai palomuurien takana, jolloin suorien vertaisverkkoyhteyksien muodostaminen ei ollut sellaisenaan mahdollista. Ratkaisu tukee erillisen relay-palvelimen käyttämistä tällaisten tahojen väliseen yhteydenmuodostukseen, mutta koska lähes kaikki yhteydet joudutaan muodostamaan tämän välityspalvelimen kautta, ei ratkaisu kelpaa käytössä olevan järjestelmän korvaajaksi ilman kehittyneempää yhteydenmuodostusalgoritmia.
Olemassaolevia järjestelmiä moninpelien toteuttamiseksi mobiililaitteille on saatavilla toistaiseksi varsin niukasti, ja niiden käyttöön saattaa liittyä joitakin rajoituksia esimerkiksi käyttäjämäärien tai saatavuuden suhteen. Lisäksi järjestelmien perustuessa suljettuun lähdekoodiin, olemassaolevien virheiden korjaaminen tai toimintojen lisääminen on käytännössä mahdotonta.
Tässä diplomityössä tutkitaan Hyperkani Oy -yrityksen tällä hetkellä hyödyntämän Google Play Games Services SDK -moninpelirajapinnan korvaamista itse toteutetulla järjestelmällä. Ratkaisun toiminta perustuu vertaisverkkoihin sekä avoimen lähdekoodin Libnice-kirjastoon, eikä se ole riippuvainen kolmannen osapuolen rajoitetusti saatavilla olevista komponenteista. Tämä mahdollistaa järjestelmän hyödyntämisen myös sellaisilla maantieteellisillä alueilla, joissa Google Play -palvelun toiminnot eivät ole saatavilla.
Vaikka järjestelmä toimiikin suunnitellusti, sitä ei kuitenkaan toistaiseksi otettu yrityksessä käyttöön. Testausprosessin aikana havaittiin suuren osan mobiiliverkkojen käyttäjistä sijaitsevan varsin rajoittavien osoitteenmuunnosten tai palomuurien takana, jolloin suorien vertaisverkkoyhteyksien muodostaminen ei ollut sellaisenaan mahdollista. Ratkaisu tukee erillisen relay-palvelimen käyttämistä tällaisten tahojen väliseen yhteydenmuodostukseen, mutta koska lähes kaikki yhteydet joudutaan muodostamaan tämän välityspalvelimen kautta, ei ratkaisu kelpaa käytössä olevan järjestelmän korvaajaksi ilman kehittyneempää yhteydenmuodostusalgoritmia.