bevy_mod_scripting
kayak_ui
bevy_mod_scripting | kayak_ui | |
---|---|---|
5 | 5 | |
332 | 454 | |
- | - | |
7.4 | 7.8 | |
9 days ago | about 1 month ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bevy_mod_scripting
-
3 years of fulltime Rust game development, and why we're leaving Rust behind
As someone who's become a core contributor to Bevy lately, while also doing contract work in Unity on the side, I obviously disagree with the idea that Rust isn't up to the task of game dev. The grass isn't greener on the Unity side, with a mountain of technical debt holding the engine back. (They're still using Boehm GC in 2024!) Bevy is a breath of fresh air just because it's relatively new and free of legacy. Using Rust instead of C++ is just one part of that. Bevy has a more modern design throughout: for instance, it has a relatively straightforward path to GPU-driven rendering in an integrated system, without having to deal with three incompatible render pipelines (BiRP, HDRP, URP).
What I find more interesting is the parts of the article that boil down to "Rust isn't the best language for rapid development and iteration speed". And that may well be true! I've long thought that the future of Bevy is an integrated Lua scripting layer [1]. You don't even need to get into arguments about the suitability of the borrow checker: it's clear that artists and designers aren't going to be learning Rust anytime soon. I'd like to see a world in which Rust is there for the low-to-mid-level parts that need performance and reliability, and Lua is there for the high-level logic that needs fast iteration, and it's all a nicely integrated whole.
Long-term, I think this world would actually put Bevy in a better place than the existing engines. Unity forces you into C# for basically everything, which is both too low-level for non-programmers to use and too high-level for performance-critical code (unless you have a source license, which no indie developer has). Unreal requires C++, which is even more difficult than Rust (IMO), or Blueprints, which as a visual programming language is way too high-level for anything but the simplest logic. Godot favors GDScript, which is idiosyncratic for questionable gain. I think Rust and Lua (or something similar) would put Bevy in a Goldilocks spot of having two languages that cover all the low-, mid-, and high-level needs well.
As for the other parts of the article, I disagree with the ECS criticism; ECS has some downsides, but the upsides outweigh the downsides in my view. I do agree that Bevy not having an official editor is an ongoing problem that desperately needs fixing. Personally, I would have prioritized the editor way higher earlier in Bevy's development. There is space_editor [2] now, which is something.
[1]: https://github.com/makspll/bevy_mod_scripting
[2]: https://github.com/rewin123/space_editor
- Open call for maintainers: bevy_mod_scripting
-
Bevy 0.10: data oriented game engine built in Rust
So far, there are promising experiments like https://github.com/makspll/bevy_mod_scripting, but nothing's really caught fire in the community yet.
-
Fyrox Game Engine 0.29
Interesting. Personally I find Rust-only pretty appealing, but people definitely have differing opinions: https://github.com/makspll/bevy_mod_scripting
- Repos using rlua/mlua
kayak_ui
-
Immediate Mode GUI Programming
I cannot recommend immediate mode GUI programming based on the limitations I've experienced working with egui.
egui does not support putting two widgets in the center of the screen: https://github.com/emilk/egui/issues/3211
It's really easy to get started with immediate mode, it's really easy to bust out some UI, but the second you start trying to involve dynamically resized context and responsive layouts -- abandon all hope. The fact it has to calculate everything in a single pass makes these things hard/impossible.
... that said, I'm still using it for https://ant.care/ (https://github.com/MeoMix/symbiants) because it's the best thing I've found. I'm crossing my fingers that Bevy's UI story (or Kayak https://github.com/StarArawn/kayak_ui) become significantly more fleshed out sooner rather than later. Bevy 0.13 should have lots more in this area though (https://github.com/bevyengine/bevy/discussions/9538)
-
Considerations for Power Draw with egui
Bevy with https://github.com/StarArawn/kayak_ui
-
Is bevy a good choice for a mainly UI based game?
These two both provide ways of expressing UI in a more HTMLish style.Kayak UI (0.9 support)Belly (0.10 support)
-
Fyrox Game Engine 0.29
I agree that the state of GUI in Rust is not quite mature.
As an aside, there's https://github.com/StarArawn/kayak_ui that seems nice, but I've not actually used it, so I can't vouch for it.
-
Building modern Desktop Ecosystem for UNIX-like Systems with Rust and Wayland.
Hello! I would like to hear some suggestion and opinions from Rust community about building Wayland ecosystem in Rust based around Smithay and their Client Toolkit. I'm working with Wayland Compositors for over 2 years now (private projects) and wanted to move ahead from C++ to build modern Desktop Ecosystem and it's components (truly unique, not copies of macOS or Windows styles) like notification daemon, customizable desktop shell or powerful wallpaper daemon for any compositor which implements layershell protocol. Current idea is to create wallpaper daemon which uses WGPU to render shaders, images or gifs with comfort of high perofrmance renderer (still learning wgpu and it's slow process). For UI components I would like to use truly amazing KayakUI create which uses JSX-style syntax for designing widgets. Desktop Shell should provide plugins (most likely applied through WASM) for integrating various creates to get e.g. weather info or compositor integration etc.
What are some alternatives?
Blightmud - A terminal mud client written in Rust
belly - Define the Bevy UI tree with `eml!`, style it using a very-css-like `ess` syntax and relate data data with `bind!` and `connect!`
bevy-inspector-egui - Inspector plugin for the bevy game engine
Anodium - WIP Wayland Compositor
tealr_doc_gen - an online documentation generator for apis written with tealr
client-toolkit - Smithay's toolkit for writing wayland clients
lotus - :zap: Fast Web Security Scanner written in Rust based on Lua Scripts :waning_gibbous_moon: :crab:
smithay - A smithy for rusty wayland compositors
bevy_async_task - Ergonomic abstractions to async programming in Bevy for all platforms.
bevy_ggrs - Bevy plugin for the GGRS P2P rollback networking library.
wf-wallpaper - Advanced wallpaper plugin for Wayfire | now on https://codeberg.org/unrelentingtech/wf-wallpaper