Viimeksi päivitetty 2000-11-07
1. Johdanto
1.1 Yleiskuvaus
1.2 Käsitteitä
1.3 Tästä dokumentista
2. Järjestelmän yleiskuvaus
2.1 Ohjelmiston komponentit
2.2 Työkalut ja ympäristöt
2.3 Käyttäjät
2.4 Pelin kuvaus
3. Toiminnalliset vaatimukset
3.1 Arkkitehtuurin vaatimukset
3.2 Palvelimen vaatimukset
3.3 Käyttöliittymän/Palmin vaatimukset
3.4 Pelin vaatimukset
4. Ulkoiset Liittymät
4.1 Pelaajan käyttöliittymä
4.2 Tietoliikenneyhteys
5. Muut ominaisuudet
5.1 Suorituskyky
5.2 Käytettävyys
5.3 Ylläpidettävyys
5.4 Laajennettavuus
5.5 Siirrettävyys ja Turvallisuus
6. Laatusuunnitelma
6.1 Vähimmäisvaatimustaso
6.2 Optionaaliset vaatimukset
Projektin tavoitteena on tuottaa sujuva vuoropohjainen monen pelaajan järjestelmä kämmenmikrojen mobiilikäyttäjille sekä siihen liittyvä dokumentaatio. Pelaajan käyttöliittymän on tarkoitus olla helppokäyttöinen ja intuitiivinen graafinen yhteys pelimaailmaan. Järjestelmän toteutuksessa kuuluu huomioida mobiililiikenteen mahdollinen heikko yhteys sekä kämmenmikrojen suhteellisesti heikko suorituskyky ja käyttöliittymän rajoitukset.
Monen pelaajan järjestelmä on vuoropohjainen tai reaaliaikainen peli, johon voi osallistua yksi tai useampia pelaajia. Esimerkkejä vuoropohjaisista peleistä ovat esimerkiksi Ultima Online ja Batmud. Reaaliaikaisista peleistä mainittakoon Quake 3 Arena ja Unreal Tournament.
Kämmenmikro on yleensä yhteen käteen mahtuva tietokone. Esimerkkejä tämän tyyppisistä laitteista ovat Palm-laitteet ja erinäiset Epoc-käyttöjärjestelmää hyödyntävät laitteet.
Mobiilikäyttäjä on langattoman yhteyden päässä oleva käyttäjä.
Tämän dokumentin tarkoitus on kuvata järjestelmään kohdistuvat vaatimukset. Toisessa kappaleessa on yleiskuvaus järjestelmästä, sen komponenteista, työkaluista, jolla se on toteutettu ja keskivertokäyttäjästä. Kolmas kappale kuvaa toiminnot yleisellä tasolla. Neljäs kappale selventää käyttöliittymän ja tietoliikenneyhteyden vaatimuksia. Viidennessä kappaleessa kuvataan järjestelmältä vaadittavat ei-toiminnalliset ominaisuudet ja kuudennessa kappaleessa on laatusuunnitelma.
Ohjelmisto on ajateltu koostuvan seuraavista komponenteista
Palm1----Pelaajan käyttöliittymä-----Protokolla----- | Palvelin ohjelma--------Peli | | | | Palm2----Pelaajan käyttöliittymä-----Protokolla----- editorit/hallinta
Ohjelmointikieli on asiakkaan vaatimuksesta Java, palvelimella ympäristönä Java 2 Standard Edition ja Palmilla Java 2 Microedition. Palvelimen käyttöjärjestelmä on Linux ja tietokantaohjelmistona PostgreSql. Kommunikointiprotokollan toteutus tehdään GPRS-verkkoon UDP-protokollaa käyttäen. Lisäksi käytetään Palm-emulaattoria, jolla voidaan testata sovelluksia Linuxilla. Tutkitaan myös EJB:n käyttöä palvelinohjelmistossa.
Käyttäjä voi olla kuka tahansa hieman pelikokemusta omaava Palmin käyttäjä. Hän saattaa olla esim. bussimatkalla ja pelata 10 minuutista 8 tuntiin.
Peli on 2-uloitteinen ylhäältä päin kuvattu karttapohjainen roolipeli.
Käyttäjällä on hahmo, jota hän ohjaa kartalla. Pelin kulku riippuu
suureksi osaksi pelaajan toiminnasta - asian selventämiseksi on alla
kuvattu kuvitteellinen pelisessio.
- Käyttäjä loggaa peliin sisään (autentikoituu)
- Pelaajan hahmo on samassa paikassa ja tilassa kuin edellisen pelisession lopussa
- Pelaaja juttelee tuttavalleen, joka myöskin pelaa peliä (pelissä)
- Pelaajan tuttava mainitsee uudesta löydöstään luolasta, joka sijaitsee pohjoisessa
- Pelaaja päättää tutkia asiaa ja lähtee hahmollaan pohjoiseen
- Hetken matkaamisen jälkeen luola löytyy ja hahmo menee luolaan
- Peikko hyökkää pelaajan kimppuun ja pelaaja tappaa otuksen
- Pelaaja poistuu luolasta
- Pelaaja päättää jatkaa peliä myöhemmin ja loggaa ulos
Pelaajan käyttöliittymän tulee olla karttapohjainen. Sen tulee olla helposti omaksuttavissa ja siinä huomioidaan myös tietoliikenneyhteyden mahdolliset viiveet. Käyttöliittymässä otetaan huomioon kämmenmikron rajalliset resurssit.
Tietoliikenneyhteydeltä vaaditaan toimivuutta epävarman GPRS-verkon päällä, jossa siirtonopeudet eivät yllä kiinteän verkon nopeuksiin. Tärkeätä on siis huomioida mahdolliset yhteyden katkeamiset, pakettien katoamiset sekä yhteyden hitaus. Toteutuksessa ei tarvitse huomioida tietoturvaa eikä siihen liittyviä asioita.
Suorituskyvyn vaatimukset koostuvat sujuvasta pelattavuudesta, mika käytännössä tarkoittaa sitä, että pelaaja ei saa joutua odottamaan kesken pelin esimerkiksi uuden karttapalan lataamista. Sitä vastoin hyväksyttävää on, jos pelin käynnistyessä tai mahdollisesti areenaa vaihdettaessa ladataan palvelimelta dataa.
Vaikeustaso käytettävyydessä, niin kuin alussa mainittiin täytyy olla riittävän alhaisella kynnyksellä, jotta joskus tietokoneella pelannut pääsee peliin kiinni ilman, että tarvitsee lukea erityisen pitkiä käyttöohjeita.
Ensisijaisesti ylläpidettävyys kuuluu ottaa huomioon suunnittelussa ja projektin edetessä, mutta se ei ole vaatimuslistan alkupäässä, mikä tarkoittaa sitä, että jos aikaa jää, niin yksi vaihtoehdoista on toteuttaa ylläpitotyökaluja, kuten karttaeditori tai pelaajien hallintaohjelma. Pelijärjestelmässä tulisi myös olla mahdollisuus ylläpitää jonkinlaista lokia pelaajien toiminnasta.
Pelialustan laajennettavuutta ei varsinaisesti tarvitse ottaa huomioon tässä projektissa. Ohjelmiston eri osat suunnitellaan kuitenkin huomioiden sopivasti niiden yleiskäyttöisyys, jotta mahdolliset laajennukset tulevaisuudessa olisivat mahdollisia.
Turvallisuutta ja siirrettävyyttä ei oteta huomioon tässä projektissa. Todettakoon kuitenkin, että Java ohjelmointikielenä antaa aika paljon siirrettävyyttä ja turvallisuus voidaan mahdollisesti hoitaa jollakin ulkoisella ratkaisulla, jos tähän ilmenee tarve. Kyseessä on kuitenkin peli eikä esimerkiksi pankkitalletuksia hoitava ohjelma.
Vähimmäisvaatimustaso on saada aikaiseksi ainakin kahdella päätelaitteella yhteistä peliä pelaavan pelaajan vuoropohjainen peli, jota ajetaan erillisellä palvelimella, tai ainakin saada selville se/ne perustavaa laatua olevat syyt, miksi tämän tyyppistä peliä ei voi toteuttaa. Erittäin suotavaa on, että peli on monen pelaajan karttapohjainen, mahdollisesti roolipelityyppinen peli. Myöskin suotavaa on, että koodi on selkeä lukuista ja dokumentaatio hyvälaatuista.
Pelin tulisi olla mahdollisuuksien mukaan hyvä, haastava ja mielenkiintoinen. Järjestelmään voisi sisältyä myös editoreja ja ylläpitotyökaluja. Pelaajien autentikointi ja heidän toimintansa seuraaminen voisi myös olla mahdollista.