User:William.Stolz

From REU@MU
Jump to: navigation, search

My name is William Stolz and I am excited to be a part of the Marquette's Computation Across Disciplines REU this summer. 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 - 8b2680e

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: e328473 - e37059f

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
  • Work on deleting when we go from the preview tool to the main code
  • Add sound effects to the buttons
  • Implement hints
  • Implement saving
  • Implement "our" idea of what a Prop is
  • Be able to add elements
  • Be able to change the background
  • Be able to change the music
  • Be able to see learning objectives
  • Update the mentors on our progress
  • ===> Figure out how to let the user revise the content

Milestones

  • Examined how the characters were previously loaded from the schema
  • Began background research for the usability ("user experience") study
  • Implemented hints
  • Implemented saving
  • Worked on a database for the repository

Weekly Log

Joe S. implemented hints. The team brainstormed to consider the program's overall design and how best saving might be implemented. William pulled research articles as background for the usability study and got familiar with RefWorks. Joe S. built the game manager to oversee saving within the preview tool. This will use a change log to record when the user performs certain actions (for example, when the user resizes a button). He programmed the overall structure so that the saving and "undo" functions can be added, tested, and debugged at a later time. The team members updated their mentors on their progress. Finally, Joe S. and William welcomed a new member to the SimSYS family, Joe A.

Joe S. and Joe A. got to work fixing up the preview tool and implemented undo and redo functions as well as saving. This was followed by some debugging (since too many undos would make an object disappear) and modifications to the change log so that if a user performed an undo and then did an undo again, the second undo did not mess up the first undo. William pulled more articles related to the research study through Marquette's databases and through inter-library loan.

Joe S. and Joe. A made considerable progress on the preview tool, and the team decided that a good next step would be to look at structuring the repository so that it can be used for generating and previewing games. The projects's mentors disagreed, and asked us to pursue a file structure. William got the go-ahead to start planning out scenarios for the user study and looking in to how that could be implemented. At our weekly meeting Joe A. and Lakis Wu introduced themselves to the whole team.

Weekly Progress Report

Tasks for Next Week

  • Start on file structure for XMLs and learning objectives.
  • Continue imporving the preview tool so that is is where we want it to be for the study
  • Continue on the design for the usability study


Possible Limitations Observed

  • Character positions are still a schema issue, and so displaying them in the preview tool will require more work


Week 4: June 22-26

Git commits: a65e7a6 - []

Goals and Milestones

Goals

  • Continue to update the preview tool to get it ready for the study
  • Implement the ability to swap out questions
  • Come up with a design for the usability study
  • Plan the content of the XML we will have to make for the study (4th grade math is our content)


Milestones

  • Background and props fully implemented
  • Characters implemented, and undo now applies to inserting and deleting an element

Weekly Log

  • Monday
    • Joe S. implemented the ability to place props from the selection window
    • Joe S. and Joe A. implemented the ability to switch out backgrounds and play music and sound.
    • William reviewed VLC materials to make sure the user study closely aligns with the claims of the paper.
    • Joe A. did more work refining the undo/redo function
    • William started a sketch for the user study
    • The trio talked with Dr. Brylow over Google+ and discussed moving forward.
    • Joe S. edited the code that handles the change log
    • Joe S. and Joe A. chased down a bug in the undo/redo function that had been plaguing them
    • The trio sent an email to their mentors updating them on their progress
  • Tuesday
    • Joe S. and Joe A. implemented characters loading from the schema
    • Joe S. and Joe A. fixed the undo function, enabled adding sound effects, and placed constraints on moving elements off the screen
    • William did more planning on the user study, particularly how to ensure the educators are focused on the learning objectives.
    • Joe S. and Joe A. fixed bugs in the element re-size function
    • William pulled WDPI test questions and Common Core learning objectives
  • Wednesday
    • Joe S. ad Joe A. got the games that were edited in the preview tool to load in the game engine,though sizing was an issue and move-able elements would change their positions slightly.
    • William continued to plan out the user study, with attention to how to give the novice designers enough background on the very basic functions of the preview tool (re-sizing, etc) to ask them to perform higher level tasks (adjusting a question to better suit their own educational context) so we can get a very good gauge of usability.
    • The trio met with the rest of the SimSYS team to talk about progress and next steps.
  • Thursday
  • Friday

Weekly Progress Report

Tasks Completed

Tasks for Next Week

Possible Limitations Observed

Bugs Observed

Week 5: June 29 - July 3

Git commits: [] - []

Goals and Milestones

Goals

Milestones


Weekly Log

  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday

Weekly Progress Report

Tasks Completed

Tasks for Next Week

Possible Limitations Observed

Bugs Observed