Peliohjelmointia Jypelill Tero Jntti Tomi Karppinen Vesa Lappalainen

  • Slides: 18
Download presentation
Peliohjelmointia Jypelillä Tero Jäntti Tomi Karppinen Vesa Lappalainen Jonne Itkonen Jyväskylän yliopisto/Tietotekniikan laitos Helsinki

Peliohjelmointia Jypelillä Tero Jäntti Tomi Karppinen Vesa Lappalainen Jonne Itkonen Jyväskylän yliopisto/Tietotekniikan laitos Helsinki 27. 10. 2009

Taustaa • Kesällä 2009 tietotekniikan laitos järjesti kaksi peliohjelmointikurssia yläasteikäisille • Kursseja varten kehitettiin

Taustaa • Kesällä 2009 tietotekniikan laitos järjesti kaksi peliohjelmointikurssia yläasteikäisille • Kursseja varten kehitettiin kirjasto 2 Dpeleille nimeltä Jypeli • Hauskaa oli

Motivaatio kurssin pitämiseen • Luonnontieteet eivät suosiossa koulussa • Mikä kiinnostaa nuoria? PELAAMINEN! 1.

Motivaatio kurssin pitämiseen • Luonnontieteet eivät suosiossa koulussa • Mikä kiinnostaa nuoria? PELAAMINEN! 1. Motivointi fysiikan käsitteisiin: • syy-seuraussuhteet ja kappaleiden väliset riippuvuudet • fysiikan käsitteitä, kuten Maan vetovoima, kitka sekä voimista aiheutuvat liike- ja tasapainoilmiöt, erilaiset liikkeet ja voimien vaikutukset liikkeeseen • kappaleen massa ja sen vaikutukset • tasainen ja tasaisesti kiihtyvä liike • suureita, kuten aika, matka, nopeus, kiihtyvyys ja voima

2. Motivointi matematiikan käsitteisiin: • funktion käsite • lukuparin esittäminen koordinaatistossa • yksinkertaisten funktioiden

2. Motivointi matematiikan käsitteisiin: • funktion käsite • lukuparin esittäminen koordinaatistossa • yksinkertaisten funktioiden tulkitseminen ja niiden kuvaajien piirtäminen koordinaatistoon • geometriasta suorat, suurennokset, pienennökset ja mittakaava sekä erilaiset muodot, esim. kolmiot, nelikulmiot, monikulmiot ja ympyrä • yhtälöt ja niiden ratkaiseminen • todennäköisyys ja satunnaisuus • loogisia elementtejä ja totuusarvoja • tapausten yhtäläisyyksiä ja säännönmukaisuuksia • ongelmanratkaisua • vektorit ja niiden esittäminen lukuparina tai napakoordinaatistossa • asteet ja radiaanit

Kurssin ohjelma • Alkuinfo

Kurssin ohjelma • Alkuinfo

Toteutuksesta • Toteutettu C#-kielellä käyttäen XNAkirjastoa • Toimii vain Windowsilla • Pelit pyörii myös

Toteutuksesta • Toteutettu C#-kielellä käyttäen XNAkirjastoa • Toimii vain Windowsilla • Pelit pyörii myös XBox 360: llä

Esimerkkejä • Malli– ja esimerkkiohjelmia: • Tankkipeli 3, Avaruuslentely, Biljardi, Tasohyppelypeli • Ekan kurssin

Esimerkkejä • Malli– ja esimerkkiohjelmia: • Tankkipeli 3, Avaruuslentely, Biljardi, Tasohyppelypeli • Ekan kurssin top-3: • Hyppija. exe, Last Tanks. exe, Rampege. exe • Tokan kurssin top-3: • Palikkatesti. exe, Square Defence beta. exe, Suuri. Kynttila. exe

Nettisivut • https: //trac. cc. jyu. fi/projects/npo 09_pelit

Nettisivut • https: //trac. cc. jyu. fi/projects/npo 09_pelit

Yleisiä periaatteita • Jypeli on sovelluskehys (framework) • ”Dont call us, we call you”

Yleisiä periaatteita • Jypeli on sovelluskehys (framework) • ”Dont call us, we call you” • Kirjasto ajaa pelisilmukkaa, hoitaa piirtämisen, yms… • Ohjelmoija määrittelee mitä tapahtuu kun peli käynnistyy, kappaleet törmää, …

Fysiikka • Jypeli sisältää fysiikkamoottorin (Physics 2 D. NET) • Olioilla massa, nopeus, …

Fysiikka • Jypeli sisältää fysiikkamoottorin (Physics 2 D. NET) • Olioilla massa, nopeus, … • Törmäyksille voi asettaa tapahtumia (mitä tapahtuu kun ammus osuu pelaajaan…)

Valmiita luokkia (1/3) • • Real. Time. Game – pyörittää peliä Physics. Game –

Valmiita luokkia (1/3) • • Real. Time. Game – pyörittää peliä Physics. Game – fysiikka mukana Game. Object – olio pelissä Physics. Object – tottelee fysiikan lakeja

Valmiita luokkia (2/3) • • • Level – sisältää oliot, taustan, ym. Meter<T> -

Valmiita luokkia (2/3) • • • Level – sisältää oliot, taustan, ym. Meter<T> - voi laskea vaikka autoja Value. Display – näyttää laskurin arvon Weapon – kantaluokka aseille Tank – panssarivaunu High. Score. List

Valmiita luokkia (3/3) • Screen. Object – näyttökoordinaatteja käyttäviä olioita (ikkunat, mittarit ym. )

Valmiita luokkia (3/3) • Screen. Object – näyttökoordinaatteja käyttäviä olioita (ikkunat, mittarit ym. ) • RTGWindow – kantaluokka käyttöliittymän ikkunoille, Screen. Objectin jälkeläinen • Alert. Window – yksinkertainen viesti-ikkuna • List. Selection. Window – listavalintaikkuna • yms.

Komponentti-esimerkkejä • • • Valikot Lentokone Laskuvarjo Strategiapelipohja/hahmo (hiiriohjattava) Minigolf-radan osat (kalteva pinta)

Komponentti-esimerkkejä • • • Valikot Lentokone Laskuvarjo Strategiapelipohja/hahmo (hiiriohjattava) Minigolf-radan osat (kalteva pinta)

Esimerkkipeli • Aletaan koodaamaan… • Saa ehdottaa ominaisuuksia!

Esimerkkipeli • Aletaan koodaamaan… • Saa ehdottaa ominaisuuksia!