RPGM U2U

你怎么看?

它是基于 Unity 构建的,所以希望它能得到更好的优化,从而支持更大的地图等。但我担心在移动设备/Android 上的性能,因为它会运行较重的 Unity 架构。

希望移植到 Windows/Android/Linux 能顺利进行。

另外,我希望能支持 WebM、WebP、OGG 等格式以及其他多种格式。

之前为了在 RPG Maker MV 中让 WebP 正常工作而采用的各种变通方法非常令人烦恼。将文件大小减少 3 到 5 倍是必须的,我认为。尤其是对于移动设备而言,它们的存储容量有限(这可能只与旧设备有关,2-4GB 的最大容量限制现在还存在吗?)

1 个赞

如果不了解其代码实现,很难做出任何有用的陈述,但这是我的经验。优化与灵活性往往相互对立,而遗憾的是,RPGmaker 必须优先考虑灵活性。

RPGM Unite 的表现如何?我从未深入探究过它,因为在完成一个大型商业项目后,我就切换了引擎。我对 Java 的性能不太满意。

Unite 运行速度极慢。我没有太多时间深入研究它的代码架构,但其中一个关键错误在于它试图构建一个不使用图块集(tilesets)的引擎。相反,它采用了一种系统,将每个图像都视为独立的游戏对象。这导致每个微小的图标都被打包了大量元数据,从而严重拖慢了加载速度。

另一个关键错误是:它还构建了一个系统,将 NPC 定义在一个全局数据库中,而传统的 RPG Maker 通常将 NPC 与地图绑定。如果你是在开发类似《星露谷物语》(Stardew Valley)的游戏,其中 NPC 在游戏世界中只有一个固定位置,并且只在地图间移动,那么这种选择是可以接受的。然而,大多数 RPG 并不需要这个功能,而是更适合使用我们大多数人习惯的事件系统。

此外,JavaScript 本身运行良好,但市面上许多插件隐藏着不为人知的性能隐患。如果你是那种在插件的备注(notetags)中编写 JavaScript 代码以使其运行的开发者,那么你的代码运行速度会比写在普通插件文件中的 JavaScript 慢数千倍。JavaScript 必须被翻译成机器码,计算机才能执行。插件之所以没问题,是因为它们在游戏启动时就已经被翻译成机器码了;但任何写在数据库里或事件中的脚本调用,都必须在事后进行翻译并匹配内存地址,这是一个非常缓慢的过程。

归根结底,游戏性能的责任在于开发者。

2 个赞

哦,原来整个游戏都是构建在 UI 画布(UI Canvas)上,而不是普通的 2D 平面上。这对我来说简直太疯狂了。在 Unity 中,画布并不是为此类用途优化的。不过,正如提到的那样,如果你遵循 Unity 的工作流,就能实现令人难以置信的灵活性。

但这款游戏的编写方式基本上是:“咱们就在 Unity 之上搭建一个盒子,让它与任何 Unity 资产几乎不兼容。”

这是我唯一主动申请退款的游戏。

2 个赞

对此不太兴奋,我觉得他们在试图使用其他游戏引擎而不是开发自己的引擎时走错了路。

我认为我最大的问题在于 MV 随分辨率变化的扩展性极差。切换到 1080p 会立即对性能产生显著影响。

我可能说得有点直,但我对 Unite 感到相当失望。与引擎的旧版本相比,许多功能被删减了,而且它似乎也不太擅长利用 Unity 自身的功能。

例如,无法创建循环地图,这总让人觉得奇怪,因为大多数引擎(RMXP 除外)都具备这一功能。我还觉得学习曲线过于陡峭,但它给人的感觉似乎并没有比 MZ 版本尝试做出太多不同的东西。

既然我们谈到 Unity:

  • Unity 的运行时占用空间相比 MV/MZ 要小得多。Chromium 非常庞大。一个空的 Unity 项目编译后大约只有 20MB,而一个完整的项目(当然取决于规模)其二进制文件通常也就在 100MB 左右。相比之下,仅 Chromium 的二进制文件就占用了 200MB。
  • 格式问题不应该成为障碍。Unity 和大多数游戏引擎都会将所有资源转换为其首选格式,因此通常你只需要某种导入器来处理所使用的资源。Unity 默认支持 WAV、MP3 和 OGG 格式,并在内部将它们转换为 OGG。至于纹理和视频的处理方式,我不太确定,但它们似乎采用了类似的方法。我知道它确实会将来自 Blender 等软件的模型转换为 FBX 格式,这是引擎内部支持的格式。

使用 Canvas 来实现游戏玩法确实是个奇怪的选择!

但我认为以 Unity 作为引擎的基础是一个明智的决定。你不必每次都从零开始构建一切。此外,Unity 提供了大量有用的工具,如果自行开发这些工具成本会非常高。甚至包括获取主机平台认证、提前提供工具支持以及提供相关技术支持等功能。这些都不是免费提供的,而借助 Unity,你相当于让 Unity 帮你完成了这些工作。

我认为 Unite 所做的事情确实不够好。我理解其中的一些决策,但感觉某些部分过度设计了。尤其是地图块集(tileset)的设置,对我来说特别别扭。

2 个赞

广义上讲,JavaScript 实际上并不会被直接翻译成机器码。它会被编译成字节码,然后由一个用会编译成机器码的语言编写的虚拟机来执行。当在类似浏览器的平台上运行时,这些虚拟机会使用即时(JIT)编译器,从字节码生成机器码,而不是直接从 JavaScript 源代码生成。

像 QuickJS 这样的可嵌入 JavaScript 引擎也会执行字节码,但它们不包含 JIT 编译器。

你所描述的,正是对数据库或事件命令中的代码字符串执行 eval(编译为字节码,冷路径,尚未 JIT)的成本,并在纯字节码解释器模式下运行它。

这是一个糟糕的主意,无论从技术角度还是从“社会”角度来看都是如此。这就像让一群擅长小船作业的渔民去驾驶一艘油轮捕鱼。

我理解你觉得这很诱人,因为你认为这样可以免费获得一些东西。但正是这种思维方式导致了软件当前的状态:一团臃肿的乱麻。

我鼓励所有对编程感兴趣的人观看乔纳森·布洛(Jonathan Blow)的演讲《防止文明崩溃》:

话虽如此,我希望 RPG Maker U2U 的表现能优于 Unite,因为我对 GGG 寄予厚望。但我希望他们在 U2U 之后能推出一款真正的“主线”或“独立”RPG Maker 版本,彻底摆脱 Unity。

在此期间,我会关注 @niokasgami 正在进行的引擎重构工作,并可能发布一些内容以延长 MZ 的生命周期。

2 个赞

他们构建 Unite 的问题在于,他们完全没用那些工具,而且基本上让使用这些工具变得不可能,或者非常麻烦。

1 个赞

乔纳森·布洛(Jonathan Blow)有的是钱。大多数企业都试图盈利。

我有两个比较基础的问题:如果 Unite 是在 Unity 中开发的,那是否意味着每次 Unity 更新时,Unite 也需要相应更新?另外,使用 Unite 制作的游戏是否遵循 Unity 的指南,比如分层的收入分成模式?

Unite 和 Unity 是分开的。你安装一个版本的 Unity,然后使用 Unite Wizard 应用程序创建一个项目,该应用会导入所有相关包并在 Unity 中打开你的项目。

在设置时,Unite 会提供多个建议的版本供你选择。我记得上次我在 Unite 中做某事时尝试了 6.0 版本并且成功了,现在我不太记得 Unite 本身是否说它支持这个版本了。

1 个赞

感谢您的回复,请原谅我对 Unity 的工作原理不太了解 :sweat_smile:

如果我没理解错的话,Unite 会在 Unity 中生成一个类似 RPG Maker 的项目,之后它就只是一个普通的 Unity 项目了。如果某个新版本的 Unity 无法与 Unite 正常配合使用,是否可以将其设置为兼容的旧版 Unity 呢?

我之所以这么问,是因为我喜欢独立版 RPG Maker 的一点在于:它们是一次性购买,之后使用没有任何附加条件。而 Unity 在某些方面给人的感觉是“永远没有彻底搞定”,这让我对使用基于 Unity 的 RPG Maker 工具有些顾虑。

大家好,感谢大家对 U2U 即将推出的内容感兴趣!

上个月在 BitSummit 上,我们首次进行了新地图制作工具的实际试用,并收到了大家的大量宝贵反馈。我们也仔细查看了所有未能到场人员的评论:包括对 Unite 重演的担忧、对再次使用 Unity 作为后端的顾虑,等等。

因此,虽然目前我们尚未准备好发布新的信息,但请大家放心,我们已认真倾听了大家的声音。我希望下一次的信息发布能帮助大家更好地理解,U2U 在所有关键方面与 Unite 有着怎样的不同。

所以请大家耐心等待,并继续告诉我们你们的期待与需求!我们依然非常乐意倾听!

9 个赞

u2u看起来效果不错,体积应该会更大,这引擎应该很考验美术。

我看好这引擎,希望到时候别打脸。

1 个赞

我个人对使用 Unity 框架的非 Unite 引擎感到兴奋,因为它不需要包装器就能将 Unity 项目发布到主机平台。MV 和 MZ 都使用 HTML5,而索尼和微软出于安全考虑不会托管未经包装的 HTML5 内容,因此这应该能让主机发布变得更加便捷,无需额外步骤!

Unite 在全球范围内都是一次失败——太贵了,而且不幸的是,它还是 Unity 的产品。如果换成 Unreal Engine,事情可能会变得有趣些,但我担心 Unity 依然缺乏竞争力。我个人比较喜欢 Node.js 版本。

此外,U2U2 在 2D 转 3D 方面才刚刚起步,相比之下,RPG Developer Bakin 在这方面起步更早。它必须达到 MV/MZ 的水平,才能吸引人们使用。

我们拭目以待,但同时也需要提供一个限时演示版——我个人没有尝试过 Unite,因为发布时我没有办法在不支付我认为过高的费用的情况下进行测试。后来虽然有一段时间可以免费使用,但我又错过了机会。

编辑:看起来 Unite 目前在商店里的价格不到 20 欧元——也许现在还是尝试一下的好时机。

关于虚幻引擎缺乏真正2D支持的题外话

根据我的经验,虚幻引擎在2D方面表现相当一般。它虽然能实现2D,但并没有为此提供任何特别的功能。

Unity 至少还假装自己拥有一个2D渲染器。

两者采用的方法相同:使用正交投影的3D空间,并将相机设置为正对前方。但虚幻引擎甚至不提供专门的2D类,你只能借用所有3D类,将它们锁定在Z轴上,然后祈祷。

如果再深入一点,两者都没有实现真正的2D。要实现真正的2D,你应该选择 Godot 或 GameMaker。

U2U 在虚幻引擎上运行应该没问题,但我认为它只适合专注于“透视2D”风格,因为我认为虚幻引擎对于纯2D来说确实不够出色。从技术上讲它确实能做到,但就连示例项目也显得相当简陋。

我对 U2U 的主要担忧在于,它是否真的将 Unite 的基础功能提升到了 MV/MZ 的水平。我指的是具体的编辑器体验。我认为游戏本身运行尚可,但编辑游戏的过程却令人痛苦不堪,因为它要么缺少一些长期存在、本应成为常识的常见功能,要么就是即使有这些功能,其实现方式也极其晦涩难懂。

我知道 Unite 是作为全新引擎来设计的。也就是说,它不需要继承之前引擎的功能,也不必为了迁就现有用户而自我限制。我认为这样做确实能向现有客户展示友好态度,但这并不是让引擎正常运作所必须的设计要求。不过,我确实认为当前的设计和用户体验显得平淡无奇。

如果接下来的内容显得过于直率,我表示歉意,但我必须说明我的观点。昨天我重新体验了 Unite,每次打开它都让我感到恼火,因为我总能发现更多在用户体验方面明显不合理的地方。你可能会觉得这些都是微不足道的细节,但它们累积起来就成问题了。

在 MV 中删除事件需要做什么?按下 Delete 键。搞定,事件消失了。你不需要确认窗口,那只会拖慢流程。想象一下,如果我创建了一个布满事件的地图,难道要直接删除整个地图然后从头重做,而不是逐个删除那300个事件吗?

我遇到了一些界面 Bug,但我对此无法多说什么,因为我当时使用的是 Unity 6.3,那是手头现有的版本,所以责任在我。官方推荐的仍然是 v2022。v6.3 大体上能运行,但确实存在一些问题。我稍后会安装 2022 版本进行其他测试。

我发布这条内容,是怀着极大的希望,期待 U2U 能够吸取 Unite 的不足,变得更好。

说实话,我可能不会买 U2U,主要是因为我有点不喜欢 Unity。如果他们做的是基于 Godot 或 Unreal 引擎的产品,我可能会考虑入手。(我其实还没试过 Godot,但听说它口碑不错。)如果他们再出另一款类似 MV 和 MZ 的基于 JavaScript 的引擎,我会认真考虑购买。

回复离题的 Unreal 评论

我不觉得 Unreal 真的像这样?我自己只在 Unreal 里做过 3D,所以不太确定 2D 功能到底怎么样,但有一个专门的 Paper2D 模块就是做这个的。我知道它可以处理从瓦片表中提取精灵,我觉得它可能也支持瓦片地图。(我甚至听到传闻说它能导入 Tiled 地图文件。)

当然,你也可以在 Unreal 中使用 3D 资产和固定透视来做 2D。