RPG Reactor 0.92 - 开源(MIT)游戏编辑器及 PIXI8 运行时。兼容 RPG Maker(MZ/MV)。

RPG Reactor 是一款专为类 RPG Maker 项目打造的全新开源 RPG 编辑器和运行时引擎。其名称源于对 RPG Maker 的回应。它拥有现代化的基础架构:全新的编辑器、更新的工具链,以及基于 PixiJS 8 的核心脚本。

目标很简单:
保留大家熟悉的 RPG Maker 工作流程,同时突破 RPG Maker 当前的限制。

目前,RPG Reactor 支持打开现有项目,并通过新的 Reactor 核心运行这些项目。它通常与类 RPG Maker 项目向后兼容,但由于这仍处于 Alpha 阶段,并非每个插件、项目或边缘情况都经过测试。

当前 Alpha 版本说明:

  • 打开项目功能已实现。

  • 创建全新项目目前尚不可用。

  • 随附的可运行项目为《The Star Shift Freelancers Project》。

  • 本次发布的是 Windows 版本,但 RPG Reactor 设计用于在 Windows、Mac 和 Linux 上运行。

    RPG Reactor 致力于改进的方面:

  • 采用现代化的 PixiJS 8 渲染引擎,取代较旧的 RPG Maker 渲染器。

  • 打造专为快速迭代而设计的全新编辑器。

  • 提供更优的项目工具链和部署选项。

  • 通过 Forge 内置资源创作工具。

    Forge 早期构建版演示:
    https://youtu.be/EspUATJd7Kc

  • 更灵活的事件、数据库、地图、音频和插件工作流程。

  • 拓展 RPG Maker 目前尚未原生提供的功能路径。

    尽管这是早期 Alpha 版本,但它已经可以运行,并且进展足以开始与社区分享。

    如果您对类 RPG Maker 开发的未来感兴趣,不妨试一试,打开随附的项目,看看 RPG Reactor 将走向何方。

    如果您也愿意携手合作,让这个项目变得前所未有的出色,请随时告诉我,我非常乐意参与。

下载 RPG Reactor(v 0.92):

下载 RPG Reactor(v 0.92)源代码:

截图:

1 个赞

这太棒了!希望Mac版的试用版能尽快推出。

1 个赞

我这里有 Mac 版本。这是链接,不过我还没完全测试过。我主要用 Linux,所以这次发布算是个粗糙的测试版,目前完成了 90%。如果你遇到一些卡顿或问题,请告诉我。

1 个赞

这个运行时是否同时兼容 RPG Maker MZ 和 RPG Maker MV 的插件?例如,能否在一个项目中同时运行 YEP 和 VisuStella 插件?

1 个赞

理论上是可以实现的,不过我还没有深入探索过。我认为这是一个不错的想法,我会着手开发(我也同时拥有 MV 和 MZ 的项目),因此我也很需要这个功能。

目前的工作方式是,Reactor 自带的默认运行时是 PIXI8 运行时,并配有一个 pixi_compat.js 兼容层,用于使 MZ 插件能够兼容 PIXI8。

你也可以使用现有的运行时(适用于 MV 或 MZ)打开你现有的项目,这样它就能在 Reactor 编辑器中正常运行。

理论上,我可以扩展这个兼容层,使引擎完全与 PIXI 版本无关。我打算近期尝试一下。

我有尝试过在rpgmakermz中 通过iframe调用RPGmakermv的一些UI插件,但是效果并不是很好,因为数据并不能在两个游戏之间互通。

如果你的项目能做到这一点那真是太好了,就像是为rpgmakermz 做了 ace 版本一样。

你刚刚……是做了一个本质上相当于 MZ 续作的东西?而且是你一个人做的?天哪,这真是令人难以置信的厉害。

你愿意以 MIT 许可证(或类似的开源许可证)发布这个项目吗?如果是的话,我很乐意贡献一份力量!

编辑:我读了你的帖子,但可能没仔细看标题,原来这确实是以 MIT 许可证发布的。我目前正忙于搭建社区论坛等事务,等忙完这阵子,我会尽力来帮忙。

1 个赞

太棒了!期待与您合作。让我们开始吧!

我很确定他在别处提到过使用了 AI,所以我不认为这能算是“你一个人”做的。

话虽如此,我不太清楚 AI 具体是如何使用的。截图显示它基本上能正常运行,所以我对它完全由 AI 通过“氛围编程”(vibe coding)生成的说法持怀疑态度。

我使用 AI 编码工具(如 Codex、Claude Code 和 OpenCode,它们可以在终端中运行并同时查看整个代码库)开发了大部分代码。

此外,我还以传统方式开发过 Web 应用、移动应用和数据库应用,但那样做耗时太长。除了游戏开发,我还担任一家寄养服务机构的技术总监,并经营自己的 IT 企业。

用 AI 辅助编码有点像拥有数字化的电动工具,原本需要数年才能完成的工作,现在只需几周或几个月。但我仍然需要掌握编码基础知识和架构设计,才能以这种方式构建更复杂的应用程序,而不仅仅是靠直觉编码(vibe coding)。

是的,完全可行。虽然还有一些粗糙的地方(但会被修复),但我觉得它已经足够好,可以进行 Alpha 版本发布了。

很高兴知道这绝对不是“氛围编程”,而且你至少对代码的工作原理有一定的了解。不过,我不确定自己是否会尝试使用它。

最有可能说服我使用这个工具而不是 MZ 的因素大概是:

  • 我可以在其中使用 RPG Maker RTP 资产。
  • 不使用备注标签(note tags),而是使用类似插件参数/插件命令界面的东西,以便在任何数据库对象上设置任意值。
  • 强大的引用追踪功能,让你可以轻松提问,比如“什么引用了物品 45?”、“什么引用了 Outside_A5 瓦片表?”、“什么使用了哥布林敌人精灵?”、“图标 12 用在哪里?”或“哪些 BGM 目前还没被使用?”——我实际上已经编写了一个实现此功能的 VSCode 扩展(虽然尚未发布),但如果能内置到编辑器中,那就再好不过了。基本上就像增强版的内置事件搜索功能。
  • 一种扩展编辑器的方法,例如添加完全自定义的事件命令(不是插件命令,而是具有完全自定义编辑界面的顶级事件命令),或自定义特质和效果。甚至可能添加完全自定义的数据库对象(即,在数据库中增加一个完全新的选项卡,用于管理一系列自定义对象)。

我可以列出很多我一直希望默认编辑器具备的小功能,但上面提到的可能是最重要的三点。而无法使用 RPG Maker RTP 资产,可能是阻碍我尝试它的最主要原因。

好主意,我会看看能否将它们整合进去。如果你之前购买过 RPG Maker,当然可以使用引擎中的 RTP 资源。不过,我自然无法将这些资源包含在我的包中,但我正在开发自己的 RTP,它最终会成为该包的一部分。

不过,你现有的项目应该可以直接打开,无论是否使用 PIXI8 运行时。如果你愿意,也可以继续使用现有的 MZ 运行时,编辑器依然可以正常工作。我在某些地方还有一些不完善之处,但认为它已经足够好,可以作为一个 Alpha 版本发布。此外,我还提供了源代码,它会变得越来越好。

这或许会稍微增加我尝试一下的可能性……不过即便如此,短期内恐怕也不太可能,因为我目前专注于使用虚幻引擎(Unreal Engine)开发的游戏。(我确实仍在积极开发多个 MV/MZ 插件,但目前没有正在制作任何 RPG Maker 游戏。)

顺便提一下,上面列出的那些功能在虚幻引擎中都能轻松实现,这或许也是我一直希望 RPG Maker 也能具备这些功能的原因之一。

也许我可以再补充几个想法:

  • 一种能够直接选择自动图块(autotile)变体进行绘制的方式。基本上类似于 Shift 映射,但你可以从调色板中选择,而不必在地图上绘制形状来获取所需的变体。(此外,你还可以选择通常未被使用的预览变体。)
  • 当地图中发现无效的自动图块变体时不要崩溃。当前的 MV 和 MZ 在发现墙体侧面自动图块(A3/A4)的变体编号≥16,或瀑布自动图块(A1)的变体编号≥4 时都会崩溃。(我尚未测试这是否会导致编辑器崩溃,但可以确定的是运行时确实会崩溃。)
  • 允许将多个事件放置在同一图块上。在我最近发布的游戏中有几次,我不得不手动编辑地图文件,以便将两个事件放在同一位置。如果能避免这样就好了。(也有几次我通过移动路线达到了相同的效果。)
  • 带有重做命令的撤销堆栈

别担心,兄弟。我只是想提供一个工具来帮助社区,因为关于编辑器和 PIXI8 兼容性的问题经常出现,但一直没人真正解决,所以我想试试。

这是开源且免费的,用不用随你,我可不是求着你用。等它足够好用的时候,大家自然会采纳。我只是分享我正在做的项目,也欢迎任何能改进项目的想法或帮助。

你提的这些都是好点子,值得去做。不过我之前不知道自动图块崩溃的问题,是什么触发了那个崩溃?

你可以通过在原版 MV 项目中向 $dataMap.data 写入一个无效值来轻松触发此崩溃。例如:

$dataMap.data[0] = 2296

崩溃发生在 Tilemap.prototype._addAutotile(在 MV 中为 Tilemap.prototype._drawAutotile)中,当时它正在尝试确定要绘制哪个位图。它会获取自动图块的种类(如上例中的 5)和形状(如上例中的 8),利用种类来决定使用哪个自动图块表(上例中为 Tilemap.WATERFALL_AUTOTILE_TABLE,但 Tilemap.WALL_AUTOTILE_TABLE 是另一个可能导致崩溃的选项),然后将形状作为索引访问该自动图块表。

到目前为止一切正常,但崩溃的原因是:它随后假设找到的索引实际上是有效的。形状是一个在 (0, 47) 范围内的数字,但只有 Tilemap.FLOOR_AUTOTILE_TABLE 拥有 48 个条目——另外两个表分别只有 4 个和 16 个条目。因此,如果存在无效图块,最终会得到 undefined,并尝试获取其索引 [0],从而导致崩溃。

这仅影响 A1、A3 和 A4 图块——那些对应于假设的 F、G 和 H 表的无效图块索引不会有任何问题,因为它们甚至不会进入自动图块的处理路径。

好的,我会看看能否修复这个问题。至于假设的 F、G 和 H 图块,它们将直接集成到引擎中,并且可能也会采用更大的尺寸,以支持更多样化的设计以及地图上更大的物体(例如建造大型宫殿建筑等)。我还使用了视差贴图,效果也不错;我只需要在 Photoshop 中制作地图,然后将视差层分配到相应的 Z 值即可。

“解压后,该应用在 Mac 上无法正常运行。
如果您有时间,请帮忙查看一下;我知道维护整个编辑器需要付出巨大的努力。感谢您的辛勤工作!”

是的,我没有 Mac。虽然修复这个问题相对容易,但我需要一台 Mac 来进行测试。我会继续推进这项工作,并在掌握更多信息后及时向您同步。感谢您告知这些问题,我会尽快修复。

错误信息具体是怎么说的?是类似“无法在此版本的 macOS 上运行”,还是关于“不受信任的开发人员”之类的提示?

RPG Reactor” 已损坏,无法打开。您应该将其移至废纸篓。