Stránky

středa 14. května 2014

#32 Golden Ratio

Strašně mne štve, že jsem dosud nebyl schopen udělat pořádnou hru, která by vycházela z motivů mého oblíbeného Blade Runnera. Zatím nejblíže jsem byl s online hrou Blade Runner 2015, ale pořád si říkám, že to není ono. Co bych doopravdy chtěl udělat, by byla ideálně textová hra, avšak s propracovaným dynamickým systémem města. Část tohoto nápadu se postupně přerodila do formy online-sociálně-textového Minecraftu s pracovním názvem Svety2.bas. Avšak lovci replikantů stále na svou příležitost čekají. I když se Blade Runner dočkal počítačově herního zpracování, přijde mi to na takovou legendu málo. A možná právě proto, že je to takový kult, se toho vývojaři bojí. Níže najdete můj starý náčrt konceptu (už jsem totálně zapomněl, proč jsem mu dal název Golden Ratio), k jehož realizaci zatím nedošlo.



Celá myšlenka stojí na tom, že město (dejme tomu moje oblíbená Praha) je popsaná do té míry detailu, aby hráč mohl navštívit libovolnou ulici, zastávku, tunel, případně mnoho podniků, jak jsou obchody, hospody, kanceláře a tak dále. Půjde tedy o obrovský seznam lokací - více méně statický - který se bude jen proměňovat v čase, potažmo bude patrný vliv počasí. Pohyb po těchto lokacích bude jednotvárný a tak ho bude oživovat náhodně generovaný obsah - auta, lidi, bezdrátové sítě, předměty k sebrání. Toto bude opět reflektováno tím, kde a kdy se hráč nachází - což vede logicky k rozdělení města do několik desítek čtvrtí, kdy každá čtvrť bude mít své vlastní, unikátní generátory obsahu.

Trik je v tom, že jakmile hráč jednou lokaci navštíví a vyžádá si například soupis dostupných WiFi sítí, počítač dle výše naznačeného vzorce opravdu vypracuje seznam sítí, včetně hesel a včetně souborů, které je možné získat - a tento vygenerovaný seznam se následně uloží. Hráč tedy může opakovaně navštívit tu samou lokaci a podle konkrétního času a počasí narazí vždy na ty samé osoby, sítě a další objekty.

(Mimochodem - brzy má vyjít hra Watchdogs, která se zabývá mimo jiné hackováním sítí - jsem upřímně zvědavý, do jaké míry detailu hra půjde, či to nebudou jen předskriptované triggery... jo a mimochodem - koncept Golden Ratio vznikl v únoru 2012).

Zlaté pravidlo říká, že hráčova postava nemůže z jedné lokace ovlivňovat druhou lokaci - což je důležité si uvědomit při designu úkolů. Pointou je, že pokud hráč na někoho zaútočí, bitka začíná a končí v té samé lokaci. Z toho vyplývá nutnost ukládat každou lokaci zvlášť i s jejím obsahem. Mrtvoly by měly po čase mizet (prostě přijede záchranka a odvezou tělo), hra by měla věrně simulovat základní sociální chování města dle vzoru GTA, ale ne tak detailně, samozřejmě - hovoříme o textové hře.

Co je důležité, že hráčova postava je lovec replikantů, tedy pod ochranou zákona a policejního sboru, avšak kvůli utajení musí dbát na svou vlastní nápadnost, z čehož se stává klíčová vlastnost. Když bude hráč hodně prasit (krást na ulici, neúspěšně hackovat, mlátit či dokonce zabíjet civilisty), replikanti město prostě opustí a šmytec.

Tím jsem se dostal k jádru hry. Dosud jsem hovořil o systémovém prostředí, které sice nežije ve skutečnosti vlastním životem, ale evokuje základní hratelnost. V tomto systémovém prostředí budou totiž manuálně vsazené prvky, které budou na pohled nerozeznatelné od těch automaticky vygenerovaných. Hráč tedy při bezcílném bloudění a hackování sice nabyde plný harddisk dat, ale půjde o data naprosto bezcenná. Pokud navštíví správnou hospodu a pokecá se správnou osobou, dozví se, kdy a kde být, aby se objevila správná WiFi síť, kterou pak hacknutím využijeme k lokalizaci replikanta. Těchto ručně vložených elementů bude poměrně dost, ale hráč bude muset být opatrný, aby se v obřím městě prostě neztratil a nezaseknul se na nějakém bezvýznamném rozhovoru. Právě ta nerozeznatelnost ručního a generovaného prvku hry je klíčová.

Když se hráč tedy dostane na správné místo ve správný čas, odemkne třeba dveře správným klíčem nebo jinak splní úvodní úkol, spustí se naskriptovaná mise - hon na replikanta. O této skutečnosti bude hráč informován a hra se přepne trochu do jiného režimu. Ten bude na pohled fungovat v podstatě stejně - hráč se může zastavit a scanovat dostupné sítě, ale to mu replikant prostě uteče. V tomto režimu budou k dispozici bohatší příkazy, evokující akčnější hratelnost, plynutí času bude rychlejší. Rovněž bude dovoleno, aby hráč vystoupil například na střechu a ostřelovací puškou sejmul replikanta, který je fyzicky ve vedlejší lokaci. Chci tím říci, že honička za replikantem se odehrává v úplně odděleném prostředí, než zbytek hry a bude zde možné vyvádět jiné kejkle, které dosud hráč neměl k dispozici.

Design těchto honiček bude unikátní a bude mít také dopady na zbytek hry. Celkově bych řekl, že na první pokus se hráči nepodaří chytit ani jednoho replikanta a ti mu prostě utečou. Hra ale bude pokračovat dál. Podle vyhodnocení honičky se změní výbava postavy, její nápadnost v ulicích (pokud třeba na replikanta střílel, bude se druhý den v novinách psát něco jiného), když se o lovci v ulicích dozvědí ostatní replikanti, tak prostě město opustí, aniž by o tom hráč věděl. Právě nelinární průběh unikátních honiček bude tvořit základní pojivo hry. Game over nastane v případě, že postava buď zemře anebo když ve městě není jediný replikant. Pak se hra prostě vyhodnotí a hráč může hrát znova a pokusit se všechny replikanty chytit či zastřelit.

Krom replikantů budou také připravené volavky a falešné stopy - mnozí replikanti ani nevědí, že jsou replikanty, jiní jen předstírají, že to nevědí - no ale bude možné narazit i na lidi, kteří jsou přesvědčení, že jsou replikanty (nebo jsou prostě jen paranoidní a sami se přihlásí našemu lovci, když už ty nervy čekání na odstřel nevydrží). Skrz tyto mise se bude vyprávět nelineární příběh.

Technicky vzato jsem měl ideu, že hra bude jen jakousi kostrou, která se bude rozšířovat různými moduly. Některé jsem již popsal, ale cílem by bylo město postupně více a více systemizovat. Například se nadefinuje modul "garážová vrata", který se vloží místo obyčejného přechodu ulice - garáž. Garážová vrata budou žít vlastním životem - otvírají se desetkrát dopoledne v pevně dané časy, desetkrát odpoledne, čtyřikrát v noci. Hráč si může počíhat na správný čas a vklouznout nepozorovaně do garáží, když zrovna vjíždí nebo vyjíždí auto. Mohl by se vloupat třeba skrz okénko, ale to by mohlo zvýšit jeho nápadnost. Modul garážových dveří by se pak opakovaně využíval v různých lokacích a stal by se součástí statické kostry.

Nyní snad již máte představu, jak by se hra měla tvářit v očích hráče, níže je copy-paste originálního dokumentu, ze kterého vyplývají další detaily.

Golden Ratio - soupis herních mechanismů

LOKACE

L_ID
GPS souřadnice (pro případ napojení na Google Maps - tohle nechám na tobě, nevím, jak jinak to implementovat)
Čtvrť (jakési hrubé rozsekání města na jednotlivé čtvrtě - tato proměnná pak pomáhá náhodným generátorům určit dle tabulky pravděpodobnost výskytu dalších objektů)
Viditelnost 0/1 (potřebuje hráč zdroj světla?)
Název
Obecný popis
Doplňkový popis (tato proměnná je vícenásobná a obsahuje doplňující texty, které reflektují aktuální čas, počasí atd.)
Náhodný popis (vygenerované modulem - proměnná určujě, jaká je pravděpodobnost
Aktivní předměty (dveře, auta, sítě, počítače, pivo...)
Neaktivní předměty (je potřeba je objevit nebo splnit nějakou podmínku skrz jiný předmět - pak se přesunou do aktivních předmětů)
Aktivní osoby (pojmenované osoby v daném místě)
Neaktivní osoby (pojmenované osoby, které je potřeba nejprve objevit nebo splnit podmínku - pak se přesunou do aktivních osob)
Náhodné předměty (WiFi sítě, mobilní zařízení kolemjdoucích - některé náhodné předměty se mohou přesunout do aktivních)
Náhodné osoby (výběr z davu lidí, po objevení se mohou přesunout do aktivních - záleží na náhodném generátoru viz dále)
Východy (seznam ID, resp. seznam názvů lokací, na které lze odejít z této lokace)
Neviditelné východy (tyto se objeví až po té, co je hráč objeví anebo splní nějakou jinou podmínku)
Special (specifické podmínky - po uskutečnění dané činnosti dojde ke změně proměnných jinde, může jít i o složenou funkci více podmínek najednou)

NE/AKTIVNÍ PŘEDMĚTY

P_ID
Název
Popis (vypíše se po příkazu prozkoumej)
Aktivní 0/1 (viditelný)
Sebratelnost 0/1
Zničitelnost 0/1
Special (pokud hráč udělá něco specifického, tak dojde k přepnutí nějaké proměnné jinde, typicky viditelnost východu. V této položce jsou definované podmínky, které ovlivňují další proměnné, případně zde bude funkce, která bude kombinovat předměty v inventáři či mimo něj atd.).


NE/AKTIVNÍ OSOBY

O_ID
Jméno
Popis
Aktivní 0/1 (viditelná)
Reakce na útok - automatický útěk, automatická smrt anebo dojde k souboji (přesun na soubojový modul s danými parametry níže)
Zdraví, útok, obrana - tři bojové vlastnosti (v případě, že jde o NPC schopnou boje)
Dialogová sekvence 0/1 (Pokud postava má vlastní dialogy, přesune se hra na daný modul)
Náhodná dialogová sekvence 0/1 (V případě, že neexistuje pevně daný dialog, vygeneruje se strom z náhodných možností)
Special (specifické podmínky - věnování předmětu, volba konkrétního dialogového hesla, určitá činnost případně funkce, zahrnující více podmínek - dojde ke změně jiných proměnných jinde)

NÁHODNÉ PŘEDMĚTY

Hráč může ve většině lokací spustit hledání WiFi sítí, mobilních zařízení a podobně. To má za následek vygenerování náhodných předmětů, které se v lokací objeví. Ty se hráč může pokusit zpracovat. Náhodné předměty se přesouvají do aktivních v dané lokaci. Jsou ale výjimky, jako třeba mobilní zařízení - ty automaticky mizí. Hráč může v jedné lokaci hledat náhodné předměty omezený počet krát (z počátku bych to omezil na 3x).

NÁHODNÉ OSOBY

Hráč může ve většině lokací oslovit náhodné, nepojmenované osoby. Ty pak dostanou jméno a vygenerují se dialogové možnosti. Pokud daný dialog obsahuje i zadání vedlejšího miniúkoli, náhodná osoba se přesune do aktivních osob v dané lokací a zůstává tam natrvalo. V opačném případě po ukončení interakce automaticky mizí. Hráč může v jedné lokaci oslovovat osoby omezený počet krát (z počátku uvažuji 3x).

MODULY (budou dopisovány postupně)

- testování dovedností
- RPG vývoj postavy
- soubojový
- hackovací (pevné sítě - je možné také přepínat proměnné jinde)
- hackovací (mobilní sítě - je možné také přepínat proměnné jinde)
- hackovací (mobilní zařízení - je možné také přepínat proměnné jinde)
- dialogový (načítá jednotlivé věty konverzace a přepíná případně proměnné jinde)
- Voig-Kampf test (komplikovanější a specificky nadesignovaný dialog)
- generování náhodných vedlejších úkolů (odkaz na specifickou tabulku - generátor bere v ohled, v jaké lokaci nebo čtvrti probíhá náhodné generování a podle toho filtruje možnosti v tabulce)
- generování náhodných předmětů (dtto)
- generování náhodných osob (dtto)
- generování náhodných dialogů (dtto)
- generování náhodných sítí (dtto - tento modul má tři varianty na sítě pevné, WiFi a mobilní zařízení)
- genetování náhodných událostí (dtto - z databáze se vyberou specifické hlášky, které doplňí čas od času popis lokace - čistě pro atmosférické doplnění)
- transport (metro, taxi, vznášedlo, viz dále)
- nápadnost (pro účely policie, viz dále)

ČAS A POČASÍ

Ve hře se mění čas - každý příkaz zabere několik minut času. Podle data se pak také generuje počasí, které vládne následující den. Hráč bude o těchto veličinách informován. Většina příkazů spotřebuje pokaždé stejné množství času. Speciální příkazy mohou ale sežrat více času. Například - cestování metrem znamená používat příkaz "čekej" - dojde ke změně L_ID a posunu času například o 2 minuty. Ten samý příkaz v normální lokaci ale umožňuje zadat počet minut, jak dlouho chce hráč čekat. Podobně funguje taxík - pro přesuny v rámci jedné čtvrtě zkonzumuje převoz 10 minut, do libovolné jiné čtvrtě 25 minut. Čas a počasí jsou proměnné, které budou ovlivňovat výskyt předmětů a osob v daných lokacích (jako jedna z podmínek přesunu předmětu / osoby z neaktivních do aktivních). Hlavní hrdina musí pravidelně spát - hra bude vypisovat stav ospalosti / únavy, různé koupitelné předměty mohou spánek oddalovat, ale nikdy anulovat. Pokud postava nebude pravidelně spát, sníží se její schopnosti a postupem času zcela usne a probudí se až v nemocnici (s nějakým trvalejším postihem). Spát se dá v hotelech, ale hrdina má i vlastní domov, případně nouzově na policejní stanici. Stav únavy, denní doba ale také počasí, ovlivňuje obtížnost testování dovedností.

TRANSPORT

Hráč se může pohybovat mezi lokacemi příkazem jdi, ale také několika dopravními prostředky. Metro jezdí po vyhrazených trasách, avšak jen od šesti ráno do půlnoci. Taxíky jezdí nonstop kamkoli (hráč může zadat jméno čtvtě, kam chce dojet), avšak za peníze. Nebo může hráč použít vlastní vznášedlo - to ale až v pokročilejší fázi hry. Vznášedlo funguje podobně, jako taxík - převáží mezi čtvrtěmi. V případě metra (případně tramvají a autobusů) se cestuje na principu, že hráč dojde na zastávku, zvolí si, na kterou linku a kterým směrem chce nasednout a pak pomocí příkazu WAIT mění hra aktuální lokaci - což je tabulka zastávek. Hráč může kdykoli vystoupit.

REPLIKANTI

Cílem hry je pobít pět (časem možná i více) replikantů. Replikanti představují specificky designované mise, nepříliš slučitelné se zbytkem hry. Prvním krokem bude samozřejmě lokalizace a identifikace replikanta. K tomu hráč dostane během hry různé indicie. Jakmile ale replikanta najde, spustí se unikátní skript. Skriptování zahrnuje například:
Identifikaci replikanta na základě Voig-Kampfova testu; honička v ulicích s časovým limitem; ostřelování replikanta na větší vzdálenost, než se odehrávají souboje (cross-lokační útok); útok replikanta na hrdinu; hacknutí hrdinova mobilního telefonu a podobně. Avšak samotný proces, jak se k replikantovi dostat, bude různorodý, bude více cest, více nápověd a hráč se bude muset podřídit tomu, co umí jeho postava lépe. Základním principem ale je, že hned z počátku hry bude možné dojít k pěti replikantům, pokud hráč ví, kde přesně jsou. Tj. smrtí postavy nic nekončí - spustí se nová hra a hráč může jakoby pokračovat tam, kde skončil - jenom bez nabytých zkušeností, peněz a výbavy. Je ale možné, že na určitá místa se hráč nedostane, protože potřebuje mít kriticky důležitý předmět nebo informaci (např. heslo pro vrátného nebo propustku). Smrt postavy je tedy oddálení cíle, nikoliv nutnost jít od začátku. Mrtvá postava se ale zapíše do HiScore tabulky (přístupná online). Hru je možné ale i dohrát neúspěšně - když replikanti utečou z města například. Pořád to ale bude dohrání.

HLAVNÍ HRDINA

Hrdina disponuje výbavou (která bude velice omezená, více méně standardizovaná, během hry se bude měnit minimálně), penězi, nápadností (popíšu dále), obecným bodovým skóre, zkušeností a hlavně dovednostmi. Dovednosti reprezentují široký okruh činností a chtěl bych docílit toho, aby v zásadě jakákoliv pokročilejší činnost byla navázaná na test dovednosti. Takže vyjma chůze, dialogů, sbírání předmětů bude vše jakýmsi testem schopností. Momentálně ještě nevím, kolik přesně těchto dovedností bude - ale to není podstatné, mohu je dynamicky přidávat za běhu hry. Podstatné je, že různé podmínky objevení předmětů, postav nebo lokací mohou být navázány na test specifické dovednosti. Příklad: hráč se rozhodne násilím otevřít dveře. Dveře mají u sebe mimo jiné definováno: odolnost proti násilnému vniknutí (SÍLA) = 5/2, úspěch = ("dveře P_ID" viditelnost = 0) + ("vyražené dveře P_ID" viditelnost = 1) + (viditelnost lokace za dveřmi = 1) + (hláška "dveře se rozpadly"); neúspěch = (zdraví-1) + (hláška "odrazil ses od dveří"). (Mimochodem - takovéto předměty by mělo být možné modulem náhodného generátoru, ale pochopitelně ne zrovna dveře).

TEST DOVEDNOSTI

Číslo, které reprezentuje dovednost, je počtem šestistěnných kostek, kterými hráč hází. Hody se nesčítají - naopak každý z hodů se porovnává s cílovým číslem testu, zda-li byl test překonán. Hráč ale nebude o úspěšnosti jednotlivých hodů informován. Pokud padne šestka, hází se znova a hody se sčítají (tyto extra hody jsou zdarma samozřejmě), cílové číslo tak může být vyšší, než 6. Jak tedy chápat test vyražení dveří výše? SÍLA 5/2 znamená, že hráč musí hodit tolika kostkami, co je jeho síla, hodit nebo přehodit pětku a to nejméně dvakrát, aby dveře vyrazil (došlo ke stavu "úspěch") - je tedy zřejmé, že tento konkrétní test není možné splnit se silou 1. Má-li postava sílu 5 a padnou čísla 4, 4, 3, 5, 10 (tj. 6 + bonusový hod 5), znamená to, že dvakrát uspěl a dveře se vyrazí. Tento princip testování dovedností je naroubován na jakoukoliv komplikovanější činnost - i třeba během dialogů! Stejně tak souboje vycházejí z tohoto základu.

VÝVOJ POSTAVY

Hráč z počátku hry disponuje minimální výbavou a informovaností. Po té, co sejme prvního replikanta, dostane od šéfa policejní stanice jednak peněžitou odměnu, povýšení, ale také mobilní telefon, jakousi malou počítačovou centrálu. Do ní si bude hráč moci nahrávat různé aplikace (například hackování sítí) a mimo jiné tam bude také "statistika činností", což by bylo de facto výpisem stavu dovedností postavy. Některé dovednosti ale budou skryté i přes tuto možnost, aby byl zachován element tajnosti. Hráč pak může své postavě zaplatit extra tréninky (ty ale budou HODNĚ drahé, v zásadě bych to chtěl pojmout tak, že celá odměna za zabití replikanta padne za trénink), které zvednou některé dovednosti o jedničku (tréninky budou v několika kategoriích, takže se zvednou 2-3 příbuzné dovednosti). Nezávisle na tom bude hráč moci z našetřené zkušenosti zvednout některé specifické dovednosti u zvláštních trenérů ve městě. Princip je jednoduchý - dovednost je možné zvednout o jeden bod a to za tolik bodů zkušenosti, kolik je nová hodnota dovednosti. Tj. z 5 na 6 to stojí 6 bodů zkušenosti, z 6 na 7 stojí 7 (takže z 5 na 7 to stojí 13) atd. Hráč neví, kolik zkušeností nasbíral, jde o skrytou proměnnou - bude mít ale různé nápovědy v okamžiku, kdy zkušenost získá (po nějakém zvláštním testu, rozhovoru či zabití nějakého konkrétního nepřítele).

NÁPADNOST

Hlavní hrdina je z hlediska právního prakticky nepostihnutelný, avšak v očích běžných lidí může jít o lumpa. Znamená to, že na něj čas od času může zavolat někdo policii. Hrdina je pak z principu odvezen na stanici, pro zachování tváře policie. Tak jako tak to má negativní vliv na jeho pověst a hlavně - nápadnost. Replikanti opustí město, pokud nápadnost přesáhne určitou mez. Nápadnost se zvyšuje otevřeným soubojem na ulici, neúspěšným kapsařením a některými dialogovými možnostmi (což bude uvedeno v samotném dialogu). Modul hlídající nápadnost bude hráče náznaky informovat, že je příliš podezřelý (např. se vypíše "lidí si na tebe ukazují prstem" a podobně). Do některých lokací (typicky zapadlé bary) nebude postava vpuštěna, pokud má nápadnost příliš vysokou. Pokaždé, když nápadnost přesáhne 10% maximální meze, bude postava odvezena zpátky na policejní stanici a tam jí bude domluveno. Nápadnost je možné snižovat na zvláštních místech, speciálními předměty a úkoly.