I make 2D games and it seems that Godot is good for that. I'm scared of GDScript though, e.g. not being able to use a package registry that normally comes with standard languages. What's everyone's experience?
After looking into as many engines as I could find, I chose godot for a 2D game. I don't have significant game creation experience, but I've consumed a lot of media and pay close attention. While I'm not neck deep in development, GDScript seems perfectly reasonable. Most of what it's used for is in making things that are somewhat custom/demand labor anyway. Menus, object interactions, etc. It just takes a few days of playing around with test scenes.
What I have yet to try to tackle is the C import tool. Let's say I have a grid of many objects that interact with each other. I don't necessarily want GDScript to be running the logic for 10,000 objects (an extreme number, I'd likely limit it to less, but I still like the idea of keeping performance in mind). So C is a good choice. But suddenly I have to establish and maintain a big connection between GDScript and C. Everytime a feature is added it has to be added in several places. Maybe this is just the way things are done and I should just do the work. I'm worried it is the wrong way to do it.
GDScript is very comfortable for doing simple game and UI logic, but it can be problematic that there's standard/easy way to import other people's code libraries besides copy-paste jobs.
When trying to do some sort of complex logic or when I really could use an external library for something, I simply go to C# to scratch that itch, and it's been working out pretty well for me. You can even have the two languages inter-operate to a degree within a project.
I've used Godot to make a few 2D games and the experience was wonderful compared to Unity (for me). GDScript is similar to Python and very easy to learn. Godot also has GDNative that supports bindings to lots of other languages, so you might want to look into that: https://www.reddit.com/r/godot/comments/bbfpa7/what_programm...
GDScript is really easy to pick up, well documented and like any DSL created specifically for one job, it's straightforward without sharp edges. I've used many languages in games including C++ and I find GDScript a breeze.
If you need something only another language has to offer, unless it's a big library, conversion to GDScript is usually the matter of a few hours at most.
Otherwise for 2D another game engine I'd recommend is Love2D.
If you can write Python, you can write GDScript. You'll get bitten very occasionally with the differences, but the core language is extremely similar. As for a package registry...meh. There are a lot of built ins to GDScript that make depending on external code mostly a non-issue.
It's very limiting, and for many other reasons than the lack of a package registry. My advice is to not lose time with it and go straight to C#, unless your projects are throwaway game jam entries.
This is just personal opinion on my part. Godot is a wonderful project and the Godot team have done great work.
I gave up on Game Maker years ago because I realized I was pouring hours and hours into learning a language I would never be able to use anywhere else, and as much as I like Godot (and I'm really starting to like it) I feel like I'm kind of making the same mistake. Even though Godot has support for C# and third party support for other languages[0..5] I have no idea how mature such projects are, or what the long term support prospects are.
Like as not, Godot is built for GDScript, most if not nearly all tutorials assume GDScript, and any plugins you find will probably be using GDScript. You can probably assume that GDScript support is guaranteed for the future, and at best, C# support is probably guaranteed for the forseeable future, though not necessarily at parity with GDScript, version to version.
Oh, and it also apparently Godot has its own shader language so forget about using GLSL as well, probably.
As far as the language itself goes, GDScript has significant whitespace, and I don't like significant whitespace. Its idioms tend to be just unfamiliar enough to me that I keep forgetting things that would be obvious in another language. I really wish it had lambdas.
BUT... it's still a capable language and obviously it does what it says on the tin. I guess you can stick with C# or wait until one of the other language projects matures, or just bite the bullet and use GDScript. The framework itself is so much easier to deal with than Unity IMHO, and for 2D I think it's worth the frustration. All of my issues with the language, thus far, are relatively minor and entirely subjective.