传统叙事是单向传输——作者讲,读者听。但游戏打破了这个千年惯例。在游戏中,玩家不再是被动的接收者,而是故事的共同创作者、主动参与者,甚至是叙事的破坏者和重构者。
想象一下:你不是在”读”《哈姆雷特》,而是”成为”哈姆雷特,每一个选择都可能改变结局。复仇还是宽恕?装疯还是摊牌?当叙事的控制权部分转移到玩家手中,故事的本质发生了根本性的变化。
本章将探讨游戏这种独特媒介如何通过交互性重新定义叙事。我们将用系统设计的思维来理解:如何在给予玩家自由的同时保持叙事的完整性?如何让游戏机制本身成为叙事的一部分?如何设计能够产生无限故事的系统?
在游戏叙事中,玩家与游戏角色的关系定义了叙事体验的根本性质。这种关系可以抽象为三种基本模型:
1. 化身模型(Avatar Model)
玩家”成为”角色,完全代入角色的身份和处境。这是最深度的沉浸模式。
关系映射:Player == Character
控制模式:第一人称直接控制
决策主体:玩家即角色
情感连接:直接体验
典型案例:
设计要点:
2. 观察者模型(Observer Model)
玩家作为”导演”或”守护者”,引导角色但不成为角色。保持一定的情感距离。
关系映射:Player -> Character(s)
控制模式:间接指令或建议
决策主体:玩家影响,角色执行
情感连接:同情与关怀
典型案例:
设计要点:
3. 创造者模型(Creator Model)
玩家既是故事的创作者,也是规则的制定者。最高程度的叙事自由。
关系映射:Player > World
控制模式:系统级操作
决策主体:玩家定义规则
情感连接:创造的满足感
典型案例:
现代游戏越来越多地采用动态身份切换,在不同层级之间流动:
层级切换触发器:
《巫师3》的多层身份设计:
主线任务:化身杰洛特(Avatar)
昆特牌:观察者(Observer)
回忆段落:临时化身希里(Avatar切换)
对话选择:有限创造者(Limited Creator)
class PlayerAgency:
def __init__(self):
self.control_level = 1.0 # 完全控制
self.narrative_freedom = 0.5 # 中等自由度
self.consequence_weight = 0.8 # 高后果影响
def adjust_for_story_beat(self, beat_type):
if beat_type == "cutscene":
self.control_level = 0.0 # 暂时剥夺控制
elif beat_type == "boss_fight":
self.control_level = 1.0
self.narrative_freedom = 0.2 # 限制叙事选择
elif beat_type == "exploration":
self.control_level = 1.0
self.narrative_freedom = 1.0 # 完全自由
投射与移情的双重作用:
认同强度的设计调控:
游戏中的选择可以按照其对叙事的影响程度分为多个层级:
1. 表层选择(Surface Choices)
影响范围:对话变化、即时反应
持续时间:数秒到数分钟
叙事影响:微小
例子:对话的语气选择(友善/粗鲁/中立)
2. 战术选择(Tactical Choices)
影响范围:任务完成方式
持续时间:单个任务周期
叙事影响:中等
例子:潜行还是正面突击
3. 战略选择(Strategic Choices)
影响范围:角色关系、势力平衡
持续时间:数个章节
叙事影响:显著
例子:选择同盟阵营
4. 关键选择(Critical Choices)
影响范围:故事走向、结局
持续时间:整个游戏
叙事影响:决定性
例子:《质量效应》的议会选择
明确的价值权衡:
选择A:获得资源 + 失去信任
选择B:保持信任 + 资源匮乏
选择C:部分资源 + 部分信任 + 隐藏代价
信息不对称下的决策:
《巫师》系列的灰色选择哲学:
并非所有选择都需要真实分支,假选择也有其设计价值:
1. 情感投入强化
实际结果:角色都会死亡
选择意义:让玩家感受到"尝试过"
心理效果:增强悲剧感而非无力感
2. 性格表达空间
三个选项的不同表述:
- "我会帮助你"(英雄型)
- "如果报酬合适"(雇佣兵型)
- "这是我的责任"(责任型)
结果相同但玩家获得角色扮演满足
3. 节奏控制点
在长段叙述中插入选择
打破被动观看
保持玩家参与感
实际不影响剧情但维持互动性
钻石型结构(Diamond Structure):
起点
|
/ | \
A B C (发散)
\ | /
汇合点
|
/ | \
D E F (再发散)
\ | /
结局
优点:
树型结构的剪枝策略:
def prune_story_branches(choices_made, current_state):
# 根据之前的选择关闭某些分支
available_branches = []
if "saved_character_A" in choices_made:
available_branches.append("reunion_with_A")
else:
available_branches.append("revenge_for_A")
if current_state.reputation > 50:
available_branches.append("diplomatic_solution")
if current_state.combat_skill > 70:
available_branches.append("duel_option")
return available_branches
即时反馈:
短期反馈:
长期反馈:
环境叙事(Environmental Storytelling)是游戏独有的叙事维度——通过空间设计、物品摆放和视觉线索讲述故事,无需文字或对话。
空间叙事的三个层次:
1. 即时故事(Immediate Story)
时间跨度:刚刚发生
证据类型:新鲜痕迹
例子:还在冒烟的烟头、未干的血迹、温热的咖啡
2. 近期故事(Recent Story)
时间跨度:数小时到数天
证据类型:场景状态
例子:翻倒的家具、破碎的窗户、散落的文件
3. 历史故事(Historical Story)
时间跨度:数月到数年
证据类型:环境改变
例子:爬满藤蔓的废墟、褪色的照片、锈蚀的机械
每个物品都是一个叙事符号,其位置、状态、组合都在讲述故事:
《生化奇兵》的叙事密度:
场景:废弃的儿童房间
物品配置:
- 地板:散落的玩具(天真的过去)
- 墙上:弹孔和血迹(暴力的入侵)
- 角落:防御工事(绝望的抵抗)
- 录音机:最后的留言(情感的遗言)
叙事推断:保护孩子的最后一战
物品关系的叙事语法:
class EnvironmentalNarrative:
def create_story_through_objects(self):
objects = {
"wedding_ring": {"position": "floor", "state": "discarded"},
"suitcase": {"position": "bed", "state": "half_packed"},
"photo_frame": {"position": "table", "state": "face_down"},
"wine_bottle": {"position": "floor", "state": "empty"},
"letter": {"position": "table", "state": "crumpled"}
}
# 物品组合暗示的故事:离婚/分手的场景
story_implication = "relationship_ending"
emotional_tone = "melancholic"
time_context = "recent_past"
return self.interpret_scene(objects, story_implication)
线性引导vs开放探索:
1. 线性引导(Linear Guidance)
2. 开放探索(Open Exploration)
《黑暗之魂》的考古式叙事:
情感氛围的环境营造:
压抑感:
开放感:
《Inside》的无言叙事:
叙事手段:纯环境 + 动作
文字数量:0
故事传达:完整且深刻
情感冲击:极强
关键场景分析:
- 开场森林:压抑、逃亡、恐惧
- 农场段落:控制、异化、工业化
- 水下段落:窒息、挣扎、转化
- 结局场景:解放?同化?开放解释
玩家作为考古学家:
def reconstruct_story_from_environment(scene_elements):
timeline = []
# 通过物品新旧程度推断时间顺序
for element in scene_elements:
age_indicator = analyze_deterioration(element)
timeline.append((element, age_indicator))
# 通过空间关系推断因果关系
spatial_relations = analyze_positions(scene_elements)
# 通过痕迹推断事件
events = []
for trace in find_traces(scene_elements):
event = interpret_trace(trace)
events.append(event)
# 组装完整故事
story = assemble_narrative(timeline, spatial_relations, events)
return story
《Gone Home》的房屋叙事:
涌现叙事(Emergent Narrative)是指通过游戏系统规则的交互自然产生的、非预设的故事。这些故事不是设计师写好的,而是在玩家游玩过程中”涌现”出来的。
预设叙事 vs 涌现叙事:
预设叙事(Embedded Narrative):
- 设计师创作
- 固定的情节点
- 可控的体验
- 例:《最后生还者》的剧情
涌现叙事(Emergent Narrative):
- 系统生成
- 动态的事件
- 独特的体验
- 例:《矮人要塞》的每次游玩
《十字军之王3》的叙事生成器:
class CharacterSystem:
def __init__(self):
self.traits = ["ambitious", "cruel", "lustful", "brave"]
self.relationships = {}
self.events_history = []
def generate_event(self, character1, character2):
# 基于角色特质和关系生成事件
if "ambitious" in character1.traits and character1.is_heir:
if "paranoid" in character2.traits:
return "murder_plot" # 涌现的宫廷阴谋
if character1.relationship[character2] < -50:
if "vengeful" in character1.traits:
return "revenge_scheme" # 涌现的复仇故事
# 更多规则组合产生无穷故事可能
系统交互的连锁反应:
《Minecraft》的个人史诗:
玩家A的故事:
"我建造了一座城堡,僵尸围攻时全村人都躲在里面,
除了铁匠,他战死了。为纪念他,我建了一座纪念碑。"
玩家B的故事:
"我在地下挖矿时迷路了,靠着最后一个火把找到了
一个地下湖,在那里建立了地下王国。"
共同点:都是真实发生的,充满情感的个人叙事
区别点:完全由系统规则和玩家选择共同创造
设计可能性而非确定性:
class NarrativeSpace:
def __init__(self):
self.possible_events = []
self.active_threads = []
self.completed_stories = []
def evaluate_possibilities(self, world_state):
possibilities = []
# 根据当前状态计算可能发生的事件
if world_state.resource_scarcity > 0.8:
possibilities.append("resource_war")
possibilities.append("trade_negotiation")
possibilities.append("migration")
if world_state.faction_tension > 0.6:
possibilities.append("alliance_formation")
possibilities.append("betrayal")
# 每个可能性都是一个潜在的故事开端
return possibilities
《Rimworld》的故事引擎:
玩家成为叙述者:
《EVE Online》的玩家历史:
真实案例:"Bloodbath of B-R5RB"
- 日期:2014年1月27日
- 参与:7,548名玩家
- 损失:相当于30万美元的游戏资产
- 起因:一个忘记缴费的太空站
- 结果:游戏史上最大规模太空战
这不是设计师写的剧本,而是玩家创造的历史
Ludonarrative dissonance指游戏机制与叙事主题之间的矛盾,这是游戏叙事的核心挑战之一。
经典矛盾案例:
《古墓丽影》(2013):
叙事:Lara首次杀人后的心理创伤、恐惧、自责
玩法:之后毫无心理负担地杀死数百敌人
矛盾:情感叙事与gameplay循环的脱节
《GTA4》:
叙事:Niko想要脱离暴力生活
玩法:玩家可以随意犯罪
矛盾:角色动机与玩家行为的冲突
最优雅的解决方案是让游戏机制本身成为叙事的载体:
《死亡搁浅》的连接主题:
核心主题:连接、孤独、合作
机制设计:
- 建造道路:字面意义的"连接"
- 留下标记:异步multiplayer的善意
- 运送货物:重建社会连接的隐喻
- 平衡系统:人生负重前行的具象化
每个gameplay机制都在强化核心叙事主题
《Brothers: A Tale of Two Sons》的控制隐喻:
控制方案:
- 左摇杆控制哥哥
- 右摇杆控制弟弟
- 必须同时操作
叙事意义:
- 手指的协调 = 兄弟的合作
- 控制的困难 = 合作的挑战
- [剧透]后期单手操作 = 失去的情感体验
《Celeste》的机制叙事:
核心机制:精确平台跳跃、不断死亡重试
叙事主题:焦虑、坚持、自我接纳
融合设计:
- 困难的关卡 = 内心的挣扎
- 死亡不惩罚 = 接受失败是成长的一部分
- 辅助模式 = 寻求帮助不是软弱
- 登山过程 = 克服心理障碍的隐喻
《Papers, Please》的道德困境:
class MoralGameplay:
def process_immigrant(self, documents, personal_story):
# 规则层面:检查文件是否合格
if not documents.is_valid():
# 叙事层面:了解人物背景
if personal_story.is_desperate():
# 玩家困境:规则vs同情
choice = player.decide()
if choice == "approve":
self.family.money -= penalty
self.moral_satisfaction += 1
else:
self.family.money += wage
self.moral_burden += 1
# 机制与叙事完美融合:
# 每个gameplay决定都是道德选择
《黑暗之魂》的死亡哲学:
机制设计:
- 死亡失去灵魂(经验)
- 可以捡回但再死永久失去
- 敌人位置重置
- 玩家知识保留
主题表达:
- 死亡是学习过程,不是失败
- 坚持与放弃的永恒选择
- 希望与绝望的循环
- 知识比力量更重要
《Journey》的无言交流:
交流限制:只能发出音符
合作机制:靠近充能、共同前进
叙事效果:
- 语言障碍消除 = 纯粹的人类连接
- 不知对方身份 = 无条件的善意
- 共同目标 = 朝圣之旅的精神体验
- 分离与重逢 = 人生的相遇与离别
1. 主题先行设计:
确定核心主题 -> 设计支撑机制 -> 调整叙事细节
例:《Frostpunk》
主题:生存vs人性
机制:严苛的资源管理 + 道德选择
叙事:每个决定都关乎生死与道德
2. 机制的叙事化:
将抽象机制赋予叙事意义
例:《Persona 5》
机制:时间管理系统
叙事化:高中生的日常生活
效果:每个行动都有角色成长意义
3. 惩罚与奖励的叙事逻辑:
class NarrativeRewardSystem:
def design_reward(self, action, theme):
if theme == "redemption":
if action == "forgive_enemy":
# 奖励符合主题
return "peace_of_mind"
elif action == "revenge":
# 惩罚违背主题
return "hollow_victory"
# 确保gameplay奖励与叙事价值一致
游戏的交互叙事代表了叙事艺术的新前沿。通过将控制权部分转移给玩家,游戏创造了独特的叙事体验:
核心概念回顾:
关键公式:
交互叙事体验 = 预设内容 + 玩家选择 + 系统反馈 + 涌现事件
叙事深度 = 环境细节密度 × 玩家探索意愿 × 解读能力
ludonarrative和谐度 = 机制隐喻契合度 / 叙事与玩法矛盾数
设计原则:
练习30.1:玩家代理模型识别 分析以下游戏,识别其采用的玩家代理模型,并说明设计理由:
练习30.2:环境叙事解读 设计一个房间的环境叙事,通过物品摆放讲述”程序员连续加班一周后崩溃”的故事。列出至少8个物品及其位置/状态。
练习30.3:ludonarrative dissonance分析 找出《刺客信条》系列中的一个ludonarrative dissonance例子,分析其产生原因,并提出改进方案。
练习30.4:涌现叙事系统设计 为一个末日生存游戏设计3个可以产生涌现叙事的系统规则,说明它们如何交互产生故事。
练习30.5:选择分支设计 设计一个道德困境选择,要求:
练习30.6:机制隐喻设计 为”克服拖延症”这个主题设计一套游戏机制,要求机制本身就是主题的隐喻。
练习30.7:未来交互叙事 随着VR/AR技术和AI的发展,你认为游戏交互叙事会如何演化?描述一种可能的新型交互叙事形式。
练习30.8:跨媒介设计 选择一个经典文学作品,设计将其改编为游戏的核心玩法机制,要求保持原作主题的同时充分利用游戏媒介的特性。
错误:提供过多无意义的选择,让玩家陷入选择疲劳 正确:精心设计每个选择,确保其有意义且数量适中
错误:所有选择都是假选择,玩家很快识破 正确:混合使用真假选择,保持玩家的期待
错误:核心信息都藏在环境中,错过就无法理解故事 正确:环境叙事增强体验,但非必需信息
错误:先设计玩法,后补叙事理由 正确:从主题出发,同时设计机制与叙事
错误:系统过于复杂,产生的故事杂乱无章 正确:在可能性空间中设置引导和边界