-
Notifications
You must be signed in to change notification settings - Fork 0
General Analysis
V tomto dokumentu představíme náš plugin a funkcionality, které pro něj plánujeme.
Většina dokumentu se týká funkčních požadavků tohoto projektu. Nicméně máme tu i tři obecné nefunkční požadavky, které zde explicitně zmíníme.
Důraz na rozšiřitelnost – Předpokládáme, že vývojáři, užívající plugin k tvorbě vlastních her, mohou mít nějaké specifické potřeby. Proto by pro ně mělo být co nejjednodušší náš plugin rozšiřovat. Počítáme s tím, že rozšiřování pluginu už budou dělat programátoři, nicméně i pro ně by mělo být co nejjednodušší funkcionality tohoto pluginu lehce modifikovat.
Uživatelská přívětivost – Očekává se, že náš plugin budou používat i neprogramátoři. Všechny funkcionality tohoto pluginu by pro ně měly být co nejvíce přístupné a pochopitelné.
Integrace do Unreal Engine – Tento požadavek se váže k uživatelské přívětivosti. Očekáváme, že vývojáři, kteří budou s naším pluginem pracovat, už budou mít aspoň základní zkušenosti s Unreal Engine. Z toho vyplývá, že čím víc budou naše editory dodržovat konvence Unreal Editoru, tím jednodušeji se v nich bude vývojář orientovat.
Plugin bude třeba nainstalovat stejně jako jakékoliv jiné pluginy do Unreal Engine. Neboť náš plugin pro používání vyžaduje výchozí konfiguraci, například aby hra používala naši GameInstance či aby existoval hlavní Quest, do projektu ho bude možné integrovat dvěma způsoby:
-
Vytvořením nového projektu námi vytvořeného typu, který zajistí veškerou potřebnou konfiguraci.
-
Do toolbaru přidáme tlačítko Generate Adventure Plugin Files, které po kliknutí vygeneruje všechny potřebné soubory.
V nastavení projektu bude možné provést globální konfiguraci pro celou adventuru, především pak:
-
Main Quest – Který z questu je ten hlavní.
-
Item categories – Seznam kategorií, které lze přidat předmětům
-
Inventory presenter – Typ třídy pro zobrazování předmětů.
-
Dialogue presenter – Typ třídy pro zobrazování dialogů.
Skripty na jednotlivých objektech potřebují mít snadný přístup k funkcím, které bude poskytovat náš plugin. Pro práci s objekty, které mají být přístupné po celou hru, se běžně používá GameInstance. My vytvoříme její podtřídu nazvanou AdventureGameInstance, která bude obsahovat tuto proměnnou:
-
Adventure Game Managers – Tato třída obsahuje managery, které bude runtime využívat k práci s našimi objekty. Bude obsahovat tyto proměnné:
-
Inventory Manager – Třída pro práci s inventářem.
-
Inventory Presenter – Třída pro zobrazení inventáře.
-
Quest Manager – Třída pro přístup k jednotlivým questům.
-
Dialogue Controller – Třída pro zobrazování konkrétních dialogů.
-