The page has been modified since the last reload. Refresh now?

There are {{ pendingUpdatesCount() }} pending paragraph updates.

 

{"rd": "114096", "rl": "no", "rp": "JbQx9q2CxXWT"}

Harjoitustyö

{}

Tällä sivulla kerrotaan yleisesti harjoitustyöstä. Sivu kannattaa toki aluksi lukea huolella läpi, mutta ennen kuin teet mitään, niin muista että olet katsonut ohjeen ja/tai videon:

1. Harjoitustyö tällä kurssilla

  • on osa kurssisuoritusta ja arvioidaan asteikolla hyväksytty/hylätty. Harjoitustyö pitää olla hyväksytty ennen kuin kurssista voi saada arvosanan.
  • tehdään mielellään parityönä, mutta jos haluaa tehdä yksin, niin sekin onnistuu. Mikäli luontaista paria ei löydy, ei sitä kannata ehkä etsiäkään väkisin.
  • sisältää keskimääräisesti opiskelijaa kohti noin 30 tuntia työtä (ks. kurssin työmäärä). Parityönä tehtävän työn määrä on siis keskimäärin 60 tuntia. Paritöissä on pystyttävä esittämään kirjanpito siitä, mitä on tehty ja miten työ on jakautunut tekijöiden välillä.
  • on peli, mutta jokin muukin ohjelma käy myös

2. Vaiheistus

Harjoitustyön vaiheet

Harjoitustyön vaiheet

2.1 SVN

Harjoitustyön koko Solution tallennetaan SVN-versiohallintaan esimerkiksi TortoiseSVN:n avulla.

Kurssin SVN-versiohallinnan tietovaraston osoite on (älä vaan checkouttaa tätä, vaan omasta hakemistostasi)

https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2017s

Niin mikä nyt oli se virallinen takaraja tuolle 100% valmiille ht-työlle? Koska tentti on aikaisemmin (30.11.), niin muistaakseni ohjaajalla hyväksyttämisen sai tehdä myös tentin jälkeen, eikö niin?

VL: Työ versionhallinnassa 1.12 mennessä. Esitelty muille ja mahdolliset ohjaajien (pitää pyytää hyväksyntä erikseen) huomautukset korjattu ja hyväksytty 15.12 mennessä jolloin ohjausajat loppuvat.

31 Oct 17 (edited 01 Nov 17)

2.2 Aikataulut

{}

Harjoitustyön aikataulun muodostavat neljä virstanpylvästä

  • Suunnitelma TIMissä demo 5 palautukseen mennessä. Eli ma 9.10 klo 11:00. Suunitelma on kirjoitettu TIMiin ja kuva laitettu versiohallintaan. Esittele viimeistään viikolla 41 suunnitelmasi, ohjaajalle pääteohjauksessa tai varaa sitä varten aika Korpista ohjaajalle.
  • 50 % valmis demo 8 palautukseen mennessä. Esittele työsi ohjaajalle ja varaa sitä varten aika (toissijaisesti ohjauksissa = ohjaaja katsoo jos ei ole pääteohjaukissa neuvottavien kanssa kiirettä. Tällöin on turha pitää Kiire-kylttiä esillä.). Työn pitää olla versiohallinnassa.
  • 90 % valmis julkiseen esittelytilaisuuteen mennessä, jolloin jokainen esittelee työnsä muille opiskelijoille. Työt esitellään max 15 hengen ryhmissä. Tarkoitus on antaa ja saada palautetta jotta vielä viimeisiä pikku viilauksia voidaan tehdä ennen työn lopullista hyväksymistä. HUOM. Tarkista pelisi toimivuus 1024x768 resoluutiolla ennen esittelytilaisuutta.
  • "100%" valmis ja hyväksyttäminen ohjaajalla ennen kurssin ensimmäistä tenttiä. Tämän vaiheen tarkoitus on tarkastaa että työn muodolliset vaatimukset täyttyvät. Vaihe toimii myös maturiteettina, jossa varmistetaan, että opiskelija on tehnyt itse harkkatyönsä kurssin pelisääntöjen mukaisesti. Varaa aika ohjaajalta tai tule ohjauksiin.

  • etäopiskelijoille on esittelystä omat ohjeet

Jokainen aikaraja, josta opiskelija myöhästyy ennakkoon ilmoittamatta (ja ilman hyvää syytä, kuten sairastuminen), aiheuttaa puolen numeron tiputuksen kurssin kokonaisarvosanaan jokaiselta alkavalta myöhästymisviikolta. Lisäksi opiskelija, joka ei ole (ilman hyvää syytä) palauttanut versionhallintaan vähintään lähes esittelykelpoista harjoitustyötään ennen tenttiä, saa automaattisesti hylätyn arvosanan kurssista.

{}
{}
#

3. Harjoitustyön suunnittelu

Ennen harjoitustyön toteuttamista tehdään suunnitelma. Suunnitelma tehdään TIMiin ja kuva(t) laitetaan versiohallintaan, ja suunnitelma hyväksytetään ohjaajalla ennen varsinaisen työn aloittamista. Varaa aika Korpista. Ohjaajat majailevat sovittuina aikoina 4. kerroksen OTE-solun avotilassa. Kysy virastomestareilta apua jos et löydä perille.

Jos et keksi, minkä tyylisen pelin haluaisit tehdä, katso esimerkkejä, millaisia pelejä Jypelillä voi tehdä.

Suunnittelemattomia harjoitustöitä ei hyväksytä.

Suunnitelmassa pitää olla ainakin seuraavat asiat (soveltaen ei-peliharjoitustyöhön):

  1. Tekijöiden nimet
  2. Pelin nimi
  3. Pelaajien lukumäärä (1-4)
  4. Pelin taustatarina tai kuvaus pelin teemasta
  5. Pelin idea ja tavoitteet
  6. Hahmotelma pelistä (kuva tai kuvia paperilla käsin tai tietokoneella piirrettynä)
  7. Jonkinlainen kuvaus siitä, miten peli etenee
  8. Pelissä olevat oliot, niiden toiminnot ja missä suhteessa ne ovat toisiinsa
  9. Toteutuksen suunnitelma: mitä tekisin ja missä järjestyksessä? Millä aikataululla?
{}
#

3.1 Muu kuin pelimäinen aihe

Harjoitustyö voi olla myös muu kuin peli.
Yksi esimerkki voisi olla vaikkapa lukea tiedostosta suomenkielinen teksti ja lasketaan mitä vokaalia on eniten. Tai työ voi olla tietyn WWW-sivun lukeminen ja sieltä tiettyjen tietojen käsittely yksinkertaiseen muotoon. Esimerkiksi joltakin sääsivulta päivän tuuliarvojen maksimi ja keskiarvo.

Inspraatiota voi myös hakea Työaikaraportti -tutorialista tai vaikkapa täältä http://nifty.stanford.edu/. Katso tuolta CS0/CS1 tasoiset tehtävät, niiden pitäisi (suurelta osin) olla tämän kurssin osaamistavoitteiden mukaisia.

Ei-pelien tapauksessa ohjelmaan tehdyt testattavissa olevat aliohjelmat tulee testata.

Muun kuin peliharjoitustyön tekemiseen on omat itseopiskelututoriaalit.

#

3.2 Vinkkejä harjoitustyön aloitukseen

Yritin ladata netistä ladattuja ja omia kuvia peliin, mutta tulee error: XNA Framework Reach profile supports a maximum Texture2D size of 2048, but this Texture2D is 2048x2730. Pitääkö kuvia muokata jotenkin vai onko vika XNA:ssa?

09 Oct 17

Ainakin toistaiseksi tekstuurien maksimileveys ja -korkeus on 2048. Toisin sanoen tekstuuri voi olla kooltaan enintään 2048x2048. Sitä suuremmat tekstuurit joudut ainakin tällä hetkellä itse pienentämään sopivan kokoisiksi.

Kyseessä on XNA:sta johtuva rajoitus.

09 Oct 17
{}
#
xxxHEXJSONxxx7b22757365725f6964223a2022416e6f6e796d6f7573222c2022646f4c617a79223a202246616c7365222c20227461736b4944457874223a20223131343036382e506c7567696e322e32314643307a6a4e766a3775222c20227374617274223a202232323532222c202274797065223a20226c697374222c2022686569676874223a2022333030222c202269735175657374696f6e223a2022222c20227374656d223a202250616c6c6f70656c692c206a6f7373612070616c6c6f6a656e2074696c616c6c65206b75766961222c2022696e666f223a20224e6f6e65222c202270726576696577223a202246616c7365222c2022746172676574466f726d6174223a20226c61746578222c2022656e64223a202233313330222c20227461736b4944223a20223131343036382e506c7567696e32222c202266696c65223a202268747470733a2f2f6b7572737369742e69742e6a79752e66692f49544b503130322f32303136732f6c75656e746f2f6c75656e746f3130612e6d7034222c20227769647468223a2022343030222c2022616e6f6e796d6f7573223a202246616c7365222c2022766964656f6e616d65223a20224c75656e746f203130222c2022757365725072696e74223a202246616c7365227d

Kun yritän saada pelaajalle tekstuuria, tulee Error loading pipeline assembly C:Files (x86)Assemblies.NETFramework.0.Build.Framework.dll. Mikä vika tiedostossa on?

VL: Tähän on ohje Jypelin asennussivulla.

23 Oct 17 (edited 23 Oct 17)
#
xxxHEXJSONxxx7b22757365725f6964223a2022416e6f6e796d6f7573222c2022646f4c617a79223a202246616c7365222c20227461736b4944457874223a20223131343036382e506c7567696e312e344844665a376a5738634766222c20227374617274223a202234303839222c202274797065223a20226c697374222c2022686569676874223a2022333030222c202269735175657374696f6e223a2022222c20227374656d223a2022416e6772794c65676f6e20616c6f69747573222c2022696e666f223a20224e6f6e65222c202270726576696577223a202246616c7365222c2022746172676574466f726d6174223a20226c61746578222c2022656e64223a202235343330222c20227461736b4944223a20223131343036382e506c7567696e31222c202266696c65223a202268747470733a2f2f6b7572737369742e69742e6a79752e66692f49544b503130322f32303136732f6c75656e746f2f6c75656e746f3133612e6d7034222c20227769647468223a2022343030222c2022616e6f6e796d6f7573223a202246616c7365222c2022766964656f6e616d65223a20224c75656e746f203133222c2022757365725072696e74223a202246616c7365227d

4. Vaatimukset

Pelissä pitää tapahtua jotakin, eli ruudulla pitää tapahtua jotain järkevää johon käyttäjä voi osallistua.

Työssä on oltava vähintään muutama aliohjelma Jypelin valmiiden aliohjelmien (Main, Begin) lisäksi.

Ohjelman pitää sisältää funktioita: näille aliohjelmille on vietävä parametri tai parametreja ja niiden on palautettava arvo.

Huomaa, että pääpaino ei ole hienossa ulkoasussa.

{}

4.1 Korppiin merkittävät kentät

Katso kurssin koodauskäytänteet.

Alla on tarkastettavien osa-alueiden lista, jonka ohjaajat tulevat tarkastamaan harjoitustyön esittelemisen yhteydessä. Jos ok niin merkintä tulee Korppiin.

  1. Nimi ja versio: Koodissa tekijän nimi ja versio (@author, @version)
  2. Kommentit: Kaikki luokat, aliohjelmat ja metodit ovat kommentoituja. Dokumenteissa kuvataan sitä, mitä aliohjelmat tekevät, ensisijaisesti ei sitä ''miten'', se kommentoidaan itse koodin sisään jos tarvitsee.
    • Voit tarkistaa dokumentaatiosi: palauta itse kirjoittamasi harjoitustyön .cs-tiedosto (usein Begin()-aliohjelman sisältämä .cs-tiedosto) myös NettiDemoWWW:llä demoksi numero 15. Paina Päivitä index.html ja katso sitten minkälainen dokumentti syntyi työstäsi. Mieti kommentteja sen mukaan.
  3. Nimeäminen: Muuttujien ja aliohjelmien nimeäminen johdonmukaista ja loogista, noudattelee C#-kielelle sovittuja käytänteitä. Aliohjelmien näkyvyys määritelty (public, private). Katso koodauskäytänteet.
  4. } + 2 tyhjää: Aliohjelmien loppusulun } jälkeen tasan 2 tyhjää riviä
  5. Ei turhia peliluokan attribuutteja. Jos jotain koko peliluokkaan näkyviä arvoja tarvitaan, pyritään käyttämään vakioita (const). Esim. kuvien olioviitteet voi kiinnittää muuttumattomaksi static readonly määreellä.
  6. Ei julkisia staattisia (public static) muuttujia. Jokaiselle attribuutille on määriteltävä näkyvyys (public, protected, private).
  7. Ei toistoa, joka olisi voitu tehdä silmukoilla tai aliohjelmilla. Myöskään aliohjelmissa ei saa olla toistoa (esimerkiksi LuoVihu1, LuoVihu2).
  8. Taulukko: Käytetään taulukkoa tai listaa.
  9. Silmukka: Ainakin yksi silmukka.
  10. Toimii: Työ toimii ainakin merkittävältä osin.
  11. Ei turhia literaaleja: Koodissa ei numeerisia vakioita, tai merkkijonoja, joiden pitäisi olla const-määreellä. Suomennettuna: et siis saa tehdä koodia esim: (y < 18) jossa 18 on nyt väärin, sen tilalle muuttuja tai vakio.
  12. ei-pelien tapauksessa osoitettu myös taito testata aliohjelmia.
{}

Mikäli omassa pelissä ei ole taulukkoa/listaa tai silmukkaa, pitää ohjaajalla esittää täysin itse tehdyn demotehtävän vastaus, missä em. asioiden osaaminen on näytetty. Tästä voi laittaa vaikka kommentin omaan harjoitustyöhön tyyliin:

// TODO: taulukko, ks: Demo 6, tehtävä 7
#

5. Kurssin lisäosat

Kurssin lisäosana voi suorittaa itseopiskeluna seuraavat lisäkurssit:

  • ITKP106
    • 1 op - kurssilla tehty peli mobiilipeliksi
    • +1 op - mobiilipeli julkaistu kauppapaikassa
  • ITKP107
    • 1 op - graafinen käyttöliittymä harjoitustyöhön (ei-peliharjoitustyön tekijöille) tai graafinen käyttöliittymä jonkin pelissä olevan tiedoston käsittelemiseksi (peliharjoitustyön tekijöille)
    • +1 op - em graafinen käyttöliittymä myös puhelimessa toimivaksi
    • +1 op - em. puhelinkäyttöliittymä julkaistu kauppapaikassa

Tähän liittyviä tarkentavia linkkejä tulee myöhemmin.