Kilpailullisen 2D-verkkopelin kehitys
Methuen, Jonathan (2026)
Methuen, Jonathan
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-202604015501
https://urn.fi/URN:NBN:fi:amk-202604015501
Tiivistelmä
Kerron tässä dokumentissa yleistasoisen kuvauksen siitä, kuinka kehitin kilpailullisen 2D-verkkopelin Unity-pelimoottoria käyttäen. Kerron millaisia valintoja tein pelin kehityksen aikana ja miten päädyin niihin. Kerron muutamista kehityskaaren hankaluuksista ja siitä, miten ratkaisin ne. Selitän, miten pelin käyttöliittymä toimii ja miten se kommunikoi projektin backendin kanssa. Kerron myös hieman projektin jatkosuunnitelmista.
Projektin tavoitteena oli kehittää yksinkertainen videopeli, jota olisi hyvä pelata peliohjaimella. Projektin laajuus kuitenkin kasvoi kehityksen aikana ja päädyin luomaan verkkopelin, jossa on myös pidemmälle kehitettyjä ominaisuuksia. Pelaajat voivat kirjautua peliin sisälle projektin verkkosivustolla. Kun pelaaja kirjautuu sisälle, hänelle luodaan oma profiili ja hänen saavutuksensa pelissä tallennetaan projektin Amazon Web Services (AWS) -pilvipalvelun DynamoDB-tietokantaan. Pelaajien parhaat tulokset myös jaetaan pelin online-tulostaulukoissa. Toinen projektin tavoitteista oli tehdä pelistä hyvännäköinen ja -kuuloinen. Tavoitteena oli myös tehdä pelistä ja sen käyttöliittymästä mahdollisimman helposti ymmärrettäviä, jotta pelaaja voisi oppia pelaamaan peliä käyttöliittymän ohjeistuksen avulla.
Pelin kehitys alkoi hyvin yksinkertaisten mekaniikkojen luomisesta. Pelin perusidea on jatkuvasti pyörivän kapean suorakaiteen muotoisen kissahahmon liikuttaminen jokaisen pelikentän lähtöruudusta maaliin törmäämättä esteisiin. Kun olin saanut pelin perusmekaniikat, -grafiikat ja -äänet hyvään kuntoon ja muutamia pelikenttiä rakennettua, kehitin peliin uusia monimutkaisempia ominaisuuksia.
Projektin aikana yksi ongelma aiheutui siitä, että Unity-pelimoottorin toiminta perustuu pohjimmiltaan liukulukuihin. Koska liukuluvuissa on rajallinen tarkkuus, pelaajan suoritusta pelikentässä ei voi toistaa tarpeeksi tarkasti Unityssä tallentamalla pelkästään pelaajan alkuperäiset syötteet. Se pakotti minut lopettamaan tämän uudelleentoistosysteemin jatkokehittämisen. Uudelleentoistosysteemi siis tallentaa pelikentän aikana pelaajan antamat pelihahmoa liikuttavat syötteet, jotta pelaaja voi jälkeenpäin katsoa, miten hän pelasi kentän läpi.
Projektin tavoitteena oli kehittää yksinkertainen videopeli, jota olisi hyvä pelata peliohjaimella. Projektin laajuus kuitenkin kasvoi kehityksen aikana ja päädyin luomaan verkkopelin, jossa on myös pidemmälle kehitettyjä ominaisuuksia. Pelaajat voivat kirjautua peliin sisälle projektin verkkosivustolla. Kun pelaaja kirjautuu sisälle, hänelle luodaan oma profiili ja hänen saavutuksensa pelissä tallennetaan projektin Amazon Web Services (AWS) -pilvipalvelun DynamoDB-tietokantaan. Pelaajien parhaat tulokset myös jaetaan pelin online-tulostaulukoissa. Toinen projektin tavoitteista oli tehdä pelistä hyvännäköinen ja -kuuloinen. Tavoitteena oli myös tehdä pelistä ja sen käyttöliittymästä mahdollisimman helposti ymmärrettäviä, jotta pelaaja voisi oppia pelaamaan peliä käyttöliittymän ohjeistuksen avulla.
Pelin kehitys alkoi hyvin yksinkertaisten mekaniikkojen luomisesta. Pelin perusidea on jatkuvasti pyörivän kapean suorakaiteen muotoisen kissahahmon liikuttaminen jokaisen pelikentän lähtöruudusta maaliin törmäämättä esteisiin. Kun olin saanut pelin perusmekaniikat, -grafiikat ja -äänet hyvään kuntoon ja muutamia pelikenttiä rakennettua, kehitin peliin uusia monimutkaisempia ominaisuuksia.
Projektin aikana yksi ongelma aiheutui siitä, että Unity-pelimoottorin toiminta perustuu pohjimmiltaan liukulukuihin. Koska liukuluvuissa on rajallinen tarkkuus, pelaajan suoritusta pelikentässä ei voi toistaa tarpeeksi tarkasti Unityssä tallentamalla pelkästään pelaajan alkuperäiset syötteet. Se pakotti minut lopettamaan tämän uudelleentoistosysteemin jatkokehittämisen. Uudelleentoistosysteemi siis tallentaa pelikentän aikana pelaajan antamat pelihahmoa liikuttavat syötteet, jotta pelaaja voi jälkeenpäin katsoa, miten hän pelasi kentän läpi.
