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
This commit is contained in:
@@ -0,0 +1,272 @@
|
||||
{
|
||||
"durations": {
|
||||
"bgm/hunt": 90,
|
||||
"bgm/menu": 90,
|
||||
"sfx/atk_swish": 0.3,
|
||||
"sfx/atk_whoosh": 0.3,
|
||||
"sfx/breach_thud": 0.6,
|
||||
"sfx/call_whistle": 0.6,
|
||||
"sfx/horn_wave": 0.9,
|
||||
"sfx/howl_bear": 1,
|
||||
"sfx/howl_wolf": 0.8,
|
||||
"sfx/join_chime": 0.4,
|
||||
"sfx/kill_bear": 0.699977,
|
||||
"sfx/kill_wolf": 0.5,
|
||||
"sfx/loop_bear": 4,
|
||||
"sfx/loop_wolf": 4,
|
||||
"sfx/npc_yan_breach": 2.16,
|
||||
"sfx/npc_yan_cover": 1.68,
|
||||
"sfx/npc_yan_greet": 2.24,
|
||||
"sfx/npc_yan_help_ack": 1.84,
|
||||
"sfx/npc_yan_help_call": 2.8,
|
||||
"sfx/npc_yan_kill": 0.88,
|
||||
"sfx/npc_yan_skill": 3.52,
|
||||
"sfx/npc_yan_wave": 2.08,
|
||||
"sfx/npc_zheng_breach": 1.2,
|
||||
"sfx/npc_zheng_cover": 0.8,
|
||||
"sfx/npc_zheng_greet": 1.44,
|
||||
"sfx/npc_zheng_help_ack": 1.12,
|
||||
"sfx/npc_zheng_help_call": 2.32,
|
||||
"sfx/npc_zheng_kill": 0.4,
|
||||
"sfx/npc_zheng_skill": 0.88,
|
||||
"sfx/npc_zheng_wave": 1.76,
|
||||
"sfx/npc_zhou_breach": 2.4,
|
||||
"sfx/npc_zhou_cover": 1.44,
|
||||
"sfx/npc_zhou_greet": 2.72,
|
||||
"sfx/npc_zhou_help_ack": 1.6,
|
||||
"sfx/npc_zhou_help_call": 2.8,
|
||||
"sfx/npc_zhou_kill": 2.16,
|
||||
"sfx/npc_zhou_skill": 1.92,
|
||||
"sfx/npc_zhou_wave": 1.36,
|
||||
"sfx/skill_spin": 0.8,
|
||||
"voice/female/breach": 1.2,
|
||||
"voice/female/breach_heavy": 1.92,
|
||||
"voice/female/danger_low": 2.32,
|
||||
"voice/female/end_again": 2.16,
|
||||
"voice/female/end_lose": 1.68,
|
||||
"voice/female/end_rank": 2.16,
|
||||
"voice/female/end_win": 1.68,
|
||||
"voice/female/gd_idle": 1.92,
|
||||
"voice/female/gd_invalid": 1.52,
|
||||
"voice/female/grade_a": 2.32,
|
||||
"voice/female/grade_b": 2.96,
|
||||
"voice/female/grade_c": 2.64,
|
||||
"voice/female/grade_s": 3.28,
|
||||
"voice/female/help_main": 14.24,
|
||||
"voice/female/hp_band1": 1.92,
|
||||
"voice/female/hp_band2": 1.28,
|
||||
"voice/female/hp_band3": 1.12,
|
||||
"voice/female/hp_band4": 1.12,
|
||||
"voice/female/intro_1": 3.28,
|
||||
"voice/female/intro_2": 2.72,
|
||||
"voice/female/key/end_again": 1.84,
|
||||
"voice/female/key/gd_idle": 2.4,
|
||||
"voice/female/key/help_main": 12.92,
|
||||
"voice/female/key/room_wait": 3.76,
|
||||
"voice/female/key/sys_menu": 3.52,
|
||||
"voice/female/key/tut_attack": 5.2,
|
||||
"voice/female/key/tut_callout": 3.36,
|
||||
"voice/female/key/tut_rule": 4.64,
|
||||
"voice/female/key/tut_skill": 3.04,
|
||||
"voice/female/key/tut_skill_cd": 4.96,
|
||||
"voice/female/key/tut_status": 4.96,
|
||||
"voice/female/kill_band0": 0.96,
|
||||
"voice/female/kill_band1": 1.36,
|
||||
"voice/female/kill_band2": 2.56,
|
||||
"voice/female/net_back": 1.76,
|
||||
"voice/female/net_gone": 3.2,
|
||||
"voice/female/net_lost": 2,
|
||||
"voice/female/net_to_bot": 2.4,
|
||||
"voice/female/room_start": 2.56,
|
||||
"voice/female/room_wait": 4.16,
|
||||
"voice/female/settings_hint": 1.44,
|
||||
"voice/female/skill_ready": 1.6,
|
||||
"voice/female/st_wave_a": 0.96,
|
||||
"voice/female/st_wave_b": 1.04,
|
||||
"voice/female/st_wave_c": 0.96,
|
||||
"voice/female/sys_menu": 3.12,
|
||||
"voice/female/sys_menu_help": 1.2,
|
||||
"voice/female/sys_menu_home": 1.44,
|
||||
"voice/female/sys_menu_resume": 1.2,
|
||||
"voice/female/team_3": 1.28,
|
||||
"voice/female/team_4": 1.28,
|
||||
"voice/female/threat_few": 1.68,
|
||||
"voice/female/threat_many": 2.16,
|
||||
"voice/female/threat_none": 1.76,
|
||||
"voice/female/tut_attack": 4.72,
|
||||
"voice/female/tut_breach": 4.24,
|
||||
"voice/female/tut_callout": 3.52,
|
||||
"voice/female/tut_callout_ok": 2,
|
||||
"voice/female/tut_done": 3.6,
|
||||
"voice/female/tut_kill_ok": 2.88,
|
||||
"voice/female/tut_rule": 4,
|
||||
"voice/female/tut_skill": 3.68,
|
||||
"voice/female/tut_skill_cd": 4.56,
|
||||
"voice/female/tut_skip": 1.2,
|
||||
"voice/female/tut_status": 3.68,
|
||||
"voice/female/wave_band1": 1.2,
|
||||
"voice/female/wave_band2": 1.36,
|
||||
"voice/female/wave_band3": 2.56,
|
||||
"voice/female/wave_band4": 2.4,
|
||||
"voice/female/wave_band5": 1.76,
|
||||
"voice/female/wave_clear": 1.36,
|
||||
"voice/male/breach": 2.4,
|
||||
"voice/male/breach_heavy": 2.72,
|
||||
"voice/male/danger_low": 3.28,
|
||||
"voice/male/end_again": 2,
|
||||
"voice/male/end_lose": 2.08,
|
||||
"voice/male/end_rank": 2.4,
|
||||
"voice/male/end_win": 2.64,
|
||||
"voice/male/gd_idle": 2.64,
|
||||
"voice/male/gd_invalid": 2.72,
|
||||
"voice/male/grade_a": 3.12,
|
||||
"voice/male/grade_b": 2.56,
|
||||
"voice/male/grade_c": 2.64,
|
||||
"voice/male/grade_s": 3.44,
|
||||
"voice/male/help_main": 9.36,
|
||||
"voice/male/hp_band1": 2.4,
|
||||
"voice/male/hp_band2": 2.16,
|
||||
"voice/male/hp_band3": 1.84,
|
||||
"voice/male/hp_band4": 1.84,
|
||||
"voice/male/intro_1": 3.6,
|
||||
"voice/male/intro_2": 4,
|
||||
"voice/male/key/end_again": 2.32,
|
||||
"voice/male/key/gd_idle": 3.92,
|
||||
"voice/male/key/help_main": 13,
|
||||
"voice/male/key/room_wait": 4.96,
|
||||
"voice/male/key/sys_menu": 3.6,
|
||||
"voice/male/key/tut_attack": 5.12,
|
||||
"voice/male/key/tut_callout": 3.68,
|
||||
"voice/male/key/tut_rule": 6.56,
|
||||
"voice/male/key/tut_skill": 3.92,
|
||||
"voice/male/key/tut_skill_cd": 6.48,
|
||||
"voice/male/key/tut_status": 7.84,
|
||||
"voice/male/kill_band0": 1.52,
|
||||
"voice/male/kill_band1": 1.76,
|
||||
"voice/male/kill_band2": 1.44,
|
||||
"voice/male/net_back": 2.32,
|
||||
"voice/male/net_gone": 2.96,
|
||||
"voice/male/net_lost": 3.2,
|
||||
"voice/male/net_to_bot": 2.88,
|
||||
"voice/male/room_start": 3.12,
|
||||
"voice/male/room_wait": 5.36,
|
||||
"voice/male/settings_hint": 1.6,
|
||||
"voice/male/skill_ready": 1.6,
|
||||
"voice/male/st_wave_a": 1.76,
|
||||
"voice/male/st_wave_b": 1.2,
|
||||
"voice/male/st_wave_c": 1.36,
|
||||
"voice/male/sys_menu": 3.76,
|
||||
"voice/male/sys_menu_help": 1.44,
|
||||
"voice/male/sys_menu_home": 2.24,
|
||||
"voice/male/sys_menu_resume": 1.28,
|
||||
"voice/male/team_3": 1.76,
|
||||
"voice/male/team_4": 1.44,
|
||||
"voice/male/threat_few": 2.72,
|
||||
"voice/male/threat_many": 2.56,
|
||||
"voice/male/threat_none": 2.08,
|
||||
"voice/male/tut_attack": 6.48,
|
||||
"voice/male/tut_breach": 5.12,
|
||||
"voice/male/tut_callout": 5.04,
|
||||
"voice/male/tut_callout_ok": 3.12,
|
||||
"voice/male/tut_done": 4.72,
|
||||
"voice/male/tut_kill_ok": 3.36,
|
||||
"voice/male/tut_rule": 5.2,
|
||||
"voice/male/tut_skill": 4.48,
|
||||
"voice/male/tut_skill_cd": 6.08,
|
||||
"voice/male/tut_skip": 2.64,
|
||||
"voice/male/tut_status": 5.92,
|
||||
"voice/male/wave_band1": 2,
|
||||
"voice/male/wave_band2": 2.8,
|
||||
"voice/male/wave_band3": 3.6,
|
||||
"voice/male/wave_band4": 2.8,
|
||||
"voice/male/wave_band5": 2.32,
|
||||
"voice/male/wave_clear": 1.76
|
||||
},
|
||||
"voiceText": {
|
||||
"intro_1": "夜幕降临,野兽在山林里游荡。",
|
||||
"intro_2": "你们是守夜的猎人,营地就在身后。",
|
||||
"room_wait": "房间已开好,等同伴到齐。单击,立即开局。",
|
||||
"room_start": "狩猎开始,先听声音的方向。",
|
||||
"tut_rule": "野兽会从八个方向围上来。声音在哪边,就往哪边滑。",
|
||||
"tut_attack": "听,有狼在靠近。朝声音的方向,滑一下。",
|
||||
"tut_kill_ok": "好,杀掉了。就是这样。",
|
||||
"tut_callout": "单击一下,呼喊支援,队友会来帮你。",
|
||||
"tut_callout_ok": "听到没,同伴回应你了。",
|
||||
"tut_skill": "双击,旋风斩,清掉身边一圈。",
|
||||
"tut_skill_cd": "旋风斩有八秒冷却。冷却中双击,重新听威胁。",
|
||||
"tut_status": "上滑,听营地状态。下滑,打开菜单。",
|
||||
"tut_breach": "野兽冲进营地,营地就会受损。撑过五波就赢。",
|
||||
"tut_done": "教学完了。真正的围猎,现在开始。",
|
||||
"tut_skip": "已跳过教学,开打。",
|
||||
"wave_band1": "第一波来了,别慌。",
|
||||
"wave_band2": "第二波,比刚才多。",
|
||||
"wave_band3": "第三波,有大家伙混在里面。",
|
||||
"wave_band4": "第四波,更快,更多。",
|
||||
"wave_band5": "最后一波,全来了!",
|
||||
"wave_clear": "这一波,守住了。",
|
||||
"hp_band1": "营地固若金汤。",
|
||||
"hp_band2": "营地受了些损伤。",
|
||||
"hp_band3": "营地损毁过半。",
|
||||
"hp_band4": "营地快守不住了。",
|
||||
"st_wave_a": "还在头几波。",
|
||||
"st_wave_b": "打到中段了。",
|
||||
"st_wave_c": "最后一波了。",
|
||||
"team_3": "三名猎人在守。",
|
||||
"team_4": "四名猎人全在。",
|
||||
"kill_band0": "你还没开张。",
|
||||
"kill_band1": "你小有斩获。",
|
||||
"kill_band2": "你战果累累。",
|
||||
"threat_none": "近处暂时没有野兽。",
|
||||
"threat_few": "有野兽贴近了,听方向出手。",
|
||||
"threat_many": "四周全是动静,快出手!",
|
||||
"breach": "有野兽冲进营地了!",
|
||||
"breach_heavy": "巨兽撞进营地,损伤很重!",
|
||||
"danger_low": "营地危险了,一只都不能再漏!",
|
||||
"skill_ready": "旋风斩准备好了。",
|
||||
"end_win": "天亮了,营地还在。",
|
||||
"end_lose": "营地守不住了,撤退!",
|
||||
"grade_s": "评级,S!完美的围猎。",
|
||||
"grade_a": "评级,A。漂亮。",
|
||||
"grade_b": "评级,B。守得还行。",
|
||||
"grade_c": "评级,C。险胜。",
|
||||
"end_rank": "成绩已记入猎手榜。",
|
||||
"end_again": "单击,再猎一局。",
|
||||
"net_lost": "与营地断了联系,正在重连。",
|
||||
"net_back": "联系恢复了,接着打。",
|
||||
"net_to_bot": "有猎人离队,老猎手顶上。",
|
||||
"net_gone": "回不去那场围猎了,回大厅。",
|
||||
"sys_menu": "菜单。单击切换,双击确认。",
|
||||
"sys_menu_resume": "回到猎场。",
|
||||
"sys_menu_help": "重新听帮助。",
|
||||
"sys_menu_home": "退出房间,回大厅。",
|
||||
"help_main": "朝声音的方向滑,就是出击。单击呼喊支援,双击旋风斩。上滑状态,下滑菜单。",
|
||||
"settings_hint": "音色、语速、背景音乐,请回大厅修改。",
|
||||
"gd_invalid": "这个操作现在用不上。",
|
||||
"gd_idle": "听声音的方向,滑过去。",
|
||||
"npc_yan_greet": "我来了,这边有我。",
|
||||
"npc_yan_help_call": "我这侧吃紧,来个人搭把手!",
|
||||
"npc_yan_help_ack": "撑住,我来了。",
|
||||
"npc_yan_cover": "这边交给我。",
|
||||
"npc_yan_kill": "拿下!",
|
||||
"npc_yan_breach": "漏了一个,都小心。",
|
||||
"npc_yan_skill": "都闪开,看我的!",
|
||||
"npc_yan_wave": "新一波,稳住。",
|
||||
"npc_zheng_greet": "小筝到位,开工啦。",
|
||||
"npc_zheng_help_call": "这边太多了,谁来帮一下!",
|
||||
"npc_zheng_help_ack": "别慌,我来了!",
|
||||
"npc_zheng_cover": "这边我罩着。",
|
||||
"npc_zheng_kill": "搞定!",
|
||||
"npc_zheng_breach": "哎呀,漏了一个!",
|
||||
"npc_zheng_skill": "看我清场!",
|
||||
"npc_zheng_wave": "又来一波,打起精神。",
|
||||
"npc_zhou_greet": "老周我守着,放心。",
|
||||
"npc_zhou_help_call": "我这边压不住了,来人。",
|
||||
"npc_zhou_help_ack": "听见了,这就到。",
|
||||
"npc_zhou_cover": "这边交给我吧。",
|
||||
"npc_zhou_kill": "嗯,解决了。",
|
||||
"npc_zhou_breach": "啧,溜进去一只。",
|
||||
"npc_zhou_skill": "让让,老骨头活动活动。",
|
||||
"npc_zhou_wave": "听,又来了。"
|
||||
},
|
||||
"at": "2026-09-18T14:36:19.423Z"
|
||||
}
|
||||
Reference in New Issue
Block a user