← Back to list
In

game-design
by tuliosoria
⭐ 0🍴 0📅 Jan 25, 2026
SKILL.md
name: game-design description: Best practices for game mechanics, player experience, stealth systems, and narrative pacing.
Game Design Principles for Terminal 1996
Core Philosophy
- Asymmetric risk with recovery windows: Detection escalates but players need occasional relief
- Tension curves: 1-3 high-tension beats should be followed by a release moment
- Non-binary states: Use gradations (safe → suspicious → alerted → caught) not on/off
- Player forgiveness: Grace periods, warnings, and escape routes before failure
Stealth & Detection System
Current Mechanics (commands.ts)
- Detection level: 0-100 (100 = caught)
- Per-action increases: +1-15 based on risk
- Per-run variance: seeded RNG makes certain commands "hotter" or "safer"
- System hostility: 0-5, affects terminal personality
Best Practices for Detection Changes
- Always warn before threshold: At 70+ show urgent warnings, at 85+ screen effects
- Recovery should cost something: Time, stability, or limited uses
- Major discoveries should provide relief: Truth reveals = brief detection reduction
- Feedback must be immediate and clear: Visual + audio cues on detection changes
Adding New Commands
In app/engine/commands.ts:
- Add to
COMMANDSobject with handler function - Set appropriate detection/stability costs
- Use
addToHistory()for terminal output - Check
gameStatefor prerequisites - Add to help text only if discoverable from start
Detection Cost Guidelines
| Risk Level | Detection | Examples |
|---|---|---|
| Safe | 0 | help, status, notes |
| Low | +1-3 | ls, cd, open (normal files) |
| Medium | +5-8 | open (sensitive), trace |
| High | +10-15 | decrypt, override, recover |
| Recovery | -3 to -10 | wait, truth discoveries |
Pacing & Tension
Singular Events (one-time per run)
- Defined in
singularEventsTriggeredSet - Trigger based on gameState conditions
- Should feel dramatic but not block progress
- Examples: THE ECHO, THE SILENCE
Tension Breathers
- After major discoveries, briefly reduce pressure
- Can be: detection reduction, stability boost, or narrative pause
- Prevents player fatigue from constant escalation
State Management
Key GameState Fields
detectionLevel: number; // 0-100
dataIntegrity: number; // 100-0
accessLevel: number; // 0-5
sessionStability: number; // 100-0
systemHostility: number; // 0-5
truthsDiscovered: Set<string>;
singularEventsTriggered: Set<string>;
Flags & Gating
requiredFlags: Array of flags that must be set to access contentaccessThreshold: Minimum access level required- Flags set via
gameState.flags.add('flagName')
Testing Requirements
- Add tests in
app/engine/__tests__/for new mechanics - Test edge cases: max detection, zero stability, flag combinations
- Use existing test patterns from
narrative-mechanics.test.ts
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon