OHJ-2710 Peliohjelmointi Syksy 2012 Timo Kellomäki timo.kellomaki@tut.fi
Käytännön juttuja Kurssihenkilökunta koostuu Timo Kellomäestä Luennot torstaisin salissa TB223 klo 12-14 2. viikko harkkatyöinfo, joulukuussa harjoitustöiden esittelytilaisuus Tenttimateriaalina kalvot + www-artikkeleita Harjoitustyö 2-3 hlö ryhmissä: 2 välipalautusta ja lopullinen palautus Lopullinen dedis 2. periodin loppupuolella Arvosana tentin ja harjoitustyön keskiarvo Htyöstä lisäksi + tai -, joka määrää pyöristyksen
Materiaalia Luentojen pohjana käytetty mm. seuraavia: Puhakka: kurssin vanhat kalvot Gregory: Game Engine Architecture McShaffry: Game Coding Sanchez-Crespo Dalmau: Core Techniques and Algorithms in Game Programming Manninen: Pelisuunnittelijan käsikirja Andrew Rollings and Ernest Adams on Game Design
Mitä ovat pelit? Mitä on peliohjelmointi? Peruskäsitteitä.
Pelit Epämääräinen ja laaja käsite Mitä yhteistä on kaikilla peleillä? Half-Life, shakki, jalkapallo, roolipelit, SimCity Tehtävä: määrittele käsite peli
Pelit Ehdotuksia (Salen & Zimmerman, Kelly): Kilpailua, jossa yritetään saavuttaa annetut tavoitteet käyttäen sovittuja sääntöjä. Toimintaa, jossa pyritään tavoitteisiin rajoitetussa kontekstissa tekemällä päätöksiä Interaktiivinen kokemus, jossa pelaaja kohtaa yhä monimutkaisempia asioita opittavaksi Turhien ongelmien ratkaisemista vapaaehtoisesti a simplified, fair, fascinating, empowering and enclosed world whose purpose is to provide structured play through moderated yet unscripted actions and learnable dynamics, with the goal of winning through victory or achievement.
Digitaaliset pelit Tällä kurssilla keskitytään digitaalisiin peleihin, eli peleihin, joita pelataan tietokoneen tms. laitteen avulla Digitaaliset pelit ovat koodattuja ohjelmia siinä missä toimistosovelluksetkin Myös peliohjelmointi on laaja käsite: projektinhallintaa, arkkitehtuurisuunnittelua, tekoälyä, tietokonegrafiikkaa, skriptausta,...
Peliohjelmointi Peleissä audiovisuaalisen tunnelman luominen on keskeistä Tietokonepelin tekeminen muistuttaa monessa suhteessa elokuvantekoa Suurimpiin projekteihin käytetään satoja henkilötyövuosia, mutta toisaalta päivässäkin voi yksi ihminen tehdä suositun pelin Ohjelmointi on vain pieni osa työstä: pelisuunnittelu, 3d-mallinnus, musiikki, näyttely, tasosuunnittelu, markkinointi, levitys
Kurssin sisältö Historia, peliteollisuus, laitealustat Pelisuunnittelu Peliohjelman arkkitehtuuri Työkalut ja rajapinnat Grafiikka Maailman ja hahmojen luominen Tekoäly Verkkopelit
Muut kurssit Tietokonegrafiikasta ja tekoälystä on omat kurssit, joiden sisällöstä on hyötyä peliohjelmoinnissa Ilmankin kurssilla voi pärjätä, mutta aiheesta kiinnostuneen kannattaa ne joka tapauksessa suorittaa Tosin grafiikasta on lähes pakko olla jotain kokemusta Osa asioista käsitellään tälläkin kurssilla, mutta päällekkäisyyttä on yritetty välttää
Kurssin ulkopuolella Peliohjelmoinnin laajasta kentästä kaikkea ei käsitellä luennoilla 3D-mallinnus (ja muu sisällöntuotanto) Projektinhallinta Tiimityö Käyttöliittymät Tekniset yksityiskohdat: miten käytännössä koodataan OpenGL:ää, DirectX:ää jne. Tulevat silti vastaan harjoitustyössä...
Digitaaliset pelit Digitaaliset pelit ovat tyypillisesti interaktiivisia: pelaaja vaikuttaa peliin, peli vastaa myös odottamattomiin syötteisiin pehmeästi reaaliaikaisia: ei ole vakavaa, jos välillä hidastutaan; toisaalta suurimman osan ajasta pitää toimia todella nopeasti agenttipohjaisia: maailmassa liikkuu toisistaan erillisiä agentteja simulaatioita: perustuvat matemaattisille malleille maailmasta
Säännöt Säännöt kertovat, mitä pelaajat voivat tehdä ja mitä pelissä tapahtuu toimintojen seurauksena Sääntöjen määrittelemät haasteet ja toiminnot muodostavat pelimekaniikan. Pelimaailma koostuu tietorakenteista, jotka määrittävät objektien tiedot ja suhteet Pelimaailma esitetään yleensä grafiikan avulla ihmispelaajille Kontrollien ja käyttöliittymän avulla ihmispelaaja vaikuttaa pelimaailmaan
Näkymät Pelimaailma voidaan näyttää pelaajille erilaisista perspektiiveistä suoraan ylhäältä (karttanäkymä) isometrinen first person third person
Puitteet Useimmat pelit eivät ole abstrakteja, vaan niissä on pelimekaniikan lisäksi jonkinlainen fiktionaalinen komponentti, setting, eli puitteet Esim. shakki ~ taistelukenttä Joissakin peleissä puitteet ovat merkityksetön lisäväri (shakki), toisissa taas koko pelin idea (Monkey Island) Yleistys: pelistä kiinnostutaan puitteiden takia, mutta myöhemmin mekaniikka on tärkeämpi Yleinen keskustelu: kumpi on parempi, valmis tarina vai säännöistä syntyvä?
Genret Genrejako ei ole täydellinen, mutta luultavasti auttaa keskustelua (tämä jako Mannisen) Toimintapelit (FPS, shmup, tasohyppely) Seikkailupelit (+toimintaseikkailu) Roolipelit (CRPG, MMORPG) Strategiapelit (vuoropohjainen, RTS) Simulaatiot (lento-, auto-, talous-, sota-,...) Ongelma-, urheilu-, liikunta- ja opetuspelit, ym.