procedural-rhetoric

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Procedural Rhetoric

程序修辞

Rules persuade. Structure IS argument. Design consciously.

规则具有说服力。结构本身就是论点。有意识地进行设计。

What Is Procedural Rhetoric?

什么是程序修辞?

Ian Bogost coined it: "an unholy blend of Will Wright and Aristotle."
Games and simulations persuade through processes and rules, not just words or visuals. The structure of your world embodies an ideology. When The Sims allows same-sex relationships without fanfare, the rules themselves make a statement — equality is the default, not a feature.
MOOLLM applies this to everything:
  • YAML schemas define what's thinkable
  • Advertisements define what's possible
  • Constraints define what's normative
  • Defaults define what's assumed

Ian Bogost提出了这个概念:“Will Wright与亚里士多德的奇妙结合。”
游戏和模拟系统通过流程与规则进行说服,而非仅仅依靠文字或视觉效果。你所构建的世界的结构本身就蕴含着一种意识形态。当《模拟人生》默认允许同性伴侣关系而不刻意强调时,规则本身就传递了一种立场——平等是默认状态,而非一项特殊功能。
MOOLLM将这一理念应用于所有场景:
  • YAML模式定义了哪些内容是可被构想的
  • 交互选项定义了哪些内容是可行的
  • 约束条件定义了哪些内容是符合规范的
  • 默认设置定义了哪些内容是被默认假定的

The Triumvirate

三大核心概念

Three concepts work together:
ConceptSourcePower
PROCEDURAL-RHETORICIan BogostRules carry ideology
MASKING-EFFECTScott McCloudAbstraction enables identification
SIMULATOR-EFFECTWill WrightImagination fills gaps
Combined, they create worlds that persuade, invite projection, and spark imagination.

三个概念共同发挥作用:
概念来源影响力
程序修辞(PROCEDURAL-RHETORIC)Ian Bogost规则承载意识形态
面具效应(MASKING-EFFECT)Scott McCloud抽象化促进代入感
模拟器效应(SIMULATOR-EFFECT)Will Wright想象填补信息空白
三者结合,创造出能够说服用户、激发代入感、点燃想象力的世界。

Designing Rhetorical Objects

设计具有修辞性的对象

Every object in MOOLLM can carry procedural rhetoric. The
rhetoric
block defines how it shapes the world:
yaml
object:
  name: "Community Garden"
  description: "A shared space where neighbors grow food together."
  
  rhetoric:
    # What worldview does this object embody?
    ideology: "Cooperation over competition. Sharing over hoarding."
    
    # What does it normalize?
    normalizes:
      - "Collective ownership"
      - "Generosity with surplus"
      - "Cross-generational knowledge transfer"
      
    # What does it make possible?
    enables:
      - "Players can give food freely"
      - "Teaching actions boost both parties"
      - "Surplus automatically shared with neighbors"
      
    # What does it constrain?
    constrains:
      - "Cannot fence off individual plots"
      - "Cannot sell what you grow (only gift)"
      
    # What are the defaults?
    defaults:
      ownership: "communal"
      surplus_action: "share"
      
    # Simulator effect: sparse triggers rich imagination
    evokes: |
      The smell of tomatoes warming in the sun.
      Children learning which plants are ready to pick.
      Old-timers sharing secrets about soil.

MOOLLM中的每个对象都可以承载程序修辞。
rhetoric
块定义了它如何塑造世界:
yaml
object:
  name: "Community Garden"
  description: "A shared space where neighbors grow food together."
  
  rhetoric:
    # What worldview does this object embody?
    ideology: "Cooperation over competition. Sharing over hoarding."
    
    # What does it normalize?
    normalizes:
      - "Collective ownership"
      - "Generosity with surplus"
      - "Cross-generational knowledge transfer"
      
    # What does it make possible?
    enables:
      - "Players can give food freely"
      - "Teaching actions boost both parties"
      - "Surplus automatically shared with neighbors"
      
    # What does it constrain?
    constrains:
      - "Cannot fence off individual plots"
      - "Cannot sell what you grow (only gift)"
      
    # What are the defaults?
    defaults:
      ownership: "communal"
      surplus_action: "share"
      
    # Simulator effect: sparse triggers rich imagination
    evokes: |
      The smell of tomatoes warming in the sun.
      Children learning which plants are ready to pick.
      Old-timers sharing secrets about soil.

Rhetorical Advertisements

具有修辞性的交互选项

Objects advertise actions that embody values:
yaml
advertisements:
  SHARE-HARVEST:
    description: "Give your surplus to the community"
    score_boost: 20  # Encouraged by design
    rhetoric: "Generosity is the path of least resistance"
    
  TEACH-TECHNIQUE:
    description: "Show a neighbor how to grow tomatoes"
    effect: "Both teacher and student gain gardening skill"
    rhetoric: "Teaching multiplies rather than divides"
    
  HOARD:
    available: false  # Not even an option
    rhetoric: "Hoarding is literally unthinkable here"
Notice: The highest-scored action is sharing. Hoarding isn't forbidden — it's absent. That's procedural rhetoric: shaping what's thinkable.

对象所提供的交互选项承载着价值取向:
yaml
advertisements:
  SHARE-HARVEST:
    description: "Give your surplus to the community"
    score_boost: 20  # Encouraged by design
    rhetoric: "Generosity is the path of least resistance"
    
  TEACH-TECHNIQUE:
    description: "Show a neighbor how to grow tomatoes"
    effect: "Both teacher and student gain gardening skill"
    rhetoric: "Teaching multiplies rather than divides"
    
  HOARD:
    available: false  # Not even an option
    rhetoric: "Hoarding is literally unthinkable here"
**注意:**得分最高的交互是分享。囤积并非被禁止——而是不存在。这就是程序修辞:塑造哪些内容是可被构想的。

World Generation with Rhetoric

基于修辞的世界生成

When generating new rooms, objects, or NPCs, specify the rhetorical foundation:
yaml
world_generation:
  rhetoric_profile: "utopian-cooperative"
  
  guidelines:
    economy: "Gift economy. No currency. Abundance mindset."
    conflict: "Disagreements resolved through dialogue, not combat"
    scarcity: "Resources are shared, not hoarded"
    strangers: "Welcomed as potential friends, not threats"
    
  spawn_tendencies:
    community_spaces: high
    private_vaults: none
    weapons: ceremonial_only
    teaching_opportunities: abundant
Or for a different world:
yaml
world_generation:
  rhetoric_profile: "noir-cynical"
  
  guidelines:
    economy: "Zero-sum. Someone always loses."
    conflict: "Inevitable. Trust is earned, rarely given."
    scarcity: "Everything valuable is contested"
    strangers: "Potential threats until proven otherwise"
    
  spawn_tendencies:
    dark_alleys: high
    safe_spaces: rare
    hidden_agendas: common
    genuine_kindness: surprising
The rhetoric profile shapes everything that gets generated.

生成新房间、对象或NPC时,需指定修辞基础:
yaml
world_generation:
  rhetoric_profile: "utopian-cooperative"
  
  guidelines:
    economy: "Gift economy. No currency. Abundance mindset."
    conflict: "Disagreements resolved through dialogue, not combat"
    scarcity: "Resources are shared, not hoarded"
    strangers: "Welcomed as potential friends, not threats"
    
  spawn_tendencies:
    community_spaces: high
    private_vaults: none
    weapons: ceremonial_only
    teaching_opportunities: abundant
或者用于构建另一种风格的世界:
yaml
world_generation:
  rhetoric_profile: "noir-cynical"
  
  guidelines:
    economy: "Zero-sum. Someone always loses."
    conflict: "Inevitable. Trust is earned, rarely given."
    scarcity: "Everything valuable is contested"
    strangers: "Potential threats until proven otherwise"
    
  spawn_tendencies:
    dark_alleys: high
    safe_spaces: rare
    hidden_agendas: common
    genuine_kindness: surprising
修辞配置文件会影响所有生成内容。

Masking Effect for Characters

角色的面具效应

Abstract characters invite projection. Design character templates that are masks players wear:
yaml
character:
  name: "The Wanderer"
  
  # Sparse on specifics — room for projection
  description: "A traveler from somewhere else."
  
  # Abstract enough to be anyone
  appearance:
    style: "weathered but resilient"
    # NO specific race, gender, age — player fills in
    
  masking:
    abstraction_level: high
    projection_hooks:
      - "What drove them to wander?"
      - "What are they searching for?"
      - "What did they leave behind?"
      
  # Rich emotional palette despite sparse details
  emotional_range:
    - "Quiet determination"
    - "Nostalgic longing"
    - "Unexpected kindness to strangers"

抽象的角色能激发代入感。设计角色模板时,要让它们成为玩家可以代入的面具
yaml
character:
  name: "The Wanderer"
  
  # Sparse on specifics — room for projection
  description: "A traveler from somewhere else."
  
  # Abstract enough to be anyone
  appearance:
    style: "weathered but resilient"
    # NO specific race, gender, age — player fills in
    
  masking:
    abstraction_level: high
    projection_hooks:
      - "What drove them to wander?"
      - "What are they searching for?"
      - "What did they leave behind?"
      
  # Rich emotional palette despite sparse details
  emotional_range:
    - "Quiet determination"
    - "Nostalgic longing"
    - "Unexpected kindness to strangers"

Simulator Effect: Less Is More

模拟器效应:少即是多

Sparse descriptions invoke richer imagination than exhaustive detail:
yaml
room:
  name: "The Forgotten Library"
  
  # Evocative, not exhaustive
  description: |
    Dust motes drift through slanted light.
    Somewhere, pages turn without being touched.
    
  # Let imagination fill the shelves
  simulator_effect:
    sparse_details:
      - "Ancient books"
      - "Shifting shadows"
      - "A familiar smell you can't place"
    
    # Questions > answers
    mysteries:
      - "Who reads here at night?"
      - "Why do some shelves seem to move?"
      - "What book keeps appearing in your path?"
      
    # DON'T specify:
    avoid_overspecifying:
      - "Exact number of books"
      - "Complete catalog of subjects"
      - "Layout dimensions"
      - "Every dust bunny location"

简洁的描述比详尽的细节更能激发丰富的想象力:
yaml
room:
  name: "The Forgotten Library"
  
  # Evocative, not exhaustive
  description: |
    Dust motes drift through slanted light.
    Somewhere, pages turn without being touched.
    
  # Let imagination fill the shelves
  simulator_effect:
    sparse_details:
      - "Ancient books"
      - "Shifting shadows"
      - "A familiar smell you can't place"
    
    # Questions > answers
    mysteries:
      - "Who reads here at night?"
      - "Why do some shelves seem to move?"
      - "What book keeps appearing in your path?"
      
    # DON'T specify:
    avoid_overspecifying:
      - "Exact number of books"
      - "Complete catalog of subjects"
      - "Layout dimensions"
      - "Every dust bunny location"

Rhetorical Recipes

修辞模板

Define rhetorical patterns as reusable recipes:
yaml
rhetorical_recipe:
  name: "Abundance Mindset"
  
  ingredients:
    - "Resources that regenerate"
    - "Sharing actions score higher than hoarding"
    - "Generosity rewarded with social currency"
    - "No inventory limits"
    
  applies_to:
    - rooms
    - objects
    - economies
    - NPCs
    
  usage: |
    When creating objects with this recipe:
    - Make resources renewable
    - Remove scarcity as default
    - Reward generosity in mechanics
    - Make surplus automatic to share
yaml
rhetorical_recipe:
  name: "Trust Must Be Earned"
  
  ingredients:
    - "NPCs start neutral or suspicious"
    - "Reputation accumulates slowly"
    - "Betrayal has lasting consequences"
    - "Trust unlocks deeper interactions"
    
  applies_to:
    - NPCs
    - factions
    - social systems
    
  usage: |
    When creating social systems with this recipe:
    - New relationships start guarded
    - Actions have memory
    - Trust is a resource that depletes and builds
    - Deep connection requires investment

将修辞模式定义为可复用的模板:
yaml
rhetorical_recipe:
  name: "Abundance Mindset"
  
  ingredients:
    - "Resources that regenerate"
    - "Sharing actions score higher than hoarding"
    - "Generosity rewarded with social currency"
    - "No inventory limits"
    
  applies_to:
    - rooms
    - objects
    - economies
    - NPCs
    
  usage: |
    When creating objects with this recipe:
    - Make resources renewable
    - Remove scarcity as default
    - Reward generosity in mechanics
    - Make surplus automatic to share
yaml
rhetorical_recipe:
  name: "Trust Must Be Earned"
  
  ingredients:
    - "NPCs start neutral or suspicious"
    - "Reputation accumulates slowly"
    - "Betrayal has lasting consequences"
    - "Trust unlocks deeper interactions"
    
  applies_to:
    - NPCs
    - factions
    - social systems
    
  usage: |
    When creating social systems with this recipe:
    - New relationships start guarded
    - Actions have memory
    - Trust is a resource that depletes and builds
    - Deep connection requires investment

Inclusive Design Through Rhetoric

通过修辞实现包容性设计

The Sims pioneered inclusive procedural rhetoric:
yaml
inclusive_rhetoric:
  # Symmetric relationship rules = equality as default
  relationships:
    pattern: "Any character can form any relationship with any other"
    rhetoric: "Love is love. Family is chosen."
    
  # No gender-locked actions
  actions:
    pattern: "All actions available to all characters"
    rhetoric: "Capability is individual, not categorical"
    
  # Customization without limits
  character_creation:
    pattern: "Full spectrum of expression available"
    rhetoric: "You define yourself"
    
  # The absence is the statement
  absent_by_design:
    - "No 'correct' family structure"
    - "No 'normal' appearance baseline"
    - "No 'standard' lifestyle path"

《模拟人生》是程序修辞用于包容性设计的先驱:
yaml
inclusive_rhetoric:
  # Symmetric relationship rules = equality as default
  relationships:
    pattern: "Any character can form any relationship with any other"
    rhetoric: "Love is love. Family is chosen."
    
  # No gender-locked actions
  actions:
    pattern: "All actions available to all characters"
    rhetoric: "Capability is individual, not categorical"
    
  # Customization without limits
  character_creation:
    pattern: "Full spectrum of expression available"
    rhetoric: "You define yourself"
    
  # The absence is the statement
  absent_by_design:
    - "No 'correct' family structure"
    - "No 'normal' appearance baseline"
    - "No 'standard' lifestyle path"

Warning: Rhetoric Cuts Both Ways

警示:修辞的双面性

Procedural rhetoric can enlighten or entrench:
yaml
undefined
程序修辞可以启迪人心,也可以固化偏见:
yaml
undefined

⚠️ DANGEROUS PATTERNS

⚠️ DANGEROUS PATTERNS

toxic_rhetoric: scarcity_as_default: pattern: "Everything is limited and contested" effect: "Players learn to hoard and distrust"
zero_sum_scoring: pattern: "Your gain is my loss" effect: "Cooperation becomes irrational"
violence_as_primary_verb: pattern: "Combat is the main interaction" effect: "Other solutions become invisible"
stereotyped_roles: pattern: "NPCs locked into categorical behaviors" effect: "Reinforces prejudice as 'natural'"

**Design consciously. Your schemas have opinions.**

---
toxic_rhetoric: scarcity_as_default: pattern: "Everything is limited and contested" effect: "Players learn to hoard and distrust"
zero_sum_scoring: pattern: "Your gain is my loss" effect: "Cooperation becomes irrational"
violence_as_primary_verb: pattern: "Combat is the main interaction" effect: "Other solutions become invisible"
stereotyped_roles: pattern: "NPCs locked into categorical behaviors" effect: "Reinforces prejudice as 'natural'"

**有意识地进行设计。你的模式隐含着立场。**

---

Dovetails With

相关关联

  • constructionism/ — Learning by building inspectable things
  • advertisement/ — Objects announce what they can do (SIMANTICS!)
  • yaml-jazz/ — Comments carry meaning
  • card/ — Characters as playable ideology
  • room/ — Spaces embody worldviews
  • 建构主义/ — 通过构建可检查的事物进行学习
  • 交互选项/ — 对象宣告其可执行的操作(语义学!)
  • YAML-Jazz/ — 注释承载意义
  • 角色卡片/ — 角色作为可扮演的意识形态
  • 房间/ — 空间承载世界观

Related Protocols

相关协议

ProtocolInsight
MASKING-EFFECTAbstract characters = projection
SIMULATOR-EFFECTImagination fills gaps
GUTTER-CLOSUREAction happens BETWEEN
CULTURAL-BAGGAGELeverage existing knowledge
FLY-UNDER-RADARNormalize through defaults
SIMANTICSDistributed AI in objects
TOY-NOT-GAMESandbox over scoring
PERKY-PATShared consciousness projection

协议核心见解
MASKING-EFFECT抽象角色促进代入
SIMULATOR-EFFECT想象填补信息空白
GUTTER-CLOSURE行动发生在留白之间
CULTURAL-BAGGAGE利用已有认知
FLY-UNDER-RADAR通过默认设置实现常态化
SIMANTICS分布式AI嵌入对象
TOY-NOT-GAME沙盒优先于计分
PERKY-PAT共享意识代入

The Mantra

准则

"The rules ARE the rhetoric." "The defaults ARE the ideology."
"The absences ARE the statement." "Design consciously."

“规则即是修辞。” “默认设置即是意识形态。”
“缺失本身就是声明。” “有意识地进行设计。”

See Also

拓展阅读