this post was submitted on 18 Sep 2023
83 points (97.7% liked)

Godot

5888 readers
51 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] CaptDust@sh.itjust.works 37 points 1 year ago* (last edited 1 year ago) (12 children)

Juan Linietsky's (reduzio) response:

This article is very interesting. Just want to note that this is something we are aware of and the intention is to work it on in two fronts:

  • From the binder API, adding a struct type, to pass these results more efficiently.
  • The GDExtension side can already expose these structs to the binder API with a proper layout description, but the C# in support has not been moved to it yet (its one of the missing steps to merge both the C# and default editor).

So basically, this area of the engine is a work in progress. To do this also we had to finalize the system to provide compatibility functions to older builds of Godot libraries and extensions as a prerequisite and this was completed in 4.1. Fortunately there is not a lot of the API exposed this way, the majority uses more efficient interfaces. This is more part of the legacy code that is being modernized. None of this is particularly complex to do, but the demand has not been high enough so other things are prioritized. I am hoping your article motivates some contributors to do it :)

Give us a bit of time. Everything is kind of a mess because of the suddendly increased interest of several users and companies on the C# side. This work has to be properly organized but the general idea is that funding will be used to make sure all works as smooth as possible.

From https://old.reddit.com/r/godot/comments/16lti15/godot_is_not_the_new_unity_the_anatomy_of_a_godot/k16982q/

[–] Ferk@kbin.social 2 points 1 year ago* (last edited 1 year ago) (9 children)

I wonder: are these inefficiencies only relevant when using C# as your code base?

I mean, does all this talk about the "binding layer" being "structurally built to be slow " apply to those using GDscript?

Because I remember that years ago, back when it was decided to go with a custom designed language (GDScript), the justification put forward was that it would actually be more efficient to do it that way. So it would be kind of ironic if now the API from GDExtensions allows for more efficient bindings than GDScript.

But if it's only talking about the C# bindings... then the complaints are kind of missing the point. If you truly want to move from Unity to Godot properly, I would expect learning GDScript would be the more advisable direction. Specially at the moment. Godot's C# API and the new native interfaces are not really very mature, they were not the intended main way to use the engine... they are more of an extra convenient feature on the side that you can experiment with. In fact I believe they were recently heavily reworked in v4.0

Of course I understand that those coming from Unity would be more comfortable with a C# API, and I agree that it would be a nice thing if the C# API was just as efficient as the GDScript API, but that's not the same thing as implying that moving to Godot doesn't work because it's "built to be slow".....

[–] Toasteh@lemmy.world 3 points 1 year ago

Python syntax makes me really have no interest in gdscript. I don't understand why people like python/similar languages. Its painful to use.

load more comments (8 replies)
load more comments (10 replies)