foxtrot · janhohenheim/foxtrot
Foxtrot 是 Bevy 引擎的 3D 参考项目与技术演示,用 Rust 编写,也可作为 3D 游戏项目的模板参考。README 说明克隆仓库后执行 cargo run 即可本地运行,并提供 itch.io 浏览器试玩入口;Web 构建使用实验特性,让音频在独立线程播放,需...
Foxtrot 是面向 Bevy 引擎的一个 3D 参考项目与技术演示,使用 Rust 编写。它不追求成为一个可直接套用的通用模板,而是把“一个真实体量的 Bevy 3D 项目长什么样”完整呈现出来:从第一人称移动、抓取与投掷物体,到分支对话、导航、菜单与调试视图,都在同一个工程里给出可运行的实现。
README 明确说明,这个 Demo 里刻意没有真正的玩法目标,也没有任务系统与存档机制。作者的理由是:这类内容高度依赖具体项目需求,放进来反而会把示例误导成“标准答案”。因此更合适的用法是把它当作一个“超级示例”(mega-example),浏览整体结构,或单独取某一功能的代码作为自己实现时的参考。
仓库同时提供了 itch.io 上的浏览器试玩入口,方便在不配置本地环境的情况下先感受效果。
README 强调本地运行是开箱即用的:克隆仓库后直接执行即可。
cargo runbevy runWeb 构建使用了实验性特性,把音频放到独立线程中运行,从而在浏览器里获得不卡顿的音频播放。代价是需要额外准备:
rustup default nightlybevy run web 产出 Web 版本也就是说,桌面端构建走常规路径,Web 端构建对工具链版本较敏感,README 特别提示了这一点。
Foxtrot 中所有系统都支持热补丁:系统代码可以在运行时被修改,改动会实时补丁进正在运行的可执行程序中,而不需要重启。要为自己的系统启用这一能力,README 指向 bevy_simple_subsecond_system 的文档进行配置,配置完成后通过下列命令启动:
dx serve --hotpatched
对于需要频繁调整玩法参数或调试系统逻辑的开发者,这一特性可以显著缩短“改一行、重编译、重进游戏”的循环。
作者说明 Foxtrot 的首要定位,是展示“他自己关心的事情”该如何实现,README 列出的关注点包括:
代码风格上,项目有意保持强观点(very opinionated),但在编码风格上尽量贴近 Bevy New 2D 项目所采用的写法,便于熟悉该模板的开发者迁移阅读。
Foxtrot 是基于 Bevy New 2D 模板生成的。README 建议先阅读该模板的文档,理解项目所沿用的基础结构与约定,再进入 Foxtrot 的具体模块,这样能更快定位代码职责。
关卡部分,Foxtrot 采用 TrenchBroom 作为关卡编辑器,并通过 bevy_trenchbroom 与 Bevy 集成。使用流程如下:
assets/maps/volta_i/volta_i.map,即可编辑主地图。这条工作流展示了“外部关卡编辑器 + Bevy 运行时加载”的实践路径,对于想做 3D 关卡编辑管线的项目有直接参考价值。
Farbrausch 2001—2011 年 demo 工具源码合集,使用 C++,涉及 demoscene 与 D...