IceBergyn
I know I've seen comments used to mute warnings in visual studio code recently, but I forget what the language was.

IceBergyn indented language that has a exeption when you use ;

Yes, making exceptions always causes problems. You can see that the authors of gdscript love several different languages -- it's python-like, but they use lua-style dictionary syntax, etc. So, anyone with a background in a similar language walks in and says, "What the heck is this about?" /shrug

IceBergyn Can you tell e what are you using nowadays ?

I'm tinkering in LÖVE again, but that's not going to do you any good -- your use-case is almost certainly not mine. The state of game development hasn't changed significantly in the last five years, as far as I can see, so all the high-level overviews you've seen already still apply, and nothing is anywhere near perfect.

If you just want to push a game out the door fast, you use unity. If nothing else, you can buy any components you need and just get it done.

If you have a team to support you, any of the C++ platforms can get you close to aaa level (unreal leaps to mind).

If you have a distaste for c-like languages (like me), you're relegated to the ghetto development platforms, and you just have to deal with being second-best (if that). [I'm being unnecessarily harsh there, but life is harsh.]

Godot's major advantages from my point of view are

1) It's progressing faster than anyone. (Well, it started farther behind than some, but it's got the momentum of a freight train now, so I don't see it slowing down.) Of course that means you get all the headaches of bleeding-edge software too -- bugs, broken compatibility, etc, so to extend the metaphor, it could go off the rails at any point.

2) It very much hits the sweet spot of ease of use versus capability, and it scales well from solo to small teams. I've seen that in practice, not just theory. It appeals to artists as well as to programmers, and I feel that art is more important than code in game development -- code-monkeys are a dime a dozen. (Yes, AI will change everything, but no one really knows how.)

3) It supports a wide swath of hard/software, but take that with a grain of salt. Nobody can support everything, and godot hasn't got as much manpower as the big names.

If you use godot, you've got two realistic choices: gdscript or c#. My crystal ball says that c# will rule... someday. At the moment, it's the red-headed step-child, and godot might not survive long enough for the transition to happen. Gdscript was written for godot -- it fits better for now.

If you are an experienced programmer, you can learn a new language in maybe 2 days. If you are struggling, that's not the fault of the software, that's your own inexperience. Also, Godot GDScript is based on Python, which is one of the most popular (if not THE most popular) language right now, and lots of people use it from everything from simple scripts and plug-ins, to the latest advancements in AI and ML. There are some small differences, but if you know Python it would take a few hours to learn GDScript. As mentioned before, if you know how to code you can take an algorithm in any language and port it to another in a day. If that's an issue for you, you probably want to use something like Unity and just buy other people's scripts. Honestly, Godot has a ton of problems, and bugs, and missing features. But GDScript is not one of the issues.

@IceBergyn I guess you haven't known Java when it was first released in 1999, API was broken very often and pretty much all code wrote for a version won't work in another (listview from 1.0 to 1.1 for instance), it was awful and insanely memory hungry (more than 1 GB for the demo on a Solaris UltraSparc something, the native environment used by Sun by the way).

Use of the shebang (#!) is a very old shell interpreter convention use by the first shell (Bourne Shell I think), all others, Korn, tcsh, bash, ... take it for some reason, to stay compatible with some old convention dated back to 70s Unix systems.

You complaint about dotnet is quite a clue you don't have enough mastering of what you do, sure dumb Microsoft devs create more of a mess than needed with their stuff but if you do thing right, you'll have less concerns.
Java in this matter is a lot lot worth, I never see someone not struggling with ridiculous tools like ants, graddle, stupid POM files, Eclipse IDE and co, even so called "experienced" devs doesn't understand what to use, how to configure stuff properly.

To conclude, try to mess with the evil javascript and all its issues (browsers liberty took to interpret things as they see fit, buggy frameworks which work on one browser and not others, web servers providing theirs own bag of issues, ...) such a language should have never been invented, great thanks to Netscape guys, they went bankrupt leaving this huge crap behind ! Shame on them forever.

(by the way, you can use C# with Godot)

Javascript is actually good now, well ECMAScript, which is the standard (and also what Flash ActionScript was based on). You can do OOP, import modules, etc. But it still has to support the legacy stuff and I think a lot of people code it the old way.

GodotBeginnerRich GDScript basically IS C# by another name.

No, not really. GDScript is very similar to Python, but C# is also supported.

But, really, like 90% of programming languages are derived from C, so if you know one of them, you know all the others.

I like GDScript a lot. It's not perfect but serves its purpose well - easy high level control over the engine. Performance critical tasks can always be delegated to C# and as a last resort to native code via C++ extensions.

C# is a boat anchor that has to be attached to your game and everyone that uses it has to have the same boat anchor. I'll take a little slower any day. Most of the language changes are very welcome in my book because they give it more versatility. I thought it was terrible when I first started using it because it didn't have classes. Now it works great and keeps getting better and even faster. Having a built in editor is good. Godot with it's node system is just plain easier to use than Unity, and it's lightweight and runs on any computer. Considering they did a full rewrite with Vulcan, it works very well for the time they put into it.

Honestly, the language changes are pretty minor between 3 and 4, but the api has been completely rewritten. The information in the documentation about conversion is embarrassingly shallow. Then again, I think it would be easier to list the things that haven't changed.

My favorite project is a morass of hundreds of errors after the basic conversion. It would probably be easier to start from scratch on another platform than get it working. It would require about the same amount of relearning.

Of course there's no reason anyone has to move to 4, if you don't mind being left behind.

Well every framework or engine changes their API. Try running an Unreal 3 project in Unreal 4 and see what happens.

Also, the main bottleneck when developing games is you not the computer. In GDScript I am at least twice as fast (or probably much more) than if I did it in C# or C++.

Yes, C++ runs faster, but a game that is never finished doesn't run at all.

    My only complaint with GDScript is lack of multiple inheritance.

    Otherwise; you're making a videogame, who cares if its the perfect langauge, platform support and community is far more important. I would prefer Lua tho, but even that has its flaws (arrays startingat 1)

    After I saw the mess the conversion made, I decided to start an entirely different project. It reminded me of Unity, except with Unity, it was like that about every month or so when they did an update.

    Yeah, the auto-updater doesn't work. Every Godot 3 project I've opened in Godot 4 became horribly corrupted. But if you start fresh it mostly works.

    9 months later

    It’s all about the idioms.

    🙄Ok… the title sounded good in my head anyway.

    I keep hearing how GDScript is almost like Python… then I learn GDScript has no exceptions. Exceptions aren’t bad or good; the thing is, Python is idiomatically very RAII-centric. RAII USUALLY requires something rather exception-like. So, most Python idioms don’t necessarily work. I could allocate then initialize, internally… or I can use a factory externally and get much the same effect, but how do I do this in a way that’s obvious to other GDScript developers? Godot isn’t big enough to have GDScript idioms well documented in the wild outside Godot forums, so they really need to be driven home hard in the docs that DO exist. I see some evidence that returning a dictionary to convey an error may be a “popular” convention, but I’m unsure if this is real, or something ChatGPT is hallucinating? This unfortunately seems a bit more dangerous in a dynamically typed language. Nothing wrong with dynamic typing, but strong types, even if they are optional, can offer some nice guardrails, like knowing I’m looking at an error status rather than a value. I understand that dictionaries provide nice clear string names for things, but they are at least an order of magnitude slower than an array with enum indices ERROR_IDX, VALUE_IDX, or even a purpose-built ValueOrError class. All these are possible to do in almost any language, but any semblance of a standard return an error or value idiom in GDScript seems muddy at best.

    I happen to like exceptions in this context as they are much less ambiguous. I don’t mind Go’s error value type, but without type inference, this is an accident waiting to happen. I like templates or other generics as they enable a more expressive type system, but GDScript’s doesn’t seem well developed enough for templates to bring anything to the table.

    GDScript seems like a perfectly reasonable and capable little language, even if it lacks a few creature comforts… but it seems to be missing the boat a bit in well-established and documented standard conventions. Please point me at some more rigorous documentation?

    Thanks,

    -Loren

    IceBergyn Its easier to find and convert code from internet, on C# itself, java, c++, c, rust, etc.

    No, it's not. Not really. C, Java, C++, C# and Rust may all look very similar, but they are profoundly different languages when it comes to some of their core concepts. "Converting" code from one to the other is not easier or harder than converting it to GDScript, unless you just copy the source code , which may syntactically work fine, but can get you into massive troubles like memory leaks or performance bottlenecks later, which are notoriously hard to find and fix.

    I'm a professional C++ developer and have used C++ (native and in the managed C++/CLI variety) for almost 20 years. And for Godot I still prefer doing scripts in GDScript (strictly typed) over C#, because I find it easier to switch to something completely different than to the syntactically similar but internally still very different C# (and I did not want to bother with installing .NET on my Linux machine) . If I need maximum performance, I'll use C++ via GDExtensions, but to be honest, so far I haven't written a game where that was even necessary. Performance issues tend to come from badly written code more than from the language used.

    I'm currently converting an old game which I wrote completely in C++ without any engine support (just using the SDL for sound and graphics) to a Godot project, "translating" most of the C++ code into GDScript for the game logic and it works like a charm. Even things like bitshifts, bitwise & etc.

    2 months later

    Stop being C# andy. I hate python because of the indented formatting, and gdscript explicitly inherited this garbage. But still its better than python.

    Im no codeChad, but back in the day the gold standard of game dev was C, assembly -> RCT. You could run that baby smoothly on your lame old ass fathers bootlegged binbows95 machines.

    I like gdscript because it doesnt require them curly brackets or any other fluff that just wastes keystrokes. And it dont complain if you mess up types, it will still compile and wont throw errors, even tho something is not working as it should

      a month later

      kuligs2

      kuligs2 gdscript explicitly inherited this garbage. But still its better than python.

      In the latest version of Godot, you can use spaces or indents. However, it must be consistent throughout the script so you cannot just switch to a indent or vise-versa in the middle of the script.

      duane

      duane Personally, I prefer lua, but a lot of people hate it.

      Lua is awesome and idk why people hate it

      IceBergyn 1) Its easier to find and convert code from internet, on C# itself, java, c++, c, rust, etc.

      i feel like this has to do with the fact that GDscript is still a very new coding language, not to mention that it's not a general purpose coding language, so yeah there's gonna be less learning resources

      IceBergyn 4) Performance: You may not beleave, but gdscript is very very slow, the reason your game even works is because godot is fast, not your scripts, C# itself is slow and its 4x times faster then gdscript, the fast way would be c++ that can get more then 10x times faster then gdscript, that itself made me giveup on it.

      i personally never felt like it was being slow for my projects, but i understand if you felt like it was slow, especially if you've been coding in a faster language, I myself am a GDscript fanboy simply because the syntax is so easy to grasp hehe

      IceBergyn 5) That changes in functions names, class names every new version make code hard to mantain and update.

      Okay this i kinda agree with actually, porting your projects from Godot 3 to Godot 4 is it's own challenge, there was a function named yield() in Godot 3 but they changed it to await() in Godot 4, and for some reason the kinematicbody2D is now Characterbody2D, these changes may seem simple but they're more confusing for people less experienced in the GDscript

      IceBergyn I am sure there are more reasons, but I already giveup on this so for me it dosent matters, if you find more reasons just add a comment.

      It's completely if you dislike GDscript, it's all subjective after all, you should code in the language that YOU yourself vibe with better

      IceBergyn To be honest, there is only one reason to keep using gdscript: laziness to setup an c# and convert your scripts.

      I'm still using GDscript because Godot has been easy to learn and has everything i need for my own projects, I really have no reason to switch to C#, but It's cool if you wanna do that