-
Notifications
You must be signed in to change notification settings - Fork 0
General Analysis
V tomto dokumentu představíme náš plugin a jaké funkcionality pro něj plánujeme.
Většina tohoto 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.
Prvním požadavkem je důraz na rozšiřitelnost – Počítáme s tím, že plugin budou vývojáři používat ke tvorbě vlastních her, které mohou mít nějaké specifické potřeby. Proto by pro vývojáře 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.
Druhým požadavkem je 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 měly být pro ně 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, co budou s naším pluginem pracovat, budou už mít aspoň nějaké zkušenosti s Unreal Engine. Z toho vyplývá, že čím víc budou naše editory dodržovat konvence editoru, tím jednodušeji se bude vývojář v našem editoru orientovat.
Plugin bude třeba nainstalovat stejně jako jakékoliv jiné pluginy do Unreal Engine. Neboť náš plugin pro používání vyžaduje různé věci, 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ý všechny tyto věci zajistí
-
Do toolbaru přidáme tlačítko Generate Adventure Plugin Files, které po kliknutí vygeneruje všechny potřebné soubory.
V nastavení projektu půjde nastavit některé věci globálně pro celou adventuru:
-
Main Quest – Který z questu je ten hlavní.
-
Item types – Seznam všech typů předmětů, které naše hra podporuje.
-
Item categories – Seznam kategorií, které lze přidat předmětům (pro kombinace)
-
Default item base object – Typ třídy, od které budou defaultně dědit všechny nové předměty.
-
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 nabízet 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, kterou nazveme 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ů.
-