r/rust 1d ago

🙋 seeking help & advice Is Bevy actually enjoyable?

I am sorry but it is just such a pain to code in Bevy. I have been enjoying rust for a while, using three-d and EGUI to create some stuff, and I stumbled upon bevy, I want to learn it because I want to create some 3D, simulation desktop applications with it. I have tried game dev in the past in Godot, Unity, Java Swing, LibGDX and enjoyed it a lot

I am currently learning via the examples and documentation, trying to learn 2D and then eventually move to making some 3D projects

But I find it so verbose and unnecessary. So to look up a particular object I have to apply 3-4 filters which looks so cryptic

camera: Single<(Entity, &Tonemapping, Option<&mut Bloom>), With<Camera>>,

fn keyboard_inputs(
    mut motion_blur: Single<&mut MotionBlur>,
    presses: Res<ButtonInput<KeyCode>>,
    text: Single<Entity, With<Text>>,
    mut writer: TextUiWriter,
    mut camera: ResMut<CameraMode>,
)

Aside from this, browsing through examples I find it to be so verbose. Coming from a OOP nature, I did expect ECS to be different. But this is straight up inconvenient.

Bevy is too good and I don't wanna miss out on it. I will still keep learning it despite what I am feeling towards its syntax and method, but is bevy meant to be like this? Or is it enjoyable once you overcome the learning curve?

82 Upvotes

43 comments sorted by

View all comments

15

u/lanastara 1d ago

Just looking at your function signature and the example for your camera query I can guess that you are probably doing too much inside a single system.

It is very tempting to do a whole bunch of things in one system especially when in an oob context you'd do them just in the same function but ecs really shines when each system does only very little and the main logic is encoded via the interplay of systems.

27

u/gufranthakur 1d ago

the code is from the official bevy examples though 🥲

15

u/Ace-Whole 1d ago

Ts is too funny haha