Překlad Inform7 do češtiny neexistuje.
Bavíme-li se skutečně o textových hrách, tedy ne o CYOA (gameboocích), tak z jednoduchých nástrojů, které dovolují tvořit české textové hry stylem, jak vypadaly na osmibitech, lze jmenovat např. http://sourceforge.net/projects/textovka/ v pythonu a asi jich bude existovat více. Ten zmíněný má parser, ale v ČR vznikaly i hry ovládané přes menu. V principu v tom není moc rozdíl, protože takové textovky mají značně omezenou nabídku příkazů a kromě pohybu a sbírání či pokládání předmětů se většina akce odehrává přes univerzální příkaz použij. Parser pak rozpoznává jen jedno až dvouslovné příkazy ve tvaru sloveso-předmět.
Pokud byste měl zájem o tvorbu moderních textových her plně srovnatelných s tím, co vychází na anglicky hovořící scéně, potom bych si dovolil přihrát svou vlastní polívčičku - můžete použít TADS 3 s mým překladem, který je ke stažení na http://tads.cz/. V současné době už je poměrně slušně použitelný, byť existuje pár oblastí, kterým bude dozrání ještě nějakou dobu trvat. V historicky blízké budoucnosti vydám hru, kterou jsme loni naprogramovali do jedné dětské soutěže a s určitým odstupem k ní budou samozřejmě k dispozici i zdrojové kódy jako ukázka.
Možnosti a nástroje tedy jsou, určitě se vyplatí spíše použít existující nástroje, než se snažit naprogramovat vlastní, protože ačkoliv se textová hra zdá, jako jednoduché programátorské cvičení, chcete-li dosáhnout kvalitního výsledku, dá to opravdu hodně práce!
" než se snažit naprogramovat vlastní, protože ačkoliv se textová hra zdá, jako jednoduché programátorské cvičení, chcete-li dosáhnout kvalitního výsledku, dá to opravdu hodně práce!"
Uz me napadlo oboje :-D
Kazdopadne dik za odpoved, chtel jsem se zeptat na totez. Jen me napadlo (zatim jsem se na ty projekty nedival, takze nevim, jak je preklad proveden), ale nevyplatilo, by se spis vyuzit lokalizacnich nastroju (mam na mysli neco jako gettext) a potom uz dodat jen databazi lokalizovanych retezcu? Takhle by mozna stacilo prelozit potom do daneho jazyka jen pojmy a popisy (prostredi a udalosti) a nemusela by se predelavat cela hra...
Ne, to bohužel není tak jednoduché. V pokročilých systémech pro programování textových her, jako je Inform nebo TADS, se s jazykem pracuje na úplně jiné úrovni, než při lokalizaci běžných počítačových programů. Uvedu pro ilustraci několik příkladů.
Samozřejmě i TADS má knihovnu hlášek, které se ve hře používají (odpovědi na běžné triviální akce, chybové zprávy, proč něco nejde udělat atp.), ale ty vypadají např. takto:
{Kdoco obj} {je} příliš vysoko, odsud {|[jsi]} na {něj/ni obj} nedosáh{n[eš]|l[a]}.
Jsou to vlastně šablony zpráv, které se musejí přizpůsobit různým jazykovým jevům. Musejí se do nich na správná místa vložit vyskloňované názvy objektů, kterých se hláška týká (oblíbený trik starých her použít ve všech hláškách jen 4. pád zde nefunguje), skloňují se i zájmena, časují se pravidelná i nepravidelná slovesa a vokalizují se předložky. I když se nejčastěji používá druhá osoba přítomného času, TADS umí použít stejné hlášky i v první a třetí osobě, dokonce i v minulém čase pro vyprávění flashbacků do minulosti.
Všechny parametry zpráv pak navazují na metody generující patřičný tvar ke vložení. Oproti angličtině je v češtině např. potřeba mít názvy objektů v různých pádech, řešit mnohem více rody, ale není potřeba si dělat starosti s určitými a neurčitými členy apod.
Ale to je jen začátek, jazykově závislých algoritmů je v knihovně velké množství. Třeba při vypisování seznamů (třeba "Na polici ležela tlustá kniha a štos papírů.") se používají tři různé algoritmy pro určení schody podmětu s přísudkem podle toho, zda sloveso stojí před seznamem, za seznamem a nebo zda je seznam vypsán na výšku jako odražené body. Nic takového v angličtině neexistuje. Zkrátka vše je velice dynamické a i když určité jevy mají své paralely v jiných jazycích, není to jen o prostém překladu, je to i o algoritmech a programování.
V opačném směru pracuje parser, který čte příkazy od hráče a musí pochopit jejich význam. Pradoxně tady se ukazuje, že struktura češtiny a angličtiny v základních obrysech docela dost podobná a na překvapivě slušnou funkčnost není potřeba dělat tolik změn kromě překladu frází jednotlivých příkazů. Jak někdo poznamenal, v češtině je poměrně dost volná struktura pořadí slov, ale v praxi není problém hráče navyknout na to, že příkaz začíná vždy slovesem a pak už tolik možností není.
Na druhou stranu dořešení jemných nuancí ve struktuře vět pak dokáže potrápit, je to zdaleka nejsložitější část enginu a mám zde jeden zapeklitý problém, který budu muset ještě vyřešit, ale zatím ještě nevidím tak moc do hloubky. Naštěstí to není nic až tak kritického.
Tedy pro celkovou představu, soubor s knihovnou hlášek má 6 tis. řádků a překlad parseru plus jazykově závislé algoritmy zhruba 12 tis. To vše je součástí knihovny implementující celý model světa textové hry čítající skoro 100 tis. řádek. A právě to je už dost slušný základ, který jsem stavil do kontrastu proti pokušení začít programovat textovku od nuly v obecném programovacím jazyce :-)
On ten jednoslovni/dvouslovni parser byl pro ceske textovky typicky, ale zahranicni textovky (minimalne ty anglicke) byly uz pred dvaceti lety vybaveny lepsim parserem, ktery rozpoznal vety typu "vezmi vsechno krome pistole" nebo "zapal svicku zapalovacem, ktery lezi na stole". To uz neni vubec trivialni naprogramovat :)
Prave ze v EN to pomerne trivialni je. V cestine narazis na problem, ze totez lze rict mnoha ruznymi zpusoby.
A pokud to z ty EN zcela libovolne prelozis, vypada to spis velmi smesne.
Priklady:
pouzij zapalovac ze stolu na svicku
rozsvit svicku zapalovacem ze stolu
Ostatne, preloz si do cz klicovy slova libovolnyho programovaciho jazyka, a pak v tom neco napis.
Technicky bys moh napsat nejaky expertni system, kterej by se chytal jen nekterych slov a tomu by nejak prizpusoboval vysledek. Ale to je pomenrne narocna disciplina, kterou uspokojive nezvladaji ani jinsi experti za jinsi prachy. Vem si, ze i ten Watson defakto takovou ulohu resit obecne neumi.
Jj jasny, ale ono to jde napsat ruzne i v anglictine, ta nemusi byt jen tak trivialni podle jedne sablony. Spis jde - aspon si to myslim - o to, ze CZ textovky zacaly vznikat jako reakce na anglicke ci nemecke hry a autori v te dobe neprisli na to, co ty originalni hry vsechno umi, takze mnoho CZ textovek (vcetne mych dosti nepodovedenych kousku) zna klasicke ctyri smery pohybu, otevri, zavri, zvedni, poloz, prozkoumej a to je asi tak vse. Popr. je cely parser nahrazeny menu, tim se to cele zjednodusi.
No a podobnou cestou se vydali i tvurci EN her po vzniku grafickych adventur (typicky priklad je Simon the Sorcerer s buttonky, ktere nahrazuji zapisovane prikazy).
V EN to mas mnohem jednodussi ;D. Jisteze lze pouzit i v en vic variant, ale je jich o eony min, nez v cz. Jako bonus ti odpada sklonovani. Navic v en jsou alternativy prevazne velmi nizkofrekvencni (= pouzivaji se spis vyjimecne).
Co ja vim, tak defakto vrchol textovek byl tak nekdy v polovine 90', potkal sem par lidi, kteri na MUDech travili cele dni. Pak uz prisla ultima. Ale MUD je samo uz hodne specificka vecicka.
Jen mi tak nejak prijde, ze to bylo radove zabavnejsi, nez soudoby "ubergrafickyzpracovany" bazmeky. Tenkrat sis proste precet, ze si nasel "modrym plamenem zarici mec" a dneska vidis cosi, vypada to jak z umely hmoty, kolem toho nejaka divna aura, ale plamen to teda neni....
Nebo sis precet "tvuj uder odrazil protivnikuv stit" a dneska uvidis, jak tvuj avatar machnul, tvuj mec proletel bez jakyhokoli odporu texturou a nestalo se nic, z cehoz teda usoudis, ze te asi odrazil ten plastove vypadajici stit (pripadne ze je nekde bug).
Alternativne "podarilo se ti useknout protivnikovi ucho" ... coz je dneska PEGI18, takze se to vlastne nesmi, proto tak maximalne uvidis jak vyskocilo cislicko, protoze enemakovi ubylo 18HP.
Ja se na to divam z pohledu nekoho, kdo by musel (za trest) psat ten parser. Takze dostanu jednotliva slova a budu na zacatku hledat slovni druhy, potom spojovat (jako kdysi na zakladce) podmet, prisudek, predmet atd. a stavet si tak strom te vety, v horsim pripade souveti nebo vety vlozene.
V cestine je to - pri pouziti pritomneho casu (textovky), jen prikazovych vet atd. - hodne slozite, ale ani EN neni jednoducha. Priklady me ted moc nenapadaji, ale dejme tomu slovo "color" - neznam kontext (ten si prece prave vytvarim!) takze tezko jen tak muzu rict, jestli je to podstatne jmeno nebo sloveso. Takze logicky nastupuje druha cast, kdy si pocet slov omezim (podstatne jmeno = jeden z predmetu ve hre, mistnost nebo NPC, sloves je jen par, hlavni roli asi budou hrat spojky, carky atd.), ale tim si to zjednodusim i v cestine (vcetne sklonovani, pro tech par objektu to resi algoritmu + slovnik vyjimek :). Tedy psat bych to nechtel ani v EN ani v CZ :)
ad) zabava a graficke hry - docela souhlas, vsak prave proto textovky (IF) nevymrely a nektere jsou i docela uspesne
Psal jsem to trošku už v příspěvku výše, v praxi v textovce není potřeba parser, který by rozuměl jakékoliv větě, to by nikdo nedokázal naprogramovat. I když je poměrně komplikovaný, rozumí jen určité množině jazykových konstrukcí, a ty stačí k pohodlnému ovádání hry. A *struktura* takového parseru pro češtinu a angličtinu se liší jen málo. Pro zajímavost - takhle vypadá struktura anglického parseru v TADSu: http://tads.cz/en/parser-enpdf/file a obrázek pro český by byl skoro stejný, jde jen o detaily.
Kdyby na to sedl nekdo z lidi, co delaji analyzu psaneho jazyka (pro automaticke preklady), mohlo by to byt zajimave, ale nedovedu si predstavit, ze by to dneska nekdo delal jinak nez jako konicek. Komercne urcite ne, aspon ne pro textovky (i kdyz tady je situace jeste hodne jednoducha - neresi se napriklad casy, neresi se obecna slova, ale omezeny jazyk atd.)
Ciste teoreticky, nemuselo by byt tak slozite analyzovat souveti "zapal svicku zapalovacem, ktery lezi na stole"
1. Jsou tam tri podstatna jmena = herni objekty (Zapalovac, svicka, stul)
2. dve slovesa. Jedno je evidentni prikaz (zapal) a druhe slouzi popisuje stav objektu (lezi)
3. spojeni slov 'zapalovacem ktery, lezi' ukazuje ktereho objektu se ten popis stavu (lezi) tyka a predlozka 'na' informuje o jeho presne pozici. Z cehoz pline, ze jej je potreba nejdrive vzit (vlozit do inventare) a pak teprve s nim provest
4. Za predpokladu, ze obe akce maji dva paratry
vloz_do_inventare( odkud, co )
aplikuj_na( co, koho )
vysledkem by mohl byt treba nejaky orientovany graf typu :
stul -> vloz_do_inventare -> zapalovac -> aplikuj_na -> svicka = uspech/neuspech
Je to ale jen uvaha. Mozna, ze kdybych to nejak zobecnil....
No docela dobrej byl Texin, ale dokumentace je ztracená v propadlišti internetu a běželo to jen pod Dosem.
Plus něco málo vzniklo/vzniká. Snad už brzy uvolní svůj engine Wolf, protoýže třeba takové Salome má něco do sebe, nebo teprve On The Boat, je masakr.
Občas lámu Kaina, aby dal zdrojáky ke svým hrám, no nechce a nechce.
Bohužel prvmí díl seriálku, kterej jsem vzdal po prvnim odstavci. Lekce perogramování textovek v něčem :-( mě neberou., Snad příště.
A páč jsem ještě nedostal odpověď na půvoidnim místě ani na mailu tak se zeptam tady:
Bude ještě pokračovat seriál historii sálových počítačů ? Bylo to slibovaný ještě v poslední kapitole a najednou je to useklý.
Hele a co je na textovkách špatně? Však to není ani tak klasické hardcore programování jako hrátky s pár anglickýma větama, navíc zrovna teď mě dorůstají děcka do věku, kdy jim vyhodím pitomý androidí hry a budou se pěkně učit číst, psát a uvažovat v textovkách :-)
Na textovkách nic špatnýho nevidim. Prošel jsem si jima na Didaktiku. Spíš mi nesedne tohle "příkladování". Je to seriál o historii her. Teda o tom jak někdo něco kdysi udělal. né že si teď zkusíme sami kus historie (která ale v dnešní době už významnou historií ani nebude) zase udělat. Na mně je to zbytečně "hluboký" a mam radši díly kde je probráno víc her, víc obrázků atd. Chápu že linuxákum tohle může sednout víc díky srdečnějšímu vztahu s příkazovou řádkou.
Ještě bych dodal jednu věc. Právě proto, že se jedná o poměrně aktuální věci (vůbec ne o žádnou historii) a proto, že o nich nikdo u nás nepíše (alespoň já jsem na žádnou podobnou sérii článků nenarazil), tak se jedná o dost důležitou osvětovou záležitost. Ještě by tedy kromě toho popisu programovacích jazyků a prostředí mohl vzniknout díl, který by popsal třeba deset významných IF posledních let (např. Anchorhead, Photopia, 1893: A World's Fair Mystery, Baron, City of Secrets, Cryptozookeeper atp.)