轻量正统 2D 格斗游戏 · 纯代码构建(零美术/零音频资产)· 确定性战斗内核
FightNexus 是一款在浏览器中运行的 2D 格斗游戏,核心理念是 「操作范式解耦」: 经典 / 现代 / 辅助三档输入范式共享完全相同的帧数据与伤害,只有「输入→意图」的映射不同——让新手和老兵在同一个竞技场公平对决。
在线试玩:https://wpf1022.github.io/fightnexus/
| 范式 | 输入方式 | 适合人群 |
|---|---|---|
| 经典 Classic | 搓招(236/623/360…)+ 按键 | 格斗游戏老兵 |
| 现代 Modern | 方向+按键简化出招、自动连段 | 普通玩家 |
| 辅助 Assist+ | 单键出招、长按持续 | 纯新手(暂不支持联机) |
- 60fps 固定步长确定性模拟(结算路径无随机数,同种子逐字节复现)
- 帧数据 Schema 单一事实源:startup / active / recovery / 判定 / 取消窗 / 无敌帧
- 三角色矩阵:凯尔(波动·立回)/ 莉娜(空战·压制)/ 戈罗(投技·霸体)
- 削伤、霸体吸收、投技拆解、okizeme、伤害修正阶梯、气绝槽、拆投
- 波动弹可被普通攻击打消
- 11 维行为参数 × 3 档难度 + 木桩,禁止输入预读(延迟感知)
- 与玩家共用同一套输入接口(可回放、可镜像对战)
- 高光自动捕捉 = 关键帧快照 + 输入流切片,结算页按输入重放(非录屏)
- 结算页「进步优先」:数据 + 教练提示(确反窗口、下一手推荐)
- 训练模式:连段课程卡 + 帧数据面板
- 动态难度(HSI 隐性技术指数)
- 色觉模式(标准/蓝黄/高对比)、震屏/闪光开关、字号缩放
- 中/英双语
无任何构建步骤,直接打开:
git clone https://github.com/wpf1022/fightnexus.git
# 双击 index.html,或
npx serve fightnexus| 动作 | 经典 | 现代 | 辅助+ |
|---|---|---|---|
| 移动 | ←→ | ←→ | ←→ |
| 轻/重攻击 | U / I | J / K(自动连段) | 单键自动 |
| 必杀 | ↓↘→+P 等搓招 | ↓↘→+攻击 或组合键 | 单键 |
| 超必杀 | 236236+P(3 格气) | ASSIST+重击(3 格气) | 单键(3 格气) |
| 投/拆投 | 防+攻击(近身) | 同 | 同 |
键位可在 设置 → 按键 中自定义(含冲突检测)。
node test/smoke.js # 平衡硬约束 BT-1~11 + 确定性 + 冒烟
node test/inputs.js # 三档输入管线 12 项
node test/edge.js # 边界场景 9 项(chip KO/角落推箱/快照恢复…)
node test/stress.js # 卡死扫描(随机对局×60)
node test/diag.js # AI 行为密度诊断- NetAbstraction 架构:
InputProvider接口(本地/AI/回放/空实现),step(input)纯函数,为 Rollback 联机预留 - 程序化骨骼动画:关节角姿态 + 关键帧插值,人物/场景/特效全部由代码生成
- Web Audio 程序化合成:BGM/SFX 无外部音频文件
- 纯原生 JS,零依赖,源码 < 1MB
MIT