Files
SoundGame/research/hunt-sim/analysis/03-coop.md
T
xsl 0652c2f0e6 research(hunt-sim): 10 人并发在线模拟×多 agent 设计迭代——研究设施与全套档案
研究命题(00-plan):验证并打磨《围猎》联机纯音频体验——不是逻辑能跑通,
而是真人玩起来是什么体验、愿不愿意再来一局。

设施 web/harness/hunt-sim/(可复用,零依赖):
- arena.mjs 编排器:起真实服务器(随机端口+临时数据目录隔离),10 个拟人客户端
  经真实 WS 同时在线,错峰组队、真实时长对局、局间状态跨轮维护
- sim-client.mjs:game.js 行为移植(协议+手势路由+R1-R8 音频调度逐字节对齐),
  产出「玩家耳朵听到什么」的感知时间线(语音全文/loop 方位音量档/喊话/震动)
- brain.mjs:人设大脑——察觉延迟/前后判读(以真值为条件的正确率模型)/掩蔽放大/
  冷却乱滑/技能囤积/呼喊倾向/分心断网,全部随机判定用按实体 id 哈希的独立抽签
  (mulberry32 流会被刷怪座位轮转结构带偏,实测造成系统性镜像反转,已证伪)
- recorder.mjs:每人每局 events.jsonl 全量 + percept.md 感知转写 + 对局速览

研究档案 research/hunt-sim/:
- players/:10 人配置(LLM 亲笔)+策略自述+逐局去留决策+人设终评+退游者重访
- rounds/:v1 三轮(R0 教学+R1/R2 真人快速)+ v2 复测两轮,共 48 局全记录
- analysis/01-04:数值曲线/音频信息设计/协作社交/上手留存四视角报告
- synthesis.md(S1-S9 裁定)、metrics.md/metrics-v2.md(两版对比总账)、report.md(总报告)

v1 核心发现:10 人 3 轮 28 局 100% 胜率 26S/营地零损耗;击杀垄断(专家单人 30/39);
呼喊 3 次/28 局应答 0;N/S 前后判读仅 63/69% 可命中;四种退游死因
(失衡/社交真空/交互摩擦/观光无聊)→ 详见 report.md
2026-09-19 11:06:07 +08:00

224 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 03 · 协作与社交视角分析(Q4:呼喊-补位闭环 / bot 队友 / 开黑感)
> 分析 agent:协作体验 | 数据:10 人 × 3 轮(R0 教学 10 局 + R1 快速 3 房 + R2 快速 2 房 = 28 局)
> 上游:[00-plan §1 Q4](../00-plan.md) | 设计文 [23-hunt §3.3/§7/§1.3](../../../docs/design/23-hunt.md) | 指标 [metrics.md](../metrics.md)
> 视角宣言:《围猎》的三大验证命题之三「空间音频协作:呼喊-补位闭环」——**本报告结论:该命题在真人房未获验证,且反向证伪了一层:真人房社交体验劣于 bot 房,直接击穿社交型玩家留存线。**
## 0. 总账(先摆硬数据)
| 指标 | 数值 | 出处 |
|---|---|---|
| 全场呼喊次数 | **3 次 / 28 局**(R0 P06×1、R1 P02×1、R1 P10×1) | metrics.md |
| R2 全部 8 名玩家呼喊 | **0 次** | metrics.md 逐局明细 |
| 真人房(4 人满编,0 bot)队友喊话 | **0 条 / 局**(NTGV、P5CA、3TJY、94FQ 四房全部) | 各房 percept |
| 呼喊→3s 内人声回应率(真人房) | **0%** | P02/P06 终评 |
| bot 房(R0)botline 送达 | P06 局听到 9 条,**5 条被信道挤掉(丢弃率 56%)** | R0-teach-P06 percept(00:04.6/00:54.3/01:34.1/02:00.3/02:08.4) |
| 闲置提醒("还在吗?")触发 | 93 次 / 28 局——**房间里最活跃的人声是查岗** | metrics.md |
| 满编真人房中唯一的呼喊-回应闭环 | **1 次**(R1 JBP5,P10 02:18.9→bot 老周 02:21.8) | R1-quick-P10 percept |
**关键鉴别性发现(原始事件流对账)**:3 次"呼喊"经 events.jsonl 复核,成色各异——
1. **P06 R0(00:23.3)是教学 T2 的强制步骤**(teach-t2 旁白后按剧本呼喊,教学 bot 必答),不算自发行为;
2. **P02 R1(02:12.6)根本没发出去**:`callout_gesture` 有日志、`act_sent kind:callout` 无日志,客户端实际播的是菜单句"重新听帮助。"(菜单 overlay 吞掉了 tap),同房 P01 的 events 中 **0 条 ev callout**——她对空气喊了一次,还以为"呼喊 bot 零反馈"(P02.review P1#2 原话:"R1 呼喊 1 次、支援回应 0,R2 索性不喊了,这条交互等于不存在");
3. **唯一真实且成功的是 P10 R1(02:18.9)**:act 已送达、服务器广播 ev callout、1 秒内 bot 老周回"我这侧吃紧…"(P10 自己的角色声)→ 02:21.8 老周"听见了,这就到。"→ 02:31.7"这边交给我吧。"——而该房(JBP5)恰好是 **R1 唯一有 bot 的房**。
即:**28 局里自发成立一次呼喊-补位闭环,且它只能发生在有 bot 的房间。**
---
## 1. 发现一:呼喊-补位闭环在真人房失效(四层缺失叠加)
### 1.1 现象
- R2 全 8 人 0 呼喊;四间满编真人房 0 喊话 0 回应(metrics + 各房 percept)。
- 全场呼喊倾向最高的 P06(config:`callout.sectorThreshold=2, useP=0.9`,人设"呼喊积极、阈值低")在 R1 真人房一次都没按。她的归因(P06.review):"前四分之三局没人应过、也没人求过我,**按了也是对空气喊**。求援无回应义务,真人就永远沉默。"
- 一次未强化即消退:P02 呼喊一次无任何回音 → R2 起再也不喊(P02.review)。
- 唯一闭环案例 P10 的证词(P10.review):"R1 那声 3 秒就回的'听见了,这就到'值一把重启;我还没当上应别人'搭把手'的人。"——闭环体验的留存拉力被明确证词背书,但**两局里他只碰到过一次,且对方是 bot**。
### 1.2 根因(分层)
| 层 | 缺失 | 证据 |
|---|---|---|
| ① 机械回报 | 呼喊的唯一系统效果是"**bot** 朝你侧补位 10s"(§7.3)。4 真人房 0 bot → 呼喊字面上什么都不会发生。无 buff、无积分、无怪物标记 | §7.3;NTGV/P5CA/3TJY/94FQ 四房 roster 全 human |
| ② 感知回报 | 即使有队友真去补位,**被帮助者听不见**:真人击杀无归属播报(倒地音无归属、无角色声,P06.review:"倒地闷响居中,分不清谁杀的、在哪个防区")。闭环的"回应端"只存在于 bot 的 24 句台词里 | R1-quick-P06 percept 全程;P01.review P1#3"击杀归属无播报" |
| ③ 应答通道 | 真人收到 warning 震+help_call 后,**没有任何"应答"手势存在**(手势宪法:滑=出击/单击=呼喊/双击=旋风斩/上=状态/下=菜单,无 ack)。回应义务无从谈起;且 P02 案例证明 tap 还会被菜单态吞噬 | §2.1 手势表;P02 R1 events(gesture tap → sys_menu_help,无 act) |
| ④ 触发条件 | "求援"前置条件是本侧吃紧——但真人房怪活不过 2-3 秒(P10.review:"狼从出现到倒地就两三秒"),P06 的 sectorThreshold=2 在整局从未达到。**没有压力就没有求援**(与发现三同根) | P06.config vs R1 实况;R1 全房营地零损耗 |
### 1.3 修复提案
| # | 提案 | 内容 | 改动面 | 新语音资产 |
|---|---|---|---|---|
| A1 | **呼喊必有声回应(真人房兜底)** | 收到 `ev callout` 后 2s 内若无任何队友 act 朝呼喊者弧 → 服务端指定"最闲座位角色"播 `help_ack`;其后 10s 内**任何人**在呼喊者弧内击杀首只怪 → 播该击杀者座位角色 `cover`("这边交给我")。真人房从此闭环必然响 | server:botline 触发源从"bot 行为"扩展为"事件兜底"(§7.4 调度器加一条规则);client 已能播 | **0**(复用 npc_*_help_ack / cover) |
| A2 | **呼喊的机械回报(协同计数)** | 呼喊后 10s 内呼喊者弧内被队友击杀的怪,记呼喊者 1 次"协同";协同数进结算链与评级(见 C4)。呼喊从"一个比特的求援"变成"给队友指目标、给自己记功" | server:callout 状态机 + end 字段 + 评级公式;client 结算链加一段 | 结算播报需新分档句 2-3 句(或先复用 kill_band 措辞改造) |
| A3 | **修 tap 吞噬**(P02 案例) | WAVE 态单击恒等于呼喊,菜单 overlay 打开时 tap 不再被菜单抢(与 P01 P0#1"战斗态锁菜单入口"是同一处改动,归上手留存视角报告,此处登记依赖) | client 手势分发 | 0 |
| A4 | 首次自发呼喊保底 | 教学已完成玩家每局**第一次**呼喊必得 ack(bot 房天然满足;真人房由 A1 保证)——把教学 T2 建立的条件反射在实战第一次使用时兑现 | server 计数(每 slot 每局 1 次) | 0 |
### 1.4 预期指标变化
- 呼喊次数:0.11 次/局 → ≥1 次/局(社交型玩家 ≥3);R2 式"全房 0 呼喊"消失。
- callout→ack 送达率(真人房):0% → **100% 且 ≤3s**。
- P02 型消退学习被打断:呼喊玩家次局留存呼喊行为率 >80%。
- 复测口径:数 events.jsonl 中 `act kind:callout`(不是 percept 的自我报告)。
---
## 2. 发现二:「真人房比 bot 房还冷」——社交音频层全部焊死在 bot 实体上
### 2.1 现象
- bot 有 3 角色 ×8 句 = 24 条台词撑满氛围(greet 开局报到 / wave 波次鼓劲 / breach 漏怪自责 / kill 杀熊喝彩 / help_ack 应援)。R0 bot 房 P06 听到 9 条 botline、P01 听到 4 条——**"别慌,我来了!""哎呀,漏了一个!""嗯,解决了"是两局里仅有的人味**(P06.decisions)。
- R1 NTGV(4 真人):整局 botline **0 条**、真人语音 0 句,队友只以狼倒地闷响存在;波间静默 8 秒无人报点(01:58.0)。P06 闲置提醒被抓 6 次,01:36 走神回微信 8 秒,**局后直接退游**:"真人房比 bot 房还冷。不玩了,拉闺蜜开黑去。"
- P01(专业向,非社交型)同样点名:P0#3"真人房社交声道缺失——R1 全局队友喊话 0 条、支援回应 0;R0 bot 房反而有 4 条……真人房比聋哑房还静。修法:真人房默认开启空间化快捷喊话三件套,或至少把队友击杀做成带方位的提示音。"
- 反讽细节:真人房里最活跃的人声是看门狗"还在吗?听到请碰一下屏幕"(P06 R1 全局 6 次)。P06:"系统越问,我越确认房间里没活人——这句提醒本身就是冷场的实锤。"P03、P10 同样控诉。
- 雪上加霜:bot 房仅有的 botline 还在丢包——R2 规则(同刻 ≤1、队列深 ≤1、新到顶掉)下 P06 R0 的 9 条被挤掉 5 条(56%);P10 R1 也有 4 条被挤。**玩家最珍视的反馈是最脆弱的链路**(P06.review P0#2 原话)。
### 2.2 根因
1. **botline 触发源=bot 的行为**(§7.4:greet/cover/kill/breach/skill/wave 全部挂在 bot 事件上)。真人实体不产生任何人声事件:真人杀熊无声、放旋风斩只有气旋音、漏怪只有全局旁白。满编真人房 0 bot → 房间社交声道**物理静音**。
2. 真人唯一能发出的声音是 help_call(求援),而它正因发现一而几乎从不响——两条缺陷互为死结。
3. 击杀 sfx 无归属无方位(loop 停止+倒地音,pan 在怪方位但无"谁杀的"),P06 想听的"队友在哪个防区、怎么样了"结构性不存在(教学承诺的"上滑状态"只有营地/波次/人数/自己击杀四段,无任何队友信息——P06.review P0#3)。
4. 波间休整 8s 是设计的社交真空:无战报、无报点、无搭话,只剩静默和"还在吗?"。
5. botline 的信道优先级设计(氛围句可丢)把"人味"当成了可牺牲品——恰恰反了:对社交型玩家,人味是主通道,旁白才是氛围。
### 2.3 修复提案
| # | 提案 | 内容 | 改动面 | 新语音资产 |
|---|---|---|---|---|
| B1 | **botline 事件化:真人行为也说话**(P01 修法原案) | `ev kill`(熊/三连杀)→ 击杀者座位角色播 kill line;`ev skill` 清 ≥3 只 → 播 skill line;本防区漏怪 → 播 breach line;真人加入 → greet。真人"扮演"座位角色的设定(§3.3)本来就写了声音身份,只是没接线 | client:ev→botline 接线(slot→char 映射,slot 3 跳过或哨音);server 调度沿用 §7.4 | **0**(24 句直接复用) |
| B2 | **波间战报**(P06 建议原案) | waveclear 休整期播 1 条上一波队友战报("小筝在南边杀了两只""老周那边吃了一只熊"式,按座位角色声)。替换静默与"还在吗?",让"上滑状态"真能听到队友 | server:波间统计+调度;client:状态链加队友段 | **需新台词**(分档整句约 6-10 句,单音色 3 角色声)——预算敏感项,可先做降配版:botline wave 句 + 逐人 kill_band 复述(0 新资产) |
| B3 | **help_call/help_ack 永不被挤**(P06 建议原案) | 呼救/应答句进"必达队列"(等待而非丢弃),氛围句(greet/wave)才可丢;§8 R2 的"队列深 ≤1 新到顶掉"仅适用于氛围句 | client sfx 喊话调度优先级 | 0 |
| B4 | **看门狗与结算文案止血**(P03/P06/P10 三人共同点名) | 战斗态闲置提醒改社交化("你的防区安静,待命就行")或前两级纯震;结算链删"你还没开张"(0 出手局不播 kill_band0,S 结算后不许补刀) | client watchdog 触发条件(战斗态内有出击/击杀即不触发——P01 P1#1)+ 文案 | 新 1-2 句(kill_band0 换措辞可复用槽位重录) |
| B5 | 波间号角后 1.5s 无人声 → 轮转播一条 wave/greet 短句(bot 房行为推广到真人房) | server 定时器 | 0 |
### 2.4 预期指标变化
- 真人房每局人声句数:0 → ≥8(botline 事件化后天然达到:每房每局 kill×2-4 + wave×3 + ack/cover×1-2)。
- botline 丢弃率:56% → <10%(且丢的全是氛围句)。
- 波间静默占比(6-8s 死寂)→ 每 8s 休整期至少 1 条人声。
- 直接验收:**P06 型玩家的终评里"真人房比 bot 房冷"这句话消失**;复测她不退游。
---
## 3. 发现三:协作的必要性缺失——1 高手 + 3 观众满血通关,防区/补位/分工全体失业
### 3.1 现象
- 6 局快速局全部 S·营地耐久终值 10(**零损耗**);全场 28 局 S×26。
- P01 R1 一人 30/39 杀带飞 3 个真人(P5CA 房击杀分布 30/1/4/4);R2 3TJY 房 P07 27 杀 vs 队友 1/4/7;P05 三局 28/19/20 杀、零呼喊零沟通,三局全 S。
- P05.review:"满耐久 S 白送三局,零分辨力……三局零败绩、零危机时刻,没有压力就没有追分的理由。"P01.review P0#4:"单人可带飞……第二局打完,这个游戏对我就没有下一局了。修法:评级纳入个人弧错率、支援响应、旋风时机;难度随房间表现爬升,或加**多方向同步突入逼真人分工**。"
- 弱者侧的同一枚硬币:P03 出手 7→1→0,R2 0 出手 0 杀照样 S(详见发现四)。
- 设计文档自我对账:§1.6 风险③"协作流于形式(都能打所有方向=不需要队友)→ 对策:出击冷却 2.5s + 软防区 + bot 补位闭环"。实测三条对策全部失守——2.5s 冷却挡不住旋风斩(全场放出 108 次,P07 单局 13-14 次,8s CD 清**全场**内圈);软防区只是 bot 偏置与 pan 来源,对真人零约束;bot 补位闭环在满编房不存在。§15 裁决 10 自己写了"真人最优仍 23/24 满耐久 S('比 bot 强'空间保留)"——**这个保留空间就是"1 高手满血通关"的空间**。
### 3.2 根因
1. **威胁在时间上不重叠、在空间上不强制分流**:刷怪间隔 1.5-3s、狼逼近 8-10s,内圈峰值常态 1-2 只——单人"反应 ~1s + 冷却 2.5s"逐只点名绰绰有余,旋风斩兜底一切多贴脸。从不存在"两个弧同时贴脸、冷却只够打一边"的强制分工时刻。
2. **耐久预算过宽**:10 点耐久 vs 实际 6 局零损耗。协作的价值=省耐久,而耐久根本不掉,协作收益无从兑现。
3. **击杀纯个人账、无共享目标**:无任何"必须两人"的机制(无重伤/标记/同步门),防区对真人是纯装饰。
### 3.3 修复提案(按杠杆/改动面排序)
| # | 提案 | 内容 | 改动面 | 新语音资产 |
|---|---|---|---|---|
| C1 | **同步突入拍(齐压)**(P01 修法原案) | 波次剧本(§3.4/§3.5)在第 3-5 波插入 1-2 个"齐压拍":2-3 只**对向分布**的怪 eta 校准到同一秒进内圈。单人 2.5s 冷却数学上必漏一只——呼喊、补位、旋风斩分配(清哪边、留哪边)第一次成为唯一解 | server:wave 剧本生成器(seed 派生不变,可复现可单测);配一条齐压预警旁白 | 1 句 ×2 性别(或复用 threat_many) |
| C4 | **评级纳入协作与个人表现**(P01/P05 共同要求) | S 的条件从"耐久≥9"改为"耐久≥9 **且** 协同/守土分达标";个人弧错率、协同数进结算链。让 S 重新稀缺、让"带飞局"与"配合局"在结算上可分辨 | server:评级公式 + end 字段;client 结算链 | 结算链加 1-2 段(可复用 grade_* 句式改写) |
| C2 | **熊两击重伤制**(深度改动,复测后定) | bear 首击→重伤(不扣耐久、逼近减速 50%、声音变化),任意第二击收走;首击者记助攻。天然制造"我打残你来收"的协作微观瞬间与击杀归属故事 | server 怪物状态机 + 击杀/助攻结算;sfx 1 条(重伤痛吼,或 howl_bear 变调) | sfx 1 条 + kill/assist 播报分档(少量) |
| C3 | **旋风斩降格为 180° 扇形**(慎,宪法级手感) | 全场清→半场清,多向齐压时旋风斩不再单人兜底(与 C1 强耦合;若 C1 落地后单人+旋风仍可通,再启用) | server 裁决 1 行 + tut_skill 措辞 | 教学句重录 |
### 3.4 预期指标变化
- 满耐久 S 率:26/28 → 快速局 ≤30%(与 hunt-balance-scan 的"真人最优"基准重新校准)。
- 单人 ≥25 杀的"带飞局"胜率显著下降、出现真实失守局(P07 型玩家的危机时刻)。
- "防区"从装饰变成决策:percept 中出现"我守我的弧、他喊他那侧"的分工行为(复测人设自述可验)。
- 连带效应:压力出现 → 呼喊触发条件(发现一④)解除。
---
## 4. 发现四:弱者的参与感供给为零——击杀垄断 + 唯一个人叙事线是击杀数
### 4.1 现象
- P03(通勤客)出手 7→1→0 三局归零,R2 0 出手 0 杀照样 S,"你还没开张"两局念了 11 遍、S 结算后还补刀(R2 02:32.1)→ **删游戏**。P03.review P0#1:"不是我不想打,是永远轮不到我打——这是删游戏的直接原因。"
- P10 R2 从 7 出手掉到 2:"狼从出现到倒地就两三秒,三分钟我只出手 2 次;同期'还在吗'响了七次——我没挂机,是没怪可打,被当成挂机太冤了。"P1#3:"同一个游戏换一批人,体验从 9 分掉到怀疑自己做错了什么。"
- 快速局弱者击杀分布:P08 0/1、P04 4/1、P03 1/0——纯观众化。
- P03 建议 1(原案):"给每个防区留'保底猎物'……保证每人每局至少 3-5 次真实出手——我三局唯一记住的爽点就是击杀那记 pickup 震动,**有它我根本不会删**。"
- P03 建议 3:出手前置信号——"怪进入我可打的弧时给一声短音或轻震",顺带解决看门狗"催我滑、滑了空"的自相矛盾(R2 五次上滑全变"没有能打的怪")。
### 4.2 根因
1. **击杀权先到先得、无归属**:快的手全场收割,狼 2-3 秒死亡,慢者的弧永远是空的(P03 R2 十次上滑全部"没有能打的怪")。
2. **唯一的个人叙事线=击杀数**(kill_band 0="你还没开张"):没有报点、守土、助攻任何第二角色给弱者记功;辅助位"物理性不存在"(P06.review)。
3. 看门狗无法区分"等怪"与"挂机",把旁观者当逃兵念。
### 4.3 修复提案
| # | 提案 | 内容 | 改动面 | 新语音资产 |
|---|---|---|---|---|
| D1 | **保底猎物**(P03 原案) | 每波每座位至少 1 只怪刷进其防区、逼近时长 +2s;进内圈后前 3s **只对该座位出击有效**(他人打=miss,配"被保护"短音)。每人每局保底 3-5 次真实出手 | server:刷怪剧本 + 出击归属裁决(与 §3.5 方位轮转合并设计) | 0-1 条短音(可复用 call_whistle) |
| D2 | 助攻/标记回报 | 并入 A2:弱者单击呼喊标记的怪被队友击杀 → 协同分进结算。**报点就是弱者的武器**——听得到、点得出,就能参与 | 同 A2 | 同 A2 |
| D3 | **守土分**(个人第二叙事线) | 本防区击杀数、本防区零漏怪进个人结算与波间战报(B2 联动):"南边一寸没丢"——0 出手局也有可听的功劳 | server 统计 + 结算链/战报措辞 | 并入 B2 的新台词预算 |
| D4 | 文案止血(并入 B4) | 删"你还没开张";看门狗战斗态文案改"防区安静,待命";有出击记录不触发闲置 | client watchdog + 文案 | 1-2 句 |
### 4.4 预期指标变化
- 0 出手局出现率:2/28 → **0**;弱者(P03/P04/P08 型)局均出手 ≥3、击杀 ≥2。
- kill_band0 播出次数 → 0;"还在吗"战斗态误触发(对有操作玩家)→ 0。
- 复测去留:P03 型"观光一局就删"阈值不再被触发。
---
## 5. 发现五:bot 队友的定位需要升格——从"补位劳动力+氛围发生器"到"社交心脏 + 被需要对象"
### 5.1 现象
- R1 唯一有 bot 的房(JBP5:P10 + P09 + bot 老周)= **全场唯一呼喊-回应闭环的发生地** + P10 唯一 9 分体验。P10.review:"R1 有'听见了,这就到',R2 全程 0 条队友喊话。"
- P06 给设计师的一句话:"bot 那句'别慌,我来了'是我两局里唯一的留存理由,请让它在每一局、每一次呼喊后都能响起。"
- 但 bot 战力在真人房几乎不可感:JBP5 bot 仅 5 杀(P10 19、P09 15)——bot 不分担压力,也就不构成"我要照应他"的对象。
- bot 呼救条件苛刻(§7.2:主防区压力 ≥3 且 20s 节流)→ 真人房 bot 从不喊"来个人搭把手",玩家没有"被需要"时刻,呼喊的示范用法也看不到。
- 满编真人房直接 0 bot(§6.4:开局补至 max(3, 人类数))——**房间社交密度随人数增加而降为零**,这是"真人房比 bot 房冷"的结构性根源(见发现二)。
### 5.2 根因
设计没有回答"真人房里的 bot 是什么"。现状答案是无——而数据显示 bot 恰好承载着全部三条社交职能:应答(help_ack)、氛围(greet/wave/kill/breach)、示范(bot 呼救教玩家呼喊怎么用)。战力与话痨度又都调在最低档(裁决 10 调钝战力;§7.4 全局 10s≤2 条 + R2 挤占丢弃),且 botline 信道在实测中丢包 56%。
### 5.3 修复提案
| # | 提案 | 内容 | 改动面 | 新语音资产 |
|---|---|---|---|---|
| E2 | **bot 求援阈值放宽(真人房)** | sectorThreshold 3→2、节流 20s→12s,保证 bot 每局求援 1-2 次——既制造"被需要"时刻(P10:"我还没当上应别人'搭把手'的人"),又是呼喊用法的活教材 | server bot AI 参数(§7.2 数值) | 0 |
| E3 | bot 波间主动搭话 | 休整期轮转播 wave/greet/战报(B2/B5 联动),真人房不冷场 | server 调度 | 复用/并入 B2 |
| E5 | botline 送达率 | help_* 必达(B3);氛围句配额 10s≤2 → 10s≤3 或"每 bot 每波 ≤1,help 类不占配额" | client 调度 + server §7.4 参数 | 0 |
| E4 | bot 战力上调一档(复验后) | 反应带 eta≤2.0+rng → ≤2.5+rng、空转 80%→60%,使 bot 承担 1/4-1/3 击杀:分担弱者的"被带飞"尴尬,也保"真人比 bot 强"空间。**必须跑 hunt-balance-scan 多种子复验**,勿重蹈裁决 10 前的零泄漏覆辙 | server 参数 | 0 |
| E1 | 满编房保留 bot 声部(产品裁决项) | 方案 a:快速匹配目标 3 真人 + 1 bot(第 4 人进新房),保证每房有社交心脏;方案 b:满 4 真人时由系统扮演"老兵"声部(B1 事件化已覆盖大半 + E3 定时搭话)。**与"纯真人房"诉求存在张力,提请 synthesis 裁定** | matchmaking 逻辑(a)/ 调度器(b) | 0 |
### 5.4 预期指标变化
- 每房每局 botline/人声 ≥6 条(含真人事件化部分);bot 求援 ≥1 次/局。
- "应别人呼喊"的行为首次出现在真人身上(P10 的明确诉求);协同分 >0 的玩家覆盖率 ≥60%。
- JBP5 式闭环从 1/28 局 → 常态(每局 ≥1 次完整 callout→ack→cover 链)。
---
## 6. 修复优先级表
| 级 | 项 | 对应发现 | 改动面 | 新资产 | 预期主指标 |
|---|---|---|---|---|---|
| **P0** | A1 呼喊必有声回应(真人房 botline 兜底) | 一 | server 调度器 | 0 | callout→ack 100%≤3s |
| **P0** | B1 真人事件接 botline(座位角色说话) | 二 | client 接线 | 0 | 真人房人声 0→≥8/局 |
| **P0** | B3 help_call/help_ack 必达、氛围句才可丢 | 一/二/五 | client 调度 | 0 | botline 丢弃 56%→<10% |
| **P0** | A3 战斗态锁菜单(修 tap 吞噬;与上手视角 P0 合并实施) | 一 | client 手势分发 | 0 | P02 型"哑呼喊"消失 |
| **P0** | B4/D4 文案止血:删"你还没开张"+ 看门狗战斗态改写/改触发 | 二/四 | client + 文案 | 1-2 句 | 查岗误触发↓;P03 型羞辱循环断 |
| **P1** | C1 同步突入拍(齐压剧本) | 三 | server 剧本 | 1 句×2 | 满耐久 S 率≤30% |
| **P1** | C4 评级纳入协同/守土/弧错 | 三 | server 公式+结算 | 少量 | S 稀缺化;带飞局可分辨 |
| **P1** | A2/D2 呼喊标记+协同分 | 一/四 | server 结算 | 2-3 句 | 呼喊 ≥1/局·人 |
| **P1** | D1 保底猎物(防区归属 3s) | 四 | server 剧本+裁决 | 0-1 短音 | 0 出手局=0;弱者出手≥3/局 |
| **P1** | E2+E3 bot 求援放宽 + 波间搭话 | 五 | server 参数/调度 | 0 | bot 求援≥1/局 |
| **P2** | B2/D3 波间队友战报(完整版) | 二/四 | server+client | 6-10 句 | 波间静默↓;守土叙事成立 |
| **P2** | C2 熊两击重伤制 | 三 | server 状态机 | sfx 1 条+少量 | 助攻微观瞬间 |
| **P2** | C3 旋风斩降 180°(C1 不够再上) | 三 | server 裁决 | 教学句重录 | 单人兜底失效 |
| **P2** | E4 bot 战力上调一档(先跑 balance-scan) | 五 | server 参数 | 0 | bot 分担 1/4-1/3 杀 |
| **P2** | E1 满编房保留 bot 声部 / 3+1 匹配(synthesis 裁定) | 五 | matchmaking | 0 | 每房社交密度保底 |
### 给 synthesis 的一句话
呼喊-补位闭环不是玩家不会用,是**它在真人房从未被允许响过一次**:没有回报(bot-only 补位)、没有应答通道、没有触发压力、连仅有的尝试还被菜单吞掉。修好"必应答 + 真人也会说话 + 压力存在"这三件事(A1/B1/C1,前两项零新资产),再谈协作命题是否成立——P06 的退游和 P10 的 9 分是同一枚硬币的两面,而硬币目前只在 bot 房存在。