A little context
AI2U: With You 'Til The End is a conversational-AI puzzle game. It is also the project where I have spent the most time thinking about an unusual question: how do you let a language model feel expressive inside a game that still needs clear rules, reliable state, and recoverable failures?
The game has reached approximately 100K players, holds 89% positive Steam reviews, and received GDC Best in Play 2025 recognition.
What I do
I joined AlterStaff as a Unity Applications Developer and now also work as a development lead and release coordinator. Since March 2024, I have helped take AI2U from its demo and early-access builds through the 0.1-to-1.0 roadmap, while coordinating a three-developer team and working closely with art, design, marketing, and QA.
My work moves between features that players can see and infrastructure they hopefully never have to notice:
- Built 103 cross-platform achievements using PlayFab persistence and Steamworks API integration.
- Refactored each NPC from state machines to behavior trees with 6+ states, executing LLM-selected actions such as sitting, standing, hugging, and other context-sensitive behaviors.
- Partnered with backend engineers on a dynamic prompting pipeline combining system prompts, character context, chat history, gameplay state, inventory, and progress fields.
- Designed repeatable AI-model benchmarks for response quality, latency, character fidelity, consistency, and hallucination.
- Instrumented the full player journey—from login, navigation, purchases, and interactions to puzzle attempts and endings—for a custom analytics backend.
- Led the Level 2 redesign and implemented 2–3 puzzles per level across Levels 1, 3, 4, and the finale.
The problem I keep coming back to
Language models are expressive but probabilistic; gameplay systems need dependable state, timing, and recoverable failure modes. The implementation separates responsibilities: authored gameplay logic and behavior trees own physical state and action execution, while the prompting system supplies character expression and context-aware decisions.
The client sends structured gameplay context—including story progress, acquired items, current scene state, and conversation history—to the backend. The backend assembles the final prompt and routes it to the selected model. This contract allows generated dialogue and behavior to react to real game progress without giving the model direct control over critical runtime state.
I like this boundary because it gives both sides room to do what they are good at: the model can surprise the player, while the game remains responsible for being a game.
How we test and ship
New models and character prompts are evaluated through benchmark scenarios covering ordinary conversation, adversarial questions, simple reasoning checks, response speed, character fidelity, consistency, and hallucination. In production, telemetry helps the team compare design intent with actual player behavior.
I also oversee Jira triage and assignment across a backlog with 2,000+ closed issues, plan development work in Azure DevOps, and coordinate release readiness with QA and other discipline leads.
What I’ve learned here
AI2U has made me much more comfortable working in the space between disciplines. A character problem may turn out to be a prompt problem, a state problem, an animation problem, or a communication problem between teams. The interesting part is usually finding which one it really is.

View on Steam ↗