gdnative
bevy
Our great sponsors
gdnative | bevy | |
---|---|---|
87 | 494 | |
3,296 | 22,844 | |
2.4% | 5.7% | |
9.3 | 9.9 | |
8 days ago | 1 day ago | |
Rust | Rust | |
MIT License | MIT OR Apache-2.0 |
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.
gdnative
-
Rust – Are We Game Yet?
> Same for Godot.
While likely true that it's "Unlikely to ever be as supported" as the 4 officially supported languages[0] ("GDScript, C#, and, via its GDExtension technology, C and C++."), Godot's GDExtension technology is specifically intended for use in adding support for other languages.
The most relevant tracking issue for Rust is presumably:
* <https://github.com/godot-rust/gdnative/issues/824>
Which links to:
* <https://github.com/godot-rust/gdextension>
[0] https://docs.godotengine.org/en/4.0/getting_started/step_by_...
-
OK so whose gonna tell them
...Godot v3.x has Rust support via godot-rust and Godot v4.0 is released as of this month?
-
Godot 4.0 is out
I was curious, and looked it up. Nothing built in, but there's an interesting project that works with godot: https://godot-rust.github.io/
-
The langage for the next 40 years of engine dev
Curious why you think Rust would not work with a node-system like in Godot since there are already Rust-bindings for Godot. And while I can think of several reasons for not using Rust (I don't use it myself) I never thought the lack of inheritance would be an issue at all.
-
I want to make a game that’s compatible with Nintendo switch.
Also if you want to use this as an opportunity to learn Rust, take a look at godot-rust.
-
100,000 subscriber celebration – Ask the Godot contributors anything!
GDExtension is a platform, much like GDNative. It provides tools, but additional language bindings will still come from the community. For Godot Rust you can track the progress here: https://github.com/godot-rust/godot-rust/issues/824
-
Can you use rust to create games?
For what its worth, you can write your scripting for godot in Rust with godot-rust. It's not perfect cause its fitting Rust into the Godot model, but it'll also give you a "best of both worlds" type of situation if you want to get up and running quick but also do the game logic in Rust.
There's godot-rust for writing Rust components for the Godot engine.
-
What do I need for a board game?
If you desire to use Godot, as having the editor and support, while wanting to use Rust for the logic, might wanna look into Godot Rust.
-
What's your favorite Rust design pattern?
Current version of godot-rust uses type-state to declare Ref references "safe to use" once the user has asserted their safety, and to switch between shared/unique/thread-local ownership.
bevy
-
What’s an actual use case for Rust
Game engines (Bevy, Fyrox)
- How do you feel about comments made by Tim Sweeney?
-
Bevy Jam #3
After the quick start there isn't as much documentation yet as one might hope, but I find you can learn to do just about anything you need by reading the extensive examples. There are tons of them in GitHub of which a subset have been turned into interactive WebGL apps on the main site.
-
Writing a Compiler and a Virtual Machine in Rust
well, wasm threads are weird for some reason. Issues like https://github.com/bevyengine/bevy/issues/4078 remind me that wasm is still a moving target.
-
3D character animation example for Bevy
There are some examples here: https://github.com/bevyengine/bevy/tree/main/examples/animation
-
OK so whose gonna tell them
Rust is much newer a language than Java. Give it time. There is clearly industry interest: check out the sponsors list on bevyengine.org.
-
Fellow Rust enthusiasts: What "sucks" about Rust?
Binaries file-sizes in debug are just insanely big, a Hello World will be around ~4MB, an empty Bevy project will be around ~600MB.
-
Announcing diff.rs!
$ git clone https://github.com/bevyengine/bevy.git ; cd bevy $ cargo install --locked cargo-public-api $ cargo public-api -ss -p bevy_utils diff v0.9.1..v0.10.0 Removed items from the public API ================================= (none) Changed items in the public API =============================== (none) Added items to the public API ============================= +pub use bevy_utils::<> +pub use bevy_utils::petgraph +pub use bevy_utils::thiserror +pub fn bevy_utils::synccell::SyncCell::read(&self) -> &T where T: core::marker::Sync +pub mod bevy_utils::syncunsafecell +pub use bevy_utils::syncunsafecell::UnsafeCell +#[repr(transparent)] pub struct bevy_utils::syncunsafecell::SyncUnsafeCell +impl bevy_utils::syncunsafecell::SyncUnsafeCell +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::from_mut(t: &mut T) -> &bevy_utils::syncunsafecell::SyncUnsafeCell +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::get(&self) -> *mut T +pub fn bevy_utils::syncunsafecell::SyncUnsafeCell::get_mut(&mut self) -> &mut T +pub const fn bevy_utils::syncunsafecell::SyncUnsafeCell::raw_get(this: *const Self) -> *mut T ...
-
Bevy 0.10: data oriented game engine built in Rust
Firstly, Bevy has an internal crate called bevy_reflect, and it can handle most of the things you would usually use reflection for. For example, https://github.com/jakobhellermann/bevy-inspector-egui exists which uses Bevy's internal reflect derive to make the values available via an egui-based UI. Changing simple values (like an f32, or a boolean) can be done at runtime, and if I remember correctly all you actually need to do is to add the plugin. Taking a look at the README https://github.com/bevyengine/bevy/tree/main/crates/bevy_reflect you can "patch" types with new values, iterate over struct fields, serialize + deserialize, and generally do stuff like that.
It doesn't work currently. The only problem is that plugin initialization must be asynchronous, so you have to pass control back to the browser to allow it to initialize the WebGPU api properly[1]. I hacked async plugin initialization into a fork for Bevy 0.8[2], but I never got it to 100% work because Chrome had already moved onto a newer WGSL syntax. In theory if you do the same changes for 0.10 as I did for 0.8 it should allow WebGPU to work (and I plan on doing this in the next couple days).
What are some alternatives?
Amethyst - Data-oriented and data-driven game engine written in Rust
Godot - Godot Engine – Multi-platform 2D and 3D game engine
Fyrox - 3D and 2D game engine written in Rust
RG3D - 3D and 2D game engine written in Rust [Moved to: https://github.com/FyroxEngine/Fyrox]
piston - A modular game engine written in Rust
specs - Specs - Parallel ECS
ggez - Rust library to create a Good Game Easily
wgpu - Safe and portable GPU abstraction in Rust, implementing WebGPU API.
macroquad - Cross-platform game engine in Rust.
raylib - A simple and easy-to-use library to enjoy videogames programming
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
mediapipe - Cross-platform, customizable ML solutions for live and streaming media.