Unreal Engine -pelin ja sen taustajärjestelmän toteutus Go-ohjelmointikielellä
Liesjärvi, Sakari (2026)
Liesjärvi, Sakari
2026
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-2026052014489
https://urn.fi/URN:NBN:fi:amk-2026052014489
Tiivistelmä
Tässä opinnäytetyössä suunniteltiin ja toteutettiin pelattava Unreal Engine -peli sekä siihen liitetty verkkopohjainen taustajärjestelmä. Työn tarkoituksena oli muodostaa kokonaisuus, jossa paikallisesti suoritettava peli hyödyntää palvelinpuolen toimintoja käyttäjien tunnistautumiseen, pistetulosten tallentamiseen ja leaderboardin eli tulostaulun näyttämiseen. Työssä keskityttiin erityisesti siihen, miten pelin käyttöliittymä, pelilogiikka, REST-rajapinta ja tietokanta yhdistettiin toimivaksi järjestelmäkokonaisuudeksi. Peli toteutettiin Unreal Engine -pelimoottorilla Blueprint-järjestelmää käyttäen.
Pelistä rakennettiin kolmannen persoonan toimintapeli, jossa pelaaja taistelee jatkuvasti lisääntyviä vihollisia vastaan ja pyrkii keräämään mahdollisimman suuren pistemäärän. Toteutuksessa kehitettiin esimerkiksi pelaajan hyökkäykset, vihollisten käyttäytyminen, vaikeustason jatkuva kasvu, pistelogiikka sekä eri käyttöliittymänäkymät. Pelin ja taustajärjestelmän välinen tiedonsiirto toteutettiin HTTP-pyyntöjen avulla.
Taustajärjestelmä toteutettiin Go-ohjelmointikielellä ja Gin-frameworkilla. Tietojen pysyvään tallentamiseen käytettiin PostgreSQL-tietokantaa Supabase-ympäristössä, ja backend julkaistiin Render-palvelun avulla verkkoon. Backendissä toteutettiin käyttäjähallinta, JWT-pohjainen tunnistautuminen, pistetulosten käsittely, leaderboardin haku sekä kaksi ylläpidollista rajapintatoimintoa. Taustajärjestelmän toimintaa testattiin yksikkötesteillä, joissa tarkistettiin muun muassa endpointtien vastauksia, virhetilanteita ja käyttöoikeuksien hallintaa.
Työn tuloksena syntyi toimiva kokonaisuus, jossa pelaaja voi rekisteröityä, kirjautua sisään, pelata pelisession, tallentaa pistetuloksensa ja tarkastella pelaajien yhteistä tulostaulua. Opinnäytetyö osoittaa, että Unreal Engine -peli voidaan liittää itse toteutettuun Go-pohjaiseen taustajärjestelmään ilman valmista pelialan backend-palvelua. Ratkaisu soveltuu erityisesti tilanteisiin, joissa järjestelmän toimintaa halutaan ymmärtää ja hallita itse.
Pelistä rakennettiin kolmannen persoonan toimintapeli, jossa pelaaja taistelee jatkuvasti lisääntyviä vihollisia vastaan ja pyrkii keräämään mahdollisimman suuren pistemäärän. Toteutuksessa kehitettiin esimerkiksi pelaajan hyökkäykset, vihollisten käyttäytyminen, vaikeustason jatkuva kasvu, pistelogiikka sekä eri käyttöliittymänäkymät. Pelin ja taustajärjestelmän välinen tiedonsiirto toteutettiin HTTP-pyyntöjen avulla.
Taustajärjestelmä toteutettiin Go-ohjelmointikielellä ja Gin-frameworkilla. Tietojen pysyvään tallentamiseen käytettiin PostgreSQL-tietokantaa Supabase-ympäristössä, ja backend julkaistiin Render-palvelun avulla verkkoon. Backendissä toteutettiin käyttäjähallinta, JWT-pohjainen tunnistautuminen, pistetulosten käsittely, leaderboardin haku sekä kaksi ylläpidollista rajapintatoimintoa. Taustajärjestelmän toimintaa testattiin yksikkötesteillä, joissa tarkistettiin muun muassa endpointtien vastauksia, virhetilanteita ja käyttöoikeuksien hallintaa.
Työn tuloksena syntyi toimiva kokonaisuus, jossa pelaaja voi rekisteröityä, kirjautua sisään, pelata pelisession, tallentaa pistetuloksensa ja tarkastella pelaajien yhteistä tulostaulua. Opinnäytetyö osoittaa, että Unreal Engine -peli voidaan liittää itse toteutettuun Go-pohjaiseen taustajärjestelmään ilman valmista pelialan backend-palvelua. Ratkaisu soveltuu erityisesti tilanteisiin, joissa järjestelmän toimintaa halutaan ymmärtää ja hallita itse.
