Tik-76.115 Vaatimusmäärittely

Ryhmä: Hayabusa

Aihe: Monrovia

Viimeksi päivitetty 2000-11-07


Sisällysluettelo

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

1. Johdanto

1.1 Yleistä

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.

1.2 Käsitteitä

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ä.

1.3 Tästä dokumentista

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.

2. Yleiskuvaus

2.1 Ohjelmiston komponentit

Ohjelmisto on ajateltu koostuvan seuraavista komponenteista

Palm1----Pelaajan käyttöliittymä-----Protokolla-----
                                                   |
                                                   Palvelin ohjelma--------Peli
                                                   |                       |
                                                   |                       |
Palm2----Pelaajan käyttöliittymä-----Protokolla-----                   editorit/hallinta

2.2 Työkalut ja ympäristöt

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.

2.3 Käyttäjät

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.

2.4 Pelin kuvaus

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

3. Toiminnalliset vaatimukset

Toiminalliset vaatimukset on jaettu neljään kategoriaan. Kategorian sisällä vaatimuket on järjestetty tärkeysjärjestykseen siten, että ensiksi ovat pakolliset vaatimukset, jonka jälkeen tulevat suotavat vaatimukset ja viimeiseksi lisäominaisuudet.

3.1 Arkkitehtuurin vaatimukset

  1. Samaa peliä voi pelata yhtäaikaisesti 10 pelaajaa (pakollinen)
  2. Palvelin hoitaa pelaajien välistä yhteyttä, eli suoraa yhteyttä ei ole pelaajien välillä (pakollinen)
  3. Yhteyden katkeaminen on huomattava ja osattava reagoida (suotava)

3.2 Palvelimen vaatimukset

  1. Palvelin toteutetaan Javalla (pakollinen)
  2. Palvelin on pelille alusta eikä liity itse peliin muuta kuin alustana (suotava)

3.3 Käyttöliittymän/Palmin vaatimukset

  1. Käyttöliittymä on graafinen (pakollinen)
  2. Palmin asettamat rajoitukset on huomioitava (pakollinen)
  3. Käyttöliittymä on toteutettu Javalla (pakollinen)

3.4 Pelin vaatimukset

  1. Peli on karttapohjainen (pakollinen)
  2. Pelissä voi liikkua (pakollinen)
  3. Peliin voi logata (henkilökohtaiset tiedot) (suotava)
  4. Peliä voi jatkaa (tallentuvat tiedot) (suotava)
  5. Pelissä voi luoda hahmon (suotava)
  6. Pelissä voi taistella (suotava)
  7. Pelissä voi puhua muille pelaajille (suotava)
  8. Pelissä on esineitä (lisäominaisuus)
  9. Pelissä hahmo kehittyy (lisäominaisuus)

4. Ulkoiset liittymät

4.1 Pelaajan käyttöliittymä

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.

4.2 Tietoliikenneyhteys

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.

5. Muut ominaisuudet

5.1 Suorituskyky

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.

5.2 Käytettävyys

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.

5.3 Ylläpidettävyys

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.

5.4 Laajennettavuus

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.

5.5 Siirrettävyys ja turvallisuus

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.

6. Laatusuunnitelma

6.1 Vähimmäisvaatimustaso

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.

6.2 Mahdollisia ylimäräisiä vaatimuksia

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.