23. Říjen 2017 - 11:45

Autor Téma: Ovládání textovky  (Přečteno 14272 krát)

gaspoda

  • Mladší člen
  • **
  • Příspěvků: 98
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #30 kdy: 10. Srpen 2010 - 10:39 »
Ta necela desitka her funguje :-) Psani engine je jako i psani her prace, ale hlavne pak poteseni, kdyz to funguje.

Jo, fungují tím jednoduchým způsobem, kterým všechny české textovky vždy fungovaly. Tj. omezují se převážně na použití předmětů. Skvělé je, že tvůj engine umí navíc i otevírat/zavírat a vložit předmět do jiného. Ale tady už začnou komplikace - proč třeba nejde v es.py "dej vajgl do somračky"?

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #31 kdy: 10. Srpen 2010 - 12:21 »
To je fakt. Na druhou stranu kolikrát se ale takové vkládání předmětů do jiných (a zase jejich vyndavání) v té hře smysluplně (tj. coby řešení nějakého problému) využije? Viděl jsem několikrát, že kontejneru bylo využito pro baťoh (apod.), aby hráč mohl nést víc předmětů. Jenže to je podle mě taková neúčelná realističnost sama pro sebe. Pak máme nějaké otvírání skříní, truhel apod., ale to se dá programátorsky vždycky nějak "obejít". Ale jestli ten TADS bude dotáhnut do konce, tak to já ho používat budu, to zase jo, pokud mě teda ještě napadne nějaký scénář.  ;)

gaspoda

  • Mladší člen
  • **
  • Příspěvků: 98
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #32 kdy: 11. Srpen 2010 - 00:16 »
To je fakt. Na druhou stranu kolikrát se ale takové vkládání předmětů do jiných (a zase jejich vyndavání) v té hře smysluplně (tj. coby řešení nějakého problému) využije? Viděl jsem několikrát, že kontejneru bylo využito pro baťoh (apod.), aby hráč mohl nést víc předmětů. Jenže to je podle mě taková neúčelná realističnost sama pro sebe. Pak máme nějaké otvírání skříní, truhel apod., ale to se dá programátorsky vždycky nějak "obejít". Ale jestli ten TADS bude dotáhnut do konce, tak to já ho používat budu, to zase jo, pokud mě teda ještě napadne nějaký scénář.  ;)

Princip batohu přidává určitý pocit realismu, ale máš pravdu, že není nezbytně nutný. Na druhou stranu obvykle funguje plně automaticky, a tak nepřináší žádné nepohodlí pro hráče. Kontejnery obecně (používá se nejenom "do", ale i "na", "za", "pod") se dají použít i pro zápletku. Třeba "dej desku na gramofon", "vlož kartu do štěrbiny", "dej žížalu na háček", "dej obálku pod dveře", "vlož baterii do svítilny", "vlož minci do automatu". Spousta situací se dá vyřešit i pomocí univerzálního příkazu použij, ale to pak hráč může zkoušet použít všechny předměty a ani o tom moc nemusí přemýšlet. Třeba použije knížku. Co se stane? Přečte si ji a dozví se něco užitečného? Prohledá ji a vypadne na něj důležitý lísteček? Hodí ji po někom nebo něčem? Použije ji jako těžítko na nějaký mechanismus? Podloží s ní CML a ten začne pracovat? To za něj už udělá hra sama!

Ale ten konkrétní příkaz jsem říkal kvůli tomu, že by to Hunterzův engine mohl umět, podporu kontejnerů totiž má. Je tu ale několik složitostí, se kterými je nutné se vypořádat. Zcela triviální je doplnění synonym, aby kromě "vlož" uměl i "dej" (a kromě "seber" a "vezmi" i "vem" atp.). Horší to je s pády. Hřeší se na to, že ve většině situací se používá u předmětů čtvrtý pád "prozkoumej koho/co", "máš koho/co". Kontejner by ale měl slyšet i na druhý pád "vlož koho/co do koho/čeho". Proto by fungoval příkaz "vlož vajgl do somračku", kdyby s ním hra počítala, ale ne už "vlož vajgl do somračky". Pomohlo by mít možnost nadefinovat více podstatných jmen pro jeden předmět. Možná by se to dalo pořešit pomocí Item.items[u"somračku"].desc, protože tím se dají nadefinovat přídavná jména a v některých příkazech na přídavná jména engine slyší, např. "prozkoumej banánovou" umí, ale na vložení to nefunguje.

A když už umíš přídavná jména, mohl bys uvažovat o tom, zda můžeš mít místnost, kde budou černé dveře na sever a bílé dveře na jih a co se stane, když zadáš příkaz "otevři dveře". A složitost opět narostla a může růst i dál. Chci tím jen ukázat, proč jsem se rozhodl přeložit hotový engine, než se pokoušet o vlastní, protože i o tom jsem jednu dobu přemýšlel.

KaiN

  • Starší člen
  • ****
  • Příspěvků: 419
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #33 kdy: 11. Srpen 2010 - 08:13 »
Princip batohu přidává určitý pocit realismu, ale máš pravdu, že není nezbytně nutný. Na druhou stranu obvykle funguje plně automaticky, a tak nepřináší žádné nepohodlí pro hráče. Kontejnery obecně (používá se nejenom "do", ale i "na", "za", "pod") se dají použít i pro zápletku. Třeba "dej desku na gramofon", "vlož kartu do štěrbiny", "dej žížalu na háček", "dej obálku pod dveře", "vlož baterii do svítilny", "vlož minci do automatu". Spousta situací se dá vyřešit i pomocí univerzálního příkazu použij, ale to pak hráč může zkoušet použít všechny předměty a ani o tom moc nemusí přemýšlet. Třeba použije knížku. Co se stane? Přečte si ji a dozví se něco užitečného? Prohledá ji a vypadne na něj důležitý lísteček? Hodí ji po někom nebo něčem? Použije ji jako těžítko na nějaký mechanismus? Podloží s ní CML a ten začne pracovat? To za něj už udělá hra sama!

Tak tohle všechno se dá řešit jedním resp. dvěma příkazy. POUŽIJ <něco> NA <něco> a POUŽIJ <něco>. Přesně takto to mám ve svých hrách (akorát namísto POUŽIJ <něco> tam mám OPERUJ <něčím>, což pravda není zrovna intuitivní, ale vysvětluji to v instrukcích ke hraní), takže hra za hráče nic neřeší. Takže např. "POUŽIJ ŽÍŽALU NA HÁČEK", "OPERUJ KNIHOU" (tj. čti knihu). Na druhou stranu pak ale lze vždy uspět se strategií "použij vše na vše". Ale jinak s tebou souhlasím a jak jsem už psal předtím, jestli to dotáhneš do konce, tak já přesedlám ze svého pseudoengine na to tvoje. :)

Hunterz

  • Nováček
  • *
  • Příspěvků: 21
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #34 kdy: 12. Srpen 2010 - 15:52 »
Ta necela desitka her funguje :-) Psani engine je jako i psani her prace, ale hlavne pak poteseni, kdyz to funguje.

Jo, fungují tím jednoduchým způsobem, kterým všechny české textovky vždy fungovaly. Tj. omezují se převážně na použití předmětů. Skvělé je, že tvůj engine umí navíc i otevírat/zavírat a vložit předmět do jiného. Ale tady už začnou komplikace - proč třeba nejde v es.py "dej vajgl do somračky"?

Protoze v dobe vzniku ES.py toho engine neumel zdaleka tolik co ted.

Hunterz

  • Nováček
  • *
  • Příspěvků: 21
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #35 kdy: 12. Srpen 2010 - 15:54 »
Jinak vloz <neco> do <neceho> uz v mem enginu funguje take.

Hunterz

  • Nováček
  • *
  • Příspěvků: 21
    • Zobrazit profil
Re: Ovládání textovky
« Odpověď #36 kdy: 12. Srpen 2010 - 20:56 »
To je fakt. Na druhou stranu kolikrát se ale takové vkládání předmětů do jiných (a zase jejich vyndavání) v té hře smysluplně (tj. coby řešení nějakého problému) využije? Viděl jsem několikrát, že kontejneru bylo využito pro baťoh (apod.), aby hráč mohl nést víc předmětů. Jenže to je podle mě taková neúčelná realističnost sama pro sebe. Pak máme nějaké otvírání skříní, truhel apod., ale to se dá programátorsky vždycky nějak "obejít". Ale jestli ten TADS bude dotáhnut do konce, tak to já ho používat budu, to zase jo, pokud mě teda ještě napadne nějaký scénář.  ;)

Princip batohu přidává určitý pocit realismu, ale máš pravdu, že není nezbytně nutný. Na druhou stranu obvykle funguje plně automaticky, a tak nepřináší žádné nepohodlí pro hráče. Kontejnery obecně (používá se nejenom "do", ale i "na", "za", "pod") se dají použít i pro zápletku. Třeba "dej desku na gramofon", "vlož kartu do štěrbiny", "dej žížalu na háček", "dej obálku pod dveře", "vlož baterii do svítilny", "vlož minci do automatu". Spousta situací se dá vyřešit i pomocí univerzálního příkazu použij, ale to pak hráč může zkoušet použít všechny předměty a ani o tom moc nemusí přemýšlet. Třeba použije knížku. Co se stane? Přečte si ji a dozví se něco užitečného? Prohledá ji a vypadne na něj důležitý lísteček? Hodí ji po někom nebo něčem? Použije ji jako těžítko na nějaký mechanismus? Podloží s ní CML a ten začne pracovat? To za něj už udělá hra sama!

Ale ten konkrétní příkaz jsem říkal kvůli tomu, že by to Hunterzův engine mohl umět, podporu kontejnerů totiž má. Je tu ale několik složitostí, se kterými je nutné se vypořádat. Zcela triviální je doplnění synonym, aby kromě "vlož" uměl i "dej" (a kromě "seber" a "vezmi" i "vem" atp.). Horší to je s pády. Hřeší se na to, že ve většině situací se používá u předmětů čtvrtý pád "prozkoumej koho/co", "máš koho/co". Kontejner by ale měl slyšet i na druhý pád "vlož koho/co do koho/čeho". Proto by fungoval příkaz "vlož vajgl do somračku", kdyby s ním hra počítala, ale ne už "vlož vajgl do somračky". Pomohlo by mít možnost nadefinovat více podstatných jmen pro jeden předmět. Možná by se to dalo pořešit pomocí Item.items[u"somračku"].desc, protože tím se dají nadefinovat přídavná jména a v některých příkazech na přídavná jména engine slyší, např. "prozkoumej banánovou" umí, ale na vložení to nefunguje.

A když už umíš přídavná jména, mohl bys uvažovat o tom, zda můžeš mít místnost, kde budou černé dveře na sever a bílé dveře na jih a co se stane, když zadáš příkaz "otevři dveře". A složitost opět narostla a může růst i dál. Chci tím jen ukázat, proč jsem se rozhodl přeložit hotový engine, než se pokoušet o vlastní, protože i o tom jsem jednu dobu přemýšlel.

Snazit se o neco naprosto dokonaleho i s temi pady je krasna vec, ale lepsi je postupne to vylepsovat. U naprosty vetsiny her jde o hratelnost a zabavu a ne o to ze to je naprosto dokonale vyhytany. u textovek si myslim, ze to palti zvlast. Muze byt genialni engine, ale kdyz pribeh hry a zpracovani bude stat zaprt, ani sebelepsi engine spatny dojem ze hry nezlepsi.