Note: You are currently viewing documentation for Moodle 2.8. Up-to-date documentation for the latest stable version of Moodle may be available here: Game Logic in Moodle Advanced editor draft1.

Game Logic in Moodle Advanced editor draft1

From MoodleDocs
Revision as of 23:40, 27 February 2015 by ryan sanders (talk | contribs)

advanced editor

Advanced Editor What is its Purpose? What does it do?

The primary use of "advanced editor" is to create rules. These rules have an "Event, Condition, and an Action"

    • Events

For example, if the learner submits a response to a quiz in moodle, that "click of submit" is an event.

    • Conditions

For example, if john the teacher sets the condition that one question in a quiz, in moodle, needs to be answered before the learner can move on to the next question then that is a condition.

Another way of putting it is in the following vignette:

Albert signed into moodle, (an event), current class time is 11:11am, class started at 11:01am, (a condition), is Albert late for class? ((11:11am - 11:01am = 10 minutes which is greater than 0 minutes)) Albert is late for class.

    • Actions

The condition in moodle: Albert is late to class = true so what to do now? An action in moodle could/would entail send email to Albert and the teacher, denoting he was late, mark sign in sheet as being late.

Advanced Editor Possibilities

An Advance Editor in terms of moodle enables more advanced completion / availability / restrict access options.

For example:

a) able to create email and send them out at different times

b) provide different enrolment options / start date, and having activities / resource respond when students enrol

c) teacher can pull data from one subject domain/ activity/course and providing that has been passed-conditions met, set up for learner progress/movement on to next subject/activity/course

d) teacher can find questions the learner missed in one quiz, and put them into a later activity / resource for the learner to review

e) Teachers can create requirements that use " if this condition is true, then do this, else if false do something else by mouse clicking process

f) Teachers have agency in that they can insert sentences in to the advanced edit box to tell moodle what to do. For example, this might include setting up email correspondence to all stakeholders (primary-learner and secondary-staff/parents/heads of department etc) using a very simple type-submit process where different messages can be created.

Other examples in relation to the affordances of the advanced editor include:

  1. Teachers can *insert student name* and follow the learner's attainment trajectory across the learner's courses they are enrolled with, and as before tracked attainment can be communicated across stakeholders (primary and secondary)
  2. Teachers can adjust what the learner sees in a course, informed by learner need that makes up their PLE (ITS-intelligent tutoring system in moodle)
  3. Teachers can set-up a "wizard" that supports the learner through pre-entry activities; supporting the requirements/standards that need to be met before progressing on to courses
  4. Teachers can create pre-defined groups of users, possibly based on facebook friends' list and different if's and but's of how the groups are formed.

An example of the type of editor described above: warcraft world editor

Here are examples of video links revealing a young child creating a TD (tower defense) map.

    1. PART 1 https://www.youtube.com/watch?v=yu3o-yq-jL4
    2. PART 2 https://www.youtube.com/watch?v=wg-CV4x_seU

an attempt to figure out the interface and how it might look.

PICTURE 1 CLICK HERE to view/edit flow chart directly. TIP: it takes around 4 to 5 clicks to see image in full size.

  • this is more warcaft 3 advance editor (NOT WOW world of warcarft)
  • this might also be older age of empires, like game editor

advanceditor1.jpg

PICTURE 2 CLICK HERE to view/edit flow chart directly.

  • this is just an attempt to use a vertical menu maybe in a way to do things.

advanceditor2.jpg

PICTURE 3 = goto http://scratch.mit.edu/ and then at top click "create" 27/2/2015

  • scratch.mit.edu = for creating games. but it does have going for it "online" game editor plus a downloadable editor.
  • my concern is disabilities. being a "flash application" and in that it is all graphics. perhaps nothing there for a screen reader for say a blind person to use
  • my bigger issue. is the "different triggers" the free floating randomly around. no real structure.
  • the static menu table, and then options below i did like.

advanceeditor3scratch.jpg

PICTURE 4 = https://developers.google.com/blockly/

  • much like scratch.mit.edu still concerns with disability, and what you are working on just kinda free floats around.
  • menu layout fast, but hides stuff.

advanceeditor4blocky.jpg

PICTURE 5 = short video of blender game engine

    • i did not see a folder/file stuctuor, to help group (events, conditions, actions) together to help organize stuff.
    • connection points might be good. issue is with "disability" and drag and drop connections.

advanceeditor5blender.jpg

...Technological notes for coders... -Some of the items above will require additional code creation in other plugins, and/or specialized activity / resource. for things to happen. advanced editor and more so the rules that it creates with "events, conditions, actions" is only part of the battle.

quick overview
  1. picture 1 above = (Ryan likes)
    • the goal is for teachers to adjust and select stuff (stuff that happens behind the scenes) and not meant to be a "front end" / UI that students for most part will be seeing. advanced editor = LMS (learning management system back end for teachers)
    • see custom maps / games for various games, triggers,events, conditions, actions, can get rather long even in simple doings. and needing a way to "folder/file" like doing to split things up for quick finding.
  2. see picture 2 above = NO
    • to complicated. (scroll of death)
  3. picture 3 above = maybe menus but not overall doing
    • i could see taking events / conditions / actions from moodle. and extending these abilities into Scratch.
  4. picture 4 above = maybe menus or rather code, but not overall doing.
    • i could see taking events / conditions / actions from moodle. and extending these abilities into Blocky
  5. picture 5 above = NO
    • i could see "picture 1" being backbone in moodle. and then extending into blender game engine interface via events / conditions / actions

again goal is for an API / framework without all the graphical front ends (gaming front ends) at moodle core. and let these other products talk to one another through moodle core (actions, conditions, actions). moodle = LMS (learning management system) emphasis on MANAGEMENT

Primary requirements

  1. zero typing of code
  2. no special characters !@#$%^&*())_+|}{":?><,./;'[]\
  3. for most part everything is "click" through drop down menus, enter info into a "text box", or enter info into a "textarea"
  4. ability to create 'sentences' kinda of like behat. but with variables within the name.
  5. certain things adhere to moodles "roles" and the permissions of a given role. A person might be able to select and input stuff, but will need admin approval for certain things before rule becomes active / ON state.

secondary requirements.

  1. if person needs more advanced doings they can make a plugin for moodle vs trying to go about it through advanced editor -> rules. ((may be requirement, for security issues))
  2. some sort of easy copy/paste along with backup.restore options of rules.

programming / coding information

rule engines
  1. see below links. initial first impressions these 3 rank best.
    1. https://github.com/hoaproject/Ruler = not enough meat to it.
    2. https://github.com/bobthecow/ruler = has the basics there. just no GUI (graphical user interface) via html,css,javascript.
      • EDIT: further research = bobthecow = most promising in regards to moodle, it seems the most complete.
    3. https://www.drupal.org/project/rules = to much extra blah in it.
      • EDIT: to much extra BLAH, and more likely major re-write for most of moodle. (dealing with cache, re-writing for better execution time, etc..) it is by far most advanced and mature code. but heavy re-write is my initial response. making it harder to convert over to moodle.
  2. for additional listings see....Game_Logic_in_Moodle_Overview_Misc_Links and scroll down to "advanced editor business rule engine events conditions actions"

primary requirements!

  1. creating hard coded sentences = requirement. so as to hide actual code and use of []{}();: and other general programming use of symbols, from general user.
all plugins need additional coding and/or files
  1. each plugin manager and or plugin for given plugin type. would be responsible in supplying and extending its variables and information to "advanced editor" through its rules -> (events conditions actions). along with obtaining information from a database table if one is required for given plugin.
  2. this may intail... denoting string type, int, float, array, database sql calls, and like.
  3. i am going to assume having another file within each plugin folder, may make things a bit easier to distinguish between "advanced editor" rule information. vs other interaction plugin has with moodle.
  4. use of "class someplugin extends advance_editor_rules { most likely be used.