WebGL-moninpeli JavaScriptillä
Mattila, Tarmo (2019)
Mattila, Tarmo
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019112722887
https://urn.fi/URN:NBN:fi:amk-2019112722887
Tiivistelmä
Insinöörityön tarkoituksena oli toteuttaa mahdollisimman yksinkertainen mutta toimiva reaaliaikainen WebGL-moninpeli JavaScriptillä käyttäen hyödyksi Node.js-palvelinta sekä Socket.io-kirjastoa reaaliaikaiseen kommunikaatioon palvelimen ja asiakkaan välillä.
Tavoitteena oli toteuttaa WebGL-ominaisuuksia hyödyntävä moninpeli, jossa ei pystyisi huijaamaan ja joka toimisi tavallisella verkkoselaimella sekä pöytäkoneilla että mobiililaitteilla niin, että pelaaminen olisi sulavaa käyttäjälle.
Peli toteutettiin client-server-tekniikalla, jossa palvelin hallitsee kaikkea, mitä pelaaja voi tehdä, jotta huijausmahdollisuutta ei olisi. Peliä kehitettäessä selvisi, että Node.js-palvelin ja Socket.io ovat todella helppo tapa toteuttaa reaaliaikaisia web-sovelluksia JavaScriptillä.
Lopputuloksena syntyi jokseenkin toimiva kokonaisuus, jossa ei ollut mahdollista huijata, ja pelimekaniikka toimi mutta jonka moninpeliominaisuus ei toiminut täysin sulavasti. Lisää työtä vaaditaan, jotta pelattavuus paranisi ja peliä olisi mukavampi pelata.
Projektissa opittiin, että verkkomoninpelien tekeminen on astetta haastavampaa, vaikka siitä tekisi mahdollisimman yksinkertaisen. Työssä havaittiin, että toimivan kokonaisuuden aikaansaamiseen menee paljon aikaa pelkästään pelikokemuksen saamiseksi sulavaksi sekä siihen, että pelaajan näkemä maailma vastaisi sitä, mitä palvelimella on.
Tavoitteena oli toteuttaa WebGL-ominaisuuksia hyödyntävä moninpeli, jossa ei pystyisi huijaamaan ja joka toimisi tavallisella verkkoselaimella sekä pöytäkoneilla että mobiililaitteilla niin, että pelaaminen olisi sulavaa käyttäjälle.
Peli toteutettiin client-server-tekniikalla, jossa palvelin hallitsee kaikkea, mitä pelaaja voi tehdä, jotta huijausmahdollisuutta ei olisi. Peliä kehitettäessä selvisi, että Node.js-palvelin ja Socket.io ovat todella helppo tapa toteuttaa reaaliaikaisia web-sovelluksia JavaScriptillä.
Lopputuloksena syntyi jokseenkin toimiva kokonaisuus, jossa ei ollut mahdollista huijata, ja pelimekaniikka toimi mutta jonka moninpeliominaisuus ei toiminut täysin sulavasti. Lisää työtä vaaditaan, jotta pelattavuus paranisi ja peliä olisi mukavampi pelata.
Projektissa opittiin, että verkkomoninpelien tekeminen on astetta haastavampaa, vaikka siitä tekisi mahdollisimman yksinkertaisen. Työssä havaittiin, että toimivan kokonaisuuden aikaansaamiseen menee paljon aikaa pelkästään pelikokemuksen saamiseksi sulavaksi sekä siihen, että pelaajan näkemä maailma vastaisi sitä, mitä palvelimella on.