up to settings review

This commit is contained in:
Oleg Petruny 2025-05-27 12:12:31 +02:00
parent 88903f7096
commit 0188a8bca7

22
ch2.tex
View File

@ -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ě.