Files
SoundGame/research/hunt-sim/rounds/R1-quick/matches/room-P5CA.match.json
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

368 lines
5.6 KiB
JSON

{
"room": "P5CA",
"seed": 4046071970,
"round": "R1-quick",
"wallStart": 1789746103524,
"roster": [
{
"id": "P01",
"persona": "P01 老鹰",
"slot": 0,
"name": "老鹰",
"bot": false,
"char": "yan",
"sector": [
"N",
"NE"
],
"alive": true
},
{
"id": "P03",
"persona": "P03 通勤客",
"slot": 1,
"name": "通勤客",
"bot": false,
"char": "zheng",
"sector": [
"E",
"SE"
],
"alive": true
},
{
"id": "P02",
"persona": "P02 小鹿",
"slot": 2,
"name": "小鹿",
"bot": false,
"char": "zhou",
"sector": [
"S",
"SW"
],
"alive": true
},
{
"id": "P04",
"persona": "P04 老赵",
"slot": 3,
"name": "老赵",
"bot": false,
"char": null,
"sector": [
"W",
"NW"
],
"alive": true
}
],
"result": {
"win": true,
"dur": 10,
"grade": "S",
"kills": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
}
},
"waves": [
1,
2,
3,
4,
5
],
"spawnsByWave": {
"1": 4,
"2": 6,
"3": 8,
"4": 9,
"5": 12
},
"breaches": [],
"killsBySlot": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
},
"perPlayer": {
"P01": {
"result": {
"win": true,
"dur": 10,
"grade": "S",
"myKills": 30,
"kills": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
},
"wave": 5
},
"summary": {
"attacks": 63,
"attacksCorrectArc": 37,
"attacksWrongArc": 26,
"misses": 0,
"kills": 23,
"breachesTotal": 0,
"callouts": 0,
"skills": 7,
"helpAcksHeard": 0,
"botlinesHeard": 0,
"voiceLinesHeard": 58,
"voiceCuts": 15,
"howlsDropped": 0,
"lapses": 0,
"spamSwipes": 21,
"threatRelisten": 0,
"watchdogIdles": 0,
"brainStats": {
"loopsHeard": 39,
"registered": 39,
"noticeMedianMs": 1000,
"noticeMaskedMedianMs": 1067,
"noticeCleanMedianMs": 761,
"gestures": 68
}
}
},
"P03": {
"result": {
"win": true,
"dur": 10,
"grade": "S",
"myKills": 1,
"kills": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
},
"wave": 5
},
"summary": {
"attacks": 1,
"attacksCorrectArc": 1,
"attacksWrongArc": 0,
"misses": 0,
"kills": 1,
"breachesTotal": 0,
"callouts": 0,
"skills": 0,
"helpAcksHeard": 0,
"botlinesHeard": 0,
"voiceLinesHeard": 46,
"voiceCuts": 0,
"howlsDropped": 0,
"lapses": 2,
"spamSwipes": 3,
"threatRelisten": 0,
"watchdogIdles": 6,
"brainStats": {
"loopsHeard": 36,
"registered": 12,
"noticeMedianMs": 1368,
"noticeMaskedMedianMs": null,
"noticeCleanMedianMs": 1368,
"gestures": 6
}
}
},
"P02": {
"result": {
"win": true,
"dur": 10,
"grade": "S",
"myKills": 4,
"kills": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
},
"wave": 5
},
"summary": {
"attacks": 12,
"attacksCorrectArc": 7,
"attacksWrongArc": 5,
"misses": 0,
"kills": 2,
"breachesTotal": 0,
"callouts": 1,
"skills": 2,
"helpAcksHeard": 0,
"botlinesHeard": 0,
"voiceLinesHeard": 40,
"voiceCuts": 1,
"howlsDropped": 0,
"lapses": 1,
"spamSwipes": 4,
"threatRelisten": 0,
"watchdogIdles": 4,
"brainStats": {
"loopsHeard": 38,
"registered": 35,
"noticeMedianMs": 1341,
"noticeMaskedMedianMs": 1818,
"noticeCleanMedianMs": 1127,
"gestures": 12
}
}
},
"P04": {
"result": {
"win": true,
"dur": 10,
"grade": "S",
"myKills": 4,
"kills": {
"0": 30,
"1": 1,
"2": 4,
"3": 4
},
"wave": 5
},
"summary": {
"attacks": 4,
"attacksCorrectArc": 1,
"attacksWrongArc": 3,
"misses": 0,
"kills": 0,
"breachesTotal": 0,
"callouts": 0,
"skills": 2,
"helpAcksHeard": 0,
"botlinesHeard": 0,
"voiceLinesHeard": 44,
"voiceCuts": 0,
"howlsDropped": 0,
"lapses": 1,
"spamSwipes": 0,
"threatRelisten": 0,
"watchdogIdles": 4,
"brainStats": {
"loopsHeard": 37,
"registered": 14,
"noticeMedianMs": 1575,
"noticeMaskedMedianMs": 1818,
"noticeCleanMedianMs": 1451,
"gestures": 9
}
}
}
},
"attackLocalization": {
"P01": {
"total": 63,
"correct": 37,
"mirrorErr": 18,
"otherErr": 8,
"byTrueDir": {
"N": {
"total": 11,
"correct": 6
},
"SE": {
"total": 3,
"correct": 3
},
"SW": {
"total": 9,
"correct": 6
},
"NW": {
"total": 11,
"correct": 3
},
"NE": {
"total": 13,
"correct": 3
},
"W": {
"total": 6,
"correct": 6
},
"E": {
"total": 3,
"correct": 3
},
"S": {
"total": 7,
"correct": 7
}
}
},
"P03": {
"total": 1,
"correct": 1,
"mirrorErr": 0,
"otherErr": 0,
"byTrueDir": {
"NE": {
"total": 1,
"correct": 1
}
}
},
"P02": {
"total": 12,
"correct": 7,
"mirrorErr": 4,
"otherErr": 1,
"byTrueDir": {
"W": {
"total": 1,
"correct": 0
},
"N": {
"total": 3,
"correct": 1
},
"S": {
"total": 1,
"correct": 0
},
"NE": {
"total": 4,
"correct": 3
},
"SW": {
"total": 2,
"correct": 2
},
"NW": {
"total": 1,
"correct": 1
}
}
},
"P04": {
"total": 4,
"correct": 1,
"mirrorErr": 3,
"otherErr": 0,
"byTrueDir": {
"NW": {
"total": 2,
"correct": 0
},
"N": {
"total": 1,
"correct": 0
},
"S": {
"total": 1,
"correct": 1
}
}
}
}
}