Difference between revisions of "Template:SimSYS REU2015"

From REU@MU
Jump to: navigation, search
Line 1: Line 1:
 +
<font face=Garamond>
 +
 
We are working on SimSYS, software intended to one day be able to generate educational games on any topic, at any level, and with any set of learning objectives.  The program, written in Java, loads information from an XML document (which can be specifications for anything from a senior level software engineering game or a 4th grade level geometry game) and uses it to create games with characters, music, and a good deal of interactivity and customization.  This summer, we are primarily working on SimSYS's preview tool, which allows educators (experts in the game's content but not in the game's code) to preview the game and make any adjustments they need before the game is generated.
 
We are working on SimSYS, software intended to one day be able to generate educational games on any topic, at any level, and with any set of learning objectives.  The program, written in Java, loads information from an XML document (which can be specifications for anything from a senior level software engineering game or a 4th grade level geometry game) and uses it to create games with characters, music, and a good deal of interactivity and customization.  This summer, we are primarily working on SimSYS's preview tool, which allows educators (experts in the game's content but not in the game's code) to preview the game and make any adjustments they need before the game is generated.
  
Line 19: Line 21:
  
 
== Weekly Progress Report ==
 
== Weekly Progress Report ==
*Tasks Completed
+
'''Tasks Completed'''
**Pulled functioning June 2014 preview tool from GitHub
+
*Pulled functioning June 2014 preview tool from GitHub
**Assessed of the current code base
+
*Assessed of the current code base
**Gained familiarity with SimSYS
+
*Gained familiarity with SimSYS
**Found multiple bugs, especially in the sandbox
+
*Found multiple bugs, especially in the sandbox
  
*Tasks for Next Week
+
'''Tasks for Next Week'''
**Refactoring the preview tool to work with the current code base
+
*Refactoring the preview tool to work with the current code base
**Begin thinking about the usability study
+
*Begin thinking about the usability study
  
*Present Obstacles
+
'''Possible Limitations Observed'''
**The current code base is labyrinthine in some parts, and contains little useful documentation
+
*The current code base is labyrinthine in some parts, and contains little useful documentation
 +
*Many of the features are hardcoded and need to be abstracted out
 +
 
 +
'''Possible Bugs Observed'''
 +
*When the current sandbox renders, it creates a second window (just a blue rectangle, really) in front that is only noticeable when the back window is moved.  This separates the game elements from the submit button, even though it appears that the submit button still receives information from the sandbox window.  If a user opens many sandbox windows, the elements and the submit button react with the other windows in seemingly unpredictable ways.
 +
*If a user drags one of the triangles off the screen, they "win" the sandbox challenge.
  
  
 
= Week 2: June 8-12 =
 
= Week 2: June 8-12 =
[[File:NewTool.jpg]]
 
 
== Goals and Milestones ==
 
== Goals and Milestones ==
 
'''Goals'''
 
'''Goals'''
Line 47: Line 53:
 
== Weekly Log ==
 
== Weekly Log ==
  
*'''Monday'''
+
We brought the June 2014 preview tool into the new repository and began creating new packages and classes to keep the code organized.  We chose the Naked Objects model as our design pattern, the reasoning as follows:
**
+
The business logic contained within the object itself, along with the generation of the UI representation. This means that the UI is a direct representation of the object itself.
**
+
This means edits in the Preview tool are actually edits to the underlying data structures
**
+
Adding new elements to the preview tool, without damaging the ways other classes function (a big problem in the original code base), is extremely simple.
  
*'''Tuesday'''
+
== Weekly Progress Report ==
**
+
'''Tasks Completed'''
**
+
*Implemented:
**
+
**Element resizing (on all edges)
 +
**Image elements
 +
**Text elements
 +
**Backdrops
 +
**Music proof of concept
  
*'''Wednesday'''
 
**
 
**
 
**
 
  
*'''Thursday'''
+
'''Tasks for Next Week'''
**
+
**
+
**
+
  
*'''Friday'''
 
**
 
**
 
**
 
  
== Weekly Progress Report ==
+
'''Possible Limitations Observed'''
*Tasks Completed
+
*The naked objects structure means that “right clicking” an object and selecting delete will be difficult as the object itself will try and delete itself.
**
+
**Possible fix: Publisher/Subscriber system
**
+
*We also hoped to be able to generate polygons from the XML to support challenges like the right angle puzzle in the original sandbox.  We encountered problems trying to use the Java Polygon libraries and considered other mathematical ways that the XML could generate shapes (e.g. generating triangles given angles and length measurements).  The team that created the original sandbox hardcoded their triangles, with no means of generating shapes.  Our determination was that, if we keep shapes as a priority, it would be best to have a customizable triangle function where the XML sets the angles and sides and a generic polygon generator that created equilateral shapes of five or more sides.
**
+
*Schema issues
 +
*We only load what information we need, JAXB will only serialize what data we do load.
 +
**Possible fix:  Create skeleton classes to hold the extra data
 +
*Crossbred JDOM and JAXB
 +
*Characters are not given a location in the current schema, they are hard coded in the game engine
 +
*Props do not exist in the schema
 +
 
 +
'''Bugs Observed'''
 +
Button elements will ignore element rendering order, jumping in front of other elements at times.
 +
The “Rounded Text Box” border leaves a trail when being moved, and the edges of the corners are grey instead of transparent
  
*Tasks for Next Week
 
**
 
**
 
**
 
  
*Present Obstacles
 
**
 
  
  

Revision as of 16:09, 12 June 2015

We are working on SimSYS, software intended to one day be able to generate educational games on any topic, at any level, and with any set of learning objectives. The program, written in Java, loads information from an XML document (which can be specifications for anything from a senior level software engineering game or a 4th grade level geometry game) and uses it to create games with characters, music, and a good deal of interactivity and customization. This summer, we are primarily working on SimSYS's preview tool, which allows educators (experts in the game's content but not in the game's code) to preview the game and make any adjustments they need before the game is generated.


Week 1: June 1-5

Goals and Milestones

Goals

  • Become familiar with SimSYS
  • Plan a refactor of the preview tool

Milestones

  • Read through relevant background material
  • Examined the code
  • Took ownership of the GitHub account
  • Exchanged communication information necessary with all members of the team

Weekly Log

(This was an abbreviated work week due to program orientation, etc.) Our main task was evaluating the preview tool and attempting to refactor it to be compatible with the current code base, which had been updated. The preview tool, which is meant to give the educators a look at the game (generated from the XML) before it goes through the game engine. The June 2015 preview tool was in a state of disrepair and too disorganized to be able to build on it in the setup it had at the time. We decided to go onto GitHub and pull the version of the preview tool from June 2014, the second commit that was put into Git. This older version of the preview tool had considerably more functionality (the ability to resize and move elements, edit text, and place elements) and we felt that it provided a better starting point for refactoring the tool.

Weekly Progress Report

Tasks Completed

  • Pulled functioning June 2014 preview tool from GitHub
  • Assessed of the current code base
  • Gained familiarity with SimSYS
  • Found multiple bugs, especially in the sandbox

Tasks for Next Week

  • Refactoring the preview tool to work with the current code base
  • Begin thinking about the usability study

Possible Limitations Observed

  • The current code base is labyrinthine in some parts, and contains little useful documentation
  • Many of the features are hardcoded and need to be abstracted out

Possible Bugs Observed

  • When the current sandbox renders, it creates a second window (just a blue rectangle, really) in front that is only noticeable when the back window is moved. This separates the game elements from the submit button, even though it appears that the submit button still receives information from the sandbox window. If a user opens many sandbox windows, the elements and the submit button react with the other windows in seemingly unpredictable ways.
  • If a user drags one of the triangles off the screen, they "win" the sandbox challenge.


Week 2: June 8-12

Goals and Milestones

Goals

  • Become familiar with SimSYS
  • Plan a refactor of the preview tool

Milestones

  • Read through relevant background material
  • Examined the code
  • Took ownership of the GitHub account
  • Exchanged communication information necessary with all members of the team

Weekly Log

We brought the June 2014 preview tool into the new repository and began creating new packages and classes to keep the code organized. We chose the Naked Objects model as our design pattern, the reasoning as follows: The business logic contained within the object itself, along with the generation of the UI representation. This means that the UI is a direct representation of the object itself. This means edits in the Preview tool are actually edits to the underlying data structures Adding new elements to the preview tool, without damaging the ways other classes function (a big problem in the original code base), is extremely simple.

Weekly Progress Report

Tasks Completed

  • Implemented:
    • Element resizing (on all edges)
    • Image elements
    • Text elements
    • Backdrops
    • Music proof of concept


Tasks for Next Week


Possible Limitations Observed

  • The naked objects structure means that “right clicking” an object and selecting delete will be difficult as the object itself will try and delete itself.
    • Possible fix: Publisher/Subscriber system
  • We also hoped to be able to generate polygons from the XML to support challenges like the right angle puzzle in the original sandbox. We encountered problems trying to use the Java Polygon libraries and considered other mathematical ways that the XML could generate shapes (e.g. generating triangles given angles and length measurements). The team that created the original sandbox hardcoded their triangles, with no means of generating shapes. Our determination was that, if we keep shapes as a priority, it would be best to have a customizable triangle function where the XML sets the angles and sides and a generic polygon generator that created equilateral shapes of five or more sides.
  • Schema issues
  • We only load what information we need, JAXB will only serialize what data we do load.
    • Possible fix: Create skeleton classes to hold the extra data
  • Crossbred JDOM and JAXB
  • Characters are not given a location in the current schema, they are hard coded in the game engine
  • Props do not exist in the schema

Bugs Observed Button elements will ignore element rendering order, jumping in front of other elements at times. The “Rounded Text Box” border leaves a trail when being moved, and the edges of the corners are grey instead of transparent



Week 3: June 15-19

Goals and Milestones

Goals

  • Become familiar with SimSYS
  • Plan a refactor of the preview tool

Milestones

  • Read through relevant background material
  • Examined the code
  • Took ownership of the GitHub account
  • Exchanged communication information necessary with all members of the team

Weekly Log

  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday

Weekly Progress Report

  • Tasks Completed
  • Tasks for Next Week
  • Present Obstacles