TIES441 Kolmas luento 2012
TIES441 Ohjelmistoarkkitehtuurit - kevät 2012
Sisällysluettelo
1 Laatu
Mitä on ohjelmiston laatu? Miksi se on oleellista? Mistä se tulee?
1.1 Näppäimistö
Mistä näppäimistöasettelu tulee? Olette varmasti pohtineet jo kyllästymiseen asti. Koetetaan silti…
1.1.1 Miksi QWERTY…
1.1.2 Wikipedia: QWERTY
Qwerty-asettelun kehitti yhdysvaltalainen sanomalehtimies ja keksijä Christopher Latham Sholes, joka pyrki uuden näppäinjärjestyksen avulla vähentämään aiemmin kehittämänsä, aakkosjärjestystä noudattaneen kirjoituskoneen esiin nostamia teknisiä ongelmia. Sholesin patentoimassa kirjoituskoneessa kukin näppäin kiinnittyi pitkävartiseen iskuriin, jonka päässä oleva kirjasin löi kirjoitustelaa vasten painautuvaan paperiin mustejäljen, kun näppäintä painettiin. Iskurin liike kohdistui paperiin alhaaltapäin, joten kirjoittaja ei voinut nähdä kirjoittamaansa tekstiä, ennen kuin se oli valmis. Tästä seurasi, että jos lähellä toisiaan sijainneet iskurit nopeasti näppäiltäessä takertuivat yhteen, ongelmaa oli vaikea huomata ja korjata. Why QWERTY was invented?
1.1.3 Dvorak
- Entäpäs jos näppäimet ladottaisiin sen mukaan, mitä kirjaimet esiintyvät kielessä?
- Wikipedia: Dvorak
1.2 Space Cadet
1.3 Vapaa
1.4 Vaikutukset
- Nopeuttaa kirjoittamista, jos yleisimmät merkit "lähellä"
- …vai nopeuttaako?
- oppimiskynnys
- vaihto toiseen näppäimistöön tehtävien välillä
1.5 Muut hallintalaitteet
- peliohjaimet (Tac-2, Playstation-2)
- kynät (Wacom)
- kosketus, monikosketus (iPhone)
- eleet (Kinect)
2 Tehdään peli
Pelissä pitää katapultilla kiviä ampumalla rikkoa linna ja tuhota siellä asuvat lohikäärmeet.
Ai kuulostaa tutulta?
2.1 Noh…
2.2 Mitä tarvitaan?
Mitä kaikkea tarvitaan ohjelman tekemiseen? No, koska kyseessä on peli, pitää se olla näyttävä, joten pitää palkata artisti. Sitten kun on kuvat, tehdään loput, vai?
Loput? Miten kivi lentää, miten linna hajoaa, mistä tietää, että kenttä on läpäisty, miten siirtyä seuraavaan kentään, koska peli päättyy, hiscore, mistä peli alkaa…
2.2.1 Grafiikat? Ei…
http://www.polenth.com/clipart/, eli Google (tai Bing, tai…) on ystävämme
Kukaan jaksa koskaan tehdä alussa täydellisiä grafiikoita (tällasessa pelissä tällä tasolla), joten otetaan väliaikaiset grafiikat netistä tai piirretään tikku-ukkoja.
2.2.2 Kivi lentää?
Ah, vanha kunnon fysiikan kirja ja \(E=\frac{1}{2} mv^2\), \(E=mgh\) ja \(F=ma\), jne… Hetki pitsaa ja kokista, ja Gorillas on valmis.
Sitten linna, entäs linnan kivet, kun ne tipahtelee toistensa päälle… …tarvitaan Fysiikkamoottori
2.2.3 Fysiikkamoottori
- Tehdään itse, vai…
- Kivaa tai "kivaa" riippuen tekijästä
- Kuluu paljon aikaa
- Suorituskyky, virheettömyys
- Ongelma pelissä 2D, eli käytetään Box2D-kirjastoa tai vastaavaa
- Nopeampaa opetella kuin tehdä itse
- Ylläpito-ongelma ulkoistettu
- Sitä se Roviokin käytti
2.2.4 Ai miksi 2D?
- Grafiikka voi olla 3D:nä tehty, mutta malli alla 2D
- Entä jos oltaisiin alusta lähtien menty 3D:nä?
2.2.5 Pelin alku, Seuraava kenttä, Pelin loppu
- Tilakone, helppo nakki
- Highscore, helppo nakki
- …mutta taas "pelimoottoreita" tarjolla
- …ja sosiaalisen pelaamisen tykötarpeita
2.3 Mitä tästä opimme?
- Työkalut töiden mukaan, mutta pitää varoa, ettei mopo karkaa käsistä.
- Heitto-pelin tekee nopeasti tyhjästäkin, mutta pienellä pohdinnalla ja uudelleenkäytöllä se on vielä nopeampaa.
- Uudelleenkäyttö asettaa omat rajoituksensa, jotka on hyväksyttävä.
- Sitoutuminen, opettelu, tekniset rajoitteet
- Vastaavasti voi myös saada jotain enemmän, mitä ei tullut ajatelleeksi.
2.3.1 Nämä ovat kaikki laadullisia piirteitä
- Angry Birds vs Gorillas.bas
- Laatua
- uudelleenkäyttö
- ylläpidettävyys
- suorituskyky
- virheettömyys
- käytettävyys
- Laatu sanelee arkkitehtuurin, arkkitehtuuri tehdään mahdollistamaan laatuvaatimusten täyttyminen.
3 Arkkitehtuurin suunnittelu
- Koskimies & Mikkonen: