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… http://upload.wikimedia.org/wikipedia/commons/3/3c/Cherry_keyboard_105_keys.jpg

1.1.1 Miksi QWERTY…

http://upload.wikimedia.org/wikipedia/commons/f/f8/Typebars.jpg

1.1.2 Wikipedia: QWERTY

Qwerty-asettelun kehitti yhdysvaltalainen sanoma­lehtimies ja keksijä Christopher Latham Sholes, joka pyrki uuden näppäinjärjestyksen avulla vähentämään aiemmin kehittämänsä, aakkos­järjestystä noudattaneen kirjoitus­koneen esiin nostamia teknisiä ongelmia. Sholesin patentoimassa kirjoitus­koneessa kukin näppäin kiinnittyi pitkä­vartiseen iskuriin, jonka päässä oleva kirjasin löi kirjoitus­telaa 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

http://upload.wikimedia.org/wikipedia/commons/4/47/Space-cadet.jpg

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…

http://upload.wikimedia.org/wikipedia/en/2/2f/Gorillas_screenshot.png

gorillas.bas, Scorched Earth, Worms, …

…mutta nykyään tietty Angry Birds…

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:

km-oa-suunnittelu.png

3.1 Linkkejä suunnitteluun

Päivämäärä: 2012-01-10

Tekijä: Jonne Itkonen

Org version 7.8.03 with Emacs version 23

Validate XHTML 1.0