BevyRust 构建的游戏引擎

联合创作 · 2023-09-27 18:45

Bevy 是一款由 Rust 语言构建且简单明了的数据驱动的游戏引擎,并将永远保持开源且免费。

数据驱动

所有引擎和游戏逻辑使用 Bevy ECS 系统
  • : 大规模并行, 缓存友好. 根据某些基准测试最快的 ECS
  • 简单: 组件是 Rust 的结构体, 系统是 Rust 的函数
  • 给力: 查询, 全局资源, 本地资源, 变化检测, 无锁并行调度

2D 渲染

为游戏和应用程序渲染实时 2D 图形
  • 功能: 精灵表, 动态纹理图集, 摄像机, 纹理和材质
  • 可扩展: 自定义着色器, 材质, 和渲染管道
  • 通用核心: 建立在 Bevy 的渲染图之上

3D 渲染

一个现代和灵活的 3D 渲染器
  • 功能: 灯光, 摄像机, 网格, 纹理, 材质, gltf 加载
  • 可扩展: 自定义着色器, 材质, 和渲染管道
  • 通用核心: 建立在Bevy的渲染图之上

图形渲染

使用图形结构组合自定义渲染管道
  • 并行: 图形渲染是自动并行渲染的
  • 模块化: 使用渲染图形节点构建可组合和可重用的渲染逻辑
  • 后端不可知: 不绑定到特定的图形 API

Bevy UI

一个定制的 ecs 驱动的UI框架, 专门为 Bevy 构建
  • 直接建立在 Bevy 的 ECS,渲染器,和场景插件之上
  • 使用Bevy的场景格式声明或者在代码中动态的编写
  • 使用熟悉的"flex box"模型来布局你的UI

场景

使用 Bevy 的场景系统来创建, 保存, 加载 ECS 世界
  • 加载: 加载场景保存实体 ID (对保存游戏很有用)
  • 实例化: 实例化使用新的实体 ID 创建场景的链接副本
  • 热重载: 对场景文件的更改会自动应用到正在运行的应用程序中

声音

加载音频文件, 并按需求播放它们
  • 加载 mp3 音频文件作为资源
  • 使用 AudioOutput 来播放音频文件

热重载

在你修改之后得到即时反馈, 无需重启或者重新编译
  • 资源的变动将即时反映在运行的 Bevy App 中
  • 你可以热重载场景, 纹理和网格
  • 任何资源类型都可以

高效的编译时间

游戏开发是一个迭代的过程,不用花时间去等待编译
  • 使用 Bevy 的"快速编译"配置,预期为 0.8-3.0 秒
  • 与其他流行的 Rust 游戏引擎相比,它们可以花 30 秒以上的时间来编译一个单行插入!

免费开源

一个由(为)开发者社区制作的引擎
  • 100% 免费,天长地久
  • MIT 许可证下的开放源码
  • 没有合同
  • 没有许可费用
  • 没有销售提成
浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报