Unitylla tehty ensimmäisen persoonan roguelike-peli
Taistele vihollisaaltojen läpi ensimmäisen persoonan luolastoryömintäpelissä, kerää aseita ja muokkaa varustusta selviytyäksesi pidempään.
Yleiskuva & tiimityö
Hell Slayer on Unitylla tehty ensimmäisen persoonan roguelike-peli, jonka neljän hengen tiimi toteutti OSAOn kouluprojektina. Päätavoitteemme oli tutkia eri pelimoottoreita ja ohjelmointikieliä samalla, kun työskentelimme tiiminä. Käytimme Trelloa tehtävien hallintaan ja teimme yksityiskohtaisen pelisuunnitteludokumentin (GDD) ideoiden ja työnkulun järjestämiseen. Deadlinena oli saada pelattava demo valmiiksi Vectoramaan, yhteen Suomen suurimmista pelitapahtumista, jossa ihmiset voisivat kokeilla peliä ja antaa palautetta.
Pelikonsepti & suunnittelu
Pääidea oli tehdä luolastoryömintäpeli, jossa pelaajan täytyy selviytyä yhä vaikeammista vihollisaalloista. Toteutimme aseiden keräilyjärjestelmän, jossa jokaisella aseella on omat ominaisuutensa pelin strategisuuden ja kiinnostavuuden lisäämiseksi.
Roolini & haasteet
Päävastuuni olivat pelaajan mallinnus, animaatio ja koodaus sekä vihollisten mallinnus. Kokeilin Mixamo-animaatioita Blenderissä, mikä toimi, mutta kohtasin haasteita esimerkiksi nimeämiskäytännöissä, omien animaatioiden lisäämisessä ja luumuunnosten korjaamisessa. Lopulta tein uusia animaatioita alusta asti käyttäen Mixamoa referenssinä.
Pelaajamallissa oli vain kädet, mutta jälkikäteen ajatellen jalkojen lisääminen olisi voinut parantaa etäisyyden ja liikkeen tuntua, etenkin koska pelaajan näkökulma muuttui nopeuden mukaan.
Mallinsin myös viholliset ja koodasin niiden käyttäytymisen, mukaan lukien piikkipallon ja linnun. Yksi suurimmista haasteista oli vihollisten tilojen hallinta Unityssä. Ratkaisin tämän toteuttamalla skriptipohjaisen state machinen kaikille vihollisille. Se toimi, mutta tilojen vaihtumisen logiikka tuntui aluksi sekavalta. Jälkikäteen ajatellen state machinet ovat yleinen käsite peliohjelmoinnissa, ja paremmat sisäänrakennetut työkalut oman tilanhallinnan tekemiseen esimerkiksi Unityssä olisivat tervetulleita.
Projektin lopputulos & opit
Lopputuloksena tiimimme sai valmiiksi pelaajan asejärjestelmän, pelaajaohjauksen, kaksi vihollistyyppiä ja vihollisaaltojärjestelmän. Osa ominaisuuksista jäi lopullisesta buildista pois aikarajoitteiden ja projektinhallinnan haasteiden vuoksi. Kokemus opetti paljon tiimityöstä, dokumentaatiosta ja suunnittelun tärkeydestä.
| Lajityyppi: | Ensimmäisen persoonan luolastoryömintä |
| Projektin aikajana: | 10.2.2025 - 1.6.2025 |
| Projektin tila: | Prototyyppi |
| Pelimoottori: | Unity 6 |
| Ohjelmointikieli: | C# |
| Tiimin koko: | 4 |
| Pääroolit: | 3D-artisti, animaattori ja vihollisohjelmoija |
| Grafiikkatyökalu: | Blender 5.0.0 |
Tutustu koodiin, lataa työpöytäversio tai pelaa selaimessa