From 0188a8bca77626e6ff5b2a8f894b10ae6a7c1d09 Mon Sep 17 00:00:00 2001 From: Oleg Petruny Date: Tue, 27 May 2025 12:12:31 +0200 Subject: [PATCH] up to settings review --- ch2.tex | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ch2.tex b/ch2.tex index ed03f45..9e2fced 100644 --- a/ch2.tex +++ b/ch2.tex @@ -85,27 +85,27 @@ V~enginu je~zavádějící implementace pokročilého dialogového systému. Dia Protože kvalitní řešení jsou~placená a~ty~zdarma jsou~často nevyhovující kvality, byla~navržená vlastní implementace. Jedná~se o~frontu, která~umí přehrávat celé tabulky dialogových vět. Dialog, resp.~množinu vět společného kontextu, lze~pohodlně zapsat do~tabulkového formátu přímo v~editoru. Jednotlivá věta obsahuje id, text, dobu přehrání nebo~zvukovou stopu. Ve~výsledku lze~do~fronty zařadit několik tabulek, které~se~mohou přehrávat sekvenčně od~n-té věty po~poslední, jednu náhodnou větu nebo~přesně jednu větu podle id. \subsection{Minihry} -Gameplay druhého levlu je celý složen z miniher. V moment vydání -- práce obsahuje pouze pět hlavních pro game design miniher v podobě ,,proof of concept''. Z časových důvodů zbylé vedlejší minihry nebyly implementovány. Každá z hlavních miniher je parodie na již existující známe hry. +Herní průchod druhého levlu je~celý složen z~miniher. V~době vydání práce obsahuje pouze pět~hlavních miniher v~podobě ,,proof of~concept''. Z~časových důvodů nebyly vedlejší minihry implementovány. Každá z~miniher je~parodie na~již existující známou hru. -Minihry jsou samostatné objekty, které manažer scény restartuje nebo vypíná. Po nastartování minihra sama přepne kontext ovládání na sebe a řídí vlastní stav. Jestli minihra nebyla ukončena dočasně ale dohraná, potom vráti ovládání hráči a spolu s tím výsledek a skóre. +Minihry jsou samostatné objekty, které~může správce scény restartovat nebo~vypnout. Po~spuštění si~minihra sama přepne kontext ovládání na~sebe a~řídí svůj vlastní stav. Jestli~minihra nebyla ukončena dočasně, ale~dohraná, vráti ovládání zpět hráči spolu s~výsledkem a~skóre. Dostupné zkušební implementace: \begin{itemize} -\item Parodie flash hry Age of War. V pozadí uklízení knížek dějepisu jsou umístěny základny hráče a soupeře (umělé inteligence). Hráč ovládá minihru pomici UI, kde nakupuje jednotky typu: pěšák, střelec a tank. Peníze získává za zničení nepřátelských jednotek. Vyhrává soupeř, který dokázal přejít přes jednotky nepřátele až k základně a zdemolovat ji. V aktuální implementaci chybí vylepšení éry jednotek, zvuky, grafické efekty, modely a animace jednotek. Přesto lze vyzkoušet nakup a jejich ,,souboj'' jednotek. -\item Parodie na mobilní hru Subway Surfers. Aktuálně má minihra nevhodné pozadí, neobsahuje audio a grafické prvky. Podle návrh hráč nahání veverku v lese, která mu ukradla část důležitého pro příběh předmětu. pomocí pohybů nahoru, dolu, doleva a vpravo hráč uhýbá objevujícím se lesním překážkam. Překážková dráha má šířku třech běžících pruhů a překážky mohou vyžadovat přeskočení, sklouznutí nebo úhyb do strany. -\item Podoba počítačové rytmické hry Osu!. Hráč má za úkol klikat na objevující se na obloze hvězdičky v souladu s rytmem hudby (v pořadí ve kterém se objevily). Aktuálně ,,hvězdičky'' jsou v podobě čtverečků, ale hudba je zcela hotova. Již teď lze vyzkoušet klikání pro prvních 10 sekund doprovodu. -\item Podoba mobilní hry Crossy Road. Hráč pomocí pohybu dopředu, dozadu, doleva a dolu potřebuje posouvat se vpřed po překážkové dráze. Dráha je složená z pěti pruhů kolmých ke kameře, a každý pruh je složen z dvanáctí políček, na které může stoupnout hráč. Náhodně na krajích pruhu se objevují divoká zvířata, laviny a silný vítr (v originální hře to jsou auta na silnici), které se posouvají k opačnému kraji přes všechna políčka a mohou ukončit běh hráče. Podle návrhu se minihra odehrává v ledovém prostředí, kde hráč prochází sněžnou krajinou. Audiovizuální prvky opět nejsou k dispozici, ale již teď teď lze vyzkoušet posun dopředu a úhyb překážkam. -\item Jednoduchá minihra rybolovu (více podob napříč různými hry). Hráč má na obrazovce svislý obdelníkový indikátor znázorňující vodní hlubinu. Podél indikátoru se náhodně pohybuje obrázek rybičky, kterou hráč musí udržovat v malé pohyblivé zóně. Zóna se pohybuje automaticky dolu nebo nahoru držením tlačítka myší (rychlost pohybu není lineární, ale kvadratická). V implementaci chybí zvukové assety a vyváženost složitosti, ale je k dispozici kompletní UI a mechanika lovu. +\item Parodie flash hry Age of~War. V~pozadí scény s~úklidem učebnic dějepisu jsou~umístěny základny hráče a~soupeře (umělé inteligence). Hráč ovládá minihru pomicí~UI, kde~nakupuje jednotky typu: pěšák, střelec a~tank. Peníze získává za~zničení nepřátelských jednotek. Vyhrává ten, kdo~dokáže proniknout přes obranu nepřítele až~k~jeho základně a~zničit~ji. V~aktuální implementaci chybí vylepšení jednotek, zvuky, grafické efekty, modely a~animace jednotek. Přesto~lze vyzkoušet nákup a~,,souboj'' jednotek. +\item Parodie na~mobilní hru Subway Surfers. Aktuálně má~minihra nevhodné pozadí, neobsahuje audio a~grafické prvky. Podle návrhu hráč nahání veverku v~lese, která~mu ukradla část důležitého pro~příběh předmětu. Pomocí pohybů nahoru, dolů, vlevo a~vpravo se~hráč vyhýbá objevujícím se~překážkam v~lese. Překážková dráha má~šířku tří~běžeckých pruhů a~překážky mohou vyžadovat přeskočení, sklouznutí nebo~úhyb do~strany. +\item Podoba počítačové rytmické hry Osu!. Hráč má~za~úkol klikat na~objevující~se na~obloze hvězdičky v~souladu s~rytmem hudby (v~pořadí ve~kterém se~objevily). Aktuálně ,,hvězdičky'' jsou~v~podobě čtverečků, ale~hudba je~zcela hotova. Již~teď lze vyzkoušet klikání během prvních 10~sekund hudby. +\item Podoba mobilní hry Crossy Road. Hráč pomocí pohybu dopředu, dozadu, doleva a~dolů potřebuje posouvat se~vpřed po~překážkové dráze. Dráha je~složená z~pěti~pruhů kolmých ke~kameře, a~každý pruh je~složen z~dvanácti políček, na~které~může stoupnout hráč. Náhodně na~krajích pruhu se~objevují divoká zvířata, laviny a~silný vítr (v~originální hře to~jsou auta na~silnici), které~se~posouvají k~opačnému kraji přes všechna políčka a~mohou ukončit běh hráče. Podle návrhu se~minihra odehrává v~ledovém prostředí, kde~hráč prochází sněžnou krajinou. Audiovizuální prvky opět nejsou k~dispozici, ale~již~teď lze vyzkoušet posun dopředu a~úhyb překážkám. +\item Jednoduchá minihra rybolovu (více podob napříč různými hry). Hráč má~na~obrazovce svislý obdélníkový indikátor znázorňující vodní hlubinu. Podél indikátoru se~náhodně pohybuje obrázek rybičky, kterou~hráč musí udržovat v~malé pohyblivé zóně. Zóna se~pohybuje automaticky dolů nebo~nahoru držením tlačítka myší (rychlost pohybu není lineární, ale~kvadratická). V~implementaci chybí zvukové assety a~vyváženost složitosti, ale~je k~dispozici kompletní~UI a~mechanika lovu. \end{itemize} \subsection{Nehratelné postavy} -Pro tvorbu NPC (Non-Playable Characters) byli použité základní prostředky enginu. Podle dizajnu hry, k dispozici by měli být tři druhy logiky pro NPC, ale z časových důvodů jsou implementovány pouze dvě. Jedno z chování je pouhá chůze k dynamickým bodům. Toto základní chování se potom rozděluje na střežení oblasti nebo boj s hráčem. +Pro~tvorbu NPC (Non-Playable Characters) byly použité základní prostředky enginu. Podle návrhu hry, k~dispozici měly~by~být tři~druhy logiky pro~NPC, ale~z~časových důvodů jsou~implementovány pouze~dvě. Jedno~z~chování je~pouhá chůze k~dynamickým bodům. Toto~základní chování se~potom rozděluje na~střežení oblasti nebo~boj s~hráčem. -Postavy, které střeží oblast využíváji nový pro UE5 systém vjemů nehratelných postav. Postavy tak umí reagovat na zvuky, dotyky nebo zahlédnutí jiných objektů. Toto je využito pro postavy, které hlídají vězení v levelu 4. Ty patrolují předem navržené trasy a spouští určité akce až zahlédnou hráče. +Postavy, které~střeží oblast využívají v~UE5 nový systém vjemů nehratelných postav. Postavy umí reagovat na~zvuky, dotyky nebo~zahlédnutí jiných objektů. Toto~je~využito pro~postavy, které~hlídají vězení v~levelu 4. Ty~patrolují předem navržené trasy a~spouští určité akce až~zahlédnou hráče. -V implementaci chybí kompletní logika boje s hráčem. Aktuálně postavy pouze běží k hráči jestli ho zahlédnou. Zbytek nedodělané logiky je spíš vizuálního charakteru a spočíval by v jednoduchých animacích použití střelné nebo ruční zbraně ve hře. +V~implementaci chybí kompletní logika boje s~hráčem. Aktuálně postavy pouze běží k~hráči pokud ho~zahlédnou. Zbytek nedodělané logiky je~spíš vizuálního charakteru a~spočíval~by v~jednoduchých animacích použití střelné nebo~ruční zbraně ve~hře. -Každé chování využívá Navmesh pro orientaci na úrovní. +Každé chování využívá Navmesh pro~orientaci na~úrovni. \subsection{Nastavení} Hra využívá existující v enginu de/serializace v textovém formátu ,,.ini''. Při exportu hry v podobě samostatného buildu, lze využívat i binární formát konfiguračních souborů. Tento přístup značně zjednodušuje tvorbu konfiguračních proměnných. Tak k tvorbě vlastních parametrů stačí pouhá deklarace potřebných proměnných v C++ třídě.