Language Adventure Game

Järjestelmäkäsikirja

Table of Contents

Sanastoa
Ulkoinen kuvaus
Seikkailun rakenne
Toiminnan yleiskuvaus
Logiikka- ja pelaajanliittymämoduuli
Pelinkirjoitus-moduli
Opettajan käyttäliittymä-moduli
Esteet
Authorisointi/Login-moduli
Tietokanta

Users Guide





Johdanto

Tämä käsikirja kuvaa Teknillisessä Korkeakoulussa tietojenkäsittelyopin laboratorion harjoitustyönä tehdyn ohjelmiston rakennetta teknisestä näkökulmasta. Ohjelmistoa on kehitetty Teknillisen Korkeakoulun kielikeskuksen tarpeisiin vuoden 1995 syyskuusta lähtien. Ohjelmisto voidaan määritellä Internetin kautta käytettäväksi kieltenopetusohjelmaksi, jossa yhdistyy seikkailupeli perinteisiin kielipeleihin.

Ohjelmiston yleisiä piirteitä:

Tämä käsikirja on luonteeltaan hakuteos, mutta sitä voidaan käyttää myöskin järjestelmän toiminnan opiskeluun. Asioiden esitysjärjestys ei kuitenkaan ole paras mahdollinen tähän tarkoitukseen. Normaalin käyttäjän käsikirjan asioita ei ole tässä enää kerrattu, vaan lukijaa kehotetaankin tutustumaan järjestelmään käyttäjän näkökulmasta ennen tekniseen esitykseen siirtymistä.

Englannin kielen ja Suomen kielen käyttö rinnakkain voi aiheuttaa epäselvyyttä, joten joissain kohdissa on tilannetta pyritty helpottamaan antamalla termi tai käsite kummallakin kielellä. Kaksikielisyys on kuitenkin perusteltua, sillä kansainvälisen ympäristön vuoksi käyttöohje on toimitettava englanniksi. Toisaalta laajan teknisen dokumentoinnin kirjoittaminen englanniksi olisi vaivalloista ja turhaakin, ja jätetään siten tehtäväksi myöhemmin, tarpeen ilmetessä. Joissain yhteyksissä sopivan suomenkielisen termin löytäminen on lisäksi vaikeaa, ja saattaa tehdä tekstin jopa vaikeammaksi ymmärtää. Koska järjestelmän projektisuunnitelma ja esitutkimus on raportoitu Englannin kielellä, on terminologia jo osittain vakiintunut, ja sitä pyritään käyttämään johdonmukaisesti.

Tämän käsikirjan rakenne on seuraava:

Sanastoa

Lyhenteitä

Samaa tarkoittavia ilmaisuja/käsitteitä

Johtuen aiemmin dokumentointiin käytetystä englannin kielestä on tässä dokumentissa valitettavasti käytetty (epäjohdonmukaisesti) useita suomennoksia perustermeistä. Tässä on mainittu myöskin johdonmukaisesti käytetyt suomennokset, jotta lukijan olisi mahdollista ymmärtää erikielisten dokumenttien yhteys.

Ulkoinen kuvaus

Järjestelmä rakentuu useista erilaisista ohjelmakomponenteista, joista osa on vapaasti käytettäviä valmisohjelmia, osa on kehitetty projektin kuluessa. Tässä luvussa pyritään kuvaamaan näiden ohjelmien keskinäisiä suhteita sekä niiden välistä kommunikointia ja rajapintoja. Itsestään selvät, käyttöjärjestelmästä saatavat palvelut on jätetty kuvauksesta pois.

Kaaviossa havainnollistetaan järjestelmän eri ohjelmakomponentteja ja niiden välisiä suhteita. Ainoastaan järjestelmän kannalta merkitykselliset suhteet on piirretty. Katkoviiva tarkoittaa mahdollista tietokoneiden välistä rajapintaa, jos suoritus hajautetaan. "Binary Code" ja "Perl Code" ovat varsinaiset projektissa kehitetyt ohjelmakomponentit, joita muut komponentit tukevat.

PostScript-versio:

Käyttöliittymästä

Järjestelmää käytetään toisesta tietokoneesta WWW-standardia noudattavan selailimen avulla (yhteys voidaan ottaa myöskin samalta tietokoneelta, mutta se ei vaikuta toimintaan). Koko käyttöliittymä on toteutettu WWW:n avulla. Ainoastaan jatkokehitys, jossa esim. luodaan uusia kielipelejä vaatii terminaaliyhteyden koneelle, johon järjestelmä on asennettu. Myöskin erilaiset järjestelmän asennus, käynnistys, lopetus jne. operaatiot täytyy suorittaa terminaaliyhteyden avulla. Kuitenkin kaikki toimenpiteet, joita normaali käyttäjäjoukko (pelaajat, pelin kirjoittajat, opettajat) tarvitsee, suoritetaan WWW:n kautta.

Tästä näkökulmasta järjestelmän käyttöliittymän rajapintana on WWW-palvelin. WWW-palvelin välittää tiedot Internetin kautta käyttäjän selailimelle, joka tulostaa ne käyttäjän näytölle. Käyttäjän toimenpiteet lataavat joko suoraan tiettyjä WWW-palvelimen tiedostojärjestelmässä olevia tiedostoja tai käynnistävät ajettavia ohjelmatiedostoja tietyin argumentein. Osa argumenteista sisältää yleensä käyttäjän syöttämää tietoa, osa aiemmin käyttäjälle lähetettyjen tietojen kopioita ja osa automaattisesti generoituvia tietoja. WWW-palvelin käynnistää ohjelman, ja antaa sille argumenttijonon. Käynnistyvä ohjelma puolestaan tulostaa standarditulostusvirtaansa HTML-tekstiä, jonka WWW-palvelin ohjelman päätyttyä lähettää selailimelle.

Järjestelmä ei ota kantaa tapahtumiin, joita WWW-palvelimen "ulkopuolella" tapahtuu, eli tiedonsiirtoprotokollaan, käytettyyn selailimeen jne. Selvää kuitenkin on, että niiden pitää olla WWW- ja HTML-standardeja noudattavia.

WWW-palvelin NCSA httpd

Järjestelmän ulkoinen kommunikaatio tapahtuu WWW-palvelimen kautta, kuten aiemmin mainittiin. Kommunikointi WWW-palvelimen ja muiden järjestelmäkomponenttien välillä tapahtuu käynnistysargumenttien ja standarditulostusvirran avulla (CGI-liittymä). WWW-palvelin osaa myös suoraan hakea tiedostoja tiedostojärjestelmästä. Projektissa kehitettyjen järjestelmäkomponenttien lisäksi on kaksi valmiskomponenttia, jotka kommunikoivat suoraan WWW-palvelimen kanssa. Nämä ovat Webcopy ja WWW-mSQL, jotka suorittavat tiedostojen kopiointia sekä tietokantakyselyjä.

WWW-palvelimeksi on järjestelmän kehitysvaiheessa valittu NCSA httpd, joka on asennettu Niksulan tiedostojärjestelmään ja käynnistetty hiekkalapio.cs.hut.fi-koneelle, sockettiin 1995. WWW-palvelimen asennuksesta ja konfiguroinnista kerrotaan tarkemmin WWW-palvelimen käsikirjassa.

WWW-palvelinta on myöhemmässä vaiheessa mahdollista vaihtaa, ja järjestelmä voidaan myös asentaa toimimaan yleisessä käytössä olevan WWW-palvelimen kanssa. Tällöin täytyy luonnollisesti WWW-palvelimen käyttöoikeudet muuttaa siten, että tarvittavat tiedostot ovat käyttäjien luettavissa ja CGI-ohjelmat ajettavissa.

Tietokantapalvelin mSQL

Järjestelmä perustuu hyvin aktiiviseen tietokannan käyttöön. Tietokantapalvelimen toiminta ja tietokannan rakenne on selitetty tarkemmin luvussa "Tietokanta". Tietokantapalvelimeksi on kehitysvaiheessa valittu mSQL, joka on kevyt ja SQL-pohjainen.

Järjestelmä toimii normaalisti yhdessä tietokoneessa. Järjestelmä olisi kuitenkin mahdollista jakaa useampaan tietokoneeseen, jolloin yksi kone toimisi tietokantapalvelimena ja toinen WWW-palvelimena sekä itse ohjelman suorittajana. mSQL:ää on mahdollista käyttää UNIXin /dev/msqld-oheislaiteliittymän kautta tai Internet sockettien avulla. /dev/msqld on nopeampi kuin socket-liittymä, mutta vaatii, että koneilla on yhteinen tiedostojärjestelmä.

Tietokantaa käyttää pääasiassa projektin tuottamat ohjelmakomponentit, mutta raportoinnissa käytetään hyväksi WWW-mSQL -nimistä tuotetta.

Tietokannan käyttäminen tapahtuu eri ohjelmointikielille saatavien funktiokirjastojen avulla, joiden toiminnot mahdollistavat lähinnä SQL-kyselyjen lähettämisen palvelimelle sekä vastausten lukemisen. mSQL-paketin mukana tulee vakiona C-kielinen kirjasto, mutta myös Perlille on saatavissa omansa (Perl-mSQL). Riippuen ohjelmointikielestä kirjastot liitetään joko ohjelman kääntämisen aikana osaksi ohjelmaa (C) tai liitetään siihen vasta ohjelman ajon aikana (Perl).

WWW-mSQL

WWW-mSQL mahdollistaa mSQL-tietokantojen käytön suoraan WWW-palvelimelta. Käytännössä se toimii siten, että HTML-sivuun upotetaan määrämuotoinen linkki, jonka WWW-palvelin ymmärtää pyynnöksi käynnistää tietty ohjelma ja lisätä ohjelman tulostama tieto linkin kohdalle. WWW-mSQL on tällainen ohjelma, jolle annetaan argumentiksi SQL-SELECT -lauseke. WWW-mSQL suorittaa halutun kyselyn, muotoilee kyselyn tuloksen HTML:ksi ja palauttaa sen WWW-palvelimelle. Näin ollen muun ohjelmiston tehtäväksi jää ainoastaan sopivan linkin opttaminen itse tulostamaansa HTML-sivuun.

Webcopy

Webcopy on ohjelma, joka mahdollistaa tiedostojen kopioinnin kahden WWW-koneen välillä. Ohjelmalla on tärkeä tehtävä pelin kirjoituksen yhteydessä, HTML-tekstien ja kuvien siirtämisessä peliä kirjoittavan käyttäjän tiedostojärjestelmästä ohjelmiston tiedostojärjstelmään.

Toiminnan yleiskuvaus

Edellisessä luvussa kuvatun järjestelmäkokonaisuuden osista keskitytään tässä ja seuraavissa luvuissa lähinnä projektin aikana tuotettuihin järjestelmäkomponentteihin. Muiden komponenttien toiminnasta mainitaan tarpeen vaatiessa. Niiden varsinainen toiminnan kuvaus löytyy kyseisten ohjelmien omasta dokumentoinnista.

Järjestelmän toimintaympäristö on perinteisestä poikkeava, sillä koko käyttöliittymä on toteutettu Internetin graafista WWW-standardia hyödyntäväksi. WWW-ympäristö sekä mahdollistaa että tekee välttämättömäksi useiden käyttäjien samanaikaisen käsittelyn. WWW-ympäristö on sikäli ongelmallinen, että ohjelmankäynnistys on käyttäjälähtöistä; ohjelma ei voi olla käynnissä odottamassa käyttäjän toimenpiteitä, vaan käynnistys tapahtuu käyttäjän pyynnöstä.

Järjestelmä rakentuu sisäisesti päämoduuleista, joita on tukemassa muutama kirjastomoduuli. Jokaista näistä käsitellään erikseen omissa luvuissaan. Tässä luvussa kerrotaan moduulien sisäisestä toiminnasta sekä moduulien välisestä ja ulkoisesta kommunikoinnista yleisellä tasolla. Kirjautumismoduulia käsitellään tarkemmin tämän luvun loppuosassa.

Järjestemän päämoduulit:

Opettajan moduuli suorittaa ne toiminnot, jotka voidaan käynnistää Main Menu:n valinnasta 'Teachers only'. Näihin kuuluvat käyttöoikeushallinta sekä raportointi.

Pelin kirjoittajan moduuli suorittaa ne toiminnot, jotka voidaan käynnistää Main Menu:n valinnasta 'Write'. Moduulin toiminnoilla käyttäjä voi luoda ja muokata seikkailuja (seikkailun elementtejä ja juonta) sekä kielipelipohjia tai -sanastoja.

Pelimoduuli suorittaa pelaamiseen liittyvät toiminnot. Pelimoduuli vastaa käyttäjän pelissä tekemiin valintoihin seikkailun juonen mukaisesti.

Kielipeliliittymämoduuli luo kielipelimoduuleille yhteisen rajapinnan muuhun järjestelmään päin. Kielipelejä voivat olla esim. täyttötehtävät, sanaristikot jne.

Kirjautumismoduuli huolehtii käyttäjien sisäänkirjautumisesta sekä rekisteröinnistä.

Päämoduuleja tukevat kirjastomoduulit ovat:

Tulostusmoduuli sisältää ko'ottuna HTML-tulostukseen tarvittavat proseduurit.

Tietokantaliittymämoduuli sisältää ko'ottuna tietokantaa käsittelevät proseduurit sekä huolehtii tietokannan eheydestä.

Käyttöoikeusmoduuli suorittaa eritasoisia käyttöikeushallintaan liittyviä toimintoja.

Päämoduulit sisältävät erilaisia proseduuritiedostoja, jotka käynnistyvät WWW-palvelimen tai toisten proseduurien pyynnöistä.

Kaavio: Ylimmän tason modulaarinen jako ja moduulien välisten kutsujen reitit. Kirjastomoduulien kutsuja ei ole merkitty, mutta voidaan sanoa, että lähes kaikki moduulit (kielipelejä lukuunottamatta) kutsuvat suoraan kaikkia niitä.

PostScript-versio:

Modulaarisesta jaosta on liitteenä hiukan tarkempi kuva, joka selvittää päämoduulien sisäisiä kytkentäjä.

Seikkailun rakenne

Kaikissa seikkailupeleissä on jokin juoni, joka sisältää tehtäviä, jotka pelaajan täytyy suorittaa ennenkuin hän on selvittänyt seikkailun. LAG:ssa on mahdollista muodostaa useita seikkailuja, joista pelaaja voi pelata yhtä kerrallaan. Seikkailut ovat tietokannan Adventures-taulussa.

LAG:ssa seikkailun juoni luodaan tiettyjen vakioelementtien avulla. Nämä vakioelementit ovat:

Pelin kirjoittajat luovat nämä elementit seikkailuun, jonka jälkeen järjestelmä huolehtii pelaajan edistymisestä elementtien mukaisesti. Pelaaja aloittaa valitsemalla haluamansa seikkailun. Tässä vaiheessa järjestelmä siirtää pelaajan seikkailulle määriteltyyn alkupaikkaan, asettaa esineet niiden alkupaikkoihinsa ja asettaa ominaisuudet alkuarvoihinsa.

Tämän jälkeen pelaaja valitsee jonkin paikassa mahdollisista teoista, joka saattaa muuttaa pelaajan paikkaa, esineiden paikkoja, ominaisuuksien arvoja jne. Pelaajan suorittaessa lopulta teon, johon seikkailu on määritelty loppumaan, saa hän sitä varten määritellyn viestin. Pelaajan annetaan sen jälkeen valita uusi seikkailu. LAG:lle erityinen piirre on, että pelin kirjoittaja voi asettaa teon suorittamisen ehdoiksi lisäksi kielipelin suorittamisen. Tällä tavoin kielipelit voidaan kytkeä joustavasti eri puolille seikkailua.

Esineet, ominaisuudet ja paikat ovat seikkailukohtaisia, eikä esim. samaa esinettä voida käyttää useammissa seikkailuissa.

Tietokannssa elementit ovat seuraavasti:

Yksittäisen pelaajan tilanne

Tietyn pelaajan pelitilanne tiettynä ajanhetkenä voidaan määritellä seuraavien tietojen summaksi:

Lisäksi voi olla pelaajariippumattomia tilanteeseen vaikuttavia tekijöitä, kuten päivämäärä, josta voidaan saadaan selville vaikkapa kuun asema.

Tiedot on tallennettu tietokantaan seuraavasti:

Kaikkiin näihin tauluihin on tietenkin tallennettu yhtenäinen käyttäjän ID (UserID), jonka avulla jokaisen pelaajan osuus kussakin taulussa on erotettavissa.

Jokaisen pelaajan suorittaman teon jälkeen tietokanta päivittyy teolle määriteltyjen parametrien mukaisesti. Esimerkiksi esineen ottaminen (nostaminen, saaminen jne.) muuttaa kyseisen esineen paikan paikasta jossa käyttäjä on käyttäjän mukana olevaksi. Tietokantatasolla tämä tarkoittaa ItemLocations-taulussa LocationID-kentän arvon muuttamista CARRIED_LOCATION_ID-vakioarvoksi. Pelaajan ensi kerran mennessä paikkaan, jota ei löydy LocationsBeen-taulusta, suoritetaan tällaiseen tapahtumaan liittyvät erikoistoiminnot, sekä merkitään paikka käydyksi LocationsBeen-tauluun. Pelaajan suorittaessa tietyn teon ensimmäisen kerran menestyksekkäästi, tehdään siitä merkintä ActionsDone-tauluun. Tämä mahdollistaa sen, että pelaajan on vain ensimmäisellä kerralla tekoa suorittaessaan läpäistävä tekoon liittyvä kielipeli.

Käyttäjän halutessa lopettaa peli lopullisesti (Quit Permanently -toiminto) pyyhitään tietokannasta käyttäjän tietue Users-taulusta sekä kaikki käyttäjään liittyvät tiedot neljästä muusta yllä luetellusta taulusta.

Jos seikkailun kirjoittavat muokkaavat seikkailua joidenkin jo pelatessa sitä, saattaa aiheutua ongelmallisia tilanteita. Järjestelmä tietenkin huolehtii siitä, ettei voida esim. poistaa paikkoja, joissa joitain pelaajia poistohetkellä olisi (tietokannan eheys). Myöskin uusia esineitä ja ominaisuuksia lisättäessä täytyy olla tarkka: seikkailua pelaaville on aina lisättävä uudet esineet ja ominaisuudet.

Seikkailun rakenneosien toteutusta kuvataan tarkemmin omassa luvussaan.

Sisäänkirjautumisvaihe

Pelin aloittaminen käyttäjän puolelta tapahtuu siten, että käyttäjän WWW-selailin ottaa yhteyden http-protokollalla pelin Internet-koneen siihen porttiin (norm. 80), johon WWW-palvelin on kytketty, parametrilla LAG/. Tämä saa WWW-palvelimen etsimään oman perushakemistonsa alle määritellystä LAG-hakemistosta index.html-tiedostoa. Tämä tiedosto sisältää järjestelmän sisäänkirjautumissivun HTML-muodossa. Käyttäjälle näkyvät asianmukaiset tekstit sekä kaksi syöttökenttää: 'User name' ja 'Password'. Jos käyttäjä valitsee sivulla olevan OK-napin ("painaa" sitä), käynnistää WWW-palvelin login-proseduurin.

Tyhjä salasana kertoo käyttäjän olevan tai haluavan tulla vieraskäyttäjäksi. Vieraskäyttäjän ei tarvitse erikseen rekisteröityä, mutta vieraskäyttäjät voidaan esim. pyyhkiä järjestelmästä, jos he eivät ole muutamaan viikkoon käyneet järjestelmässä. Jos uusi käyttäjä haluaa vakituiseksi käyttäjäksi, tulee hänen antaa salasana, ja rekisteröityä erillisen WWW-rekisteröintikaavakkeen avulla (tallennettu päätasolle tiedostoon regstrtn.htm(l)).

Login-proseduuri saa argumentteina käyttäjän nimen ja salasanan. Login-proseduuri tekee sen jälkeen tarpeelliset tarkistukset, ja pelaaja päätyy seuraaviin mahdollisiin tiloihin:

  1. Takaisin Login-sivulle, käyttäjänimi oli olemassa ja salasana oli väärä.

  2. Seikkailun paikkasivun luomisprosessiin, jos käyttäjä on "play only"-käyttöoikeusluokassa tai käyttäjänimi oli uusi, eikä salasanaa ollut (vieraskäyttäjä). Prosessin lopputulos käyttäjälle voi olla:
    a) Seikkailuvalikko, jos käyttäjällä ei ollut peliä kesken tai käyttäjä oli uusi (seikkailuvalikko on kuvattu pelimoduulia käsittelevässä luvussa).
    b) Kesken olleen seikkailun paikkasivu, jos käyttäjällä on peli kesken.

  3. Rekisteröitymissivulle, jos käyttäjänimi oli uusi, ja salasana ei ollut tyhjä.

  4. Päävalikkoon, jos käyttäjällä on muitakin oikeuksia kuin "play only".

Käyttäjän luonti järjestelmään tapahtuu lisäämällä tietokannan Users-tauluun tietue, johon käyttäjänimi, mahd. salasana ja rekisteröitymistiedot talletetaan. Jos pelaaja on vieraskäyttäjä, merkitään hänet 'Guests'-ryhmään, jos taas vakituinen, merkitään hänet 'Players'-ryhmään. Näillä molemmilla ryhmillä on luonnostaan ainoastaan pelaamisoikeudet. Valvova opettaja voi muuttaa käyttäjien ryhmiä, ja sallia käyttäjille näin muita oikeuksia.

Jos käyttäjä on uusi, täytyy hänet rekisteröidä heti tietokantaan, jotta käyttöoikeusvalvontaa voidaan alkaa suorittamaan jo seuraavan sivun aikana. Toisin sanoen käyttäjälle on saatava UserID ja käyttöoikeustunnus, jotta ne voidaan lähettää piilotettuina objekteina seuraavan sivun mukana. Ennen rekisteröitymisen onnistumista käyttäjä on Guest-ryhmässä, ja siirretään vasta onnistuneen rekisteröitymisen jälkeen Players-ryhmään. Näin estetään, ettei pelaaja pääse Players-ryhmään rekisteröitymättä. Rekisteröitymisen oikeellisuutta ei tietenkään voida mistään tarkistaa. Katso käyttöoikeushallinnasta tarkemmin sitä käsittelevästä luvusta.

Käyttäjän rekisteröityminen tapahtuu rekisteröitymislomakkeen avulla, johon käyttäjä syöttää pyydetyt tiedot (etunimi, sukunimi, sähköpostiosoite jne.), sekä valitsee OK-napin. Järjestelmä tarkistaa, että tiedot on syötetty ja tallettaa ne Users-tauluun, muussa tapauksessa pyytää uudelleen rekisteröitymistä.

Päävalikko - proseduuri MainMenu

Päävalikossa käyttäjä voi valita kolmen perustoiminnon kesken: pelaaminen, pelin kirjoittaminen tai opettajan toiminnot.

Jos käyttäjä valitsee pelaamisen, siirtyy ohjelma seikkailun paikkasivun luontirutiinin, jossa pelaajan keskeneräisen pelin tiedot haetaan tietokannasta ja luodaan niiden perusteella pelisivu. Jos käyttäjällä ei ole peliä kesken, (pelaajan paikka on NOWHERE_LOCATION_ID), siirretään hänet seikkailuvalikkoon. Katso tarkemmin asianomaisesta luvusta.

Jos käyttäjä valitsee pelin kirjoittamisen, siirtyy ohjelma pelin kirjoittamisen päävalikkoon. Katso asianomaisesta luvusta.

Jos käyttäjä valitsee opettajan toiminnot, siirtyy ohjelma opettajan päävalikkoon. Katso asianomaisesta luvusta.

Kirjoittamismoduuli ja opettajan moduuli tarkistavat itse, onko käyttäjällä oikeus toimintoihinsa. Tämä estää sen, ettei käyttäjä, saamalla selville URL:n näihin moduuleihin, voi ohittaa käyttöoikeuksia.

Päävalikko on tallennettu pelin päähakemistoon mainmenu.htm(l)-nimisenä. Päävalikon toiminnot ovat linkkejä yllä mainittuihin proseduureihin.

Vakio HTML-sivut

Vakiosivun luonti käyttäjälle tapahtuu siten, että WWW-palvelimelle tulostetaan perusparametrit (käyttäjän ID, käyttöoikeustunnus) piilotettuina objekteina (hidden object), joiden jälkeen tulostetaan itse vakio HTML-tiedosto. Tämä mahdollistaa sekä käyttöoikeushallinnan että helpon sivujen muokkauksen (nehän ovat vain tekstitiedostoja levyllä). Login-sivua ei sen sijaan käytetä näin, vaan sitä kutsutaan järjestelmän ulkopuolelta, eikä sillä siten voi olla perusparametreja. Jos login-sivua kutsutaan järjestelmän sisältä (esim. käyttöoikeusrikkomuksen yhteydessä), voidaan sen käyttäjänimen kenttään laittaa vakioarvona käyttäjän nimi (lisätä tekstin keskelle default-arvo). Lisäksi voidaan sivun yläreunaan tulostaa haluttu teksti, esim. virhetilanteen syy.

Adventure-moduli

Yleistä

Adventure-moduli hoitaa seikkaulun nimen hallintaan liittyvät toiminot. Seikkailun nimeä voidaan muuttaa ja luoda uusia seikkailuja.

Toteutus

Käyttäjä määrittelee haluamansa seikkailun tiedot muokkaussivulla ja kutsuu adventurescriptiä. Seikkaulun muokkassivulla on:

adventure-scripti