找回密码
 立即注册
查看: 796|回复: 1

有哪些值得推荐的Rust游戏引擎或图形渲染库?

[复制链接]
发表于 2022-1-18 15:29 | 显示全部楼层 |阅读模式
Rust目前在游戏引擎的发展非常不错,虽说还没百花齐放,但是在图形渲染和GPU方面都出现了非常优秀的基础库,可以说未来不是梦。
游戏引擎

Bevy

bevy是一个数据驱动的游戏引擎,支持2D和3D图形开发,优点是社区活跃、更新快、模块化设计优秀、性能高,缺点是还处于快速开发中,并不适合生产使用。
同时bevy的文档齐全,官方示例很多,非常适合学习和使用。



添加图片注释,不超过 140 字(可选)

Fyrox(前rg3d)

fyrox是一个2D和3D游戏图形化引擎,功能丰富,生产可用(官方宣称)。
该项目前身是rg3d,但是被收购后,更名为fyrox,潜力应该是相当好的,下面截图来源于基于该引擎开发的游戏StationIapetus。



添加图片注释,不超过 140 字(可选)

ggez

ggez是一个轻量级的2D游戏图形引擎,它的目标是让游戏开发尽量的简单,因此它的功能并不是很强大,例如如果你想要强大且真实的物理引擎,它可能无能为力,但你可以选择在它的基础上构建自己的更高级的引擎。



添加图片注释,不超过 140 字(可选)

oxygengine

oxygengine是一个2D HTML5游戏引擎,支持编译成WASM在浏览器中运行。



添加图片注释,不超过 140 字(可选)

macroquad

macroquad是一个2D游戏引擎,特点是简单易用,例如它试图让使用者不会遇到Rust生命周期的难题。
godot-rust

godot-rust是大名鼎鼎的godot引擎的Rust绑定,godot是c++开发的游戏2D/3D引擎,但是对Rust语言提供了很好的支持。



添加图片注释,不超过 140 字(可选)

piston

piston是前两年较火的模块化的游戏引擎,但是最近半年开发速度缓慢,我调查了一番,但不清楚发生了什么。
Amethyst

Amethyst, 前几年较火的Rust游戏引擎,但是最近开发已经停滞,经过我调查,是因为作者团队转型Rust游戏开发知识分享,因此项目被放弃。
GPU和图形渲染

wgpu

wgpu是一个纯Rust实现的图形化API库,具有安全、可移植等优点,如果你使用基于wgpu构建的库,那该库可以很多平台上运行:Linux, windows, MacOS, Android和IOS。
它可以原生的运行在Vulkan, Metal等主流平台上,且可以使用wasm的方式运行在WebGPU上,同时API兼容WebGPU标准。
总之,如果你要使用WebGPU, 选它就对了。
rust-gpu

rust-gpu的目标是让Rust成为GPU编程的第一梯队语言,由大名鼎鼎的Embark公司开发,后台较硬。
如果需要通用的GPU编程,选它就对了。
kajiya

kajiya是一个实时的、全局光照渲染系统,由Embark公司开发,该公司在秘密研究急于Rust的游戏引擎,据说准备应用在新游戏上,有朝一日它可能会是推动Rust游戏引擎爆发式发展的功臣。
kajiya应用了非常先进的论文和设计理念,因此非常值得有志于游戏引擎开发的同学学习。但目前还不适用于生产级使用,具体见这里。



添加图片注释,不超过 140 字(可选)

lyon

lyon可以使用GPU进行向量路径渲染,例如高效渲染复杂的svg等。
ash

ash是一个轻量级的Vulkan绑定。



添加图片注释,不超过 140 字(可选)

vulkano

vulkano是一个安全、特性丰富的Vulkan绑定。
rend3

rend3是一个简单易用、可定制性强、高效的3D渲染库,基于wgpu开发。



添加图片注释,不超过 140 字(可选)

rafx

rafx是一个多后端渲染器,目标是性能、扩展性和生产力。



添加图片注释,不超过 140 字(可选)

gfx

gfx是一个底层的图形库,目前已经不怎么活跃,主要原因是:它的核心组件gfx-hal最开始的目标是为wgpu提供功能,但是后面wgpu实现了自己的wgpu-hal,因此gfx-hal目前仅处于维护状态。
luminance

luminance是一个类型安全、无状态的图形框架,目标是让图形渲染变得简单和优雅,最开始是通过Haskell语言实现,然后在2016年移植到Rust上。
它很简单,功能也不够强大,如果你没有OpenGL、Vulkan的经验,可以使用它做一些简单的图形渲染项目试试。
miniquad

miniquad是一个安全和跨平台的图形渲染库,它提供了较为底层的API,如果需要抽象层次更高的API,可以使用之前提到的macroquad,后者是基于miniquad封装实现。



添加图片注释,不超过 140 字(可选)

glow

glow提供了各种GL绑定(OpenGL, WebGL), 提供了一定的抽象,避免你写平台相关的特定代码实现。
学习资料和新闻

游戏开发最新新闻


  • gamedev
一些学习资料(英文)


  • Hands-on Rust
  • 使用bracket-lib和其配套书籍进行学习
  • 想要没有困难的开发一个跨平台的2D游戏?使用macroquad,并且可以参考用它开发的两个游戏: fish fight和zemeroth
  • 想要开发一个简单的3D游戏并且需要一个编辑器?可以试试fyrox(rg3d)
  • 想要开发一个复杂的游戏或者想要做一个demo,未来可以基于该demo继续开发,最终完成一个复杂游戏?可以试试godot引擎提供的Rust绑定:godot-rust
  • 喜欢钻研前沿技术?试试bevy,它拥有最好的ECS实现和最先进的设计理念(可能)
ECS(Entity Component System)和DOD(面向数据设计)资料

我们在上面提到的很多系统都使用了ECS和DOD,因此这两者对于游戏开发是极其重要的,下面是一些相关的英文资料(部分需要翻墙),可以帮助大家理解相关概念。

  • hecs, 一个用Rust实现的ECS世界
  • Understanding data-oriented design for entity component systems - Unity at GDC 2019
  • CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
  • RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
  • "Data-Oriented Design" web book by Richard Fabian
一些游戏开发的生产力工具


  • Blender用于3D建模
  • Krita用于创建2D图片

本文节选自<<Fancy Rust>>,使用我们精心挑选的开源代码,让你的Rust项目Fancy起来:)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-1-18 15:32 | 显示全部楼层
Rust目前在游戏引擎的发展非常不错,虽说还没百花齐放,但是在图形渲染和GPU方面都出现了非常优秀的基础库,可以说未来不是梦。
游戏引擎

Bevy

bevy是一个数据驱动的游戏引擎,支持2D和3D图形开发,优点是社区活跃、更新快、模块化设计优秀、性能高,缺点是还处于快速开发中,并不适合生产使用。
同时bevy的文档齐全,官方示例很多,非常适合学习和使用。



添加图片注释,不超过 140 字(可选)

Fyrox(前rg3d)

fyrox是一个2D和3D游戏图形化引擎,功能丰富,生产可用(官方宣称)。
该项目前身是rg3d,但是被收购后,更名为fyrox,潜力应该是相当好的,下面截图来源于基于该引擎开发的游戏StationIapetus。




添加图片注释,不超过 140 字(可选)

ggez

ggez是一个轻量级的2D游戏图形引擎,它的目标是让游戏开发尽量的简单,因此它的功能并不是很强大,例如如果你想要强大且真实的物理引擎,它可能无能为力,但你可以选择在它的基础上构建自己的更高级的引擎。




添加图片注释,不超过 140 字(可选)

oxygengine

oxygengine是一个2D HTML5游戏引擎,支持编译成WASM在浏览器中运行。




添加图片注释,不超过 140 字(可选)

macroquad

macroquad是一个2D游戏引擎,特点是简单易用,例如它试图让使用者不会遇到Rust生命周期的难题。
godot-rust

godot-rust是大名鼎鼎的godot引擎的Rust绑定,godot是c++开发的游戏2D/3D引擎,但是对Rust语言提供了很好的支持。




添加图片注释,不超过 140 字(可选)

piston

piston是前两年较火的模块化的游戏引擎,但是最近半年开发速度缓慢,我调查了一番,但不清楚发生了什么。
Amethyst

Amethyst, 前几年较火的Rust游戏引擎,但是最近开发已经停滞,经过我调查,是因为作者团队转型Rust游戏开发知识分享,因此项目被放弃。
GPU和图形渲染

wgpu

wgpu是一个纯Rust实现的图形化API库,具有安全、可移植等优点,如果你使用基于wgpu构建的库,那该库可以很多平台上运行:Linux, windows, MacOS, Android和IOS。
它可以原生的运行在Vulkan, Metal等主流平台上,且可以使用wasm的方式运行在WebGPU上,同时API兼容WebGPU标准。
总之,如果你要使用WebGPU, 选它就对了。
rust-gpu

rust-gpu的目标是让Rust成为GPU编程的第一梯队语言,由大名鼎鼎的Embark公司开发,后台较硬。
如果需要通用的GPU编程,选它就对了。
kajiya

kajiya是一个实时的、全局光照渲染系统,由Embark公司开发,该公司在秘密研究急于Rust的游戏引擎,据说准备应用在新游戏上,有朝一日它可能会是推动Rust游戏引擎爆发式发展的功臣。
kajiya应用了非常先进的论文和设计理念,因此非常值得有志于游戏引擎开发的同学学习。但目前还不适用于生产级使用,具体见这里。




添加图片注释,不超过 140 字(可选)

lyon

lyon可以使用GPU进行向量路径渲染,例如高效渲染复杂的svg等。
ash

ash是一个轻量级的Vulkan绑定。




添加图片注释,不超过 140 字(可选)

vulkano

vulkano是一个安全、特性丰富的Vulkan绑定。
rend3

rend3是一个简单易用、可定制性强、高效的3D渲染库,基于wgpu开发。




添加图片注释,不超过 140 字(可选)

rafx

rafx是一个多后端渲染器,目标是性能、扩展性和生产力。




添加图片注释,不超过 140 字(可选)

gfx

gfx是一个底层的图形库,目前已经不怎么活跃,主要原因是:它的核心组件gfx-hal最开始的目标是为wgpu提供功能,但是后面wgpu实现了自己的wgpu-hal,因此gfx-hal目前仅处于维护状态。
luminance

luminance是一个类型安全、无状态的图形框架,目标是让图形渲染变得简单和优雅,最开始是通过Haskell语言实现,然后在2016年移植到Rust上。
它很简单,功能也不够强大,如果你没有OpenGL、Vulkan的经验,可以使用它做一些简单的图形渲染项目试试。
miniquad

miniquad是一个安全和跨平台的图形渲染库,它提供了较为底层的API,如果需要抽象层次更高的API,可以使用之前提到的macroquad,后者是基于miniquad封装实现。




添加图片注释,不超过 140 字(可选)

glow

glow提供了各种GL绑定(OpenGL, WebGL), 提供了一定的抽象,避免你写平台相关的特定代码实现。
学习资料和新闻

游戏开发最新新闻


  • gamedev
一些学习资料(英文)


  • Hands-on Rust
  • 使用bracket-lib和其配套书籍进行学习
  • 想要没有困难的开发一个跨平台的2D游戏?使用macroquad,并且可以参考用它开发的两个游戏: fish fight和zemeroth
  • 想要开发一个简单的3D游戏并且需要一个编辑器?可以试试fyrox(rg3d)
  • 想要开发一个复杂的游戏或者想要做一个demo,未来可以基于该demo继续开发,最终完成一个复杂游戏?可以试试godot引擎提供的Rust绑定:godot-rust
  • 喜欢钻研前沿技术?试试bevy,它拥有最好的ECS实现和最先进的设计理念(可能)
ECS(Entity Component System)和DOD(面向数据设计)资料

我们在上面提到的很多系统都使用了ECS和DOD,因此这两者对于游戏开发是极其重要的,下面是一些相关的英文资料(部分需要翻墙),可以帮助大家理解相关概念。

  • hecs, 一个用Rust实现的ECS世界
  • Understanding data-oriented design for entity component systems - Unity at GDC 2019
  • CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
  • RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
  • "Data-Oriented Design" web book by Richard Fabian
一些游戏开发的生产力工具


  • Blender用于3D建模
  • Krita用于创建2D图片

本文节选自<<Fancy Rust>>,使用我们精心挑选的开源代码,让你的Rust项目Fancy起来:)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-15 04:34 , Processed in 0.146439 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表