3 ms·
No way! The funny little language rules! It's a competitive advantage for Godot. GDScript integrates so nicely with the Node/Resource refcount model. It fills
by danbolt 3y ago
No way! The funny little language rules! It's a competitive advantage for Godot.
GDScript integrates so nicely with the Node/Resource refcount model. It fills the same niche that Unreal's Blueprints do, which is great! When you've found something performance-critical, it's not difficult to convert a GDScript node into a GDNative one.
I feel like a lot of the "GDScript, ick!" comments tend to assume that the scripting language is trying to be Lua/C#/Python tacked onto a C++ codebase. It's a lot more tightly-integrated with the runtime, and it makes organizing things a lot better in the long run.
- treyd 3y agoThe Rust bindings (crates gdnative for 3.0 and gdext for 4.0) also are pretty great. I've only used them a bit so far but once I got the hang of it it works well. They don't seem to teeth badly with Rust's ownership semantics like some attempts at wrapping GTK struggled with.
- danbolt 3y agoI haven't used Rust professionally, but have often wondered if Rust's RAII [1] meshes decently with the lifetime of a RefCounted in Godot. [2] While Godot's profiling has a lot of room for improvement, I appreciate how intuitive memory usage is from both a design and technical standpoint. [1] https://doc.rust-lang.org/rust-by-example/scope/raii.html https://doc.rust-lang.org/rust-by-example/scope/raii.html [2] https://docs.godotengine.org/en/stable/classes/class_refcounted.html https://docs.godotengine.org/en/stable/classes/class_refcoun...
- blensor 3y agoThe funny thing is that if you are looking for some GDScript call into the engine it oftern supports exactly the functionality you need for your use case even though other more common use cases are not supported. It shows that the developers making it are also the ones using it for themselves.