跳到主要内容

更新日志

Monster Capture Engine 的所有重要变更均记录于此。

v1.1.0 (2026-07-13)​

本次发布新增了玩家自建空间(秘密基地与玩家自有道馆)、一个短暂性的对战塔、基地内的实时同场共存,并使 Essentials 导入器实现了重大跃升 —— 已通过一次真实的完整项目 v21.1 导入得到验证。它同时带来了一波发布前的加固与性能优化工作。

玩法​

  • 对战塔 —— 暂停菜单中新增一个入口,用于启动一次短暂性的对战塔挑战(EphemeralTowerLauncher):一个自成一体的挑战阶梯,它会临时生成对手,并将奖金直接支付到玩家的钱包中。战斗流程已针对匿名/无训练家的对手进行加固,使塔中的战斗能够干净利落地结算。
  • 秘密基地("My Base") —— 玩家可以放置、进入并装饰属于自己的实例化室内空间。室内空间由一个在运行时填充的场景模板构建而成,装饰层(DecorCatalog,支持添加/移除/移动操作)持久化保存在存档文件中。
  • 玩家道馆("My Gym") —— 玩家可以搭建一个完全自定义的道馆:馆主的队伍、装饰过的房间、自定义对话,以及他们自己的徽章。其他玩家可以前来挑战。
  • 暂停菜单 —— 三个新入口将上述功能接入游戏内菜单:对战塔、我的基地和我的道馆。

在线(Nakama)​

  • 秘密基地多人游戏 —— 服务器 RPC secret_base_save / secret_base_get / secret_base_list / secret_base_invite 支撑起一个持久化的基地集合,采用乐观并发写入与失败即拒绝(fail-closed)的服务器校验。即使基地主人离线,访客也能看到一个快照。已通过一次对抗性渗透测试验证 —— 伪造的写入会被拒绝。
  • 基地内实时同场共存 —— BaseSyncService 使用一个中继匹配(base:<ownerId>)来实时同步访客位置和装饰变更(OP_DECOR_CHANGED)。已通过一次针对 Nakama 的实时双客户端测试进行端到端验证。
  • 玩家道馆挑战 —— 通过 gym_save / gym_get / gym_list 实现服务器端的道馆快照,失败即拒绝,因此挑战者面对的是馆主真实配置的队伍。
  • 服务器权威的传送校验 —— mce_validate_teleport 现在会针对场景图校验目标场景,并在服务器端施加限流,同时配合客户端的反传送移动守卫。

导入器(Pokemon Essentials v20 / v21 / v21.1)​

  • 已验证完整项目 v21.1 导入 —— 一次针对完整 Essentials v21.1 项目的真实无头完整运行,将 898 个物种全部 898 个成功转换,零错误(应用了 335 项形态覆盖,链接了 422 项进化),创建了 150 个新招式并复用了 590 个已有招式、72 个特性、315 个道具(另匹配了 378 个),以及 20 名带有已填充队伍的训练家。参见 Docs/audit/2026-07-12-importer-v21.1-partial-run.md。
  • 战斗精灵图材质 —— SpriteLinker 现在会为导入的怪物生成战斗材质。在此修复之前,导入的怪物在战斗中不可见。精灵图按内部名称匹配,支持每形态美术与性别变体。
  • 更广的招式效果覆盖 —— FunctionCode 到效果的映射经过三轮扩展;未映射的代码会优雅降级并给出诚实的警告,而不是无声地失败。
  • 具体道具生成 —— ItemConverter 现在会生成真正的 MCE Item ScriptableObject,而非仅按名称匹配的占位存根。
  • 无头导入框架 —— EssentialsHeadlessImport.Run() 从 CLI / batchmode 驱动整条流水线。
  • 数据库重建完整性修复 —— 修正了可能在重建期间抹除招式的资产发现逻辑,以及一个改名后残留的过时路径;为 v21.1 添加了形态覆盖和 15 种新的进化方式。

安装与打包​

  • DOTween 门控 —— 引擎程序集现在由 DOTWEEN 定义门控,因此在没有 DOTween 的情况下进行全新导入不再会因约 200 个编译错误而失败。
  • Lite 与 Basic 导出 —— 两个版本现在被分别导出;强制的 OpenMon 启动画面仅随 Lite 附带。

质量与性能​

  • 发布前加固(第 1–4 波) —— 修复了一处 AudioListener 泄漏、重复的 BGM、一个无上限的 AudioSourcePool、一个传送锁存、InputManager 状态清理,以及 MenuSelector 守卫。
  • 热路径去 LINQ —— 移除了角色控制器中每帧的 LINQ 分配。
  • 打磨 —— 更清爽的 MonsterEntry 检视器;修复了一个 MajorVersion 拼写错误,并用一个序列化垫片将其隐藏,使现有存档仍能加载。
  • 测试 —— 新增了在真实导入怪物上的招式效果验证,以及一个针对 Nakama 的实时双客户端 PlayMode 测试。

本版本的其他内容 —— 2026-07-02 记录,v1.0.0 之后发布:

本次发布记录了在 v1.0.0 之后上线、但此前尚未列入更新日志的在线与工具功能。所有条目均已存在于代码库中;此条目使更新日志与 Assets/OpenMon/Online/Server~/nakama/ 下的服务器模块及编辑器工具保持一致。

在线 —— 经济​

  • 全球交易站(GTS) —— 异步的"求购换供给"交易板(economy/gts.ts)。玩家发布一只用于交换的怪物以及他们想要换回的物种;服务器进行匹配并结算交易。
  • 全球交易链接(GTL) —— 拍卖行式的挂单/竞价系统,配有专用的匹配引擎(economy/gtl.ts + economy/gtl-engine.ts)。
  • 开发者门控的经济 —— 货币/道具发放 RPC 由 MCE_DEV_MODE 门控(economy/shop.ts + data/shop.ts)。在生产模拟环境(nakama-prodsim compose 节点)中,发放 RPC 会以 dev_mode_disabled 拒绝,并由专门的 E2E 测试验证。

在线 —— 战斗​

  • 服务器权威的捕捉 —— 捕捉现在通过一个 RPC 契约在服务器上结算,而非依赖客户端上报的结果,从而弥合了野生捕捉的反作弊缺口。
  • 服务器权威的 PvP —— 匹配编排与回合结算在服务器端运行(battle/pvp-engine.ts),配有匹配机制和完整的 E2E 覆盖。
  • 对战塔 / 团战 —— 多场战斗进程与合作团战遭遇(battle/raid-engine.ts)。

在线 —— 世界与社交​

  • 秘密基地 / 房屋 —— 玩家自有的实例化空间,带持久化 CRUD(world/housing.ts)。
  • 在场与 AOI —— 用于世界同步的实时在场与兴趣区域过滤(world/presence.ts)。
  • 直接交易 —— 玩家对玩家的直接交易流程(social/trade.ts)。

在线 —— 安全​

  • 反作弊战斗 ACL —— 在战斗 RPC 上强制执行访问控制,使得只有获得授权的参与者才能驱动一场战斗,并辅以速度/库存校验。

编辑器工具​

  • 导入 HD 原创图鉴(151) —— Hub 的 Cartridge 部分(Studio 版)会运行 HDDexImporter,引入 151 只原创 HD 生物(正面、背面、透明图与像素跟随者)。

备注​

  • 完整的在线 RPC 契约记录在 Assets/OpenMon/Online/Server~/nakama/CONTRACT.md。
  • 所有编辑器菜单项现在都位于 Tools > MCE > … 菜单下(此前为 MCE > …)。

v1.0.0 (2026-03-29)​

MCE 作为即插即用 Unity 包的首次公开发布。

新功能​

  • 地图编辑器(场景视图) —— 内建于 Unity 场景视图的、受 RPG Maker XP 启发的图块绘制叠加层。在地图场景中自动激活。支持自动图块(带动画预览)、常规图块、图层标签页、铅笔/橡皮工具、网格叠加和键盘快捷键。
  • 一键设置按钮 —— Hub 欢迎标签页现在显示一个绿/红设置按钮,可一键自动配置项目,包括 TMP Essentials 自动导入。
  • 命令面板 —— 按 Ctrl+Shift+M 打开 MCE 命令面板,快速访问所有工具与功能。
  • Tri-Inspector(物理包) —— Tri-Inspector 现在作为物理包附带(无 UPM 依赖)。消除版本冲突,并在导出的 .unitypackage 文件中开箱即用。
  • PackageExportValidator —— 对 .unitypackage 导出的极致校验。在导出前验证所有必需的资产、程序集定义、依赖项和文件夹结构。
  • 程序集上的 defineConstraints —— 所有编辑器程序集定义现在都使用 defineConstraints,以防止编辑器代码在玩家构建中被编译。消除来自仅编辑器引用的构建错误。

架构​

  • 四层 SKU 系统 —— Lite、Basic、Pro 和 Source 版本,配有恰当的程序集分离与 defineConstraints。
  • 程序集定义清理 —— 所有 .asmdef 文件都有正确的引用、无循环依赖和恰当的平台约束。
  • Zenject GUID 重绑定 —— 解决了来自 Zenject 命名空间迁移的 200+ 缺失脚本错误。所有场景与预制体引用均已恢复。

测试​

  • 在所有测试程序集中2,169+ 个测试通过(EditMode NUnit + Jest 单元 + Jest E2E)。
  • 测试门控流程已记录并强制用于推送前校验。

导入器​

  • Essentials 导入器 —— 针对地图、图块集、事件、自动图块、角色和跟随者精灵图的 Pokemon Essentials v20/v21/v21.1 导入流水线。
  • AutotileBaker —— 将 RPG Maker 自动图块格式转换为 Unity 规则图块。
  • TileDataPopulator —— 从 Essentials 地图文件填充图块碰撞与遭遇数据。

在线(可选)​

  • Nakama MMORPG 层 —— 18 项服务:Auth、WorldSync、Battle、Social、Economy、LiveOps、AntiCheat、Persistence 等等。
  • PvP 匹配、交易、公会、房屋 —— 面向多人怪物捕捉游戏的完整在线功能集。

编辑器工具​

  • OpenMon Hub —— 中央仪表盘,包含欢迎、工具、数据库浏览器和设置标签页。
  • 属性表编辑器 —— 属性相性表的可视化编辑器。
  • 数据库浏览器 —— 浏览并搜索所有怪物、招式、道具和特性数据库。
  • SpriteSheet 切片器 —— 自动切分角色与跟随者精灵表。

缺陷修复​

  • 修复了跟随者在对角网格过渡时的移动抖动。
  • 修复了将包导入全新项目时的 Zenject 绑定错误。
  • 修复了 PackageDependencyInstaller 将 manifest.json 作为文本打补丁以避免 PackageManager 锁问题。
  • 修复了导出版本缺少 Zenject、Resources 和 csc.rsp 文件的问题。