My major projects center on developing new data science approaches to educational games, with a particular focus on reconciling designers' goals with the players' reality. Much of this work has been done as part of the ENGAGE project at CMU and works to analyze the games that were developed under that program.
Replay Analysis is a method of understanding players by using in-engine replays of their play logs. This allows you to calculate a number of different play metrics without having to commit to one at recording time. I have applied this method extensively to the game RumbleBlocks and have developed a toolkit to do Replay Analysis in the Unity Game Engine.
Conceptual Feature Extraction
The goal of this project was to develop a way of exploring what kinds of solutions players create to in-game puzzles without haivng a strong understanding of how many there might be in advance. We developed a grammar induction technique that lets us look at game states in a number of different ways. Specifically we used this technique to see how common designer envisioned solutions were among a body of student solutions.
Alignment is the concept that a game's mechanics give feedback in way that is likely to foster learning. If a player in playing in a way that learning goals would consider to be principled then they should recieve positive feedback whereas if they are violating principles they should recieve some negative feedback to guide them back. In this project we looked at a few ways to explore this concept with student data and our prior developed methods.
This is a project I am working on with Chris MacLellan. The core of the work is a novel algorithm that models how humans form concepts from structured data. This approach has a number of potential applications including modeling how novice players approach an educational game or providing designers an alternate perspective on how they might categorize their level designs. We developed a python library that implements TRESTLE and other concept learning aglorithms available on github.