Skip to content

t1k:designer:systems:roguelike

FieldValue
Modulesystems
Version1.7.2
Efforthigh
Tools

Keywords: design, permadeath, roguelike, roguelite

/t1k:designer:systems:roguelike

  • Designing roguelike or roguelite run structure
  • Calibrating encounter pacing or run length
  • Scaling difficulty across floors/depth
  • Balancing permanent vs temporary (run-scoped) progression
  • Designing risk/recovery mechanics (rest sites, shops, events)
  • Tuning permadeath feel or permadeath alternatives (lives, curses)
  • Implementing procedural encounter sequencing

Encounter Arc Template (10-15 encounters per run)

Section titled “Encounter Arc Template (10-15 encounters per run)”
Floor 1-2: Easy (50-70% of endgame difficulty) — teach mechanics
Floor 3-5: Medium (80-90%) — build tension
Floor 6: Spike (110%) — first real challenge
Floor 7: Rest (shop/event) — recovery opportunity
Floor 8-10: Hard (100-120%) — sustained pressure
Floor 11: Boss (140%) — climax

→ See references/run-pacing-templates.md for arc variants (short/mobile, long/PC, endless)

PlatformTarget DurationEncounter CountBoss Count
Mobile15-25 min8-121
Casual PC25-40 min10-152
Core PC45-90 min15-253-5
enemy_hp = base_hp * (1 + depth * 0.15)
enemy_atk = base_atk * (1 + depth * 0.12)
enemy_count = base_count + floor(depth / 3)
  • Stepped scaling (every 3 floors) feels more natural than linear
  • Player power must grow faster than enemy scaling: target 1.1-1.2x advantage
player_effective_power = base_stats * item_multiplier * synergy_bonus
required_power(depth) = base_required * 1.15^depth
target_ratio = player_effective_power / required_power = 1.1 - 1.2
  • If ratio < 1.0: encounters feel unfair; above 1.5: game too easy

→ See references/difficulty-scaling-formulas.md for full tables, item power formulas, run modifiers

MechanicRun-Scoped (resets)Account-Scoped (permanent)
ItemsAll items found during runUnlock item pool only
StatsTemporary buffsStarter stat bonuses (small, <15%)
GoldSpent within runMeta currency earned per run
ProgressFloor reachedPersistent story unlocks, characters
  • Rule: permanent bonuses cap at +15% base stats — preserves run challenge
  • Meta loop: run → fail → gain meta currency → unlock new start conditions
  • Place rest/shop after every spike encounter (floor 6 spike → floor 7 shop)
  • Rest site heals 30% max HP (enough to survive next floor, not full recovery)
  • Shop pricing: items cost 10-20% of expected gold-per-run at that depth
  • Event sites: 40% positive / 40% neutral / 20% negative — always show icon type
  • Soft permadeath: lose run but keep meta currency, unlock remembrance
  • Lives system: 3 lives per run, lose one on death instead of full reset
  • Curse mechanic: survive death once but gain permanent debuff for rest of run

→ See references/run-pacing-templates.md for risk/recovery placement by arc type

#Anti-PatternProblemFix
1Linear difficulty slopeNo tension peaksUse spike-rest-spike pattern
2Underpowered early itemsBoring early gameScale early item value up slightly
3Luck-only outcomesPlayer skill irrelevantAlways provide at least 1 good choice
4Runs >60 min on mobilePlayers won’t finishCap at 25 min; add suspend/resume
5Permanent bonuses >30%Trivializes new runsHard cap at 15% base stat bonus
6No recovery after spikeFrustration snowballMandatory rest/shop post-spike

→ See references/roguelike-anti-patterns.md for full anti-pattern catalog

  • rpg-game-design — base stat formulas and item power budgets used in scaling
  • game-balance-tools — TTK validation and difficulty spike detection
  • game-economy-design — meta currency sinks/faucets (run rewards → meta shop)
  • game-shop-offering — shop placement within run arc, gold budgets per floor
  • puzzle-game-design — run-scoped puzzle inventory mechanics (BackpackCrawler)
FileCoverage
references/run-pacing-templates.mdArc templates (mobile/PC/endless), rest placement
references/difficulty-scaling-formulas.mdDepth scaling tables, power curve math, modifiers
references/roguelike-anti-patterns.mdFull anti-pattern catalog with fixes
  • Risk vs recovery loops break if recovery becomes mandatory — heal-after-every-fight design erases risk; force genuine choice.
  • Meta-progression rewards must matter without trivializing runs — power creep through meta is the slowest poison in roguelikes.
  • Mobile run length cap is ~25 minutes — past that, drop-off compounds; design escape valves (pause-with-state, save-and-quit).
  • Hardcoded deterministic seed is a silent roguelite-killer_rewardSeed = 42 (or any compile-time constant) makes every run identical, breaking the genre’s core promise. Reward seeds MUST derive from a runtime source: UnityEngine.Random.state, system timestamp, or player-input hash. Only use a fixed seed for automated testing (gated behind #if UNITY_EDITOR or a test flag). Source: DOTS-AI 260520 production audit §R3S.