2D-peli PixiJS-kirjastoa ja Go-ohjelmointikieltä käyttäen
Prittinen, Ville; Lapinoja, Jan-Henrik (2025)
Prittinen, Ville
Lapinoja, Jan-Henrik
2025
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-2025052615997
https://urn.fi/URN:NBN:fi:amk-2025052615997
Tiivistelmä
Opinnäytetyön tavoitteena oli kehittää selainpohjainen 2D-moninpeli, joka jäljittelee klassista Bomberman-peliä. Peli toteutettiin käyttäen PixiJS-kirjastoa grafiikan renderöintiin ja Go-ohjelmointikieltä palvelinratkaisuna. Tämän projektin tavoitteena ei ole ainoastaan toimivan ja viihdyttävän pelin luominen, vaan myös perehtyminen kyseisiin teknologioihin ja niiden soveltamiseen selainpohjaisessa pelikehityksessä.
Kehitysprosessin aikana tehtiin vertailuanalyysi eri Frameworkeistä ja työkaluista, minkä perusteella valittiin PixiJS sen suorituskyvyn ja joustavuuden vuoksi 2D-grafiikan käsittelyssä ja pelikehitykseen sopivien ominaisuuksien vuoksi. Backend toteutettiin Go-ohjelmointikielellä sen tehokkuuden ja reaaliaikaisiin sovelluksiin sopivuuden vuoksi, erityisesti yhdistettynä WebSocket-kommunikaatioon sujuvan moninpelikokemuksen takaamiseksi. Grafiikat luotiin Aseprite-ohjelmalla.
Pelissä toteutettiin keskeiset toiminnallisuudet, kuten hahmojen liikkuminen, pommien asettaminen ja räjähtäminen, tuhottavat ja tuhoutumattomat seinät sekä reaaliaikaisen pelaajien synkronoinnin. Projektissa onnistuttiin toteuttamaan toimiva selainpohjainen moninpeli, joka toimii esimerkkinä reaaliaikaisesta verkkopelistä. Työn tuloksia voidaan hyödyntää pelikehitykseen pohjana vastaaville projekteille.
Kehitysprosessin aikana tehtiin vertailuanalyysi eri Frameworkeistä ja työkaluista, minkä perusteella valittiin PixiJS sen suorituskyvyn ja joustavuuden vuoksi 2D-grafiikan käsittelyssä ja pelikehitykseen sopivien ominaisuuksien vuoksi. Backend toteutettiin Go-ohjelmointikielellä sen tehokkuuden ja reaaliaikaisiin sovelluksiin sopivuuden vuoksi, erityisesti yhdistettynä WebSocket-kommunikaatioon sujuvan moninpelikokemuksen takaamiseksi. Grafiikat luotiin Aseprite-ohjelmalla.
Pelissä toteutettiin keskeiset toiminnallisuudet, kuten hahmojen liikkuminen, pommien asettaminen ja räjähtäminen, tuhottavat ja tuhoutumattomat seinät sekä reaaliaikaisen pelaajien synkronoinnin. Projektissa onnistuttiin toteuttamaan toimiva selainpohjainen moninpeli, joka toimii esimerkkinä reaaliaikaisesta verkkopelistä. Työn tuloksia voidaan hyödyntää pelikehitykseen pohjana vastaaville projekteille.