Kristian Duske 于 2010 年开始开发 TrenchBroom,旨在解决一个特定的需求:一个适合他作为 Mac 用户的关卡编辑器。虽然当时已有像 ToeTag 这样的工具,但 Duske 寻求一种更直观的体验来在 Quake 引擎中创建地图。他最初使用 Objective-C 和 C 构建了一个 macOS 特定版本,但很快转向 C++ 代码库以确保跨平台兼容性。如今,TrenchBroom 已成为复古 FPS 领域的基石,被独立开发者用于《Wrath》和《GRAVEN》等现代作品,同时也通过 Qodot 等扩展被 Godot 游戏引擎社区广泛使用。

该编辑器的成功归功于几个关键的技术和用户体验(UX)决策。Duske 强调以 3D 为中心的流程,这与传统的以 2D 为重的界面相比,允许地图制作者拥有更直接的控制权和更快的迭代速度。一个重要的功能是使用“链接组”(linked groups),它允许制作者更高效地建立和演变设计语言,通常会产生对称的地图设计。此外,TrenchBroom 使用标准的文本地图格式而非私有格式,确保地图可以导出并在其他工具中编辑。这种互操作性是为保持用户灵活性而做出的刻意选择。

展示在 TrenchBroom 中编辑 Neuron Uplink 地图的 3D 关卡设计界面。
TrenchBroom 界面为创建像 Neuron Uplink 这样复杂的环境提供以 3D 为中心的流程。funcarena.com

这张图片展示了以 3D 为中心的流程以及该编辑器在创建现代复古 FPS 地图中的实际应用。

TrenchBroom 软件中实体编辑菜单和属性的截图。
地图制作者使用集成的实体编辑系统在关卡中放置和配置游戏对象。funcarena.com

此视觉效果展示了地图制作者用于管理游戏实体和逻辑的具体工具和菜单。

尽管取得了成功,该项目仍面临固有的技术挑战,特别是关于构造实体几何(CSG)的问题。Duske 指出,实现完美的 CSG 减法算法——即产生整洁对称且无多余顶点的算法——是一个 NP 完全问题,这意味着对于大型输入来说,它是计算上不可行的。因此,他选择了更简单且功能完善的方法。此外,该项目在 2020 年经历了重大的架构转变,从 wxWidgets 框架迁移到 Qt。这一转变是由减少平台特定变通方案和提高代码库可维护性的需求驱动的,让 Duske 能够专注于新功能,而不是管理“过度工程化”的遗留代码。虽然该工具仍是 Quake 社区的主要资源,但 Duske 通过优先考虑受益于核心地图体验的功能,而非少数人的强烈要求,来平衡其发展。