Siirry suoraan sisältöön

Syventävä pelikehitys (5 op)

Toteutuksen tunnus: LTD6052-3002

Toteutuksen perustiedot


Ilmoittautumisaika

01.10.2023 - 31.10.2023

Ajoitus

08.01.2024 - 10.03.2024

Opintopistemäärä

5 op

Toteutustapa

Lähiopetus

Yksikkö

Tradenomi / Tietojenkäsittely (DD)

Toimipiste

Wärtsilä-kampus Karjalankatu 3 (WÄR)

Opetuskielet

  • Suomi

Paikat

5 - 10

Koulutus

  • Tietojenkäsittelyn koulutus

Opettaja

  • Anssi Gröhn

Vastuuopettaja

Anssi Gröhn

Ryhmät

  • DTNS21
    Tradenomi (AMK), Tietojenkäsittely, päivä, syksy, 2021

Tavoitteet

Tavoitteena on syventää tietoja ja taitoja pelikehityksessä Unreal Engine 4:n parissa. Otat haltuun uudelleenkäytettävien komponenttien kehittämisen C++:n avulla. Opintojakson aikana toteutat pelikonseptista prototyypin, joka sisältää erilaisia kenttiä. Peliprototyyppiä rakennetaan viikoittain eteenpäin palasissa, ja opintojakson päätyttyä pääset tekemään pelattavuustestauksen vastaaviin prototyyppeihin, sekä antamaan (ja vastaanottamaan) rakentavaa vertaispalautetta.

Sisältö

Pelisuunnittelu ja pelin rakentaminen:

Pelikonsepti ja työkalut
Unreal Engine 4:n pelien arkkitehtuuri
Kenttäsuunnittelu
Pelikokemuksen syventäminen pelisuunnittelulla
Merkityksellisen pelattavuustestauspalautteen antaminen ja saaminen
Buildien pelitestaus
Pelihahmon rakentaminen, liikuttelu ja animaatioiden hyödyntäminen
Pelihahmon liikkeen rajaaminen
Animaatiojaksojen tekeminen ja linkittäminen
Buildien rakentaminen monelle julkaisualustalle

Ohjelmointi:

Actor-pohjaisten kantaluokkien teko C++:lla
Blueprinttien periminen omista C++-luokista
Triggeröintialueiden hyödyntäminen C++:lla
Pelikomponettien välisten tapahtumaketjujen rakentaminen C++:lla
Ajastinten käyttö C++:lla
Unreal Engine 4:n lokijärjestelmän käyttö
Unreal Engine 4:n merkkijonotyypit ja niiden väliset muunnokset
Massiivisen actormäärän luonti dynaamisesti C++:lla ja niiden hallinta
Actoreiden hakeminen skenestä C++:lla
Pelitilan säilyttäminen Unreal Enginessä kenttien välillä
Pelitilanteen tallentaminen ja lataaminen
Olio-ohjelmoinnin viestintämekanismit ja suunnittelumallit

Opetusmenetelmät

Osaat hyödyntää Gameplay Frameworkin eri luokkia ohjelmoinnissa oikeaoppisesti
Osaat hyödyntää UE4:n lokimekanismia C++-koodissa
Osaat luoda C++-kieltä käyttäen Character-tyyppisen oman pelihahmon peliin
Osaat luoda kenttiä graafisten assettien avulla
Osaat luoda pelistä buildit ja merkitä ne tunnistettavasti
Osaat luoda toiminnallisia riippuvuuksia eri actoreiden välille
Osaat ohjelmoida C++:lla Actorin
Osaat ohjelmoida C++:lla Actoreille toiminnallisuutta
Osaat muodostaa C++:lla toteutusta Actor-luokasta Blueprintin laajentaen sen ominaisuuksia
Osaat ohjelmoida C++:lla Actoreille komponentteja
Osaat ohjelmoida C++:lla komponenteille toiminnallisuutta
Osaat hakea C++:lla actoreiden komponentteja ja asettaa niiden ominaisuuksia
Osaat tuottaa C++:lla luotuun Actoriin editorista muokattavia ominaisuuksia
Osaat tuottaa C++:lla luotuun komponettiin editorista muokattavia ominaisuuksia
Osaat suunnitella ajallisesti erilaisia vaihtoehtoja kentässä etenemiselle
Osaat suunnitella ja toteuttaa puzzle-mekaniikan kytkimien avulla
Osaat toteuttaa aloitus- ja suorituksenaikaisen valikon peliprojektiin
Osaat toteuttaa kenttiä suunnitelman mukaisesti
Osaat toteuttaa siirtymät kenttien välillä kehitystä varten
Osaat asettaa nopeuden ja suunnan fysiiikkamallinnusta hyödyntävään Actoriin C++:lla
Osaat dynaamisesti luoda Actoreita C++:lla
Osaat määrittää spawnattavan actorin tyypin muuttujana C++:ssa
Osaat hajauttaa logiikkaa eri komponentteihin
Osaat hallita actoreita ja kameraa välianimaatioissa
Osaat hyödyntää Gameplay Frameworkin Controller-luokkaa hahmon ohjauksessa
Osaat hyödyntää double-dispatch -mekanismia C++:lla
Osaat hyödyntää satunnaisuutta C++:lla UE4:ssä
Osaat hyödyntää visitor-suunnittelumallia tallennuksen yhteydessä
Osaat hyödyntää älykkäitä osoittimia Actoreiden hallinnassa C++:lla
Osaat asettaa kulmanopeudet ja suunnan fysiiikkamallinnusta hyödyntävään Actoriin C++:lla
Osaat kytkeä tapahtumia välianimaatioihin
Osaat ladata tallennustiedoston C++:lla
Osaat liittää komponenttiin meshin
Osaat luoda tallennustiedoston C++:lla
Osaat luoda välianimaation
Osaat muodostaa riippuvuuksia eri komponenttien välille
Osaat palauttaa pelitilanteen tallennustiedoston datan perusteella
Osaat sarjallistaa pelitilanteen tallennustiedostoon sopivaksi tiedoksi
Osaat toistaa välianimaation
Osaat toteuttaa pelattavuustestauksen peliin ja antaa kehittäjälle toimivaa palautetta

Opiskelijan ajankäyttö ja kuormitus

Kokonaisajankäyttö 133h. Itsenäinen opiskelu ja oppimistehtävät 96h, ohjausta 32h, palaute ja itsearviointi 5h.

Lisätietoja opiskelijoille

Vaaditut esitiedot ja osaaminen: Karelian Tietojenkäsittelyn C++-ohjelmointi -opintojakso suoritettu vähintään arvosanalla 3 tai vastaavat tiedot ja taidot.

Arviointiasteikko

H-5

Arviointimenetelmät ja arvioinnin perusteet

Perustaso: (1)

Osoitat, että tiedät ja ymmärrät miten oppimistavoitteissa vaaditut mainitut asiat toimivat.

Edistynyt taso: (3)

Osoitat, että osaat soveltaa oppimistavoitteissa mainittuja asioita eri tilanteissa kuin mitä Moodle-työtilan materiaaleissa esitetty.

Tavoiteltava taso: (5)

Osoitat, että osaat luoda täysin uusia ratkaisuja oppimistavoitteissa mainittujen asioiden avulla tai soveltaa niitä täysin erilaisissa tilanteissa aiempaan nähden.

Osoitat, että osaat arvioida ja perustella miksi mitäkin oppimistavoitteissa mainittua asiaa voi ja kannattaa soveltaa tekemälläsi tavalla uusissa tilanteissa.

Jokainen oppimistehtävä pisteytetään edellä mainitulla tavalla asteikolla 0-5.

Lopullinen opintojakson arvosana lasketaan kaavalla:

Pisteet = Yhteenlasketut pisteet oppimistehtävistäsi
Max = Oppimistehtävistä saatava maksimipistemäärä

Lopullinen opintojakson arvosana = (Pisteet / Max) * 5.