(toiminnot)

hwechtla-tl: Kv:n tekstipeli

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Tämän sivun (ynnä sen sisarussivujen) on tarkoitus dokumentoida tekstipeliä, jolla Aspektin on tarkoitus osallistua Humanisticumin kulttuuriviikoille. Tällä sivulla on lyhytosoite: http://tinyurl.com/9jzjmgz

Huomautus 2011: peli ei koskaan kehkeytynyt, mutta tekniset ajatukset ovat sound, joten toteutusta voi jatkaa, kun siltä tuntuu. Juoniosioihin ja ideointiosioihin ei välttämättä kannata kiinnittää paljon huomiota: pelin juoni meni uusiksi (monta kertaa) jokaisessa suunnittelukokouksessa eikä sen käsikirjoitusta aloitettu koskaan.

työnjako pelintekijöiden kesken

interaktio käyttäjien kanssa

Siltaus IRCiin: peli rikastuttaa IRC:n entiteettejä (kanavia ja käyttäjiä) antamalla niille sijainnin virtuaalimaailmassa. Se, että kanavalla kaikki kuulevat toistensa puheen, johtuu siitä, että kanavalla olevat ihmiset ovat kuuloetäisyydellä toisistaan virtuaalimaailmassa. Tämä tarkoittaa, että kanava on yksi party seikkailumaailmassa, johon voi liittyä mutta josta ei voi erota eikä lähteä eri suuntaan. Myös kuolleet pelaajat ovat mukana haamuina; he voivat mahdollisesti herätä henkiin jossain erityistilanteissa. Pelaajat, jotka eivät ole yhteydessä IRCiin, ovat "hypnoosissa", ts. seuraavat mukana eivätkä tee mitään oma-aloitteista. Peli siltaa sen puheen, jota IRC ei välitä muuten, esimerkiksi sattumalta lähekkäin olevien kahden kanavan puheet.

Roolipelimäisyys: pelaajat sanovat (1. persoonassa), mitä tekevät; peli kertoo (2. tai 3. persoonassa), mitä tapahtuu. Peli käyttää 2. persoonaa vain puhutellessaan pelaajaa. Peli ymmärtää itselleen osoitetuksi puheen, joka on (1) querytty pelille, (2) osoitettu puhuttelulla pelille tai (3) toimintaa kuvaava action (/me). Pelaajat voivat puhua kollektiivisesti silloin, kun siinä on järkeä, esimerkiksi "lähdemme pohjoiseen". Peli viittaa erilaisiin asioihin eri tavoin sen mukaan, mitä pelaajat tietävät niistä (esimerkiksi henkilöön ulkonäöllä / suhteella / nimellä).

Osittainen automaatio: pelaajat voivat tehdä asioita, joiden toteutuminen ei ole välitöntä, esimerkiksi "seuraan karhua" tai "odotan iskää". Myös liikkumiset aiheuttavat pidempiaikaisia seurauksia, esimerkiksi "menen kaivolle luolan suun kautta" -- katso seuraava kohta.

Virtuaaliaikavastaavuus: virtuaalimaailman tapahtumiin kuluva aika vastaa todellisuudessa kuluvaa aikaa. Jos esimerkiksi veden kiehumiseen kestää 5 minuuttia, niin virtuaalimaailman vesi kiehuu 5 minuutin kuluttua niin virtuaalimaailmassa kuin todellisuudessakin.

Puheen kontekstuaalisuus: peli pitää kirjaa asioista, joista on puhunut, ja tulkitsee nominaalisyntagmoja (tai muita spesifikaattoreita) sen mukaan, mikä on "lähin" viittauskohde puhehistoriassa tai siinä kohtaa maailmaa, jossa pelaajat ovat. Jos peli on esittänyt kysymyksiä, niihin pystyy vastaamaan toistamatta koko virkettä.

Monikielisyys: pelissä sekä maailma että tapahtumat (katso seuraava osio) on kuvattu "kieliriippumattomasti"; omia toimiaan voi selittää haluamallaan kielellä ja vastaukset saa samalla kielellä. (Peli puhuu kullekin entiteetille sitä kieltä, jota sen kanssa on viimeksi käytetty.) Kielistä toteutetaan ensimmäiseksi (ja ainoastaan?) suomi.

Lor: moninpeli ja juonellinen maailma saadaan sovitettua niin, että on rajallinen joukko ennalta määriteltyjä pelaajahahmoja, ja kun joku tulee pelaamaan, hänet yhdistetään johonkuhun vapaaseen pelaajahahmoon. Eri pelaajat saattavat siis ohjata samaa hahmoa eri aikoina. Kun hahmolla ei ole aktiivista pelaajaa, se saattaa yhä tehdä jotain automatisoituja toimenpiteitä maailmassa. Mutta pohjimmiltaan siis peli olisi virtuaalilarppi, joka olisi joiltain osin, erityisesti hahmoiltaan, suunniteltu valmiiksi.

esimerkkejä pelin ja pelaajan välisistä keskusteluista

...

sisäiset kielet

Pelissä on (ainakin) kaksi sisäistä kieltä: maailman ja tapahtumien kuvaamiseen tarkoitetut kielet. (Jäsentimissä sun muissa lienee vielä lisää.) Maailman kuvaamiseen tarkoitettu kieli on näistä köyhempi ja siihen puututaan tarkemmin seuraavassa osiossa. Tapahtumien kuvaamiseen tarkoitettu kieli on sen verran vivahteikas, että se pystyy kantamaan kaiken käyttäjäinteraktion kieliriippumattoman osan sekä juonen vivahteet. Vihjeitä siitä, millaisia käsiteprimitiivejä nämä kielet saattavat sisältää, voi katsoa vaikkapa tähän peliin liittymättömästä maailmankuvausprotokollasta.

Tapahtumien kuvaamiseen tarkoitettu kieli noudattaa eräänlaista teema-reemarakennetta: siinä määritetään ensin jokin määrä aiheita (jotka ovat maailman käsitteitä tai yksilöitä, yleensä yksilöitä) ja sanotaan sitten jokin väite tjsp niistä.

Esimerkiksi "kissa on punainen":

(((o1 (isa cat)))
 (prop o1 red))

"avaan oven":

(((o1 (context-speaker))
  (o2 (isa door)))
 (state o2 open (ag o1)))

"lyön pientä örkkiä kirveellä, jonka varsi on kuvioitu":

(((o1 (context-speaker))
  (o2 (isa orc) (prop small))
  (o3 (isa axe) (part (^ (isa handle) (prop decorated))))
  (o4 (isa hand) (co-part (^ (context-speaker)))))
 (propel o2 (ag o1) (med o3) (instr (propel o3 (ag o1) (med o4)))))

Katso myös upotettu vastaan linearisoitu määre.

maailmanmalli

Maailman kanssa selvitään (toivottavasti) yksinkertaisella ontologiakielellä, joka koostuu tripleteistä RDF:n tapaan (katso määrämuotoinen verkkosisältö), eli jokainen tieto maailmasta on relaatio kahden asian välillä (esimerkiksi "asia A sijaitsee asia B:ssä"). Asiat kuitenkin jakautuvat kahtia yksilöihin ja käsitteisiin. Ero yksilöiden ja käsitteiden välillä on lähinnä se, että käsitteillä on globaali nimi ja yksilöillä ei. (Kuten tiedätte, esimerkiksi paikan tai ihmisen "nimi" ei yksiselitteisesti nimeä tätä yksilöä mielivaltaisen laajassa kontekstissa.)

Käsitteiden esittämiseen on ainakin kaksi vaihtoehtoa, joista pitäisi valita. Toinen on prototyyppiteoreettinen ontologia, jossa käsite lähinnä sisältää oletuksia siitä, millaisia sen instanssit (yksilöt) ovat. Toinen vaihtoehto taas on perinteinen ontologia, jossa käsitteet muodostavat oman luokkansa, luokkien luokan (eli ne eivät ole todellisia tai kuviteltuja prototyyppisiä yksilöitä) eivätkä käsitteiden ominaisuudet ole niiden yksilöiden tyypillisiä ominaisuuksia: esimerkiksi se, että elefantin käsite on "suuri" tarkoittaa, että sillä on laaja ekstensio (eli elefantteja on paljon) eikä, että tyypillinen elefantti on suuri.

Prototyyppiontologiassa on sellainen ongelma, että sitä voi olla vaikea yhdistää johonkin valmiiksi tehtyyn keskitason ontologiaan kuten MILOon (http://sigmakee.cvs.sourceforge.net/*checkout*/sigmakee/KBs/Mid-level-ontology.kif) ja lisäksi saattaa olla, että maailmanmallissa oikeasti tarvitaan käsitteiden ominaisuuksia. Tällöin saatetaan joutua omituisiin ratkaisuihin, kuten nimeämään ominaisuuksia siten, että osa yksilön ominaisuuksista kertoo yksilöstä itsestään ja osa taas siitä luokasta, jota yksilö edustaa.

Perinteisessä ontologiassa taas on sellainen ongelma, että se on monimutkaisempi toteuttaa (koska ero käsitteiden ja yksilöiden välillä on suurempi) ja siinä on helpompi tehdä virheitä. Klassinen esimerkki saadaan merologian osarelaatiosta: on helppoa luulla, että katto on talon osa, mutta itse asiassa tarkasti ottaen tällä tarkoitetaan, että jokaisella taloyksilöllä on osa, joka on katto. (Katon käsite ei siis ole talon käsitteen osa.)

Maailmankuvausprotokollan yksilö"käsite"ongelma ratkaistaan siten, että käytetään kehyksistä (frame theory) tuttuja olioita. Olio on lista, jonka ensimmäinen symboli kertoo luokan, johon olio kuuluu, ja häntä on assosiaatiolista olion suhteista (ominaisuuksista). Jokaisen ominaisuuden sisältö on lista, jonka ensimmäinen symboli kertoo suhteen nimen ja loppuosa on lista yksilöistä / käsitteistä, joihin kyseinen olio on kyseisessä suhteessa. Esimerkiksi:

(human
 (name Panu)
 (child (human (name Kaneli) ...)
        (human (name Peikko) ...)
        (human (name Utu) ...))
 (temperament curious unreliable)
 ...)

Kahden olion välisen suhteen kuvaamiseen on vakioitu tapa. Jos meillä on oliot A ja B, niin se, että A on B:n omistaja, voitaisiin ilmaista ontologiassa ehkä (owner B A). Koska yksilöillä ei ole nimiä, tarvitaan kuitenkin jotain muuta merkintätapaa. Tällöin B:lle lisätään ominaisuus, että sen omistaja on A, ja A:lle ominaisuus, että sen omistettu (eli ko-omistaja, omistajasuhteen konvertti suhde) on B. Tähän tapaan:

A =
(thing
 (co-owner B ...)
 ...)

B =
(thing
 (owner A ...)
 ...)

Tästä seuraa siis syklisiä tietorakenteita yksinkertaisimmankin suhteen ollessa kyseessä.

Sivuhuomautus suhteiden lukemisesta: (pred A B) tarkoittaa "A:n pred on B" tai "the pred of A is B", jolloin esimerkiksi oliota luettaessa ominaisuus "animator" tarkoittaisi, että tällä oliolla on ominaisuudessa luetellut animoijat.

muisti

Pelissä olisi mukava olla mahdollisimman vähän sellaisia transendentaalisia asioita ja ominaisuuksia, jotka pelaajat vain saavat tietoonsa ilman, että niitä tarvitsee löytää tai tutkia. On esimerkiksi hassua, jos pelaajat saavat tietoonsa jonkin asian nimen automaattisesti tavatessaan kyseisen asian (silloinhan kaksi ihmistä, jotka eivät ole koskaan tavanneet toisiaan, pystyvät varmistumaan puhuvansa samasta esineestä ilman ulkopuolista apua) tai jos pelaajat voivat kertoa menevänsä paikkaan, jossa eivät ole koskaan olleet.

Jonkin verran muistia (anaforien ja sanojen viittausten kohteita) voidaan toteuttaa jäsentimissä siten, että ne muistavat, millaisista asioista on puhuttu ja käyttävät tätä tietoa yrittäessään yksiselitteistää pelaajien ilmauksia. Mutta tarvitaan myös yleisempää järjestelmää, jolla pystytään seuraamaan, kuka pelaaja tietää mitäkin.

Tavatessaan ja tutkiessaan olioita pelaajat muodostavat niistä muistimallineita (mental representations). Nämä mallineet ovat pelimaailman todellisia olioita, joilla on mm. seuraavat ominaisuudet: mistä oliosta malline on muodostettu, kenen malline/käsitys se on, mitä ominaisuuksia siihen sisältyy ja milloin se on muodostettu. Lisäksi aina olioiden ominaisuuksia muutettaessa pidetään kirjaa siitä, milloin muutos on tapahtunut. Näin pystytään seuraamaan, mitä tietoa maailmasta kenelläkin on ja sitä, miltä osin tämä tieto on vanhentunutta.

muodostimet

(palveluita, joita kutsutaan, kun tarvitaan uusia alueita maailmaan tai kun selvitetään olion sellaisia ominaisuuksia, joita ei ole vielä määritetty)

moninäkökulmaisuus

Lor: [...] Se varsinainen Idea oli tämä: eri hahmot näkevät pelimaailman eri tavoin. Siis sama paikka saattaa näyttää eri hahmoille erilaiselta, jokin teko saattaa yhden silmissä olla ihan toisenlainen kuin toisen.

Yksi esimerkkiteema voisi olla, Power Killiä mukaillen, että jotkut hahmot luulevat olevansa jossain tavanomaisessa luolasto-hacknslashissa. Toiset taas näkevät maailman "arkitodellisuutena" ja hacknslasherit ovat heidän silmissään psykopaatteja, heidän tappamansa "hirviöt" taas uhreja. Ja tätä ei tehtäisi mitenkään kauhean ilmeiseksi itse pelissä, vaan maailman subjektiivisuuden tajuaminen olisi tavallaan pelin tavoite. Joku lääkärihahmo voisi esim. saada vihjeitä tappajien ongelmista ja ehkä lopulta löytää lääkkeen jolla saa heidät näkemään "arkitodellisuuden". Sitten kun lääke vaikuttaa, hacknslash-hahmon näkymä maailmaan muuttuu aika radikaalisti.

Tämä vain yksi mahdollinen teema. Toinen voisi olla jokin matrix/futurologinenkongressi-tyylinen scifijutska. Tai sitten maagista realismia, jotkut näkevät asioissa taikuutta ja mystiikkaa, toisille samat asiat ja tapahtumat ovat ihan arkisesti selitettävissä. Pelin sisäisessä representaatiossa on vain yksi "noumenaalinen" todellisuus, mutta ne filtteröidään kunkin hahmon omanlaisiksi fenomenoiksi. Ja toiseen suuntaan toki myös. Tavallaan sama idis kuin se monikielisyys, mutta vähän pidemmälle vietynä vain.

mw: se toteutetaan sit erillisinä kuvauksina joka huoneesta, vai miten?

atehwa: todennäköisesti erilaisina jäsentiminä / muodostimina kielellisille ilmauksille.

ei-pelaajahahmot

Toteutetaan botteina, jotka puhuvat pelin kanssa "sisäkieltä" tai muuta kieltä, jos se on helpompaa (katso osio "sisäiset kielet").



Luokittelemattomia juonisuunnitelmia:

juoni Q3/2008

Helsinki, reaalimaailma, jossa pieniä erikoisuuksia.

Tapahtuu rikos. Rikospaikalla on lappu, jonka tekijä selviää frekvenssilistan avulla; vertaillaan eri korpuksia; valtsikan ainejärjestölehti epäilyttävin. Löytyy myös lappu, jossa tärkeää tietoa kielellä, jota ei dokumentoitu. Pitää dokumentoida kieli. Hyökätään valtsikkaan. Rikosta tutkii Innokas Lingvisti. Pörrin salaisuus lähes ratkeaa (tunnussana)!

13:48:13 <@Zet> I think up until the 1980's there were some speakers near Rauma who said me&#952;&#952;ä : me&#952;&#952;ässä
13:48:48 <@muhtimin> then prescriptivists killed them?
13:49:03 <@Zet> muhtimin: no, they were the subject of many a field trip
13:49:53 <@muhtimin> militant prescriptivists would be a good theme for a aspekti-text game :D
13:50:40 <@muhtimin> (they would ofcourse be the natural enemies of any linguist)

Suunnittelutapaaminen 30.5.2008

Paikalla: Inari, Jan, Laura, Lauri.

Projektin työnimi on "Pörri", kiitos Janin väsymättömän painostuksen.

Käyttöliittymästä keskusteltiin paljon ja lopulta hyväksyttiin, että se ei ole kaikkein kiireellisin kysymys.

Kehitetään työ kolmessa eri vaiheessa, jotta saataisiin varmasti edes jotain konkreettista ajoissa valmiiksi:

  1. Valmis interaktiivisesti luettava tarina à la Portal ( http://en.wikipedia.org/wiki/Portal_%28interactive_novel%29 ): maailma sisältää vain tietoa (osittain strukturoitua, osittain valmista proosaa), jota sitten saadaan selville esittämällä sopivia kysymyksiä, esim. "muistin kaivelua". Tämän pystyisi tekemään wikiin, samaan tapaan kuin kategoria: seikkailupeli.
  2. Yhden hengen tekstiseikkailu: lisätään muistin ulkopuolinen maailma, jota ei tunneta valmiiksi, vaan jota voi tutkia ja jota voi muuttaa toimilla.
  3. Monen hengen pelimaailma: hahmoja on useampia, kullakin (jonkin verran) erilaiset muistit. Hahmot voivat vaikuttaa toisiinsa, ja muistavat mitä ovat aiemmin tehneet: sen, mitä yksi pelaaja on tehnyt hahmolla aiemmin, toinen pelaaja voi samaa hahmoa pelatessaan lukea myöhemmin kaivelemalla muistia.

Työnjako: Jan jäsentää, Inari ideoi, Laura kirjoittaa, Lauri kaiketi koodailee ydintä. (Muutkin toki saavat osallistua, tässä vain kokouksessa vahvistetut nakit.)

Aikataulu: jäi turhan avoimeksi. Ykkösvaiheen juonisynopsis olisi kiva saada aikaiseksi ASAP, jotta ihmisillä olisi vähän selkeämpi mielikuva siitä, mitä oikein ollaan tekemässä.

25.8.2008

Ihmissuhdepeli

Mahdollisia tapahtumia:

Esimerkkikohtauksia: Pelaaja Z jahtaa henkilöitä X ja Y -> henkilöt Z,X ja Y kohtaavat -> tunteet kuumenevat.

Pelaaja Z kohtaa henkilön X. X kertoo tarvitsevansa apua tehtäviensä kanssa -> autat häntä ja hän kiittää TAI -> autat ja kuksit TAI -> et auta TAI ... -onko olennaista, oliko henkilöllä X muutakin motiivia kuin tehtävät?


Pikalinkit:


kommentoi (viimeksi muutettu 09.09.2012 09:53)