Advanced Game Programming (5 op)
Toteutuksen tunnus: HG00CI49-3001
Toteutuksen perustiedot
- Ajoitus
-
12.01.2026 - 20.05.2026
Toteutus ei ole vielä alkanut.
- Opintopistemäärä
- 5 op
- Lähiosuus
- 5 op
- Toteutustapa
- Lähiopetus
- Yksikkö
- Liiketoimintayksikkö
- Toimipiste
- Pääkampus
- Opetuskielet
- englanti
- Paikat
- 20 - 30
- Koulutus
- Bachelor's Degree Programme in Business Information Technology
- Opettajat
- Risto Koskenkorva
- Ryhmät
-
HTG24S1Bachelor's Degree Programme in Business Information Technology
- Opintojakso
- HG00CI49
Arviointiasteikko
0-5
Sisällön jaksotus
Tässä osiossa kuvataan kurssin aikataulutus. Eli mitä tapahtuu viikoittain (rytmi, ajoitus, viikoittaiset tehtävät, toteutuksen pakolliset osat)?
Kurssin viikoittainen aikataulutus:
~3,5 tuntia viikossa pakollisia lähiopetusaktiviteetteja (teoria ja esimerkit + demot: toteutus ja testaus)
~6-7 tuntia viikossa itsenäistä työskentelyä tehtävien (viikoittaiset ja muut) osalta, moduulitehtäviä, luennoille valmistautumista ja lopputuotteen työstämistä (kaiken tulisi edistää opiskelijan lopputuotetta)
Tämä tarkoittaa, että sinun tulisi varata ~9-11 tuntia työaikaa joka viikko tälle kurssille!
Kurssi koostuu viidestä moduulista:
- Moduulit ovat 3-5 viikon pituisia
- Jokainen moduuli on pakollinen ja sisältää viikoittaisia lähiopetusaktiviteetteja ja itsenäistä työskentelyä
- Jokaisen moduulin lopussa on pakollinen moduulitehtävä, jolla tarkistetaan opiskelijan edistymistä ja moduuliin liittyvää ymmärrystä ja taitoja
- Yksityiskohtaiset moduulin sisällöt ja kesto ovat saatavilla oppimisympäristössä
Kurssi alkaa kolmen viikon mittaisella moduulilla. Moduuli keskittyy kurssin esittelyyn, työkalujen ja ympäristöjen käyttöönottoon sekä kurssin aiheen ensimmäiseen käsittelyyn. Ensimmäisen moduulin loppuun mennessä jokaisen opiskelijan on täytettävä seuraavat kriteerit:
- Osallistunut kaikkiin kurssin lähiopetusaktiviteetteihin (merkitty osallistuminen)
- Palauttanut hyväksytyn moduulitehtävän
- Jos yhtä tai useampaa kriteeriä ei täytetä, opiskelija katsotaan passiiviseksi / kurssilta eronneeksi (Jamkin kurssin resurssivaatimusten mukaisesti)
Jokaisen kurssin opiskelijan odotetaan tuottavan kurssin loppuun mennessä lopputuotteen:
- Lopputuote osoittaa opiskelijan ymmärryksen ja taidot kurssin aiheisiin liittyen.
- Kurssi päättyy lopputulosten esittelyihin ja henkilökohtaisiin arviointeihin toukokuussa.
Tavoitteet
Kurssin tavoite (tavoitteet):
Oletko jo tehnyt tarpeeksi skriptauksia ja haluaisit syventyä aiheeseen enemmän? Etsitkö syvempää ymmärrystä ohjelmoinnista ja sen yhteydestä ohjelmistosuunnitteluun ja -kehityksen periaatteisiin? Miksi toimiminen järjestelmällisellä tavalla on hyvä asia?
Puhtaan ja hyvin järjestellyn rakenteen ylläpitäminen on yksi tärkeimmistä asioista pelituotantoprojekteissa. Kun projektit kasvavat, tavoitteena ei ole vain yrittää löytää nopeita ratkaisuja, vaan enemmänkin tehdä asioita kestävällä, laajennettavalla ja suorituskykyisellä tavalla.
Nyt sinulla on mahdollisuus tutustua arkkitehtuurin lähestymistapaan laajentaaksesi pelin tekemiseen ja ohjelmointitaitoihisi sekä keskittyä parempaan ymmärrykseen ohjelmoinnista, hyvistä arkkitehtonisista päätöksistä ja yleisistä peliin liittyvistä logiikoista. Niinpä liity mukaan ja aloita unelmiesi rakentaminen!
Kurssin osaamiset:
- Pelituotanto: Opiskelija voi tuottaa peliteknologiaan liittyvää sisältöä peliprojektille ja osaa työskennellä työkalujen kanssa merkityksellisellä ja systemaattisella tavalla. Opiskelija osaa ohjelmoida moottorisidonnaisella kielellä ja ymmärtää resurssien ja middlewaren roolin. Opiskelija voi tuottaa arvoa peliprojektille työskennellessään peliteknologiaan liittyvässä erikoistumisroolissa.
- Oppimisen oppiminen: Ottaa myös vastuun ryhmän oppimisesta ja jakaa opitun.
Kurssin oppimistavoitteet (tulokset):
Kurssin suoritettuasi sinulla on syvempi ymmärrys pelin rakenteesta ja toiminnallisuuksista. Ymmärrät, mitä ohjelmistosuunnittelu- ja kehityksen periaatteet ovat ja miten ne toimivat yhteen pelituotannon putkien ja ydinpelikehitystyökalujen kanssa luodaksesi ylläpidettävän ja modulaarisen pelimekaniikkakirjaston. Ymmärrät, miten periaatteita ja mekaniikkakirjastoa voidaan käyttää monimutkaisten ja hyvin rakennettujen pelien luomiseen teknisestä näkökulmasta. Voit soveltaa taitojasi osallistuaksesi pelituotantoprosessiin.
Sisältö
Kurssilla perehdytään edistyneisiin käsitteisiin pelituotannossa, kuten suunnittelun ja ohjelmoinnin periaatteisiin, malleihin ja käytäntöihin. (Työkaluihin kuuluvat myös CLEAN ja SOLID sekä tekninen suunnittelu). Sinulla on taidot käyttää joitakin ydin pelikehitystyökalujen ominaisuuksia luodaksesi ja käyttääksesi pelimekaniikkojen rakennuspalikoita ylläpidettävänä ja modulaarisena pelimekaniikkojen kirjastona.
Oppimateriaalit
Tässä kentässä kuvataan kurssin suorittamiseen vaadittava julkinen oppimateriaali.
Oppimateriaalit:
- Opettajan kirjalliset materiaalit
- Luentomateriaalit (Diat ja muut materiaalit oppimisympäristössä)
- Tietokannat (oppimisympäristössä)
- Toteuttamiseen liittyvät materiaalit (oppimisympäristössä)
- Ylimääräistä luettavaa löytyy verkosta ja Janet Finnasta (https://janet.finna.fi/)
- Oppimateriaalit löytyvät verkosta ja YouTubesta (tai kurssin tietokannasta)
Joitakin kurssin aiheisiin ja työkaluihin liittyviä julkisia oppimateriaaleja:
Epic Games, Inc. (n.d.-a). Unreal Engine C++ API Reference [Application Programming Interface website]. Retrieved April 25, 2025, from https://dev.epicgames.com/documentation/en-us/unreal-engine/API
Epic Games, Inc. (n.d.-b). Unreal Engine Documentation [Documentation website]. Retrieved April 25, 2025, from https://dev.epicgames.com/documentation/en-us/unreal-engine/
Microsoft. (n.d.). C# programming guide [Documentation website]. Retrieved April 25, 2025, from https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/
Nystrom, R. (2014). Game Programming Patterns [Web version of the book]. https://gameprogrammingpatterns.com/contents.html
Roberts, J. (2020, February 07). Clean C#. Lean Publishing. https://leanpub.com/cleancsharp
Unity Technologies. (n.d.-a). Unity - Manual [Documentation website]. Retrieved April 25, 2025, from https://docs.unity3d.com/Manual/index.html
Unity Technologies. (n.d.-b). Unity - Scripting API [Application Programming Interface website]. Retrieved April 25, 2025, from https://docs.unity3d.com/ScriptReference/index.html
Unity Technologies. (2024a). Level up your code with design patterns and SOLID [E-Book]. https://unity.com/resources/level-up-your-code-with-game-programming-patterns?isGated=false
Unity Technologies (2024b). Unity best practices [Link library]. https://unity.com/how-to
Unity Technologies. (2025). Advanced best practice guides [Link library]. https://docs.unity3d.com/Manual/best-practice-guides.html
Käytännöt ja käytetyt työkalut:
- Pelimoottorin kanssa yhteensopiva versionhallintasysteemi (Version Control System - VCS)
- Pelimoottori
- Pelimoottoriin liittyvä integroitu kehitysympäristö (IDE)
- Pelimoottoriin liittyvä ohjelmointikieli
- 3D-mallinnus- ja animaatio-ohjelmisto
Opetusmenetelmät
Tässä kentässä kuvataan toteutuksessa käytetyt opetus- ja oppimismenetelmät ja miten opiskelijan ohjaus järjestetään.
Muokattu lähiopetuksen malli:
Ensisijainen toteutustapa on kaikki tapahtuvat aktiviteetit lähiopetuksena kampuksella ja vain erityistapauksissa verkossa.
Jos COVID-19 tai muu vastaava tilanne kuitenkin vaatii, oppimista tuetaan verkkotoiminnoilla.
Toiminta syventää oppimista seuraavilla mahdollisilla tavoilla:
- Teoriaa ja esimerkkejä käsitteleviä teorialuentoja + Demoluentoja käytäntöön ja testaukseen
- Yksilöllistä ja mahdollista ryhmätyötä (toteutus)
- Yksilölliset ja mahdolliset ryhmäharjoitukset, oppimistehtävät (tehtävät) ja reflektointi
- Ohjausta lopputulosten tarkastelun ja vastattujen kysymysten muodossa tai apua haasteisiin pyydettäessä
Kurssin toiminta voi sisältää myös:
- Projektipohjainen oppiminen
- Käänteinen oppiminen (aiheen oppiminen ennen teorialuentoja)
- Pistokokeet
- Aihekohtainen opetus
- Aihekohtainen tutkimus
- Tietokannan käyttö haasteisiin/ongelmiin/tutoriaaleihin (ongelmapohjainen oppiminen)
Osallistuminen mahdollisiin online-toimintoihin:
- Zoomia käytetään online-toimintoihin.
- Edellyttää toimivaa web-kameraa, kuulokkeita ja mikrofonia.
- Zoomissa web-kameran on oltava päällä koko ajan!
- Jos yksi tai useampi laitteisto puuttuu tai sitä ei käytetä, osallistumisesi voidaan hylätä.
Tekoälyn (AI) käyttö:
- Tekoälyn ja tekoälyavusteisten työkalujen käyttö on sallittua ja suositeltavaa.
- Puhdas kopiointi (plagiointi) on edelleen kiellettyä ja siitä seuraa asianmukaiset rangaistukset.
- Kaikesta tekoälyn käytöstä on ilmoitettava asianmukaisesti.
Viralliset viestintäkanavat:
- Uutiset (foorumi)
- Teams (ensisijainen) ja sähköposti
- DiscordApp / WhatsApp / muu viestintä on opettajilta kielletty.
- Jos et pääse osallistumaan luennolle tai demolle, ilmoitathan siitä opettajalle etukäteen!
- Sessiot voidaan tallentaa ja linkit lisätä työtilaan (tallennuslupa pyydetään aina osallistujilta etukäteen).
Harjoittelu- ja työelämäyhteistyö
Tämä kenttä kuvaa yhteyksiä työelämään ja harjoitteluun.
Kurssilla voi olla vierailevia luennoitsijoita (pelialan asiantuntijoita) ja mahdollisesti retki (virtuaalinen tai fyysinen).
Mahdollinen kurssiprojekti jäljittelee tosielämän projektikokemuksia.
Tenttien ajankohdat ja uusintamahdollisuudet
Tämä kenttä ilmoittaa varsinaisen kokeen päivämäärän ja kellonajan sekä kaikki uusintamahdollisuudet.
Tällä kurssilla ei ole tenttiä!
- Jokainen opiskelija varaa 20 minuutin arviointiajan, jossa hän esittelee lopputuloksensa (portfolio) varmistaakseen kurssin suorittamiseen vaadittavat taidot ja tiedot
- Arviointi suoritetaan kahdenkeskisenä arviointikeskusteluilla kurssin opettajan/opettajien kanssa
- Arviointipaikkojen varaaminen tapahtuu oppimisalustan kautta
Arvioinnin päivämäärä ja kellonaika:
- Toukokuussa
- Arviointien ja uusintojen tarkat päivämäärät ilmoitetaan kurssin aikana
Toteutuksen valinnaiset suoritustavat
Tässä kentässä kuvataan kurssin vaihtoehtoiset suoritustavat.
Sinulla on oikeus hakea opintosi hyväksilukemista, jos sinulla on aiempaa koulutusta (esim. muualla suoritettua yliopisto-opintoja), joka voidaan hyväksyä parhaillaan suorittamaasi tutkintoon.
Aiemman osaamisen tunnustaminen on mahdollista seuraavilla tavoilla:
- Korkeakouluopintojen hyväksilukeminen (korvaaminen tai sisällyttäminen)
- Muulla tavoin hankitun osaamisen tunnistaminen ja tunnustaminen
Tarkempaa tietoa:
- JAMKin tutkintosäännöt, 17 §
- https://www.jamk.fi/fi/opiskelijalle/tutkinto-opiskelija/hyvaksilukeminen
Opiskelijan ajankäyttö ja kuormitus
Tässä osiossa kuvataan oppimistehtävät ja niiden suorittamiseen tarvittava aika sekä opiskelijan muu aikataulutus.
5 opintopisteen työmäärä on 135 tuntia. Työmäärä jakautuu seuraavasti:
~50 tuntia pakollista lähiopetusta: Teoriaopetusta ja ohjattua toimintaa (demoja toteutusta ja testausta varten)
~85 tuntia itsenäistä työskentelyä: Tehtäviä (viikoittaisten demotehtävien ja muiden viimeistely), moduulitehtäviä ja luennoille valmistautumista (tiedon etsiminen ja kirjallisuuden lukeminen). Mahdollinen sprinttiviikko tai protoilu. Lopputyön ja arvioinnin valmistelu.
Arviointikriteerit, tyydyttävä (1)
Välttävä (1): Tunnet monimutkaisten pelien luontiprosessit ydinkäyttötyökaluilla. Tunnet joitakin pelituotantoon liittyviä suunnittelu- ja ohjelmointiperiaatteita, -malleja ja -käytäntöjä. Pystyt soveltamaan taitojasi kehittääksesi ja käyttääksesi yksinkertaista pelimekaniikkakirjastoa. Voit olla tuottelias rajatulla roolilla peliohjelmoijana.
Tyydyttävä (2): Ymmärrät monimutkaisten pelien luontiprosessit ydinkäyttötyökaluilla. Pystyt käyttämään joitakin pelituotantoon liittyviä suunnittelu- ja ohjelmointiperiaatteita, -malleja ja -käytäntöjä. Pystyt kehittämään ja käyttämään pelimekaniikkakirjastoa. Pystyt laatimaan rakenteellisesti hyvää koodia.
Arviointikriteerit, hyvä (3)
Hyvä(3): Pystyt soveltamaan taitojasi monimutkaisten pelien luomisprosesseissa käyttäen ydinkehitystyökaluja. Olet kykenevä ottamaan käyttöön joitain pelituotantoon liittyviä suunnittelu- ja ohjelmointiperiaatteita, -malleja ja -käytäntöjä. Pystyt soveltamaan taitojasi monimutkaisen pelimekaniikkakirjaston kehittämiseen, jakamiseen ja käyttöön. Pystyt tuottamaan rakenteellisesti hyvää koodia periaatteiden mukaisesti. Voit olla tuottava roolissa peliohjelmoijana.
Erittäin hyvä (4): Pystyt soveltamaan taitojasi monimutkaisten pelien luomisprosesseissa käyttäen ydinkehitystyökaluja. Pystyt tunnistamaan ja analysoimaan joitain pelituotantoon liittyviä suunnittelu- ja ohjelmointiperiaatteita, -malleja ja -käytäntöjä. Pystyt soveltamaan taitojasi monimutkaisen pelimekaniikkakirjaston kehittämiseen, jakamiseen ja käyttöön. Pystyt tuottamaan rakenteellisesti erinomaista koodia periaatteiden mukaisesti.
Arviointikriteerit, kiitettävä (5)
Erinomainen (5): Pystyt tunnistamaan ja analysoimaan monimutkaisten pelien luomisprosessit ydinkyhitystyökalujen avulla. Kykenet arvioimaan ja kuvailemaan suurimman osan pelintuotannon suunnitteluun ja ohjelmointiin liittyvistä periaatteista, malleista ja käytännöistä. Pystyt soveltamaan taitojasi monimutkaisen ja laajan pelimekaniikkakirjaston kehittämiseen, jakamiseen ja käyttöön. Pystyt laatimaan rakenteellisesti erinomaista koodia periaatteiden mukaisesti. Olet tehnyt yhteistyötä toisen ohjelmoijan kanssa projektissasi(tai projekteissasi).
Esitietovaatimukset
Vaaditaan keskitason osaamista peliohjelmoinnissa, pelimoottoreissa ja muissa keskeisissä kehitystyökaluissa. Aiempi pelimekaniikkaan liittyvä koodipohja on tarpeen.
Lisätiedot
Tässä osiossa kuvataan käytetyt arviointimenetelmät. Oppimisen arviointi on kehittämislähtöistä arviointia. Arviointi perustuu oppimistavoitteisiin, -laatuun ja -kriteereihin. Opiskelijan itsearvioinnilla on tärkeä rooli prosessissa.
Arviointi perustuu jatkuvaan palautteeseen viikoittaisten aktiviteettien aikana oppimistavoitteiden mukaisesti. Itsearviointi tapahtuu henkilökohtaisten tavoitteiden, moduulitehtävien reflektoinnin ja loppukeskustelun kautta. Palautetut moduulitehtävät, lopputuote ja sen esitystapa toimivat pohjana loppuarvioinnille, joka noudattaa annettuja arviointikriteerejä ja -ohjeita. Kurssille voidaan järjestää myös vertaisarviointia.