Redot-Engine / redot-engine

Redot Engine – Multi-platform 2D and 3D game engine
https://redotengine.org/
MIT License
4.83k stars 221 forks source link

[Suggestion]: Rust language implementations #177

Closed nedfreetoplay closed 1 month ago

nedfreetoplay commented 1 month ago

Tested versions

N/A

System information

N/A

Issue description

I'm writing here because the suggestion repository isn't working. I propose to implement the Rust language, because of its safety. In the Redot engine, due to the fact that it is written in C++, various memory problems can occur. Data exchange can be done through C ABI interface, as it is done with GDExtensions.

Yes, I know that introducing an additional language can overload the build system, but I also know that the C++ build system is quite slow, as the compiler has to build each cpp file in one thread for successful build.

Steps to reproduce

N/A

Minimal reproduction project (MRP)

N/A

ElonGaties commented 1 month ago

"rewrite in rust" type issue

rlidwka commented 1 month ago

I propose to implement the Rust language, because of its safety.

Implement what?

Possibility to interface with Godot in Rust language? That's already possible, see https://godot-rust.github.io (there was a discussion on the discord that that project should work just fine with any forks, provided that said forks don't break gdextension api).

Rewrite engine in Rust? You can go ahead and do that yourself. :)

but I also know that the C++ build system is quite slow

yeah Rust has a lot of benefits, and fast compile speed most certainly is not one of them

Spartan322 commented 1 month ago

This issue still has a spam comment.

Anyway adding Rust to Redot would be not only pointless, but would almost certainly harm build times even more, Godot can take a while to build already, and doing all that would add more dependencies and build time to the compile process, if you want to use Rust we already have https://godot-rust.github.io/ as mentioned, (it doesn't even need any Rust user to incorporate Rust into the engine itself) and even that aside Godot wouldn't even benefit much from it because the Godot API and runtime are still required to have the unsafe capacities that Rust actually prohibits, so incorporating Rust in most areas of the engine would in most instances actually violate compatibility with Godot. (without using unsafe that is, defeating the entire point of using Rust anyway, its not like we are actually allowed to have a safer binary with Rust)

JohnnyThunder2 commented 1 month ago

I like Rust, I don't like Rust this much.

You can write C++ code in a way that is memory safe, you can also write Rust code in a way that is unsafe.

This feels like the Airbus vs. Boeing debate among aviation enthusiasts. Anyone with experience knows a plane is just a plane and what really matters is the skill of the pilot.

IpGa13 commented 1 month ago

This feels like the Airbus vs. Boeing debate among aviation enthusiasts. Anyone with experience knows a plane is just a plane and what really matters is the skill of the pilot.

As an aviation enthusiast, this could not be any more true!