Дипломна работа

Онлайн EDN-базиран редактор за създаване на видео игри-лабиринти за обучение | Защитена на: 01/01/1900

Дипломната работа е в областта на софтуерните платформи за генериране и модифициране на видео игри, предназначени за самостоятелно обучение в сферата на образованието, и се разработва в рамките на работен пакет 3 от научно-изследователския проект APOGEE (http://apogee.online/workpackages.html). Платформата ще предлага графичен онлайн редактор за създаване на XML описания на видео игри-лабиринти за обучение, които да бъдат използвани от средата Maze Builder за автоматизирано генериране на видео-лабиринти в средата Unity 3D. Редакторът ще представлява Уеб приложение, където обучаващият задава описание и съдържание на бъдещата игра и специфицира лабиринта. Той ще позволява графично описание на играта от не-ИТ специалисти, включващо създаване и редактиране на граф на лабиринта, характеристики на негови възли и връзки, дидактични елементи във всеки от възлите (като напр. различни мини-игри, учебни дъски, 3Д обекти и др.), учебно съдържание и декоративно визуално и звуково оформление. Потребителският интерфейс на редактора ще се управлява от предварително зададена EDN схема на XML формата на документите, чрез които средата Maze Builder автоматизирано генерира видео-лабиринти в средата Unity 3D. По този начин, EDN-базираният редактор ще позволява създаване на лабиринти от различен тип чрез подмяна на EDN схемата, тоест на метаданните, описващи лабиринта. Редакторът ще позволява съхраняване и последващо редактиране на лабиринта от неговия създател, включващо графа на свързаност и характеристиките на всеки възел, както и на генериране и на валидиране на XML описание на лабиринта, което да се използва от платформата Maze Builder за автоматизирано генериране на видео-игра в средата Unity 3D.

Ползата от такъв редактор би била много голяма, понеже той би представлявал безплатно и интуитивно средство за създаване и генериране на описания на лабиринтови 3D видео игри за целите на обучението. Редакторът ще позволява на хора, които не са ИТ, да проектират лабиринти с различни форми, включително свързани зали помежду си през отключващи се врати. Потребителският интерфейс на редактора е базиран на предварително дефинирана EDN схема и всички компоненти на лабиринтите, връзката помежду им, мини-игри и аудио са описани като мета данни. По този начин юзърът няма нужда да валидира създадения от него XML, защото това става автоматично в приложението. Ще могат да се използват повече от 1 предварително дефинирани EDN схеми, като лабиринтите запазени за отделна схема, ще се редактират само със схемата на създаване.

Платформата може да се използва от училищни и университетски учители за създаване на лабиринти по тема на изучения материал по ангажиращ и мотивиращ начин, а също така предоставя възможност за кратки тестове и пъзели за затвърдяване на знанията. Платформата може да се използва и за професионално обучение, включващо не само текстова и визуална информация, но и практически въпроси и задачи.

Много от най-новите подходи за обучение, основано на игри, разчитат на използването на сериозни игри с лабиринти за образователни цели. Лабиринтите се използват широко в развлекателните игри и могат да бъдат представени с графики и това ги прави много подходящи за интерактивно представяне на съдържание, където играчът избира една множество опции за действие. По този начин лабиринтите са подходящи и за образователни игри [Боян Бончев, Видео игри за обучение по предприемачество].

Липсват обаче безплатни инструменти и платформи за създаване и персонализиране на образователни игри от тип лабиринт, което възпрепятства масовото им използване в образованието.

 

Според целта и задачите на тази магистърска теза, избраните инструменти трябва да отговарят на следните критерии:

  • Разпространение на уеб платформи 
  • Безплатно за некомерсиална употреба
  • Поддръжка/Инсталирана Java
  • Лесно персонализиране и разширение
  • Подкрепяща документация

 

  • Инсталиран Chrome browser

 

Съгласно поставеното задание, ограничаващите/облекчаващи условия за изпълнението са следните:

  1. EDN схема на XML формата на документите за описание на видео игри за средата Maze Builder
  2. Създаване на валидни лабиринти за генерация на видеоигра
  3. Потребителски интерфейс с визуализация на разположението на стаите на лабиринтите, както и опции за връзки между тях(посока на отваряне на врата или арка)
  4. Запазване на текущите лабиринти, като редакцията на всеки лабиринт е възможна само чрез валидация на EDN схемата, с която е създаден
  5. Лесен и удобен начин за вкарване на ресурси(картинки и музика), след което избирането им на подходящите елементи

Изборът на подходящи технологии, платформи и методологии за един проект е едно от най-важните решения, свързани с целия жизнен цикъл на проекта. Успешната реализация и следващата популярност на приложението зависят до голяма степен от това решение. Основните изисквания към инструментите за разработка бяха разгледани в настоящата глава и изборът на специфични технологии, платформи и методологии, които бяха използвани за внедряването и реализирането на настоящата магистърска теза, беше обоснован. За сървърната част, ползвах Clojure. За клиентската част се спрях на ClojureScript, като библиотеки използвах Reagent, който ползва React алгоритъма за обновяване на DOM дървото. Също за архитектура ползвах Re-frame библиотеката, която отлично допълва MVC моделът. Тя е само 700 реда код, но за мащабиране на проекта е просто превъзходно. Понеже използваме React, а там се пишат структури, демек, за да пишем HTML ни трябва библиотека за генерирането му. Тук ползваме Hiccup, което улеснява писането на тези структури, като все още ползваме Clojure структури.

Процесът на изграждане на играта е представен на фиг. 1. Дизайнерите на игри могат да определят играта официално, като напишат XML документ, представящ както учебното, така и игровото съдържание, използвайки шаблон, или могат да използват онлайн редактора за лабиринт за определяне на лабиринтната игра по прост метод. Бончев и Панайотова (2017) установиха, че само една трета от учителите могат да конструират XML документи за своите игри, следователно екипът на проекта разработва онлайн редактор за лабиринт за улесняване на дизайна на лабиринта. Редакторът се управлява от лабиринтната XML схема (т.е. EDN документ), за да отразява бъдещите промени в дефиницията на играта лабиринт. Той генерира XML документ, описващ играта лабиринт, който се изпраща на конструктор на лабиринт заедно с цялото мултимедийно съдържание, необходимо за играта. Конструкторът на лабиринт генерира лабиринтната игра за Unity, като по този начин лабиринтът може да бъде изграден за различни целеви платформи. 

 

Редакторът за свързване на лабиринта позволява на потребителя да създава и актуализира графиката за свързаност на лабиринта. Лабиринтите имат равнинна графика, където графичен възел представлява зала/стая на бъдещия лабиринт, а дъга означава врата между две зали. Всеки възел може да има до четири врати към съседните си възли. За опростяване на процеса на генериране на лабиринт, графиката за свързаност на лабиринта е ограничена до мрежа за свързване, където два възела (лабиринтни зали), свързани с врата, винаги трябва да имат обща стена между тях.

Примерна мрежа за лабиринт за свързване в редактора. Процесът на създаване на лабиринт започва с първоначалното представяне на залата на фигурата като тъмна клетка с координати (0, 0). Всеки новосъздаден възел без съседи е показан с четири ярки стрелки - нагоре (север), надясно (изток), надолу (юг) и наляво (запад). Когато потребителят кликне върху една от следващите клетки в мрежата, се създава съседен възел и всички ярки стрелки, водещи до него от съществуващите зали, се заменят с тъмни. В лабиринта, представен на фиг. 2, три врати свързват стартовата зала (0, 0) с залите (0, 1), (0, -1) и (-1, 0), докато друга врата води от десните си съседи (1, 0) до (0, 0). За възела (3, 2) има само една входяща врата от (2, 2) и няма изходящи врати. В този момент потребителят може да продължи да създава нови зали, достъпни от залата (3, 2), като кликне върху клетките (3, 3), (4, 2) или (3, 1). Ако обаче клетката (4, 2) бъде щракната, ще бъде създаден нов възел (4, 2), без да бъде свързан с някой съседен възел (тъй като няма споделена стена с някоя от съседните клетки).

Дизайнерът на лабиринта може да изтрие лабиринтните възли, след което те изчезват от мрежата за свързване и вратите, водещи до тях, са представени с ярки стрелки. Стартовият възел/зала не може да бъде изтрит. Освен това дизайнерът може да смени врата по един от следните начини:

Една врата може да бъде обърната, т.е.посоката й може да бъде променена на противоположна;

Една врата може да бъде зададена като двупосочна (в генерирания XML такава врата се представя като една входяща и една изходяща врата, а в генерирания лабиринт тя ще бъде показана като празна рамка в стената);

Една врата може да бъде изтрита, след което генерираната зала ще бъде показана като имаща стена без никакви врати.

Ако потребителят изтрие възел, който прекъсва връзката на лабиринта, редактирането и запазването се замразяват, докато потребителят осигури валидна връзка между възлите. Имаме бутон за връщане за редактора за свързване, който запазва само последния записан етап, но след като бъде изтрит и запазен, всички изтрити данни ще бъдат загубени. Редакторът за лабиринт за свързване дава на потребителя наистина основен изглед на целия лабиринт, което премахва много от сложността на XML.

 

 

Scroll to Top