
Feel Lab
io.github.hpdkhoa由 GitHub 账号 hpdkhoa 发布v0.1.0更新于 Oct 24, 2026
An FPS feel checklist, measured from a timeline any game's probe can write
概览
根据探针写出的时间线评判 FPS 手感,按 82 项清单检查延迟、后坐、震动与音画同步。
- 可以做什么
- 按分组列出 82 项手感清单,标明哪些可测量、哪些需人工判断
- 列出探针应游玩的标准场景,以及每项指标的单位、规则与来源
- 按约定校验时间线文件
- 评判整个时间线文件夹,给出每项数值与结论并生成 Markdown 报告
- 把指标导出为 Weapon Lab 行格式,供门禁使用
- 适用场景
- 适合开发第一人称射击游戏的团队,希望用客观、可重复的检查代替主观试玩印象,评估射击、命中、受伤、爆炸与移动的手感。前提是游戏已有能记录相机帧以及声音、特效、伤害事件的探针。
- 运行要求
- 以 Python 包形式本地运行(pip install feellab-mcp),通过 stdio 通信。它本身不运行游戏,需要探针游玩标准场景并写出时间线文件,可选附带标签与 feel_rules.json。报告只写入 FEELLAB_OUT 指定的文件夹,默认为 ~/.feellab。
安装
在 SourceWeft 中
- 打开 控制台中的 Feel Lab,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Feel Lab
An FPS feel checklist, measured: every interaction a player has, checked from what the game really did.
[license: MIT] [Python 3.10+] [PyPI: feellab-mcp] [MCP Registry: feellab-mcp] [checklist: 82 interactions] [tools: 6] [timeline contract: v1]
Game feel is what a player feels between pressing a key and seeing the world answer. A shot should flash, sound and kick on the same frame; a round striking a wall should throw dust, make a sound and leave a hole; a hit taken should jerk the view and show where it came from; a blast nearby should shake the screen more than one far away. When one answer is missing or late, the game feels floaty or cheap, and nobody can say why.
Feel Lab turns that into checks. Your game's probe plays standard scenes and writes a timeline: the camera every frame, and every sound, effect, mark and damage event with its time. Feel Lab measures latency, kick, shake, presence, match and smoothness from it, and judges each item of an 82-item checklist. It never runs your game: any engine can write the timeline (docs/TIMELINE.md).
The checklist
Items no timeline can show (a colour-blind option, a reload cancel's timing) are left for a person, with what to
look for. feellab checklist prints them all.
What it measures
Every rule names its source. A range from game practice rather than evidence is marked as an estimate.
Try it
The demo writes timelines for two made-up games: "Juicy" passes every measured item; "Bare" (a debug dot where a round lands, no shake, silent steps) fails 17.
Use it in your game
- Have your probe play the scenes in
src/feellab/data/scenes.jsonand write one timeline each (docs/TIMELINE.md). Wrap the calls that start sounds and effects so each is recorded with its time; note the moments with no sound or effect of their own (a shot, an impact, a hit marker, damage, a flinch). - Record a camera frame before the scene's cause (a shot, a hit, a blast): kick and flinch are measured from it.
- Tag what you can (
"tags": ["muzzle"]). Where your asset names do not say what a sound or effect is for, put afeel_rules.jsonbeside the timelines:{"dry": "slidelock"}tells Feel Lab that a sound named after a slide lock is the click of an empty gun. feellab judge <folder>, orgate_rowsfor a gate.
The first game to use it (ToangTown) found 52 failing cases on four guns: a debug dot where a round lands, no shake anywhere, no blood, no footsteps, a climb that never comes back, a stall on the first shot.
Tools
FEELLAB_OUT is the only folder Feel Lab writes to (its reports); ~/.feellab by default.
Where it came from
Feel Lab was built for ToangTown, an Unreal 5.8 co-op zombie FPS, next to Weapon Lab (weaponlab-mcp), whose Gate can judge Feel Lab's rows as cases.
License
MIT
来源:README.md,提交 437580a
工具
0版本历史
1- v0.1.0最新Oct 15, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分