1. Johdanto

1.1 Taustaa

Tietojenkäsittelytieteen laitos haluaa laitokselle pyrkivän enemmän abiturientteja. Tähän pyritään lisäämällä laitoksen WWW-sivuille mainosmateriaalia pelin muodossa. Peliä tulisi voida pelata verkossa selaimella. Toteutustavaksi on valittu Java-applet sen laitteistoriippumattomuuden ja graafisiin toteutuksiin soveltuvuuden vuoksi. Appletin etuna on myös ajettavuus pelkällä selaimella.

1.2 Projektin laajuus

Projektissa toteutettavat osat ovat Java-applet, sen vaatima HTML-sivu, esittelysivu, sekä ennätyssivu ja sen ylläpitämiseen tarvittavat CGI-skriptit.

1.3 Sanasto

Java-applet
Java-sovelma - alustariippumaton ohjelma, joka voidaan sisällyttää HTML-sivuun selaimessa suoritettavaksi
CGI
Common Gateway interface - protokolla, jolla palvelimella ajettavalle ohjelmalle välitetään tietoa verkon yli.
SHTML
HTML-sivu, johon sisällytetään varsinaisen dokumentin ulkopuolista sisältöä
TKT
Tietojenkäsittelytiede


2. Yleiskuvaus

2.1 Pelin komponentit

Pelin käsittämät kolme HTML-sivua ja applet muodostavat visuaalisesti oman kokonaisuutensa, joka suunnitellaan kohderyhmää silmälläpitäen eikä tästä johtuen noudata TKT-laitoksen (muiden)sivujen ulkoasua. Pelin sivuille sisällytetään linkki laitoksen sivuille.

Ennätystulosten ylläpitoon käytettävä CGI-skripti tallettaa ja lukee tulokset palvelimella sijaitsevasta tiedostosta appletin ja ennätyssivun (SHTML) pyyntöjen mukaan. CGI-skripti on käytettävissä myös muilta samassa osoitteessa sijaitsevilta sivuilta. Tämän toteutus edellyttää että asiakkaalla on käytettävissä HTTP-palvelin, joka tukee Server-Side Includeja ja jolle voidaan asentaa CGI-ohjelmia. Tähän tarkoitukseen sopii esimerkiksi Linux-käyttöjärjestelmän päälle asennettu Apache-palvelin ohjelmisto.

2.2 Peliaiheen valinta

Kolmesta esitetystä pelivaihtoehdosta, jotka on esitelty liitteessä 2, valittiin asiakkaan suostumuksella sokkelopeli tyyppinen pingviinipeli. Päätökseen johtavia tekiöitä olivat pingviinin rinnasteisuus Linuxiin ja laitokseen, alhainen aloituskynnys ja pelin helppo laajennettavuus. Seikkailupeli hylättiin sen pelaamisen vaatiman pitkäjänteisyyden ja liian suuren työmäärän vuoksi. Nopeuspelin ei arveltu kiinnostavan pelaajia ensimmäisen pelin jälkeen.

2.3 Taustatutkimus

Laitoksen ja alan mainostamisen arvoisten piirteiden kartoittamiseksi päätettiin järjestää kysely. Koska abiturienttien tavoittaminen olisi vaatinut runsaasti aikaa, päädyttiin valitsemaan kyselyn kohderyhmäksi laitoksella vasta opintonsa aloittaneet opiskelijat. Kohderyhmälle laadittiin neljän vapaamuotoisen kysymyksen kysely. Kysely tehtiin jakamalla fuksiryhmille kyselylomakkeet, joihin heidän tuli itsenäisesti vastata.

Pelihahmoksi oli suunniteltu Linux-käyttöjärjestelmän pingviinitunnusta sen sympaattisen olemuksen ja Linuxin laitoslähtöisyyden vuoksi. Siksi kyselyllä haluttiin myös kartoittaa Linuxin ja sen tunnuksen tunnettuutta.

Fukseille tehty kysely (kooste vastauksista liitteessä 1) osoitti että noin 86% fukseista tunsi Linuxin ja 70% osasi yhdistää Tux-pingviinin siihen. Tämän vuoksi Tux-pingviiniä käytetään keskeisenä osana pelin ideaa.
Lisäksi kyselyn vapaammin vastattavat kysymykset tuottivat muita ideoita laitoksen ja alan mainostettavista piirteistä. Näitä piirteitä käytetään peliin liittymättömänä lisäinformaationa peliin upotettuna, kuitenkin pelin kulkua häiritsemättä.

2.4 Käyttöliittymä

Pelissä seikkailaan erilaisten ratojen läpi. Ratoihin sisältyy kuhunkin yksilöllinen tehtävä, joka pitää suorittaa radan läpäisemiseksi. Radoilla liikkuu radasta riippuen erilaisia vihollisia, jotka vaikeuttavat tehtävän suorittamista, ja joihin törmätessään Tux kuolee. Kuoleman jälkeen Tuxilta vähennetään yksi elämä, pisteet säilyvät ja peli jatkuu samasta tilanteesta mutta Tux on hetken aikaa kuolematon.

Radoilla esiintyy erilaisia palikoita; osa niistä on kiinteitä: niitä ei voi siirtää eikä rikkoa. Osaa palikoista ei voi rikkoa, mutta niitä voi työntää ruudun kerrallaan eteenpäin mikäli niiden takana ei ole mitään. Osan palikoista voi rikkoa ja niitä voi töniä liikkeeseen, jolloin palikka liukuu samaan suuntaan kunnes törmää toiseen palikkaan tai radan reunaan. Jos vihollinen jää liukuvan palikan alle, se kuolee. Joidenkin palikoiden sisältä löytyy esineitä, joilla on tehtävässä erikoismerkitys.

Peli alkaa appletin latauduttua introruudulla. Introruudussa esitellään pelaamiseen käytettävät näppäimet ja pelin grafiikoiden merkitykset. Varsinainen peli alkaa pelaajan painaessa mitä tahansa näppäintä.

Peli on 4-6:n radan sarja. Jokaista rataa edeltää tehtävän kuvaus, joiden yhteydessä tarjotaan lisäinfona triviaa laitoksesta sekä mahdollisia linkkejä www-sivuille. Radan suorituksen jälkeen pelaajalle esitetään tilastotietoa kyseisen radan suorituksesta: tehtävään kulunut aika, kerätyt esineet, tapetut viholliset ja näistä kertyneet pisteet, sekä niiden summa.

Peli päättyy, kun pelaaja on läpäissyt kaikki radat tai pelihahmon kaikki elämät on käytetty. Jos pelaajalle on kertynyt tarpeeksi pisteitä päästäkseen ennätyslistalle häntä onnitellaan pyydetään antamaan nimensä ja tervehdyksensä. Tämän jälkeen tulostetaan ennätyslista (jossa pelaajan nimen pitäisi nyt näkyä). Jos pelaajalle ei ole kertynyt riittävästi pisteitä päästäkseen ennätyslistalle, se tulostetaan ruudulle ja hänen tuloksensa sen alle.

Käyttöliittymää kuvataan tarkemmin erillisessä dokumentissa.

2.5 Ympäristö

Pelin tulee toimia Linux-ympäristössä Netscape Communicator 4.6 selaimella sekä Windows-ympäristössä Netscape Navigator 4.6:lla ja Microsoft Internet Explorer 4.0:lla ilman erillisiä tai erikseen noudettavia plugineja. Koko pelin on mahduttava kerralla näytölle myös 800x600-tarkkuudella selaimen ylä- ja alapalkit mukaan lukien. Pelin käyttöön tarvitaan näppäimistöä ja hiirtä.

Pelin tulee toimia maksiminopeudellaan 200Mhz Pentium, tai vastaavan nopeuksisella koneella. Latausajan modeemiyhteydellä tulee olla kohtuullinen.


3. Käsikirjoitus

3.1 Juoni

Pelihahmo on Tux-pingviini. Tux on hälytetty TKT-laitokselle kokoamaan Linuxin ydin ja samalla häätämään ei-toivotut vierailijat. Tux lähtee saman tien Piilaaksosta kohti kotiaan TKT-laitosta.

Pelin juonessa pyritään hyödyntämään Linux - Windows -vastakkainasettelua. Kyselyn tulokset osoittivat Linuxin olevan kohderyhmän suosiossa, kun taas Windows koettiin rasitteeksi. Juonesta käy myös ilmi Linuxin alkuperä: TKT-laitos.

Tehtäviä suorittaessaan pelaaja kerää pisteitä. Pisteiden kertyminen on rata- ja tehtäväkohtaista. Radat ovat ruudukkoja, joissa on erilaisia neliön muotoisia palikoita. Tux voi kulkea palikoiden välissä jokaiseen pääilmansuuntaan, kuitenkin vain kahden vierekkäisen ruudun välillä kerrallaan.

3.2 Tasot

Taso 1 - PacMan
Rata:
Kaikki palikat ovat kiinteitä ja muodostavat sokkelon. Radalle ilmestyvien pullojen juomisen jälkeen pingviinin väri muuttuu ja se pystyy tuhoamaan vihollisia kävelemällä niiden päälle. Viholliset syntyvät kuitenkin uudelleen.
Tavoite:
Tavoitteena on syödä kaikki radalla olevat omenat.
Pisteytys:
Jokaisesta omenasta, pullosta ja tapetusta vihollisesta saa pisteitä. Lisäksi radan nopeasta läpäisemisestä saa bonuspisteitä.
 
Taso 2 - Ikkunoiden särkeminen
Rata:
Radalla on sekä kiinteitä, että liukuvia palikoita. Viholliset ovat ikkunoita (Windows).
Tavoite:
Tavoitteena on rikkoa kaikki ikkunat mahdollisimman lyhyessä ajassa.
Pisteytys:
Jokaisesta rikotusta ikkunasta ja radan nopeasta läpäisystä saa pisteitä.
 
Taso 3 - Teollisuuskadun ylitys
Rata:
Radan palikat ovat kaikki kiinteitä ja viholliset ovat kulkuneuvoja, jotka liikkuvat vaakasuunnassa kentän poikki.
Tavoite:
Pelaajan on päästävä vasemmasta yläkulmasta oikeaan alakulmaan liikenteen lomitse.
Pisteytys:
Pisteitä saa radan nopeasta suorittamisesta ja kerätyistä esineistä.
 
Taso 4 - Linuxin kokoaminen
Rata:
Radalla on kiinteitä, liukuvia ja ruudun kerrallaan työnnettäviä palikoita. Viholliset ovat ilkeitä, Bill Gatesia muistuttavia hahmoja.
Tavoite:
Kaikki ruudun kerrallaan liikkuvat palikat (Linux-palikat) on saatava kiinni toisiinsa.
Pisteytys:
Pisteitä saa radan nopeasta suorittamisesta ja vihollisten tappamisesta.


3. Testaus

Tuote testataan kolmessa vaiheessa: moduuli-, integrointi- ja järjestelmätestauksessa. Järjestelmätestaus suoritetaan Linux ympäristössä Netscape Communicator 4.6:lla ja Windows ympäristössä Microsoft Internet Explorer 4.0:lla ja Netscape Communicator 4.6:lla. Testiraportista tulee käydä ilmi mahdolliset eroavuudet pelin toiminnassa eri alustoilla, ohjelmavirheet ja toteuttamatta jääneet piirteet.