《纸韵长安》研发实习
在心象矩阵参与 UE5 卡牌肉鸽、LLM 叙事和 Web UI 开发的一段实习记录。

《纸韵长安》是心象矩阵开发的一款 UE5 卡牌肉鸽 RPG,结合了 LLM 驱动的多分支叙事。我在项目中做技术策划和客户端开发,主要使用 Lua / UnLua,负责卡牌玩法的部分规划与完整落地,也参与 Web UI 和开发工具的接入。
卡牌与战斗#
卡牌玩法参考自《杀戮尖塔》。在此基础上,使得敌我双方的行动方式变得对等:敌方也拥有卡牌池,能量槽,每次行动都是打出一张卡牌。
围绕项目中的 211 张卡牌,我搭建了可脱离 UE Editor 运行的 Lua 测试框架。配置检查遍历全部卡牌,行为测试验证代表性的结算与组合机制。测试依靠与表现层解耦的战斗逻辑层。
开发工具#
Web UI系统#
Web UI 使用 React、TypeScript 和 Vite,开发时可以独立调试和热更新,再以静态资源接入游戏。Lua 负责消息通信:游戏把状态推给界面,界面把玩家操作传回来,战斗状态的修改仍留在游戏侧。
具体实现上,插件基于 UE 的 WebBrowser 模块,在 Slate 控件中嵌入由 CEF(Chromium 嵌入式框架)驱动的浏览器。HTML、CSS 和 JavaScript 仍由浏览器完成布局、绘制和执行,开启透明背景后,网页中的透明区域便能露出下方的游戏场景,形成 HUD。
页面加载分为开发和打包两种模式:开发时浏览器访问本地 Vite 服务,修改前端即可热更新;打包后由插件的本地资源处理器接管约定域名下的请求,从游戏内容目录读取网页、脚本、样式和图片。
UE 与网页之间通过绑定到浏览器的 UObject 通信:JavaScript 调用它暴露的方法,把 JSON 消息传回 C++,再转发给 Lua;反向则由 C++ 执行 JavaScript,将经过 Base64 编码的 JSON 交给网页接收函数。
整个Web UI系统通过一个可跨项目复用的插件来搭建。
MCP 与开发工具#
我也配置了 MCP 工具、编写开发 skill,辅助策划与其他开发者制作玩法、场景和 UI ,加快了团队的开发速度。