Bevy:基于Rust的数据驱动游戏引擎和应用程序框架


Bevy是一个用Rust开发的令人耳目一新的简单数据驱动游戏引擎和应用程序框架。
它具有以下设计目标:

  • 功能:提供完整的2D和3D功能集
  • 简单:对于新手来说很容易上手,但是对于高级用户则具有无限的灵活性
  • 关注数据:使用实体组件系统范例的面向数据的体系结构
  • 模块化:仅使用您需要的内容。替换你不喜欢的东西
  • 快速:应用程序逻辑应快速运行,并尽可能并行运行
  • 高效:更改应快速编译,等待并不是一件有趣的事

我认为Bevy具有许多功能,与其他引擎不同:
  • Bevy ECS:具有无与伦比的可用性和超快性能的自定义实体组件系统
  • 渲染图:使用“渲染图”节点轻松构建自己的多线程渲染管道
  • Bevy UI:专为Bevy构建的自定义ECS驱动的UI框架
  • 高效的编译时间:使用“快速编译”配置,预期更改将在约0.8-3.0秒内完成编译

它还具有大多数人期望从现代通用引擎获得的许多功能:
  • 跨平台:Windows,MacOS和Linux(计划支持移动和Web)
  • 3D:灯光,网格,纹理,MSAA和GLTF加载
  • 精灵:渲染单个图像作为子画面,子画面从片材呈现,和动态地产生新的子画面片
  • 资产:可扩展的,事件驱动的资产系统,可在后台线程中异步加载资产
  • 场景:将ECS Worlds保存到人类可读的场景文件中,并将场景文件加载到ECS Worlds中
  • 插件:所有引擎和应用功能均作为模块化插件实现
  • 声音:将音频文件作为素材加载并从系统中播放
  • 多个渲染后端:Vulkan,DirectX 12和Metal(由于wgpu而有更多的发展中)
  • 数据驱动着色器:轻松将ECS组件直接绑定到着色器制服
  • 热资产重载:在运行时自动将更改重载到资产,而无需重新编译或重新启动
  • 事件:从ECS系统内部有效地消费和产生事件
  • 属性:使用名称字段的字符串版本动态获取和设置组件字段
  • 层次变换:在实体之间创建父子关系,以在层次结构中传播变换