9

Oh my god, GDScript is the single biggest piece of shit scripting language I have ever witnessed. It somehow manages to combine the very worst things of dynamic typing with the downsides of static typing, all in one bundle of utter shit

Imagine you have two game object scripts that want to reference each other, e.g. by calling each others methods.

Well you're outta fucking luck because scripts CANNOT have cyclic references. Not even fucking *type hints* can be cyclic between scripts. Okay no problem, since GDScript is loosely based of Python I can surely just call my method out of the blue without type hints and have it look it up by name. Nope! Not even with the inefficient as fuck `call` method that does a completely dynamic-at-runtime fuck-compile-time-we-script-in-this-bitch function call can find the function. Why? Because the variable that holds a reference to my other script is assumed to be of type Node. The very base class of everything

So not only is the optional typing colossal garbage. You cant even do a fucking dynamic function call because this piece of shit is just C++ in Pyhtons clothing. And nothing against C++ (first time I said that). At least c++ lets me call a fucking function

Comments
  • 2
    Godots "Mono" version supports C#.
  • 0
    Can you post the code because I have zero clue what the issue is.

    This topic talks about a function ref:

    https://github.com/godotengine/...

    I also found this:

    https://docplayer.net/190810633-Fun...
  • 1
    @Demolishun In this case I think I fucked up because after a bit of racachigering it did work, but still wtf. How are cyclic types not a thing. How what why
  • 2
    @12bitfloat You can do native c++ and rust in version 4 (beta). From what I can tell the entire API is available there. You don't have to use the scripting at all.
  • 2
    @SuspiciousBug oh wow, finally a reason to try godot!
  • 1
    @Demolishun Yeah I read 4.0 improves this a lot. Sadly I'm working on this with uni class mates that don't give a damn so I can't even use C# 🙃
  • 2
    I keep coming back to Godot, realizing that it's still shit, and looking away for another year. It makes me sad because they have good ideas but you just can't build a good game engine on a language so naiive with an implementation so bad. Mono works kinda, but its powerful generic type system is criminally underutilized and this isn't even a necessity since the engine itself is written in C++ which has an even more powerful, even more underutilized type system.

    Overall I get the feeling that Godot lags behind Unity in areas where it has no reason to lag because doing them right would not have been more effort but doing them twice is.
  • 1
    Since I wrote this comment Godot received a major update which - among other things - adds lambda functions with lexical scoping, cyclic references between scripts and Rust interoperability. After my exams I intend to experiment more with Godot and Bevy.
Add Comment