česky english

Kategorie

Zprávy a oznámení

Vývojářský deník

Archiv

Červen 2014

Květen 2014

Duben 2014

Prosinec 2013

Listopad 2013

Září 2013

Červenec 2013

Červen 2013

Prosinec 2012

Říjen 2012

Srpen 2012

Červen 2012

Květen 2012

Březen 2012

Únor 2012

Leden 2012

Červenec 2011

 

LEKCE KARTOGRAFIE V BRAMBOROVÉ ZEMI

Vložil Dan do kategorie Vývojářský deník @ 12:56 pm UTC Jun 21, 2012

Cryengine? Unreal? Realita, která v takovémhle detailu bude ještě nějakou chvíli nedostižná.

Jsi Krutor, divoký barbar ze země Morkroch. Putoval jsi předlouhou cestu, přes vysoké hory do proslulého císařského města Lhoty, hlavního města světa a největší aglomerace ve známém vesmíru, jehož sláva se dotýká hvězd.

Město sestává přesně z patnácti budov, včetně císařského paláce, a žije v něm 30 NPC, včetně císaře Lojzy, arcimága Lotranda a všech členů cechů zlodějů, mágů a válečníků.

Navštívíš císaře, který sedí sám v trůnním sále a on ti zadá epický quest. Zemi terorizuje zlý drak z pekla a Lojza je bezmocný. Poslal na něj celou imperiální armádu, ale stvůra všech pět vojáků zabila. Teď potřebuje hrdinu, jako jsi ty! Musíš najít a slézt tajemnou horu Lohen, na kterou lidská noha dosud nevkročila, a setnout draka.

Přijímáš quest a vyjdeš ven z městské brány. Tajemná hora Lohen se nachází přesně 150 metrů od vrat a je vysoká asi 50 metrů. Všichni obyvatelé města jsou buď retardovaní, slepí, nebo chromí, pokud si jí po staletí nestačili všimnout. Po asi 30 metrech chůze k hoře se dostaneš na “území nikoho” a přepadnou tě bandité. V průběhu dalších 120m chůze k vrcholu objevíš ještě starověkou pevnost Rumloch, tajný dungeon zkázy a úkryt banditů. Na vrcholu hory zabiješ stometrového draka tím, že mu mlátíš do nohy rezatým mečem a piješ lektvary. Potom okradeš mrtvoly impreriální armády (všech pěti) a cestou zpátky do hradu tě zabije divoké prase.

Vítejte v průměrném RPG.

Komprese bramborové krajiny

Možná už vám došlo, kam tím mířím. Design map dnešních RPG je na prd, protože všechno je zkomprimované, abyste každých deset metrů mohli objevit něco úžasného, nebo alespoň mohli být každých deset sekund napadeni monstry, protože jinak by to přece byla “nuda”...

Tahle komprese prostředí se ovšem negativně projevuje na grafice. Abyste každých deset metrů mohli umístit hrad, jeskyni nebo tábor loupežníků, musíte vytvořit měsíční krajinu a lokace schovávat do nesmyslných kráterů nebo za kopce, které musíte udělat co nejvyšší, aby přes ně nebylo vidět moc daleko. Výsledkem je prostředí, které má do reálné krajiny hodně daleko, nelze se v něm bez mapy absolutně orientovat a většinou vypadá blbě. Říkám tomu bramborová krajina, protože povrch terénu připomíná povrch brambory.

Je vám asi jasné, že to, co jsem právě popsal, je cesta, kterou se rozhodně nechceme vydat. Snažíme se dělat realistickou hru a chceme mít krásnou realistickou krajinu. Pokud vám je ovšem podezřelé, že by byli všichni vývojáři tak “pitomí” a dělali to celou dobu špatně, místo aby si prostě vzali reálnou mapu a okopírovali ji do hry, máte pravdu - nejsou. Ono to totiž vůbec není tak jednoduché a na příkladu krajiny pro naši hru se vám pokusím vysvětlit, proč.

Naše hra je historická a odehrává se na zcela konkrétních reálných místech. Nikdo sice nemůže říct, jak přesně ta místa před pár set lety vypadala, nicméně řeky tečou pořád stejným korytem, cesty vedou pořád víceméně stejně a města a vesnice jsou pořád na stejných místech. A jelikož jsem tak trochu úchylný pedant, chci to mít v naší hře správně. Nedokázal bych tvrdit, že se naše hra odehrává v Praze a následně stvořit nějakou nesmyslnou vesnici v bramborové krajině.

Slepice, nebo vejce?

Při konstruování dějové linie pro hru jsem proto postupoval opačně, než je běžné. Věděl jsem, co bych asi chtěl vyprávět, než jsem ovšem začal vymýšlet detaily, hledal jsem reálná místa, na kterých by se to mohlo odehrávat. To znamená místa, kde se v průběhu období, kdy se naše hra odehrává, stalo něco, co s historickými událostmi souviselo a já k tomu mohl naroubovat svůj příběh. Dané místo navíc muselo mít co nejvíce zajímavých bodů na co nejmenší ploše, abychom nemuseli vytvářet absurdní krajiny o rozměrech desítek kilometrů čtverečních a hráč se nemusel ploužit hodiny prázdnými lesy.

Pohled na první testovací verzi naší krajiny, kde už je použita satelitní height mapa a na ní aplikovaná jednoduchá mapa a stromy pro snadnější vnímání měřítka. V záběru je viděr úsek cca 1x2km.

Jelikož stěžejní události příběhu se odehrávají na několika místech, vzdálených od sebe desítky i stovky kilometrů, bylo potřeba rozhodnout, zda půjdeme cestou fikce a plácneme vedle sebe zcela nesouvisející místa jako třeba Berlín a Londýn do jedné mapy 3x3 km, nebo zda bude ve hře nějaký loading a hráč se mezi příliš vzdálenými místy přesune po mapě. Rozhodl jsem se pro druhou variantu. Hra se proto bude odehrávat na několika menších mapách, které budou reálné, místo jedné mapy nesmyslné. Důvodem nebylo technické omezení enginu, ale prostě jen a pouze snaha o realističnost.

Následně jsem začal vybírat vhodná místa pro každou z těchto samostatných map. Přečetl jsem několik knih týkajících se událostí z našeho příběhu a vypisoval si zajímavá místa. Pak jsem si pustil stránky hrady.cz, mapující takřka veškeré kulturní památky v naší zemi, a na tamní mapě jsem začal od místa, kde se odehrává stěžejní událost první lokace naší hry, a začal jsem systematicky pročesávat okolí, abych nalezl místa, která s danou událostí souvisí a mohla by být zajímavá pro hru.

Prošel jsem mnoho desítek hradů, tvrzí a městeček a u každého zkoumal jeho historii. Skončil jsem s asi dvěma desítkami míst, která vypadala slibně, a začal je zkoumat hlouběji. Nakonec jsem vybral dvě lokace, kde se odehrály události, které takřka předčily moje očekávání, a k mé velké radosti jsem zjistil, že zmínky o nich jsou hned ve dvou románech, odehrávajících se ve stejném období, jako náš příběh, a v jejichž bezprostřední blízkosti se nachází spousta zajímavých míst a krásná divoká příroda. Kromě toho osudy lidí, kteří zde žili, přímo vybízely k zakomponování do našeho příběhu.

Bohužel, ona místa od sebe byla vzdálená dvanáct kilometrů vzdušnou čarou, což je opravdu hodně. Podobně velká krajina je nad naše realizační možnosti a navíc by byla zcela nezábavná na hraní. Pokud bychom se drželi reality, vytvořili bychom deset kilometrů prázdných lesů. Kdybychom je osázeli něčím, co v nich nebylo, popřeli bychom důvod toho, proč se držíme reality. Přišel tedy čas dělat kompromisy.

The Cutting Room

Měl jsem dvě možnosti - umístit obě místa na oddělené mapy, což by ovšem v tomto případě poněkud znepříjemnilo hraní některých questů, nebo udělat něco, co se mi vůbec nelíbí – komprimovat krajinu a měnit ji tak, aby sloužila hře. Rozhodl jsem se pro kompresi v rozumných mezích. Vzal jsem mapu, jednu lokaci vyřízl, našel jsem nejvhodnější nové místo, kam by šla vlepit, a strčil ji tam. Hlavou se mi sice celou dobu honily výčitky a představy, jak budou všichni tři obyvatelé daného místa, kteří budou naší hru hrát, vzteklí, že jsem zprznil jejich rodiště, ale nakonec jsem dospěl k názoru, že se tím budou muset soudruzi nějak vypořádat .

ýřez z výškové mapy, ze které jsme vygenerovali terén pro náši první lokaci.

Následně jsme zakoupili satelitní výškové 3D mapy daného místa, které mají přesnost asi 5m na pixel, zprovoznili je v Cryengine a překopali je podle mojí 2d mapky. Na to jsme jako texturu naplácli historickou mapu z 18. století (starší bohužel neexistuje) a začali po tom běhat s panáčkem.

Je poněkud obtížné odhadovat z běhání po prázdné mapě, kde se člověk nemá možnost chytit čehokoli, co by mu poskytlo odhad měřítka, jestli to ve finále bude moc malé nebo velké a jestli to bude zábava. V každém případě naše mapa o rozměrech cca 4x4 kilometry působila prázdná fakt obrovsky. Jen tak pro informaci, celý Oblivion má rozměry asi 4x3 km a WoW (po odmazání moře) asi 13x10km.

Poučení z chyb druhých

Je potřeba zmínit, co mám vlastně s krajinou v plánu a čím ji zaplnit, když mi vadí přecpávání prostoru událostmi a lokacemi. Co je vlastně ideální? Jedněmi z mála herních sérií, které se rozhodly pro realismus, je Flashpoint a jeho nástupkyně Arma. Někteří moji kolegové ve Warhorse mají zkušenost s vývojem Army, původního Flashpointu i jeho nástupce od Codemasters, a tak moc dobře víme, že to, co se v prvním Flashpointu na první pohled jeví jako realistická krajina, má ve skutečnosti hodně zmenšené měřítko.

Ostrov z Flashpointu a jeho skutečný předobraz.

Přátelé z BIS vzali mapu ostrova Tenerife a 20x jí zmenšili. Získali tak hezkou 3D mapu povrchu, ale všechno ostatní udělali jinak. Z velkoměst jsou vesničky, z velehor kopečky. I tak má hráč ve hře pocit, že překonává obrovské vzdálenosti. Tam se ale vynoří důvody, proč realismus nemusí být zrovna nejlepší cesta - často to je totiž docela nuda, takže vhod přijde tlačítko na zrychlování času, aby cesta rychleji utekla.

V pokračování Flashpointu si tento problém hoši z Codemasters bohužel asi neuvědomili a rozhodli se udělat kopii skutečného ostrova o rozloze 277km2, což se nakonec ukázalo jako naprosto zbytečný overkill, protože výsledná hra 90% prostoru ostrova vůbec nevyužívá a vzdálenosti, které je potřeba někdy překonat, jsou šílené. Na druhou stranu se ale někdy ukázalo, že i poměrně dlouhá procházka lesem nemusí být nuda, pokud vzbuzuje očekávání toho, co bude následovat.

Skutečný ostrov Kiska z Flashpoint Dragon Rising, který je ve hře 1:1.

Asi nejlépe vyřešený svět a hustotu lokací má podle mě Red Dead Redemption. Vzdálenosti mezi jednotlivými místy jsou tak velké, že je takřka nepředstavitelné, abyste je šli pěšky, ale zároveň tak akorát pro jízdu na koni. Jednotlivé lokace jsou od sebe tak daleko, že o ně nezakopáváte na každém kroku a z jednoho místa není vidět na další, ale současně mapa nepůsobí prázdně. Krajina přitom není nijak oslnivě velká a odhadem má cca pouhých 3x2km. Je jen velmi chytře rozdělená přírodními bariérami (útesy, řeka), takže toho musíte najezdit stejně jako na velké mapě, když se je pokoušíte objet, ale grafici měli míň práce, přičemž výsledek vypadá stále velmi přirozeně.

Skvělé také je, že vás neustále neotravují příšery a nepřátelé, jako prakticky ve všech ostatních open world hrách. Když chcete jet z místa A na místo B, tak prostě jedete a nemusíte každých sto metrů řešit bandity. Překvapivě se díky tomu nic špatného neděje, hra není horší, nudnější ani kratší, o čemž jsou zřejmě přesvědčení všichni ostatní developeři. Pokud se ale chcete jen tak potulovat, odehrává se okolo vás spousta věcí, do kterých můžete, ale nemusíte zasahovat. Tak to má podle mě být a tak bych to chtěl udělat také.

Cílem je, aby vzdálenost mezi městy byla opravdu velká pro chůzi pěšmo, a když máte něco hledat, skutečně jste to museli hledat. Zároveň to řeší problém vizuální – když je krajina přirozeně veliká, může i přirozeně vypadat, můžete ukázat velkolepá panoramata, v dálce pozorovat siluety míst, kam se snad jednou dostanete, ale cítit jejich nedosažitelnost.

Realita vs. praxe

Srovnání map několika velkých open world her. Naše mapa, na které plánujeme je zelený čtverec vedle mapy Oblivionu.

Všechno to zní moc pěkně, problém je, že nakonec stejně musíte vyzkoušet, jak to funguje ve vašem konkrétním případě, a když jsme si do své mapy dali pár krabic, reprezentujících budovy, a na místa lesů bleskově vysázeli stromy, což jde v Cryengine velmi rychle, zjistil jsem, že dvě místa, která na mapě vypadají, že jsou jen kousek od sebe, nejsou ve skutečnosti ani vidět a pěší cesta mezi nimi trvá deset minut a to i přes to, že náš panák chodí podstatně svižněji, než běžný turista.

Naše realistická mapa navíc trpí ještě jedním nedostatkem – zajímavá místa jsou rozesetá po okrajích a střed je v zásadě prázdný, což není úplně ideální, protože pokud se nejdůležitější lokace nachází u kraje mapy, hráč musí zcela zbytečně a příliš často absolvovat stejnou nudnou cestu přes celou mapu vždy, když někam vyrazí. U centrálně umístěné lokace tento problém nehrozí, protože pokaždé můžete jít jiným směrem. Bohužel, pokud chceme zachovat reálné rozvržení mapy, budeme to tak muset nechat, dávat si na to pozor při designu questů a nehonit hráče jak nadmutou kozu z jednoho rohu do druhého.

V každém případě po pohledu na naši krajinu bylo jasné, že budeme muset komprimovat ještě víc, než dosud. Nechtěl jsem se vydat cestou změny měřítka, takže jsem si znovu vzal mapu, vyznačil na ní prostory, které musí zůstat netknuté, a začal z ní vyřezávat pruhy, ve kterých se nic zajímavého nenacházelo. Z mapy 4x4 jsem udělal mapu 3x3 přičemž všechno zůstalo skoro stejné.

Poté jsem se rozhodl poněkolikáté navštívit místa, kde se bude hra odehrávat a prosmejčit opravdu všechny kouty herního prostoru. Přitom jsem zjistil, že krajina je to opravdu krásná, ale některé vzdálenosti, které v naší blackbox mapě vypadají snesitelně, trvá překonat dost dlouho i autem a navíc převýšení, které nevypadá v enginu nijak drasticky, je v reálu gigantický kopec!

Co s tím?

To mě donutilo znovu přemýšlet. Původně jsme nechtěli do hry dávat v rámci jedné mapy žádný fast travel, ale toto mě poněkud nahlodalo. Fast travel navíc není řešení, ale jen berlička, která neodstraňuje chybu a jen ji obchází. Ale dopustili jsme se vlastně chyby?

Bude hráče bavit, když se chce dostat z města A do města B, jet dlouho na koni? Cestovní rychlost koně je cca 25km/h, takže kilometr překoná za cca 2.5 minuty. Pokud budou města vzdálená 2 kilometry vzdušnou čarou a kůň pojede o něco rychleji než v reálu, hráči potrvá taková cesta na koni víc, než pět minut. Pět minut ve hře je dlouhá doba, obzvlášť pokud jedete krajinou, která není měsíční, a svůj cíl stále vidíte v dálce na obzoru a přibližuje se velmi pomalu. A co teprve když půjde hráč pěšky přes louku, která není klasický komprimovaný plácek, ale opravdová stometrová louka? Její překonání zabere chůzí cca 1 minutu, sprintem nějakých 13 sekund. Je to moc nebo málo?

Cestování v Armě a Flashpointu mělo své kouzlo, a pokud budeme questy soustřeďovat vždy kolem lokací a přejezdy nebudou příliš časté, mohlo by to fungovat. Nejde ale jen o rychlost cestování. Čím větší krajina, tím zároveň řidší osázení lokacemi, body zájmu a událostmi. Je lepší mít ve hře obrovský les, který bude obrovský, protože je to hezké, člověk se může kochat a užívat si jeho atmosféru, ale na většině jeho prostoru se nic zvláštního neděje, nebo malý les, kde člověk hned najde, co potřebuje, na úkor atmosféry? Můžeme klidně skončit v situaci, kdy všichni řeknou, že sice máme krásnou krajinu, ale k čemu je to dobré, když se v ní nic nedá dělat. Svým způsobem to bude pravda. Jenže neplatí i zde tak trochu, že cesta je důležitější než cíl? 

Všechno to zjistíme teprve v okamžiku, kdy budeme mít hotový první větší kus krajiny, což bude poměrně brzy. Potom se buď potvrdí naše teorie o realismu ve hrách, nebo budeme komprimovat jako protržení, dokud je čas.

Samozřejmě nás zajímá, co na to říkáte vy? Co byste raději:

  1. Komprimovanou bramborovou krajinu, kde je všechno blízko?
  2. Realistickou krajinu, ve které se můžete potloukat hodiny, i když bude relativně prázdná?
  3. Menší mapu, která vypadá realisticky, ale je rozumně zkomprimovaná?

Napište nám, jaká cesta se vám zdá nejlepší, a pokud se vám líbí to, co děláme, a chcete nás podpořit, sdílejte, tweetujte a lajkujte! Děláme hru pro nás i pro vás a potřebujeme váš feedback i podporu. Pokud nechcete propásnout další blog, který vyjde zase přibližně za měsíc, sledujte nás na Twitteru @warhorsestudios, Facebooku, nebo si nás přidejte jako RSS kanál.

Dan Vavra, Kreativní ředitel

blog comments powered by Disqus