Scarcity tuning
Health, food, and drops are tuned to create meaningful trade-offs rather than guaranteed safety.
Game Case Study
A small roguelike prototype built to explore how scarcity, randomness and audio/visual feedback shape tension, anxiety and relief.

Dude is an affect-driven prototype built from Unity’s 2D Roguelike tutorial, reworked to study an emotional arc of tension → anxiety → satisfaction. Instead of chasing feature breadth, I focused on how pacing, scarcity, and readable randomness change what players feel moment to moment—when they take risks, when they panic, and when a close win feels earned.
What I was trying to achieve.
Use scarcity, enemy pressure, and short “breathing spaces” to keep players on the edge without overwhelming them.
Tune food, health, and pickups so decisions have consequences—survive now vs. prepare for later.
Keep runs varied, but bounded. Surprises should create anxiety, not confusion or “cheap” deaths.
What I personally owned.
Adjusted drop rates, damage, healing values, and room pacing to hit targeted emotional beats across a short session.
Tweaked spawn logic and room composition to control pressure spikes and recovery windows, improving fairness and readability.
Recorded player reactions, failure points, and “why did I die?” moments, then iterated to reduce frustration while keeping intensity.
How the project evolved and what I took away.
The main challenge was that small balance changes radically altered the emotional curve. When health and food were too generous, sessions became flat; when scarcity was too harsh, it turned into frustration. I iterated by treating the game like an emotional pacing problem: controlling pressure spikes (enemy density/damage), recovery windows (safe rooms/loot), and uncertainty (randomness bounds). This project reinforced that affect isn’t something you add at the end—it emerges from the numbers, timing, and clarity of the rules.
The moment-to-moment flow I focused on.
Explore rooms → manage scarcity (health/food) → take fights with risk → collect resources → push deeper for better outcomes → reset on failure and try a smarter route.
The loop creates tension through limited recovery and uncertainty, then pays it off when the player survives a risky decision and stabilises again.
What’s implemented in the prototype right now.
Health, food, and drops are tuned to create meaningful trade-offs rather than guaranteed safety.
Variation is bounded so runs feel different, but failure still feels explainable and fair.
Encounter pacing alternates spikes and breathing spaces to maintain anxiety without constant overload.