Work on the User Model
Last Friday began with another user study. Caitlin, Kyle and I then met to discuss where to go from there, and the changes we would need to make before the next test on Monday. Afterwards Kyle and I decided to come in on Sunday to work on these instead of staying really late on Friday. So on Sunday I fixed up some of the existing user study worlds, and remade some others. I added easier to grab remixes, so the kids wouldn’t have to use zoom out in order to get the right action (they never use it). I also created a really simple starter world and remix for it, that we will walk the kids through at the beginning of the study, so they don’t get completely stuck on remix. That’s the majority of what I did on Sunday.
On the following Monday we had another user study, and things went pretty well. We came back with a much smaller list of things to change that we usually have. Afterwards Kyle and I had a meeting with Dennis about different things that needed to be fixed, and how to go about doing some of that. Without any immediate changes to the user studies needed on my part, I was free to move onto my personalization project, which hasn’t seen much action as of yet.
The first step was to create the user model, so Monday evening I made a simple class that was the starter for the user model. On Tuesday I world a lot more with the user model and added a few more actions to track. Basically what the user model is so far is a Boolean for every action a user can do (that we can track in the transaction history) and based on what that Boolean is set, it will print out a different message of whether they have seen it before or not. Doesn’t do much o0f anything exciting, but Kyle figured that this was a good first step in constructing it. It has been working so far, which is pretty neat. I do like when things actually work. ;)
Wednesday was the same mostly. Worked more on the user model, trying to add more cases. Unfortunately I had to ask Kyle to work out a bunch of eclipse issues (which I may or may not have caused), and that took a bit of time. I started listing out individual cases for expression statements (dropping in things like move, turn, say, etc.), as I had them all lumped together previously. I thought that after you did a few of these, regardless of whether it’s a say, setOpacity, or a turn, a user will kind fo get the hang of it, and not need the tutorial to tell them exactly how to click and drag a statement. But, I figured we’d still want to track each individual thing in the user model, regardless of how it will affect the tutorials, so I am adding in each case of Expression Statement. I got all the procedures for characters, but still need to add the ones for world and camera.
And today, Thursday, I (surprisingly) did more of the same. I realized today just how vast the amount of trackable data in Looking Glass is, as my list of components to track keeps getting larger the more I play around with Looking Glass to find everything users can do. I also worked today on making the user model neater, and making it flow better. I also worked on an output method, so instead of having to write out each individual statement, output will just spit it out for me, based on cases. So no more ridiculous amount of print statements. So far, I have gotten the user model to track all character procedures, action ordering boxes, the play functions, declaring methods, and changing between states. I have also added more Boolean trackers for other actions, but haven’t actually written in the code to track them yet.
This process is painstakingly slow sometimes, and hard to follow sometimes. The transaction history window isn’t the always the easiest thing to read, but at least I am making progress. I now feel Michael’s pain, when he had to look through all of the ast nodes his first two weeks. Haha. Oh, and Kyle and I had a meeting at the end of the day to address the user study stuff for next week.