Cieľom projektu je vytvorenie edukačnej hry určenej pre VR zariadenia, ktorá zaujímavým, pútavým a zábavným spôsobom oboznámi používateľa s vybraným enviromentálnym problémom a zároveň mu umožní zažiť jeho dopad “na vlastnej koži”. Cieľom vytvorenej hry bude v tomto prípade naučiť a nabádať mladšie generácie k správaniu, ktorým by minimalizovali dopad vybraného problému na životné prostredie (napr. problém hromadenia odpadu a nabádanie na jeho separáciu).
Nejeden študent prišiel na túto fakultu s predstavou, že bude vytvárať počítačové hry. Virtuálny svet je miesto bez zákonitostí reálneho sveta a tento potenciál sa dá využiť aj v iných odvetviach, ako napr. vo vzdelávaní. V tomto smere vidíme veľký potenciál najmä čo sa týka vzdelávania mladších, tzv. digitálnych generácii. Virtuálna realita v tomto prípade predstavuje ideálne médium prostredníctvom ktorého možno efektívnym spôsobom vysvetliť dôležité problémy a javy z reálneho sveta a taktiež ovplyvniť a formovať ich postoj k nim.
Zadaním je vytvoriť edukačnú hru, ktorá využíva spomínané výhody virtuálnej reality za účelom názorného vysvetlenia vybraného enviromentálneho problému. Dôraz sa kladie na sprostredkovanie takej skúsenosti, ktorú nie je možné v reálnom svete zažiť, či už kvôli veľkosti, času a podobne.
Pedagogické vedenie
Documentation Manager
Development Manager
Asset Manager
Level Design Manager
Scrum Master, Release Manager
Testing Manager
Webmaster
Na začiatku sa členovia tímu predstavili a zoznámili. Prediskutovali sme znalosti a skúsenosti jednotlivých členov presnejšie pracovné skúsenosti/prax a témy bakalárskych prác. Určili sme, ktoré oblasti IT sú nám blízke a zadaným témam sme určili priority. Prioritne sme si vybrali témy z oblasti počítačovej grafiky a VR. Dohodli sme sa na napísaní motivačných dokumentov pre prioritné témy tak, aby sme zvýšili šance na pridelenie týchto tém.
Tím sa prvýkrát stretol s vedúcim projektu VREducation Ing. Jurajom Vincúrom. Vedúci bližšie špecifikoval ciele projektu, opísal technológie s ktorými budeme pracovať a predstavil praktické ukážky z oblasti počítačových hier pre VR. Na koniec na odľachčenie si tím vyskúšal na vlastnej koži hry pre VR okuliare Vive.
V 3D labe sme sa poprvýkrát stretli sami ako tím a diskutovali sme o projekte. Padli prvé nápady o čom by mala hra byť, čo by malo byť jej cieľom. Veľká diskusia vznikla práve v bode kedy sme nevedeli nájsť kompromis medzi zábavou a edukačným charakterom diskutovaných nápadov.
Prebehlo prvé stretnutie s partnerom projektu Moving Medical Media. Naše návrhy predniesol Scrum master v podobe prezentácie a s predstaviteľom Moving Medical Media sme sa dohodli na riešení. Zadaním nášho tímu je vytvorenie hry pre virtuálnu realitu, ktorá by mala byť čo najviac realistická a pôjde v nej o separáciu odpadu.
Pomaly si zvykamé na pracovné nasadenie. Každý pracuje na svojej úlohe, nastavujeme TFS (Team Foundation Server) pre scrum, hľadáme assety do našej hry, pracujeme na webovej stránke, snažíme sa prísť na to ktoré verzie softvérových nástrojov, ktoré budeme používať sú spolu kompatibilné (Unity+VRTK+SteamVR).
Členovia tímu pokračovali v práci na pridelených úlohách. Primárnym výstupom stretnutia bol rozsiahly zoznam „assetov“, ktoré boli vyhodnotené ako vhodné pre použitie v rámci projektu.
Vedúcemu boli prezentované výsledky práce tímu za ostatný týždeň – predovšetkým nájdené „assety“ (s uvedením výhod a nevýhod) a webová stránka tímu. Na základe pripomienok, ako aj nových nápadov bol následne aktuálny sprint backlog rozšírený o nové úlohy, ako aj pomocnú „story“, spočívajúcu vo vytvorení prvého prototypu.
Prebehlo oboznámenie sa neskúsených členov tímu s vývojom v prostredí Unity, ktoré je základom pre tvorbu nami vyvíjanej edukačnej hry.
Predmetom štvrtého stretnutia s vedúcim projektu bolo formálne ukončenie 4. šprintu nášho tímu. Pod dohľadom vedúcehos sme vykonali retrospektívu šprintu.
Dekompozícia jednotlivých príbehov na úlohy s následnou aktualizáciou product backlogu a výberom príbehov pre nadchádzajúci šprint. Formálna inicializácia druhého šprintu tímu a začiatok práce na pridelených úlohách.
Vypracovali sme prihlášku na TP Cup. Zvyšok stretnutia sa niesol v duchu paralelnej práce na pridelených úlohách.
V rámci 5. stretnutia s vedúcim projektu sme najskôr uskutočnili „stand-up“. Dohodli sme sa, že vzhľadom na neveľmi optimistickú krivku „odbúravania“ úloh (burndown chart) budeme počas nadchádzajúceho týždňa pokračovať v práci na príbehoch aktuálneho šprintu za účelom ich splnenia v čo najvyššej miere kvality.
Oboznámili sme sa so štruktúrou separačných liniek, viedli sme diskusiu o konvenciách kódu a manuálne testovali aktálnu verziu hry a ďalej sme pracovali na pridelených úlohách.
Formálne sme ukončili 2. šprint poukazujúc na jeho plusy a mínusy. S vedúcim projektu sme určili nové user stories, ktoré budú umiestnené do backlogu. V závere stretnutia sme sa venovali problematike testovania. Automatické testovanie vzhľadom na dynamicky sa meniaci koncept hry je realizovateľné iba vo veľmi obmedzenej miere a preto sme sa rozhodli pokračovať v manuálnom integračnom testovaní.
V rámci stretnutia sme diskutovali o problematike dokumentovania vytváranej hry a odštartovali tretí šprint.
Počas jubilejného desiateho stretnutia sme sa venovali predovšetkým práci na dohotnutých úlohách.
Na tomto stretnutí sme vykonali stand-up, ktorý ukázal, že sme počas tohto šprintu pokročili malými krokmi (z dôvodu vysokého akademického vyťaženia inými predmetmi) a musíme nájsť zlepšenie. Skúmali sme možnosti použitia nástroju Gaia pre generovanie prírody.
V rámci 11. tímového stretnutia sme si najskôr vytvorili interný plán pre účely vypracovania projektovej dokumentácie, ktorá má byť odovzdaná v 1. kontrolnom bode predmetu TP1. Zvyšná časť stretnutia bola venovaná samostatnej práci na pridelených úlohách.
Vykonali sme testovanie aktuálnej verzie hry na HTC Vive. Počas testovanie bola odhalená jedna chyba, ktorá bola opravená priamo na stretnutí. Urobili sme retrospektívu tretieho šprintu kde sa vypichli ako pozitíva tak aj negatíva. V záverečnej časti stretnutia sme odprezentovali koncept našej hry spolu s jej „live“ ukážkou skupinke študentov stredných škôl (v rámci fakultou organizovanej akcie), od ktorých sme získali cennú spätnú väzbu z pohľadu samotného používateľa.
Tím najskôr prediskutoval aktuálny stav projektu, poukazujúc na funkcionalitu, ktorú by bolo vhodné implementovať prioritne, ako aj viaceré „bugy“, ktoré boli členmi tímu v hre objavené. Následne boli jednotlivé user stories (resp. ich úlohy) prerozdelené medzi jednotlivých členov tímu a tím formálne odštartoval 4. šprint samostatnou prácou na pridelených úlohách.
V rámci 9. stretnutia s vedúcim projektu sme najskôr vykonali tradičný „stand-up“, pričom na základe jeho výsledkov môžeme konštatovať, že 4. šprint napreduje presne podľa stanovených očakávaní. V druhej časti stretnutia sme s vedúcim projektu prediskutovali jeho ďalšie smerovanie, čoho výsledkom bolo definovanie a následná prioritizácia nových user stories. V závere stretnutia sme odprezentovali aktuálny prototyp hry, ako aj celkovú víziu tímu spolupracujúcej firme. S potešením môžeme konštatovať, že s aktuálnou verziou boli zástupcovia firmy spokojní.
V rámci fakultou organizovaného mentoringu náš tím konzultoval vybrané aspekty projektu, ako aj agilnej metodológie vývoja s dvoma mentormi z praxe – p. Radovanom Debnárom (biznis a marketing) a p. Pavlom Sovišom (CTO manažér).
Prebehla diskusia o výsledkoch konzultácie so spolupracujúcou firmou. Zistili sme, že musíme minimalizovať pohyb hráča v priestore a tým zlepšiť nedostatočnú ergonómiu aktuálneho spôsobu triedenia odpadu. Z toho dôvodu sme sa rozhodli otestovať celkovo 5 rôznych konceptov usporiadania odpadkových košov a dopravníkového pásu v priestore technikou prototypovania na zahodenie (priamo v Unity), pričom sme sa napokon rozhodli umiestniť kolmo na primárny dopravník 3 sekundárne pásy, odvážajúce konkrétny druh odpadu. V závere stretnutia sme z dôvodu objavenia ďalšieho vážneho problému s automatizovaným zlučovaním vetiev (náhodné zmeny v objektoch scény a pod.) vytvorili krízovú metodiku pre manuálnu integráciu zmien v scéne (uvádzame ju na nasledovnej strane dokumentu, ako aj na webovom sídle tímu)
Počas 10 stretnutia s vedúcim projektu sme vykonali retrospektívu pre 4. šprint a spoločnými silami sa nám podarilo definitívne vyriešiť problém s automatickým zlučovaním pracovných vetiev úspešnou konfiguráciou a nasadením nástroja YAML Merge. Ďalej sme s vedúcim projektu diskutovali o jeho ďalšom smerovaní, predovšetkým v kontexte využitia technológie Leap Motion ako alternatívy k ovládačom platformy SteamVR, pričom sme zároveň odštartovali piaty šprint.
Na začiatku stretnutia sme najskôr vykonali spoločný code review pre doposiaľ neuzavreté pull requesty, prislúchajúce user stories, ktoré členovia tímu riešili v uplynulých 2 dňoch. V druhej časti stretnutia sme diskutovali o časových možnostiach členov tímu zúčastniť sa prezentácie o riadení tímového projektu. Zvyšok stretnutia sa niesol v duchu samostatnej práce na pridelených úlohách.
Na začiatku stretnutia sme vykonali code review pre pull request: implementácia mechanizmu pre vysypávanie vytriedeného odpadu. Počas neho boli objavené viaceré nedostatky, ktoré boli následne vyriešené a pull request bol schválený. Počas ďalšej časti stretnutia sme backlog aktuálneho šprintu doplnili o niekoľko stories, týkajúcich sa prevažne dokumentácie a opravy viacerých nekritických „bugov“.
Na začiatku posledného stretnutia s vedúcim projektu sme finišovali posledné zmeny v hre, dokončovali posledné bugy a pripravovali sa na predstavenie hry. Následne sme finálnu verziu hry (v rámci zimnosemestrálnej etapy projektu) odprezentovali zástupcom spolupracujúcej firmy, pričom s potešením môžeme konštatovať, že s aktuálnou podobou projektu boli nadmieru spokojní.
Počas záverečného stretnutia tímu vrámci zimného semestra sme najskôr vykonali retrospektívu 5. šprintu a následne sme synergickou prácou finalizovali projektovú dokumentáciu v súlade s požiadavkami, stanovenými v sylaboch predmetu.
V rámci prvého stretnutia v letnom semestri sme vzájomne prediskutovali ďalšie smerovanie projektu z pohľadu jeho dokončenia v súlade s požiadavkami zákazníka. Výstupom diskusie bolo doplnenie product backlogu o množstvo nových user stories, ktoré boli zároveň prioritizované. V závere sme formálne inicializovali 1. šprint.
V rámci prvého tímového stretnutia v letnom semestri členovia tímu individuálne pracovali na príbehoch šprintu.
Počas druhého stretnutia s vedúcim projektu sme riešili ako správne finalizovať user story v zmysle vytvárania testov, ktoré preveria jej funkcionalitu. Pre tieto účely bola tiež upravená štruktúra tabule šprintu v rámci TFS. V druhej fáze stretnutia sme s vedúcim projektu diskutovali o niektorých špecifikách realizácie projektu (predovšetkým Leap Motion či vybrané aspekty prostredia hry).
V rámci druhého tímového stretnutia sme najskôr diskutovali o vybraných aspektoch budúceho level dizajnu hry s cieľom, aby bol výsledný zážitok čo najrealistickejší a hra tak mala skutočný vzdelávací rozmer. Ďalej sa stretnutie nieslo v duchu práce na pridelených úlohách.
S vedúcim projektu sme najskôr integrovali všetku doposiaľ implementovanú funkcionalitu s pracovnou vetvou (develop), pričom bolo taktiež potrebné vyriešiť viacero „merge konfliktov“. Počas testovania boli v scéne odhalené viaceré menšie nedostatky, ktoré však neboli v rozpore s akceptačnými kritériami príslušných user stories, preto budú riešené ako „bežné“ chyby až v nadchádzajúcom šprinte.
Počas druhého tímového stretnutia sme najskôr diskutovali o vybraných návrhových, ako aj implementačných aspektoch projektu. V rámci diskusie sme taktiež vybrali podmnožinu user stories z backlogu produktu pre realizáciu v druhom šprinte LS, ktorý sme zároveň formálne inicializovali.
V rámci stretnutia s vedúcim projektu nás najskôr vedúci projektu oboznámil so spätnou väzbou, ktorú zákazník k produktu poskytol pri jeho testovaní počas našej neprítomnosti. Vo všeobecnosti možno konštatovať, že zákazník je so súčasným stavom i smerovaním produktu spokojný. Počas druhej časti stretnutia sme dodatočne vykonali retrospektívu prvého šprintu tohto semestra.
Počas štvrtého stretnutia tímu sme najskôr vykonali revízie kódu viacerých dokončených používateľských scenárov. Následne sme viedli diskusiu o ďalšom smerovaní projektu, zamerajúc sa na konkrétne črty produktu s ohľadom na ich prioritu pre zákazníka.
Počas posledných stretnutí sme sa venovali prevažne oprave bugov, modelovaním vonkajšieho aj vnútorného prostredia, vylepšovaním UI hry tak aby hráč mal čo najlepší herný zážitok. Pokúšali sme sa implementovať Leap Motion čo znamená, že hráč by bol schopný ovládať hru aj bez ovládačov - vlastnými rukami. Navrhli sme vzdelávaciu miestnosť, ktorá hráčovi podáva spätnú väzbu o tom ako sa mu počas hrania darilo. Na druhej strane sme museli riešit mnoho integračných konfliktov spôsobených povahou Unity 3D, v ktorom sme hru vyvíjali. Každý týždeň vznikali nové a nové konflikty, strácali sa referencie na skripty a objekty v scéne a riešenie zaberalo hromadu času. Nakoniec sa nám ale podarilo zmergeovať prácu všetkých do fungujúceho celku. Ku koncu by som ešte spomenul, že hra je konfigurovateľná cez vytvorené menu hry a skladá sa z levelov podľa obtiažnosti.
Superstretnutia predstavujú stretnutia nad rámec rozvrhu. Chceli sme sa stretnúť a dokončiť všetko potrebné aby sme splnili zadané kritériá a preto sme strávili na týchto stretnutiach viac času ako obvykle. Ako tím sme sa hecli a stretli sa ešte niekoľko krát, dokončili sme posledné chybičky krásy, vytvorili finálny build hry tak aby sa dal spustiť ako .exe súbor. Odmenou bolo, že produkt i potrebná dokumentácia boli úspešne a včas odovzdané.