00:00
00:00
TravelSizedLions

Age 30, Male

Engineer

Lost in thought

Joined on 6/22/10

Level:
14
Exp Points:
2,071 / 2,180
Exp Rank:
29,125
Vote Power:
5.62 votes
Art Scouts
2
Rank:
Safety Patrol
Global Rank:
26,242
Blams:
58
Saves:
317
B/P Bonus:
6%
Whistle:
Normal
Trophies:
4
Medals:
820
Supporter:
11m 4d

What do you think about Godot?

Posted by TravelSizedLions - October 2nd, 2023


Man there's a lot going on in the industry right now:



Right now I'm moving my game over to Godot, and I have the choice between Godot's native language, GDscript, and using their C# binding. I've got a ton of C# code from Unity that I'd love to salvage, but it'd also be nice to have the chance to reimplement using a domain specific language. For reference, this is meant to be a larger scale indie project, so whatever I pick I'll have to stick with for a number of years.


What do you all think? And what do you guys think about Godot?


Tags:

2

Comments

I haven't used Godot (but I've always wanted to learn how to use it), but I've heard it's good.

My experiences so far have been great!

I can't give you an expertise opinion on it because I've just started playing around with it since the Unity PR disaster. But it's been treating me pretty well. I've been following this user on Twitter: https://twitter.com/passivestar_ that's showcasing a lot of the cool stuff the engine's capable of doing.

In terms of GDScript, ChatGPT's been helpful with teaching me how to write in different languages. Write a C# function, tell it to convert to GDScript, which helps you learn how things are done in GDScript. Plus once you understand the language (not just copy/paste its functions) its something you can put on your resume.

Good luck!

I always forget about ChatGPT for coding, lol. I have a degree in software engineering, so I'm not so concerned with being able to pick up GDscript. I'm more just worried whether or not using it will create problems for a larger project that may need language features like static typing.

Sounds like others have mentioned that I can use both in one project, though, so that quells my fears (since I'm already a big fan of GDscript's python-like syntax).

Godot has worked well for me so far, but I've heard Unity is better for bigger, more professional projects.
Too bad Unity's pricing/fees have gotten ridiculous, it seems like a really good engine aside from that!

You'd be surprised how finicky Unity is at that kind of scale. Even for a moderate sized project like mine, Unity was still taking something like 30+ seconds to recompile the project and handle simpler stuff like, I dunno, *serializing things to the inspector properly?*

Code in GDscript is significantly slower than C# (About an order of magnitude), but offers more compatibility (You're limited to platforms that support dotnet with C#, and no web exports either). There's an extremely good chance that your game won't be intense enough to require C#, so the speed difference will be irrelevant. Remember, the biggest speed improvements you can make will be with optimizing your own code, not changing the language it's made in.

GDscript will offer more support if you plan to export to a bunch of different platforms, but other than that, the choice is really up to you. Both are viable! And I mean that literally, you're totally allowed to use both in one project. I think typically, people use GDscript for the simpler stuff, such as character movement, and save C# for stuff like advanced on the fly terrain generation, or other intensive tasks like that.

People like to claim Unity is way better for larger games, and while I'm certain that's true to an extent, most smaller developers aren't gonna encounter that issue at all.

A lot of people hate Godot for the lack of an asset store like Unity, but honestly, in my opinion the Unity asset store is almost entirely shlop anyways. Either way~ the presence of an engine-specific asset store should not be the deciding factor of if you're capable of making your game or not.

Wow, thanks for the thoughtful response! :)

> A lot of people hate Godot for the lack of an asset store like Unity, but honestly, in my opinion the Unity asset store is almost entirely shlop anyways.

I second this. Odin Inspector was great, XNode was great, but most everything else was not really as useful as I was hoping it'd be. I ended up rolling out a ton of my own solutions to things.

> There's an extremely good chance that your game won't be intense enough to require C#

My game is larger in scope than most one-man projects. For reference, my project in Unity had over 200 scenes and 15k lines of code in it. It was intense enough that I had to build a tool for analyzing the connections between scenes and dialog trees when running CI/CD to make sure I hadn't accidentally broken any connections. I'm hoping to pare down the scope somewhat, but it's still gonna be at least 7-8 hours of story to get through. Still nowhere near AA or AAA levels of scope, but quite large for an individual project.

But given that people can develop games with much more simplified tools like XNA, I don't feel too worried about that in either case.

> You're limited to platforms that support dotnet with C#, and no web exports either

.NET is supported on all major operating systems, isn't it?
https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md

Good tip on the web exports bit, though. Even Unity has issues with web support in C#. Learned that the hard way. As far as platforms, looks like I'd have to either pay for a service or roll my own solution after obtaining the SDKs:

https://docs.godotengine.org/en/stable/tutorials/platform/consoles.html

But for now, I think I'm hoping to make a few quick web prototypes to get some feedback from folks, then taking what I learn and targeting windows with half an eye open for consoles.

> And I mean that literally, you're totally allowed to use both in one project.

I wasn't aware of this! Good to know! I might end up using GDscript for some of the simpler "build it and forget it" code, and use C# for the stuff that's complex enough to need static typing.

@TravelSizedLions

> .NET is supported on all major operating systems, isn't it?

Yes! But if you're weird like me and like to make PS Vita/Nintendo Switch or whatever weird port like that, it becomes a much bigger challenge.

>For reference, my project in Unity had over 200 scenes and 15k lines of code in it.

I feel like Godot and GDscript would be just fine for this. Obv. you know way more about what you're doing than I do, but on the surface this doesn't seem like an issue GDscript would struggle with in terms of speed. Maybe Unity's scene system isn't as well optimized as Godot's node system? I'm unsure. Or~ I could just be wrong, and you will need C# for that.

My project (Viva Hexagon!, check it out on my profile ;) ) is about 10k lines of absolute garbage code and long unoptimized for loops and pathfinding junk. GDscript is just fine for it (Although it does struggle when playing on mobile web browsers specifically, and the PS vita). This has almost nothing to do with the scope of your game, but I'm certain lines of code ain't an issue here.

You could always learn how to write Godot plugins with C/++ (or really any language of your choice I believe) if you really need to avoid C# but need fast performance. Obviously it seems you're pretty content with C#~ There's nothing wrong with c# at all! But you should at least know that you aren't JUST limited to GDscript/C#, but I don't really know much else about writing Godot plugins.

Also, one final note about web game exports. Currently, Godot 4 is not as good with web exports as Godot 3 is. A decent summary can be seen in this thread.

https://www.newgrounds.com/bbs/topic/1525855

Basically, Godot 4 has lower compatibility for web games right now. Partially due to bugs, and partially due to no webGL 1.0 support.