top | item 45430585

Bevy 0.17: ECS-driven game engine built in Rust

40 points| GenericCanadian | 5 months ago |bevy.org

6 comments

order

_cart|5 months ago

Bevy's creator and project lead here. Feel free to ask me anything!

dahrkael|5 months ago

I keep reading Rust is not that well suited for building game engines specially non-ECS ones. compared to C++ what did you find extra hard to implement in a performant way?

b_e_n_t_o_n|5 months ago

Solari looks interesting. I'm kind of curious how Bevy handles plugins like that which I feel must require some deep integrations in the rendering pipeline and shaders. From my experience with Three that involves some nasty shader patching etc...

jms55|5 months ago

Hi, author of Solari here!

It was pretty straightforward honestly. bevy_solari is written as a standalone crate (library), without any special private APIs or permissions or anything https://github.com/bevyengine/bevy/tree/main/crates/bevy_sol....

The crate itself is further split between the realtime lighting plugin, base "raytracing scene" plugin that could be used for your own custom raytracing-based rendering, and the reference pathtracer I use for comparing the realtime lighting against.

There were some small changes to the rest of Bevy, e.g. adding a way to set extra buffer usages for the buffers we store vertex/index data in from another plugin https://github.com/bevyengine/bevy/pull/19546, or copying some more previous frame camera data to the GPU https://github.com/bevyengine/bevy/pull/19605, but nothing really major. It was added pretty independently.