Olen tekemässä RPG:tä, ja olen siinä vaiheessa, että pitäisi ryhtyä miettimään miten dialogi hoidetaan. Ajattelin tehdä sen tekstiasiatiedoston kautta, josta dialogi aina haetaan.(Esim VillageLeader.3.2.1, toisi tekstin Kylänjohtajan kolmannen vastauksen-> toisen vastauksen->ensimmäisen tekstin.)
Ajattelin vain kysyä teiltä kokeneemmilta putkalaisilta, että kuinka dialogi kannattaa toteuttaa.Olisin yleensäkin kiinnostunut kuulemaan miten sen itse tekisitte.
Mitä tarkoitat dialogilla?
(Itse kun käsitän sen varmaan väärin niin monena sanana)
Dialogi tarkoittaa tässä tilanteessa vuoropuhelua.
Okei.
Mä tekisin silleen et kaikki mahdolliset kaskustelun haarat ovat äänenä. Sitten kun pitää puhua niin sieltä sitten poimisin.
Tietysti homma on helpompi jos tiedetään mitä puhutaan. Sitten vain omat lauseet omiin filuihin ja sitä mukaa kun keskustelu etenee, aletaan soittelemaan soundeja. Tämä siksi, että jos jostain syystä ohjelma hidastuu, äänet ovat silti joten kuten kohdallaan.
Antti Laasksonen on ehdotellut, että porukka tekisi oman skriptikielen tähän. Jos vain löytäis sen aiheen.
No, tällainen voisi vaikka olla skriptitiedosto
villageleader: speak "Meidän pitää mennä sotaan, auttasitteko?" ans=query("Kyllä", "En") if ans = TRUE { speak "Hienoa, lähdemme huomenaamulla" } else { speak "No, hyvää jatkoa kuitenkin" }
Jos tuosta olisi jotain hyötyä. Todennäköisesti tekisin tämän itsekin näin.
Puhemallinnus on kai kauheen vaikeeta.
Ajattelin kyllä äänittää puheet tärkeimmille henkilöille, mutta silti tekstinkin pitää näkyä. temu92:n vaihtoehto olisi tietysti toimiva, mutta kun otetaan huomioon kuinka hirveän paljon on eri henkilöitä joille voi puhua, ja lisäksi dialogiin vaikuttavat erilaiset tekijät (kuten älykkyys, rotu , mahdollinen moraliteetti, joskus ulkonäkö, joskus voimakkuus jne...), tulisi koodista ainakin kilometrin pituinen. Lisäksi puhevaihtoehtojakin on tietysti enemmän kuin kyllä/ei.
Itse pitäisin järkevimpänä tapana tehdä hyvin organisoitu tekstiasiatiedosto, josta olisi helppo kutsua tarvittavaa tekstiä. Korjatkaa toki, jos olen väärässä.
Jos joku keksisi tähän tehokkaimman tavan, olisi siinä koodivinkillekin varmasti paikka.
Itse taas tekisin muutamia eri ääniä (muutama eri ihmismiesääni, muutama ihmisnaisääni, muutama muu "puhe" ääni), jokaiselle puhuttavalle "henkilölle" sitten jokin id, jonka perusteella ääni soitettaisiin ("Yes Sir?", "Hello stranger", "yarr, What'll it be?"), joten puheiden ei tarvitsisi mitenkään liittyä tulevaan dialogiin, vaan rikastaisivat vaan dialogia.
Uniikeille henkilöille samalla tavalla voisi määrät oman äänen, ja olla vain käyttämättä heidän repliikkejään "tavallisilla" kansalaisilla.
Vanhoissa ultima-peleissä keskustelussa esiintyi avainsanoja, joiden perusteella ihmiset puhuivat.
Sinä: "hello" NPC: "Greetings You Stranger, welcome to my shop" Sinä: "shop" NPC: "Yes, this is an herb shop. I'll sell the best herbs in Towerhill area" Sinä: "herbs" NPC: "You need these to create spells" Sinä: "towerhill" NPC: "It's very peacefull town" Sinä: "spells" NPS: "The mage can help You more with that" Sinä: "mage" NPS: "He lives North from Towerhill, next to the big mountain. Ask him about spells"
Ongelmaksi voi aiheutua typot, ja monimutkainen haarasto.
Myös pelaaja pystyy pomppimaan keskustelussa eteenpäin, jos tietää avainsanoja, tosin se ei ole välttämättä huonokaan asia.
Nykyisissä RPG-peleissä taas suositaan enemmän suoraa dialogia, jossa pelaaja itse ei voi vaikuttaa siihen. Korkeintaan erilaisilla triggereillä keskustelussa saattaa tulla vaihtuvuutta:
NPC: "Get me the head of the master orc" ... NPC: "You haven't get the orc's head yet" NPC: "You haven't get the orc's head yet" NPC: "You haven't get the orc's head yet" NPC: "You haven't get the orc's head yet" ... NPC: "Great, now we have won the war and here is your reward! 500g" ... NPC: "Thank you for getting the orc head" NPC: "Thank you for getting the orc head" NPC: "Thank you for getting the orc head" NPC: "Thank you for getting the orc head"
Itse aioin antaa pelaajalle mahdollisuuden vastata vain tunteillaan, kun taas yleensä pelaajalle tarjotaan vaihtoehdot mitä sanoa. Esimerkiksi pleaaja voisi valita haluaako hän vastata vietellen tai aggressiivisesti (ja tässäkin alakategoriana esim uhkailu, suuttumus jne...).
Näin säästyy pelaajalle yllätyksellisyys, ja hän voi pelata enemmän hahmoaan, kun pelintekijän asettamaa muottia. Myös uudelleenpelausarvo toimii paremmin, kun pelaaja ei ole nähnyt kaikkia dialogeja.
Kyllä ja ei ovat valittavana suoraan, koska näitä yleensä tarvitaan suoraan ilman sen kummempia tunteita.
Yleensäkin koitan irtautua massasta, ja tehdä tämän pelin hyvin erilaiseksi kun muut kumppaninsa. Sanonta ohjelmoinnissahan menee:
Älä ryhdy tekemään peliä, ellet luota siihen että se on paras laatuaan.
[platypus] kirjoitti:
Sanonta ohjelmoinnissahan menee:
Älä ryhdy tekemään peliä, ellet luota siihen että se on paras laatuaan.
Olen itse taas kuullut sanonnan "Don't fix It if It ain't broken". <edit>joka ei siis kumoa sanontaasi, mutta saatta olla ristiriidassa uuden ideasi kanssa. :) </edit>
Yleisesti vanhassa vara parempi, jolloin pelaajille on jo ennestään tuttu kuvio selvillä.
Kannattaa vielä miettiä uudelleen noiden alakategorioiden ottamista mukaan ja miettiä voisiko peli tarjota valmiita vaihtoehtoja pelaajalle ("[Aggressive] Ok bastard! Where's the gold?!", "[Neutral] I was wondering about the gold", "[Passive] Never mind.")
Tällöin keskustelujen käyttöliittymäkin olisi selvempi.
Dialogista saadaan kyllä rutistettua se kilometrin pitkä keskustelu irti. Tuli ajateltua näin että mahdollisimman yksinkertainen keskustelu olisi hyvä, kuuluvuusalue, voimakkuus ja intressin laskettuna saadaan sopiva vastaus.
Tässä asiassa tietokoneelle voi antaa huomattavan tarkkoja määreitä. Kannattaa pitää huoli asioissa kuka sanoo, koska saman äänen toistelu voi maistua puulta. Minä ainakin houkuttelisin muutaman meidän luokan tytön ja pojan puhumaan mikkiin.
siis mitä?
Lebe80, en aikonutkaan tehdä tuota dialogia noin suoraviivaisesti, kun aiemmin kerroin; en vaan nähnyt tarpeelliseksi sepostaa sitä tarkasti. Tärkeintä oli että perusidea tuli esille.
En myöskään tarkoittanut että pelini olisi kaikista tämäntapaisista peleistä paras, koska siinä on erilainen dialogi käyttöliittymä, vaan peli eroaa genrestään (ainakin tietokoneiden osalla) niin paljon, että se on paras, koska se on ainoa. (Toisaalta siis myös huonoin :( )
P.S. Tiedän vaikuttavani mahtipontiselta näin väittäessäni, mutta tarkoitukseni ei ole leuhkia. Anteeksi jos annan sellaisen kuvan.
No ideanahan tuo on vallan toimiva, mutta odotankin tuota käytännössä. Esim. kuinka monelle NPC:lle tuota jaksaa tehdä, valinnathan varmaankin kasvaa exponenttiaalisesti, jolloin eri dialogien teko on erittäin työlästä käsipelin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.