Efficient Rendering
只在需要时,只做需要的处理。
要提升 UI 的显示性能,除了绘制速度,减少不必要的处理同样重要。
Manta 的设计是在画面状态没有变化时,尽可能抑制不必要的更新处理。
通过在数值或显示内容变化时才进行必要的处理,力求即使在复杂的管理画面中也能减轻对游戏的负担。
Mod / 01

重新定义 UI。
支撑 Minecraft 画面构建的通用 UI 引擎。
Train System Utilities 的管理画面与车站发车信息屏、Spatial Audio System 的操作画面等等。Manta 是 BelugaLab 多款模组共同使用的 UI 引擎。
从菜单到世界中的显示屏,各种画面都通过同一套机制进行绘制。

Point of view
Consistency is built into the foundation.
Manta 的目标不是为每个模组分别开发不同的 UI,而是通过共同的机制提供一致的操作体验。
新的功能与表现,会尽可能作为 Manta 的通用功能来实现。再将由此获得的改进推广到其他模组,使 UI 整体的完成度随着开发的积累而不断提高。
Consistent Interface
Manta 提供按钮、开关、对话框等通用的 UI 组件。
操作方式、动画以及提示的显示方式也已统一,因此即使是不同的模组,也能以相同的感觉进行操作。
在一个画面中学会的用法,可以直接用在其他画面上。
2 款模组、3 个画面。同一套 UI 系统。



Screen & World
Minecraft 的 UI 并不只有菜单画面。
在世界中也存在着各种画面,例如车站的发车信息屏和显示运行信息的大型显示器。
Manta 同样支持这类世界中的显示屏。由于与普通操作画面使用同一套绘制系统,即使显示位置不同,也能实现一致的设计与表现。


In-game Guides
无需每次为了查询操作方法而切换到浏览器。
Manta 支持游戏内 Wiki,可以在 Minecraft 中查看说明文字、图片和操作指南。
指南中还可以嵌入实际运行的 UI。画面会配合说明自动操作,显示内容与引导文字依次切换。
由于可以在画面上确认操作流程,即使是复杂的功能,也能一边观看实际动作一边理解。




Efficient Rendering
要提升 UI 的显示性能,除了绘制速度,减少不必要的处理同样重要。
Manta 的设计是在画面状态没有变化时,尽可能抑制不必要的更新处理。
通过在数值或显示内容变化时才进行必要的处理,力求即使在复杂的管理画面中也能减轻对游戏的负担。
Multiplayer Consistency
即使在单人游戏中运行正常,在多人游戏中也可能出现各玩家看到的内容不一致的情况。
Manta 采用以服务器端信息为基准来管理画面状态的设计。
即使多名玩家进入同一个世界,也注重保持信息的一致性,显示一致的状态。
Verification
画面是否正确绘制,仅凭代码无法判断。
Manta 会在实际的 Minecraft 环境中显示画面,确认外观和操作是否按预期运作。
同时也会检验功能的新增或内部结构的变更,是否给现有画面带来了意料之外的变化。
不仅要添加新功能,保持既有的行为同样是开发的重要标准。
Generations
Manta 的内部设计至今已历经 7 个世代的演进。
每个世代都在保留既有功能的同时,逐步改进绘制性能、通用化、可维护性等方面。
目前的第 7 世代,重点不在于增加新功能,而在于整合既有功能、整理重复的实现。
不以多种方式实现相同目的的处理,而是尽可能集中到共同的机制中,以降低复杂度,让今后的开发与改进更加容易。
Manta 的改进会通过采用它的各个模组的更新送达用户。
Principles
开发新功能时,首先考虑能否通过组合既有的机制来实现。增加可以通用化的部分,避免反复实现同样的功能。
即使变更内部结构,也以保留原有功能为原则。在迁移到新的设计时,也会确保以往的操作和功能不会丢失。
更新 Manta 时,也会确认与已发布模组的兼容性。在引入新机制时,也会检验其对既有画面和功能的影响,注重维持稳定的使用环境。
按钮等操作元素设有统一的最小尺寸。不仅是画面的设计,实际操作是否便利也是 UI 设计的重要条件。
Where it lives
Manta 不作为独立的模组分发。
它内置于 BelugaLab 开发的模组中,安装其中任一模组即可使用 Manta。
目前已在以下模组中采用。
各模组所采用的 Manta 版本,可在分发记录中查看。