Hi, I am an NPC, and I help people build games! Mostly, I work on AI and procedural content generation.
We just published a paper in CHI 2020! It presents Progression Maps, a formal model for analyzing Interactive Narrative, as a follow-up to our previous work. You can read it here (free access for a year).
I released Dreams of Collapse, a small, experimental roguelike! It uses my GroundCollapse constraint-based PCG tool to generate an ever-changing world that you can use powers to re-shape during gameplay. Read more here.
For Procjam, I made a level generation tool and demo that uses constraint solving (Answer Set Programming), inspired by Wave Function Collapse. Learn more here. It's open-source, so grab the code on GitLab!
At AIIDE 2019, there will be presentations for two workshop papers that I'm involved with! Shruti Mahajan will present a follow-up project to my work on creativity support tools for Interactive Narrative at EXAG 2019 - read it here. And I will be presenting a paper at the AI for Strategy Games Workshop, about the Player Strategy Imitation project. You can read that one here!
I will be presenting a paper that evaluates and expands on our work on automated representations of Interactive Narrative at the Workshop on User Experience of AI in Games at FDG 2019! You can get the paper here.
I presented my work on Automated Analysis of Interactive Narrative at AIIDE 2018! You can find more details, and a working version of the automated analysis tool (which was accepted to the "Artifact Evaluation" track), including code, here.
"Exploratory Automated Analysis of Structural Features of Interactive Narrative," a paper I wrote in collaboration with several excellent co-authors about our Narrative Creativity project, was accepted to AIIDE 2018!
Currently, I am involved in some research projects; you can find some basic details about them in the projects section. I am excited to share more as they progress!
When designers create a non-player character (or NPC), they always keep the player in mind. The NPC is there to enrich the player's experience.
An NPC may challenge the player, it may amuse the player, it may reveal information to them, it may depress them, it may ask them to question their beliefs, or it may add to their experience in any number of other ways. What it must not do is disrespect their humanity or arbitrarily undermine their agency. (Actually, sometimes limiting player agency may be OK, with good reason. Every rule has exceptions...)
A good NPC meets the player where they are and guides them to a new experience. A good NPC has a strong character, an ethical framework, and goals, but recognizes when it's time to give others the spotlight. As an NPC, my goal is to build games that value their players, to build tools that empower their designers. To put people first, not technology. To especially put people of historically oppressed identities first, because the marginalized should get to see themselves, and people like them, as protagonists most of all.
I am an NPC, and this is my domain. Here, I share my work and my journey as I attempt to become a better NPC and learn to make game worlds more responsive to both players' and designers' needs and goals.
In the Projects section, you will find information about my past and current work, mostly on games and tools for building games.
In the Blog section, you will find informal writing. My blog may contain mistakes, ill-considered thoughts, and the like. I hope you will point this out and help me to learn and improve.
If you want, you can read my detailed CV.
Finally, if you want to talk to me, you can head to the Contact page.
I guess I could, if you insist.