Files
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

5.6 KiB
Raw Permalink Blame History

玩家大脑配置 Schema(玩家 agent 必读)

你(玩家 agent)要为自己的人设亲笔写一份 research/hunt-sim/players/PXX.config.json + 同名 .strategy.md 策略自述。配置驱动你在这场模拟里的「身体」:什么时候听见、 听得多准、多快出手、什么时候走神。请按你的人设卡如实地填——你就是这个人。

游戏速览(《围猎》联机纯音频守卫)

你和 2-3 名队友(可能是 bot 队友阿岩/小筝/老周)围守营地,野兽从 8 方位(N/NE/E/SE/S/SW/W/NW) 逼近,5 波约 3 分钟,营地耐久 10 点,撑过 5 波天亮就赢。

  • 听力:狼/熊逼近有持续脚步声(loop),左右声像(pan)告诉你它在左边还是右边; 前后只能靠音量——身后的声音发闷(音量 ×0.6),N 和 S 声像都在正中,全靠闷不闷区分。 远处只有一声嚎叫,近了(约 4 秒突入内)才能出手打到。
  • 手势:朝声音的方向滑动=出击(滑向覆盖 ±45° 弧,弧内最近一只;冷却 2.5 秒); 单击=呼喊支援(bot 队友会来你这边补位);双击=旋风斩(清掉身边一圈,冷却 8 秒; 冷却中双击=重听威胁播报);上滑=听状态、下滑=菜单(注意:战斗不暂停!)。
  • 旁白会播报波次/警报(营地被突入等),bot 队友会喊话(从他们的方位传来)。

配置字段(全部可选,缺省=中等水平;数值必须落在建议区间内)

{
  "persona": "P01 老鹰",          // 人设卡代号+名
  "name": "老鹰",                 // 游戏内显示名(1-24 字)
  "gender": "male",              // 旁白音色偏好 male|female(你自己听哪个舒服)
  "seed": 7,                     // 随机种子(任意整数,决定你的犹豫细节)

  "perception": {                // —— 你的耳朵与反应底子 ——
    "noticeMsMin": 500,          // 内圈脚步声出现→你注意到:最小延迟 ms [300-1500]
    "noticeMsMax": 900,          // 同上最大延迟(你在带内随机)[400-2200]
    "rearDiscrim": 0.85,         // 前后判对率:音量发闷线索你能用多好 [0.5-0.98]
                                 //   0.5=纯猜(N/S 各半)、0.85=熟练、0.95+=老猎手
    "adjSlideP": 0.12,           // 相邻方位误听率(多被 ±45° 弧无害吸收)[0.05-0.35]
    "howlHearP": 0.7,            // 远处那声嚎叫你注意到的概率 [0.3-0.95]
    "voiceMaskFactor": 0.8,      // 旁白在播时你的察觉延迟放大倍数 [0-2](0=丝毫不受影响)
    "etaErrS": 0.4               // 你对"还有几秒突入"的估计误差 ±秒 [0.2-1.5]
  },

  "attack": {                    // —— 出手 ——
    "reactMs": 700,              // 决定打到出手延迟 ms [400-2000]
    "panicEtaS": 2.0,            // 感觉还有 N 秒就突入时你会慌(提前出手优先)[1.0-3.0]
    "noviceSpamP": 0.05,         // 冷却没好还忍不住乱滑的概率/评估窗 [0-0.5]
    "bearFirst": true            // 听到熊(-2 耐久)优先打 [bool]
  },

  "skill": {                     // —— 旋风斩 ——
    "innerThreshold": 3,         // 身边逼近几只才舍得放 [1-5](囤技能的人填高)
    "useP": 0.8,                 // 每次满足条件的释放意愿 [0.1-1]
    "panicEtaS": 1.2,            // 有怪 1.2 秒内贴脸时无条件放 [0.6-2.0]
    "cooldownAware": true        // 你掐得准 8 秒冷却吗 [bool](false=冷却中会双击→变成重听威胁)
  },

  "callout": {                   // —— 呼喊支援 ——
    "sectorThreshold": 3,        // 感觉自己这边几只压力才喊 [2-5](社恐/独狼填 99=从不主动)
    "useP": 0.6                  // 满足条件时喊的概率 [0-1]
  },

  "habits": {                    // —— 习惯与小动作 ——
    "lobbyTap": "eager",         // 等待房里你会不会单击立即开局 eager|wait
    "statusCheck": "waveclear",  // 波间休整时上滑听状态 never|waveclear|curious
    "menuProb": 0.0,             // 战斗中开一下菜单的概率(每局一次判定)[0-0.5]
                                 //   (菜单不暂停战斗,开了会漏怪——真实风险)
    "lapses": [                  // 分心窗(通勤被打断/看视频走神);无则 []
      { "atMin": 40, "atMax": 90, "durMin": 6, "durMax": 14, "reason": "地铁报站" }
    ],                           // atMin/Max=局内第几秒开始,durMin/Max=持续秒数
    "netDrop": null,             // 断网剧本:{"atMin":50,"atMax":120,"durMin":6,"durMax":15}
                                 //   或 null(网络一直稳)
    "bluetoothMs": 0             // 蓝牙耳机额外动作延迟 ms [0-250]
  },

  "teach": {                     // —— 首局教学 ——
    "t1WrongP": 0.2,             // 教学第一滑方向搞错的概率 [0-0.7]
    "tapDelayMs": 800,           // 听完一句指令到动手的延迟 ms [300-2500]
    "skipAfterS": null           // 教学超过 N 秒还没完你会下滑跳过;null=耐心听完
  }
}

策略自述(.strategy.md,同目录同名)

用第一人称写 200-400 字:你怎么理解这个游戏、你打算怎么打、你最担心什么、 什么情况下你会不想玩了。这段话会跟你的终评一起留给设计分析 agent 对照。

纪律

  • 数值落区间;越界会被竞技场拒绝(clamp 并记录)。
  • 不要写完美主义配置——真实的人有短板,短板正是设计要照顾的对象。
  • 配置写完即可离场,身体由竞技场驱动;局间会请你回来读转写、决定去留。