Template:SimSYS REU2015

From REU@MU
Revision as of 16:50, 12 June 2015 by William.Stolz (Talk | contribs)

Jump to: navigation, search

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 to 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

Git commits: 55061c1 - 6484640

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

Git commits: 5bf03bf - 757572

Goals and Milestones

Goals

  • Perform a thorough refactor of the preview tool so that it supports the same elements and functionality it did a year ago
  • Take our improved organization of the preview tool and set it up so that it loads information from the schema
    • This would first include the Act, Scene, Screen structure
    • ...and then we would move on to loading game elements.

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

  • Attempt to load the sandbox challenge in the schema
  • Examine how the characters were previously loaded from the schema
  • Begin background research for the usability ("user experience") study
  • Update the mentors on our progress


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
  • Characters do not include positions 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

Git commits: [] - []

Goals and Milestones

Goals

  • Attempt to load the sandbox challenge in the schema
  • Examine how the characters were previously loaded from the schema
  • Begin background research for the usability ("user experience") study
  • Update the mentors on our progress

Milestones

Weekly Log

  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday

Weekly Progress Report

Tasks Completed

Tasks for Next Week

Possible Limitations Observed

Bugs Observed