this post was submitted on 18 Sep 2023
1 points (100.0% liked)

Godot

6269 readers
45 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 2 years ago
MODERATORS
top 3 comments
sorted by: hot top controversial new old
[–] CaptDust@sh.itjust.works 1 points 1 year ago* (last edited 1 year ago)

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/

[–] ICastFist@programming.dev 0 points 1 year ago* (last edited 1 year ago) (1 children)

TLDR - Godot's raycasting is considerably more memory intensive than Unity's. Using the Godot API to call its raycast in any language is much slower than simply using the builtin Node. Most of the performance woes are due to how GDScript is implemented: a slow, interpreted language (Python)

It's a fair complaint, Godot is far from perfect in many areas and may not be ideal for certain projects. This is fine, really. If it's possible to make the engine better, I hope the pull requests that do so get accepted

He did a small complaint that GDScript should be ditched. If you care entirely about performance, that is true. The problem, obviously, is that a lot of people, me included, rely on it instead of C#. For all intents and purposes, this is something that could be done, but it'd end up as a wholly separate branch of Godot that would end up with several incompatibilities, eventually becoming a different engine. In that case, it might be better to just check an alternative like Stride3D or Torque3D

[–] CaptDust@sh.itjust.works 1 points 1 year ago* (last edited 1 year ago)

I understand where the C# devs are coming from, but many of these unity devs experimenting need to understand C# was hardly a consideration before microsoft earmarked funds to push and develop support for the language in the engine.

I'd be heartbroken if gdscript was ever dropped for improved C# support, games are much more fun to write in gdscript. I hope both languages can become more integrated and performent without the sacrificing of the other.