Wintermute Engine Forum

Czech forum => Technické fórum => Topic started by: Siky on April 06, 2006, 09:03:15 PM

Title: jak udržet příběh
Post by: Siky on April 06, 2006, 09:03:15 PM
Zdravím,
chtěl bych se zeptat na nějakou myšlenku, jak řídit běh Adventury.
 
příklad: hra se má odehrávat dle scénáře:
1) dojít do místa A
2) vzít předmět 1
3) zpřístupnit místo B, zakázat místo A
4) vzít předmět 2

Nepochybně se nabízí možnost pomocí logických proměnných,
např. if(předmět_1.objeven)  {misto_B.zpristupneno = true; misto_A.zpristupneno = false; }

Dá se ale takhle zvládnou větší projekt (s desítkami scén, předmětů
a mnoha vazbami mezi předměty)? Nebo je na to nějaká finta?

dík za radu
Title: Re: jak udržet příběh
Post by: Mnemonic on April 07, 2006, 07:58:25 AM
Finta je, mit dobrou dokumentaci. Napr. udelat si registr vsech dulezitych globalnich promennych atd. Rozsahly projekt se vetsinou neda delat chaoticky, a clovek se k nejake te dokumentaci uchylit musi. Nebo teda nemusi, ale pak se z toho treba taky zblazni.
Title: Re: jak udržet příběh
Post by: metamorphium on April 07, 2006, 08:22:45 AM
zvláštní... Už jsem čekal, že přispěchá jnsfbi s její Mandelbrotovskou tezí. :)

Jo a ještě jedna dobrá finta je naučit se důsledně využívat objekty všude, kde to jde. Pokud je dobře nastavená sémantika
objektů, orientace a ladění je o mnoho jednodušší.
Title: Re: jak udržet příběh
Post by: Siky on April 07, 2006, 04:59:05 PM
V helpu jsem viděl, že se dají používat objekty:
objekt.vlastnost

chtěl jsem se zeptat, zda se dá použít i vícenásobná vnoření:
objekt.podobjekt.vlastnost
Title: Re: jak udržet příběh
Post by: Hooke on April 10, 2006, 08:02:25 AM
Pokud vím, tak vícenasobná tečková notace v tomto skriptovacím jazyku nefunguje.

Ale vždy to mužeš udělat ve stylu:

Code: [Select]
var parametr=object.parametr;
parametr.hodnota;

atd., ale mám takové tušení, že to určitě víš.
--------------------------------------------------------------------------------------------
A co se týká určité linearity v adventurách, tak to řeším následovně (obdoba řešení Mnemonica):

Mám globální proměnnou StoryLine a v ní bool hodnoty. Důležité je v tom mít přehled a jednotlivé
hodnoty mít seřazené chronologicky pod sebou (kvůli tomu přehledu :)).

Například:

Code: [Select]
StoryLine.ItemXXXWasBroken;
StoryLine.PuzzleSolved;
......

Na začátku hry všechny tyhle hodnoty nastavuji na FALSE a jak hráč pokračuje ve hře tak
je postupně nastavuji na TRUE. Takže se vždy můžeš zeptat, jestli jsi třeba v dané situaci mezi
tím, kdy jsi nějaký item rozbil a přitom jsi ještě nevyřešil puzzle.

StoryLine mi definuje pouze ty nejdůležitější události ve hře, potom mám ještě globální proměnné
specifické pro každou "kapitolu". A tak dále a tak dále. Rozhodně ti doporučuji si nad tento problém
na chvilku sednout a přemýšlet co by se ti vyplatilo v tvém případě nejvíce. Potom zjistíš, že správný
návrh na začátku ti ušetří neuvěřitelné množství času v budoucnu.

Title: Re: jak udržet příběh
Post by: Siky on April 10, 2006, 06:47:11 PM
Napadlo mě ještě jedno řešení:
Proměnná StoryLine by mohla být číslo, které
by s řešením příběhu nabývalo vzestupných hodnot.
např. Když dojdu do místa bude StoryLine=1,
Seberu předmět (2), seberu druhý (3), pak abych
mohl jít do jiného místa, muselo by být StoryLine==10, atd.

Je to vlastně takový sekvenční program (živím se programováním
průmyslových automatů, kde něco podobného používám:-)

Jeto použitelné?
Title: Re: jak udržet příběh
Post by: Hooke on April 11, 2006, 08:10:09 PM
Napadlo mě ještě jedno řešení:
Proměnná StoryLine by mohla být číslo, které
by s řešením příběhu nabývalo vzestupných hodnot.
např. Když dojdu do místa bude StoryLine=1,
Seberu předmět (2), seberu druhý (3), pak abych
mohl jít do jiného místa, muselo by být StoryLine==10, atd.

Je to vlastně takový sekvenční program (živím se programováním
průmyslových automatů, kde něco podobného používám:-)

Jeto použitelné?

Všechno co si naprogramuješ je použitelné :). Akorát jde o to, jaký v tom budeš mít přehled.
Číselné konstanty budou samozřejmě fungovat taky dobře, problém bude v tom
až budeš mít takových konstant třeba 50 a potom si pamatuj co každa konstanta znamená.
To už fakt musíš mít potom nějaký kus papíru po ruce, kde budeš mít ty konstantý vypsané
( případně použiješ konstanty ve WME a to už by mohlo být mnohem zajímavější :)).

Mě se docela osvědčilo tohle, ale to co jsi navrhl taky není vůbec k zahození.

Možná kdyby se tu k tomu ještě někdo vyjádřil?
Title: Re: jak udržet příběh
Post by: jnsfbi on April 23, 2006, 09:42:29 AM
zvláštní... Už jsem čekal, že přispěchá jnsfbi s její Mandelbrotovskou tezí. :)

Ne, ja jsem blazen uz (viz mnemonicuv prispevek)
Ale zas nejakou dokumentaci jsme meli, to bych Tomusovi krivdila:)