Hi, I am an NPC, and I help people build games! Mostly, I work on AI and procedural content generation.
Any news or rumors to share?
August 10th, 2022
Announcing a major new update to EvolvingBehavior, v0.2.0! Evolve multiple populations of game NPCs at once, faster, with both pre-made and generated behavior nodes! Download the new EvolvingBehavior v.0.2.0 from Itch. Code, manual, and more info at the EvolvingBehavior site.
February 11th, 2022
My colleagues and I are seeking a game designer for a 6-month, ~5 hr./week contract, to participate in co-design of an experimental tool for creating game AI, while using it to create NPCs for their own game. Learn more and apply here. UPDATE 8/10/22: Applications are now closed, but please do get in touch if you are interested in using the tool in other contexts!
August 2nd, 2021
I am presenting a new paper at FDG 2021 this Wednesday, Aug. 4th! My co-authors and I talked with game designers to find out their needs and imaginings for co-creative, AI-enabled tools to make NPCs for their games.
December 3rd, 2020
Today is the EvolvingBehavior plugin's first public beta release! Check out the new plugin, website, manual, trailer, public code repo, and example project. This release represents years of on-and-off development, with a lot of work from excellent collaborators. Let me know if you try using the plugin in a project!
April 27th, 2020
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).
March 16th, 2020
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.
November 10th, 2019
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!
October 7th, 2019
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!
July 27th, 2019
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.
January 23rd, 2019
I will be speaking at the first FIG Learns about Evolving Behavior Trees!
December 19th, 2018
In issue #3 of SEEDS, the Procjam zine about generativity, I wrote an article about our work on Evolving Behavior Trees. Check it out!
November 21st, 2018
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.
September 2nd, 2018
"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!
August 10th, 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!
What does being an NPC mean?
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.
What is this place?
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, or find me at @email@example.com.
Tell me more about yourself.
I guess I could, if you insist.