Most games give rewards.
I design gaps.
A controlled gap creates intention. Where a story feels incomplete, a player doesn't just watch—they commit. What keeps players is designed.
Your players disengage and you can't point to why
Mechanics are sound. Content is present. Something still leaks. The gap between system logic and felt experience is where retention quietly dies.
The branches are correct but feel the same
Structural completeness doesn't guarantee experiential differentiation. Choices that don't feel different aren't choices, they're theater with extra steps.
The character is consistent but stopped feeling alive
Voice erosion across updates is slow, until players stop trusting the relationship. By then, the attachment loss is already in the numbers.
Shipped & In Development
Each game is a playable prototype of a design question. The framework isn't theoretical — it's been built, shipped, and tested on real players.
Ren'Py · Interactive Point & Click
Terrace
What if interaction reduces the world instead of building it?
The player builds the world themselves — through interpretation, not instruction. World-state shifts based on what you choose not to do.
Proof of: controlled absence as narrative architecture
Play Now · itch.io ↗Twine · Pure Narrative Branching
Last Chapter
What does it mean when the loop knows it's a loop?
Meta-loop system. The narrative structure itself becomes the subject. Branches aware of their own recursion.
Proof of: structural self-awareness as emotional weight
Shipped · Link Coming ↗Godot · Puzzle Narrative Hybrid
Mushroom!
What happens when a game intentionally contradicts itself?
Strategic puzzle mechanics layered with narrative lore that actively conflicts with the rules. Controlled contradiction as design intent.
Proof of: contradiction as controlled focus
In Development · Next WeekAll visuals hand-drawn in IbisPaint · All BGM composed in LMMS
Framework
Character & Behavior
Emotional authenticity as a retention mechanic. Characters who exist past the end of the story — and keep players invested past the end of their patience.
Explore Framework → 02Systems & Perception
How mechanics are framed determines what players feel — not just what they do. The same system builds trust or breeds quiet resentment depending on how it reads.
Explore Framework → 03Audio & Atmosphere
Sound that reveals truth before dialogue does. Atmosphere isn't decoration — it's a delivery system that bypasses the player's conscious guard.
Explore Framework → 04UI & Experience
Information density builds or shatters immersion. Every data layer is a decision about how much the player is allowed to feel.
Explore Framework →Not all systems behave. Some must be listened to.
System Dissections & Applied Analysis
Discord RP Hunt System — Structural Risk Reframing
The challenge isn't feature design. It's session state and concurrency — and what those create psychologically for the player in real time.
Branching Narrative Stress Test — Emotional Analysis
Branches may route differently while maintaining identical emotional weight. Structural correctness is not experiential differentiation.
The Live-Ops Paradox in Character-Driven Gacha
Short-term fanservice doesn't just erode story — it withdraws the veteran player's primary reason to spend. The numbers follow the narrative.
Voice Integrity & Engagement Drift
Voice drift isn't about tone. It's about losing conversational elasticity — the moment players feel the character is being written, not living.
Applied Impact
Discord · Game Dev Feedback · Hunt System
"I actually think your core idea is interesting. Since you're planning multiple hunts with several players per group, you'll need a clean way to manage each hunt as its own session... your biggest challenge won't be mechanics, but state management and concurrency."
Outcome: Developer acknowledged backend structure considerations and integrated them into planning documentation.
Discord · Twine Narrative · Branching Design
"When you play through each branch, does it feel different? Or does it just route differently? Sometimes when structure is solid but it still feels off, it's because not every branch changes player perception or stakes. What usually feels missing in branching design isn't math. It's weight."
Outcome: Developer adopted a stress-testing lens focused on experiential distinction rather than structural completeness.
Monday Field Notes
Weekly observations on systems, design, and what games fail to say
Most games give rewards. I design gaps. A controlled gap creates intention — systems create absence, and absence creates want.
Field Note 04I'm less interested in adding features, and more interested in why they don't belong.
Pinned · @oflili_Work Together
I find what's breaking your player's trust before your team can name it.
Available for consulting, contract work, and open to studio roles. I work best when the problem doesn't have a clean name yet — when the system is technically sound but something is still wrong and nobody can explain exactly what.