NAPpk12
Ensimmäinen näyttö annetaan 11. 3. - 15. 3. 2013, jolla viikolla ma - to ovat työskentelypäiviä ja pe on arviointipäivä. Arvioijina Mauri Mäkitalo ja Harri Sarri.
Tämä osuus koskee Flashiä:
Yhteiset/Tasoloikka-kansiosta löytyy kommentoitua esimerkkimateriaalia tasoloikan tekemisestä Flashillä, mm. Perussetti.fla niminen tiedosto. Siinä on koodattuna liikutussysteemi, jolla voi ohjata omaa hahmoaan oikealle ja vasemmalle ja hypätä. Mukana on myös törmäyksentunnistus ja painovoima.
Uutuutena Yhteiset/Tasoloikka-kansiosta löytyy esimerkkipeli NatureCalls.fla, joka sisältää konsepteja lukuunottamatta kaikki 1. näytössä vaadittavat asiat kommentoituina.
Yleisiä tasoloikkaohjeita löytyy esimerkiksi täältä:
http://www.gotoandplay.it/_articles/2007/02/game_tutorial_part1.php
http://www.flashgametuts.com/
Hyödyllisiä koodinpätkiä Flashiin löytyy esimerkiksi täältä:
www.actionscript.org
Tehtävä 1:
Suunnittele itsellesi tasoloikkahahmo. Tee konsepteja.
Tee Flashissä MovieClip-symboli, anna sille nimi, ja piirrä editointitilassa sen sisään kaksi kuvaa hahmostasi, hahmo paikallaan (frame 1) ja hyppäämässä (frame 2).
Tee vielä uusi MovieClip-symboli, jonka sisään piirrät animaatioloopin hahmosi juoksusta tai kävelystä. Anna symbolille nimi. Laita tämä uusi MovieClip-symboli ensimmäisen sisään, kolmanteen kuvapaikkaan. Anna kuvapaikoille nimet kirjoittamalla niille Labelit Properties-ikkunassa, esimerkiksi "idle", "jump" ja "walk"/"run". Palaa takaisin scenen puolelle klikkaamalla sen nimeä vasemmassa ylänurkassa. Anna ensimmäiselle MoviClipille myös instanssinimi Properties-ikkunassa.
Tämä on pelihahmosi.
Tee uusi Layer, anna sille nimi ja piirrä sille taso, jonka päällä pelihahmosi voi kävellä. Muuta taso MovieClipiksi, anna sille nimi ja instanssinimi.
Tee uusi Layer, anna sille nimi ja piirrä jonkinlainen palkki, jolla voit testata pelihahmosi putoamista. Siirrä palkki työskentelyalueen alle. Muuta palkki MovieClipiksi, anna sille nimi ja myös instanssinimi.
Käytä Yhteiset/Tasoloikka-kansiosta löytyvän Perussetti.fla-tiedoston koodia omaan pelihahmoosi.
Tee uusi scene, jonne siirrytään jos pelihahmosi putoaa ja kuolee. Tee sinne loppuanimaatio tai kirjoita tekstiä.
maanantai 21. tammikuuta 2013
perjantai 11. tammikuuta 2013
Pelihistoria
NAPpk10
* Tämä kurssi on verkkokurssi, eikä siis edellytä läsnäoloa Villilässä *
Tällä kurssilla tutustutaan videopelien historiaan ja pelitutkimukseen eli ludologiaan. Tehtävät voi tehdä missä järjestyksessä itse haluaa.
Tehtävä 1:
Videopelaamisen historiaa
Käy katsomassa videopelaamisen historian aikajanaa seuraavasta linkistä:
http://prezi.com/olihyz7-iea4/pelihistoria/
Tehtävä 2:
Pelitutkimus (ludologia)
Tehtävä 4:
Japanin pelikulttuuri
Ilmiöt ja genret
Minä pelaajana
* Tämä kurssi on verkkokurssi, eikä siis edellytä läsnäoloa Villilässä *
Tällä kurssilla tutustutaan videopelien historiaan ja pelitutkimukseen eli ludologiaan. Tehtävät voi tehdä missä järjestyksessä itse haluaa.
Tehtävä 1:
Videopelaamisen historiaa
Käy katsomassa videopelaamisen historian aikajanaa seuraavasta linkistä:
http://prezi.com/olihyz7-iea4/pelihistoria/
Tehtävä 2:
Pelitutkimus (ludologia)
Pelitutkimus alkoi itsenäistyä 1990-luvun lopussa, kun
ludologia teki pesäeron narratologiasta.
Narrativistit halusivat rinnastaa pelit tarinoita kertoviin
välineisiin, kuten kirjallisuus, elokuvat ja teatteri.
Ludologien mielestä pelejä pitää tutkia peleinä, eli sääntöihin,
käyttöjärjestelmiin ja pelaamiseen perustuvina järjestelminä.
Mene soitteeseen www.pelitutkimus.fi
Sivun oikeasta reunasta löydät linkit pelitutkimuksen vuosikirjoihin
2009-2012. Valitse vuosikirjoista yksi artikkeli tai katsaus. Tee siitä
tiivistetty sähköinen esitys esim. Prezillä. Älä käytä artikkelin tai
katsauksen valmista tiivistelmää, vaan tiivistä itse.
Palauta esitys tai linkki esitykseen sähköpostilla Harrille.
Tehtävä 3:
Nostalgiaa
Nostalgiaa
Valitse haluamasi tietokone- tai videopeli 1980- tai 90-luvulta. Tee
siitä ja sen historiasta sähköinen esittely esim. Prezillä.
Palauta esittely tai linkki esittelyyn sähköpostilla Harrille.
Tehtävä 4:
Japanin pelikulttuuri
Kirjoita 2 A4-pituinen essee Japanin pelikulttuurista ja –historiasta.
Tässä vähän pohjustusta:
Machiko Kusaharan artikkelissa ”Japanin pelikulttuuri”
pohditaan varsinkin konsolipelaamisen suosion syitä Japanissa. Käsitys siitä,
että vain lapset pelaavat tietokone- ja konsolipelejä, juontaa juurensa meidän
länsimaisen yhteiskuntamme suhtautumisesta pelaamiseen, tai oikeammin
leikkimiseen: leikki on lasten työtä. Kusaharan mukaan Japanissa, jossa
varsinkin konsolipelaaminen kukoistaa, ei tällaista ajattelutapaa ole. Siellä
kaikki pelaavat. Pelaamisen suosiota voisi verrata Mangan, japanilaisen
sarjakuvan suosioon, joka ylittää kaikki ikään, sukupuoleen, tai sosiaaliseen
asemaan liittyvät rajat. Mistä tämä suosio sitten johtuu? Jo 1100-luvun
japanilaisessa runoudessa esiintyy leikkimistä arvostavia säkeitä. Leikkimistä
ja pelaamista on siis varsin pitkään pidetty normaalina inhimillisen elämän
osana. Perheiden yhteiseen ajanviettoon on vuosisatoja kuulunut pelien
pelaaminen, ja 1900-luvun loppupuoliskolla myös intohimoinen television
katselu. Nämä molemmat kulttuuriset tekijät yhdistyivät sitten sujuvasti
konsolipelien pelaamiseen 1980- ja 1990-luvuilla (Huhtamo & Kangas, 2002,
s. 269-272).
Palauta essee sähköpostilla Harrille.
Tehtävä 5:
Ilmiöt ja genret
Tee sähköinen esittely jostain pelikulttuurin ilmiöstä tai
genrestä, esimerkiksi:
MMO /
MMORPG
LARP
Arcade-hallit
Play-by-Mail
/ Play-by-Email / Play-by-Web
Kilpapelaaminen
Casual gaming
Ammattipelaaminen
Magic The Gathering
Jos ei näistä löydy kiinnostavaa aihetta, niin keksi oma ja esittele
se.
Palauta esittely tai linkki esittelyyn sähköpostilla Harrille.
Tehtävä 6:
Minä pelaajana
Kirjoita 1 A4 pituinen essee omasta pelihistoriastasi. Koska aloitit pelaamisen? Mitä pelejä olet pelannut?
Palauta essee sähköpostilla Harrille.
keskiviikko 12. joulukuuta 2012
SKRIPTAUS 2: Viittausmuuttujat
Viittaausmuuttujat ovat muuttujia, joiden arvot ovat viittauksia pelissä oleviin objekteihin.
Unityssä viittaumuuttujia voidaan luoda suodaan editorissa, tyypittämällä muuttuja johonkin luokkaan, ja sitten raahamalla inspectorissa luokan edustaja muuttujan päälle.
Esim:
var Pallo : GameObject;
Viittauksia voidaan ketjuttaa, esimerkkinä pallon materiaalin vaihtaminen, jossa viitataan pallon renderer-komponentin material-muuttujaan:
var Pallo : GameObject;
var UusiMateriaali : Material;
Pallo.renderer.material = UusiMateriaali;
Unityssä viittaumuuttujia voidaan luoda suodaan editorissa, tyypittämällä muuttuja johonkin luokkaan, ja sitten raahamalla inspectorissa luokan edustaja muuttujan päälle.
Esim:
var Pallo : GameObject;
Viittauksia voidaan ketjuttaa, esimerkkinä pallon materiaalin vaihtaminen, jossa viitataan pallon renderer-komponentin material-muuttujaan:
var Pallo : GameObject;
var UusiMateriaali : Material;
Pallo.renderer.material = UusiMateriaali;
tiistai 11. joulukuuta 2012
SKRIPTAUS 2: IF-lauseke, kommentit, puolipisteet
1. IF-lausekeella voidaan ehdollistaa koodipätkiä. Ehto tulee if-avainsanan jälkeen suluissa. If-lausekkeen jälkeen hakasulkujen avulla voidaan määritellä, mitä ehtojen täyttyessä tapahtuu.
Esimerkki:
// jos OnkoNappiPainettu-muuttujan arvo on true, ajetaan PoistaKuutio()-funktio
if (OnkoNappiPainettu == true)
{
PoistaKuutio();
}
if-lauseiden ehdoissa käytettävät merkit:
== yhtäsuuri
!= erisuuri
&& usempi ehto
|| joko tai
2. Kommentit. Kahdella kenoviivalla voidaan kertoa, että rivin sisältö on kommenttia, eikä sitä tarvitse kääntää konekieleksi.
Esimerkki:
// Tätä ei käännetä
3. Puolipisteet. Jokaisen statementin, eli komennon jälkeen tulee riville puolipiste, esimerkiksi muuttujien määrittely, funktioiden kutsuminen, arvojen antaminen. Puolipistettä ei tule mm. if-lausekkeiden ja funktioiden esittelyrivien perään.
1. IF-lausekeella voidaan ehdollistaa koodipätkiä. Ehto tulee if-avainsanan jälkeen suluissa. If-lausekkeen jälkeen hakasulkujen avulla voidaan määritellä, mitä ehtojen täyttyessä tapahtuu.
Esimerkki:
// jos OnkoNappiPainettu-muuttujan arvo on true, ajetaan PoistaKuutio()-funktio
if (OnkoNappiPainettu == true)
{
PoistaKuutio();
}
if-lauseiden ehdoissa käytettävät merkit:
== yhtäsuuri
!= erisuuri
&& usempi ehto
|| joko tai
2. Kommentit. Kahdella kenoviivalla voidaan kertoa, että rivin sisältö on kommenttia, eikä sitä tarvitse kääntää konekieleksi.
Esimerkki:
// Tätä ei käännetä
3. Puolipisteet. Jokaisen statementin, eli komennon jälkeen tulee riville puolipiste, esimerkiksi muuttujien määrittely, funktioiden kutsuminen, arvojen antaminen. Puolipistettä ei tule mm. if-lausekkeiden ja funktioiden esittelyrivien perään.
SKRIPTAUS 2: Eventtifunktiot vs käyttäjän kirjoittamat funktiot vs staattiset funktiot
Update, Start, MouseOver jne. ovat eventtifunktioita. Näitä funktioita järjestelmä kutsuu automaattisesti.
Update = ajetaan automaattisesti jokaisella framella
Start = Ajetaan, kun GameObject tulee peliin
OnMouseEnter = kutsutaan, kun hiiri viedään objektin päälle
jne jne.
Käyttäjän pitää itse määritellä, mistä hänen itsensä kirjoittamia funktiota kutsutaan.
Staattiset funktiot ovat unityn kirjastosta löytyviä funktiota, jota voidaan kutsua koodista.
Eventtifunktiot: järjestelmä kutsuu, käyttäjä kirjoittaa sisällöt
Käyttäjän kirjoittamat funktiot: käyttäjä kutsuu ja kirjoittaa sisällöt
Staattiset funktiot: käyttäjä kutsuu valmiita funktioita Unityn kirjastosta
Update, Start, MouseOver jne. ovat eventtifunktioita. Näitä funktioita järjestelmä kutsuu automaattisesti.
Update = ajetaan automaattisesti jokaisella framella
Start = Ajetaan, kun GameObject tulee peliin
OnMouseEnter = kutsutaan, kun hiiri viedään objektin päälle
jne jne.
Käyttäjän pitää itse määritellä, mistä hänen itsensä kirjoittamia funktiota kutsutaan.
Staattiset funktiot ovat unityn kirjastosta löytyviä funktiota, jota voidaan kutsua koodista.
Eventtifunktiot: järjestelmä kutsuu, käyttäjä kirjoittaa sisällöt
Käyttäjän kirjoittamat funktiot: käyttäjä kutsuu ja kirjoittaa sisällöt
Staattiset funktiot: käyttäjä kutsuu valmiita funktioita Unityn kirjastosta
maanantai 10. joulukuuta 2012
SKRIPTAUS 2: Muuttuja, funktio, parametri
1. Muuttuja: paikka tietokoneen muistissa, johon voidaan tallettaa tietoa. Kun muuttuja alustetaan, sille varataan muistipaikka tietokoneen muistista. Muuttujille määritetään tyyppi, eli millaista tietoa niihin voi tallettaa.
Muuttujien nimeäminen: nimet ovat case sensitivejä, nimet voi valita haluamikseen kunhan ei käytä erikoismerkkejä. Ei ääkkösiä.
Muuttujien tyypit:
Boolean: kyllä/ei, true/false, 0/1
Esimerkki: onko hahmo elossa?
Int, kokonaisluvut: 5,500, 3500, -3500;
Esimerkki: hahmon ikä
Float, liukuluvut: 5,5
Esimerkki: Unityn pituusyksiköt
String, merkkijono: "Teemu Vilén"
Esimerkki: nimet
Viittausmuuttujat: GameObject, Light, material, Camera yms yms;
2. Funktio: Eristetty pätkä koodia, joka suorittaa halutun tehtävän. Funktion koodi eristetään hakasulkeilla. {}
Esimerkki: Liikutapalloa(); returns Vector3
GetKeyUp("K"); returns boolean
Funktioiden nimeäminen: nimet ovat case sensitivejä, nimet voi valita haluamikseen kunhan ei käytä erikoismerkkejä. Ei ääkkösiä.
3. Parametri: funktion alkuarvo, näitä voi olla useampi
-----------------------
ESIMERKKI FUNKTION KUTSUSTA JA FUNKTIOSTA:
if (Input.GetKeyDown(k"))
{
liikutapalloa();
}
function liikutapalloa()
{
adsfsadasdasd
asd
return Vector3;
}
Muuttujien nimeäminen: nimet ovat case sensitivejä, nimet voi valita haluamikseen kunhan ei käytä erikoismerkkejä. Ei ääkkösiä.
Muuttujien tyypit:
Boolean: kyllä/ei, true/false, 0/1
Esimerkki: onko hahmo elossa?
Int, kokonaisluvut: 5,500, 3500, -3500;
Esimerkki: hahmon ikä
Float, liukuluvut: 5,5
Esimerkki: Unityn pituusyksiköt
String, merkkijono: "Teemu Vilén"
Esimerkki: nimet
Viittausmuuttujat: GameObject, Light, material, Camera yms yms;
2. Funktio: Eristetty pätkä koodia, joka suorittaa halutun tehtävän. Funktion koodi eristetään hakasulkeilla. {}
Esimerkki: Liikutapalloa(); returns Vector3
GetKeyUp("K"); returns boolean
Funktioiden nimeäminen: nimet ovat case sensitivejä, nimet voi valita haluamikseen kunhan ei käytä erikoismerkkejä. Ei ääkkösiä.
3. Parametri: funktion alkuarvo, näitä voi olla useampi
-----------------------
ESIMERKKI FUNKTION KUTSUSTA JA FUNKTIOSTA:
if (Input.GetKeyDown(k"))
{
liikutapalloa();
}
function liikutapalloa()
{
adsfsadasdasd
asd
return Vector3;
}
Tilaa:
Blogitekstit (Atom)
