声明:这是《全职高手》(蝴蝶蓝 著)的粉丝向同人作品,非官方,与原著作者、出版方及任何改编作品的权利方均无关联,不以任何形式盈利。 角色账号名、部分招式名等归原著权利人所有。如果权利人认为本项目侵犯了其权益,请在 Issues 联系我们,我们会立即下线相关内容。
把小说里的网游《荣耀》做成可以直接玩的第一人称动作游戏。浏览器运行,three.js 渲染,不用安装。
-
在线试玩:https://glory-game.vercel.app/play/ (支持电脑键鼠与手机触屏;首页 https://glory-game.vercel.app 有宣传片)
-
初版怎么做出来的:主要由 Claude Opus 5.5 在 Claude Code 里完成。约 15 小时,作者只发了二十来条消息提方向(“建模太丑”“动作僵硬”“要能切视角”“配音难听”“要能联机”),具体的代码、建模流程、平衡测试、宣传片和部署都是模型自己做的。初版代码约 1.35 万行,AI 互打约 1,200 局调平衡,外部 API(图生 3D、绑骨、动作库)约 34 美元。
-
后续更新:Codex 接续优化了完整身体与镜面、Blender模型、实际三维命中、体力和异常状态,并加入魔道飞行、召唤师四兽、战法炫纹、枪械后坐、新地图和三章同人剧情。当前12个转职职业加散人,共13张账号卡。章节出处、本作参数与未完成项见更新记录,本轮140场AI测试的范围见平衡报告。
-
最新修复:近战蓄力按实际蓄力比例结算伤害、击退和破防;连段第12击优先触发保护,保护下落时不再被后续攻击托起;AI按目标身体高度筛选接触招式,减少对高处目标使用够不着的招式。对应回归覆盖蓄力、保护与AI高度选择。
-
角色:原有12种玩家风格、Boss及两种小怪由概念图经 Tripo P1 图生3D、Meshy 自动绑骨得到,后续默认采用 Blender 优化模型;新召唤师暂用术士骨架派生,四兽为程序网格。动作来自共享动捕库,第一人称、镜面和其他视角绘制同一身体与骨架;武器、场景、特效由程序生成。部分生成模型的面部和衣料仍需精修。
-
声音:音效用 WebAudio 实时合成;解说由 macOS 神经语音预先合成,大招喊招由 Gemini 3.8 Flash TTS 按原著人物性格配音。
-
画面:泛光、调色、SMAA 后期管线;标题字体为思源宋体子集(自托管,国内网络可用)。
- 推荐:双击
start.command(macOS)/start.bat(Windows),或在本目录运行node server/server.mjs。需要 Node 18 以上,不用装依赖。浏览器打开http://localhost:8780/。 - 在线:部署到 Vercel 后(见下文“联机”),任何人打开网址即可玩、即可联机。
- 只玩单机:本目录运行
python3 -m http.server 8780,打开http://localhost:8780/。 - 电脑支持键盘和鼠标,推荐 Chrome / Edge。点一下画面锁定鼠标,
Esc暂停。 - 手机自动显示屏幕按钮,建议横屏:左下摇杆移动,拖动画面空白处转视角,右下点按技能。普攻长按蓄力 / 连射,格挡 / 瞄准长按保持;跳跃、闪避、锁定、千机伞形态、镜前换装、视角、数据和暂停均可触控。支持的浏览器可点“全屏”。手机首次使用默认流畅画质,可在设置里调整。
- 演示视频:
media/glory-demo.mp4(44 秒,越肩 / 第一人称 / 第三人称对战、镜子换装、Boss、团队赛)。
| 模式 | 内容 |
|---|---|
| 训练场 | 镜廊训练室:木桩、训练目标清单、召唤任意账号卡当陪练(四档难度)。走到镜子前按 G 换装,镜中是你实时的全身模型。 |
| 剧情模式 | 三章同人剧情,含对白、目标引导、战斗与通关进度保存。 |
| 个人赛 | 断桥庭院、联赛赛场、钟塔广场、霜桥遗迹四张地图可选;1v1三局两胜,每局3分钟。 |
| 擂台赛 | 3v3 车轮战,胜者留场并保留生命。 |
| 团队赛 | 3v3 同场混战,你和两名 AI 队友对三名 AI。 |
| 副本 | 寒铁遗庭:三波骸骨卫兵与冰晶术士 → 开门 → 两阶段 Boss「寒铁守卫」。可带两名 AI 队友。 |
| 联机对战 | 1v1,浏览器直连(WebRTC)。一人创建房间(可设密码),另一人输入 6 位房间号加入;也可以不经任何服务器,互相复制连接码。主机权威判定。 |
13张账号卡:君莫笑(散人·千机伞)、一叶之秋(战斗法师)、夜雨声烦(剑客)、大漠孤烟(拳法家)、一枪穿云(神枪手)、沐雨橙风(枪炮师)、索克萨尔(术士)、小手冰凉(牧师)、王不留行(魔道学者)、昧光(召唤师)、包子入侵(流氓),以及原创账号裂天(狂剑士)、影刃(刺客)。原著24职业的当前覆盖见职业清单。
| 键 | 作用 |
|---|---|
| WASD / 鼠标 | 移动 / 视角 |
| 左键 | 普攻(连按三段);近战按住=蓄力重击(霸体、武器蓝光,蓄满破防、金光);远程按住连射 |
| 右键 | 职业特技:格挡或瞄准;战法在后续命中窗口内点按发射炫纹。剑客完美格挡后可接左键“回锋” |
| Q E R F C X | 六个技能 · V 大招 |
| 空格 | 跳跃 / 受身;魔道在空中再次按下骑帚,按住上升、松开缓降 |
| Shift | 闪避冲刺(短暂无敌) |
| Ctrl | 按住疾跑,消耗体力 |
| 1–4 | 散人切换千机伞:剑 / 矛 / 枪 / 盾(技能会自动切换所需形态) |
| T | 观察目标,默认不自动转动视角 · Tab 数据面板 · F5 切换视角 · G 镜前换装 |
- 浮空与追击:挑空技能把人打上天,空中继续命中会把目标托住。
- 保护:同一连段第三次挑空或浮空超过 2 秒后不能再挑;连段伤害逐段递减到 45%;同一连段第 12 击强制击倒,起身后短暂无敌加霸体。
- 受身:落地前后按空格翻滚起身;否则倒地,倒地追击最多 3 击延长倒地。
- 霸体、破防、背击 +15%、暴击、完美格挡、取消(普攻收招接技能,技能收招末段接其他技能)。
- 攻防三角(借鉴《永劫无间》):蓄力重击带霸体可硬吃普攻;看准时机格挡=振刀,克制蓄力;普攻打断正在举盾等待振刀的对手。读招光效:霸体招式武器发蓝光,破防/不可格挡发金光。
- 体力与状态:疾跑、跳跃、闪避和受身消耗体力;致盲、眩晕、硬直、束缚、冻结、技能封印、睡眠、混乱及持续伤害分别处理,支持净化。详见原著机制与取舍。
- 三维命中:武器、拳脚和弹丸需接触实际身体体积;墙体、高度与倒地姿势影响命中。枪弹下坠,飞枪与飞炮有真实反向后坐。
- 第一人称:默认直接绘制世界身体,镜面与主相机共享同一帧几何和骨骼。战斗中没有背景音乐,靠空间声音判断方位。
src/game/:战斗(fighter / combat / ai)、模型与动画(model / anim / weapons / fpview)、关卡(levels/)、模式(modes / netmodes)。src/ui/:HUD 与菜单。src/engine/:输入、合成音效、语音、联机。server/server.mjs:零依赖静态文件 + WebSocket 房间服务器。tools/:自动化测试(pwrun.py单局、fpseq.py逐帧、balance.py平衡矩阵、tour.py画面巡检、nettest.py联机冒烟测试)。详见ARCHITECTURE.md。
游戏数据走浏览器直连(src/engine/p2p.js,WebRTC 数据通道),不经过服务器。连接前双方要交换一次连接信息:
- 房间号:
POST /api/sig(server/sig-core.mjs;本地由server/server.mjs提供,线上由 Vercel 函数api/sig.js提供,需配置 Upstash Redis 才提供六位房间号;未配置时自动改用手动传码)。 - 连接码:房主生成邀请连接码后进入房间(1/2),访客粘贴后生成回复码,再由房主粘贴确认。手动传码等待3分钟;不要把房主的邀请码当成访客回复码。房间号服务不可用时自动改用手动传码。
- TURN 配置:服务端设置
TURN_URLS(逗号分隔的turn:/turns:地址)及 Coturn REST 的TURN_SECRET;GET /api/ice签发一小时凭据,共享密钥不发送到浏览器。Vercel 与本地 Node 服务均支持。需要真实可用的中继服务器,仅填写变量或交换连接码不能消除运营商网络限制。 - 移动网络、手机热点或限制 UDP 的网络可能无法直连;热点不保证可用。部署可配置 TURN 中继,当前正式站尚未配置。
- 部署:
tools/vercel/build.sh && vercel deploy dist --prod。vercel.app在国内被 DNS 污染,国内访问需绑定自己的域名。
tools/promo/ 生成宣传片 media/glory-promo.mp4(约 67 秒,1080p):
promo.py(Mini 上跑):按分镜在游戏里逐帧录制原始镜头(?manual=1+ 录制用机位钩子game.camHook),同时拦截游戏的音效/喊招调用,用mix.html离线渲染成与画面同步的音效分轨,并渲染整段配乐。remotion/:Remotion 合成标题卡、转场、字幕、旁白与混音(src/data.js是分镜与时间线,npm run render)。- 旁白与大招喊招:Gemini 3.8 Flash TTS(
tts.py,vo-lines.json/ult-lines.json;喊招音色按原著人物性格匹配)。
site/:宣传首页(宣传片、特色、十三张账号卡、试玩与联机说明)。tools/vercel/build.sh 把首页、/play/ 游戏和 /api/sig 组装到 dist/,用 vercel deploy dist --prod 发布。宣传视频不在Git中;没有本地视频时自动使用已有海报,干净检出也能构建。
图生 3D 与绑骨/动作通过 fal.ai 付费接口完成:Tripo P1 图生 3D、Meshy 绑骨与动作库;早先一版 Hunyuan3D 模型保留在 assets/models/*.glb 作为无动捕时的后备。tools/pull-rigged.sh 是作者机器上拉取模型与生成清单的脚本,仅供参考。
- 本项目是《全职高手》的粉丝向同人作品,非官方、非商业,没有任何收入,也不接受赞助或付费。角色账号名、部分招式名取自原著,相关权利归原著权利人所有;数值、模型、关卡为本作原创,不代表原著设定。
- 如有任何可能侵犯权利的问题,请在 Issues 告知,我们会立即下线。
- 代码以 MIT 许可开源;美术、音频、视频素材以 CC BY-NC 4.0 许可,仅限非商业使用。详见 LICENSE。
- 第三方:three.js(MIT)、思源宋体 / Noto Serif SC 子集(SIL OFL 1.1)。角色模型由 Tripo、Meshy、Hunyuan3D 等服务生成,大招喊招由 Gemini TTS 生成。