t1k:designer:systems:roguelike
| Field | Value |
|---|---|
| Module | systems |
| Version | 1.7.2 |
| Effort | high |
| Tools | — |
Keywords: design, permadeath, roguelike, roguelite
How to invoke
Section titled “How to invoke”/t1k:designer:systems:roguelikeGame Roguelike Design
Section titled “Game Roguelike Design”When This Skill Triggers
Section titled “When This Skill Triggers”- 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
Run Structure Model
Section titled “Run Structure Model”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 mechanicsFloor 3-5: Medium (80-90%) — build tensionFloor 6: Spike (110%) — first real challengeFloor 7: Rest (shop/event) — recovery opportunityFloor 8-10: Hard (100-120%) — sustained pressureFloor 11: Boss (140%) — climax→ See references/run-pacing-templates.md for arc variants (short/mobile, long/PC, endless)
Run Length Targets
Section titled “Run Length Targets”| Platform | Target Duration | Encounter Count | Boss Count |
|---|---|---|---|
| Mobile | 15-25 min | 8-12 | 1 |
| Casual PC | 25-40 min | 10-15 | 2 |
| Core PC | 45-90 min | 15-25 | 3-5 |
Difficulty Scaling Formulas
Section titled “Difficulty Scaling Formulas”Depth-Based Enemy Stats
Section titled “Depth-Based Enemy Stats”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
Power Curve Alignment
Section titled “Power Curve Alignment”player_effective_power = base_stats * item_multiplier * synergy_bonusrequired_power(depth) = base_required * 1.15^depthtarget_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
Meta-Progression Design
Section titled “Meta-Progression Design”Run-Scoped vs Account-Scoped
Section titled “Run-Scoped vs Account-Scoped”| Mechanic | Run-Scoped (resets) | Account-Scoped (permanent) |
|---|---|---|
| Items | All items found during run | Unlock item pool only |
| Stats | Temporary buffs | Starter stat bonuses (small, <15%) |
| Gold | Spent within run | Meta currency earned per run |
| Progress | Floor reached | Persistent 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
Risk/Recovery Balance
Section titled “Risk/Recovery Balance”Recovery Opportunities
Section titled “Recovery Opportunities”- 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
Permadeath Alternatives (mobile-friendly)
Section titled “Permadeath Alternatives (mobile-friendly)”- 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-Patterns
Section titled “Anti-Patterns”| # | Anti-Pattern | Problem | Fix |
|---|---|---|---|
| 1 | Linear difficulty slope | No tension peaks | Use spike-rest-spike pattern |
| 2 | Underpowered early items | Boring early game | Scale early item value up slightly |
| 3 | Luck-only outcomes | Player skill irrelevant | Always provide at least 1 good choice |
| 4 | Runs >60 min on mobile | Players won’t finish | Cap at 25 min; add suspend/resume |
| 5 | Permanent bonuses >30% | Trivializes new runs | Hard cap at 15% base stat bonus |
| 6 | No recovery after spike | Frustration snowball | Mandatory rest/shop post-spike |
→ See references/roguelike-anti-patterns.md for full anti-pattern catalog
Cross-References
Section titled “Cross-References”rpg-game-design— base stat formulas and item power budgets used in scalinggame-balance-tools— TTK validation and difficulty spike detectiongame-economy-design— meta currency sinks/faucets (run rewards → meta shop)game-shop-offering— shop placement within run arc, gold budgets per floorpuzzle-game-design— run-scoped puzzle inventory mechanics (BackpackCrawler)
Reference Files
Section titled “Reference Files”| File | Coverage |
|---|---|
references/run-pacing-templates.md | Arc templates (mobile/PC/endless), rest placement |
references/difficulty-scaling-formulas.md | Depth scaling tables, power curve math, modifiers |
references/roguelike-anti-patterns.md | Full anti-pattern catalog with fixes |
Gotchas
Section titled “Gotchas”- 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_EDITORor a test flag). Source: DOTS-AI 260520 production audit §R3S.