5 ms·
I've started using Godot recently, and I absolutely love it! I've written a lot of words - some of them even here on HN - about my frustrations around Unity, m
by johnfn 6y ago
I've started using Godot recently, and I absolutely love it!
I've written a lot of words - some of them even here on HN - about my frustrations around Unity, most specifically slow compile times and a poorly-thought-out and hobbled API that always seems to be 20% broken in frustrating ways. Godot fixes so many of the frustrations that I previously had with Unity, and it's such a breath of fresh air!
The APIs are generally well thought out and a pleasure to deal with. 2D always felt second-class in Unity - in Godot it's a clear first class citizen (I mean, just see OP). Things generally just make sense, and there's a lot of bells and whistles that I've found personally really useful.
The compile times are virtually instantaneous if you use GDScript - you can even hot load in new changes into a running game (although since it compiles so fast, I rarely even need to do that!) - and that is SUCH an important thing for game development that I can't even explain how great it is.
Also, the UI of the editor is just SNAPPY! Man do I love how fast everything feels in the editor. I hate to keep railing on Unity, but every time you edit a C# file at all in Unity, Unity has to do a reload of assets and it takes 5-10 seconds for the editor to be usable again. Compare this with Godot, which loads new assets virtually instantaneously, and practically never lags for any time at all. It's amazing. I can never go back.
It is a bit rough around the edges - it's only being developed by a small open source team rather than the hundreds of paid developers over at places like Unity and Unreal - but it's really a joy to use.
P.S. The only real problem I found with Godot is that GDScript needs a better typesystem, so I started working on a hobby project to compile TypeScript into GDScript[1]. It's a massive WIP right now but if that sounds like fun to you, I could really use some help.
[1]: https://github.com/johnfn/ts2gd https://github.com/johnfn/ts2gd
- dx87 6y agoI don't know the full details behind it, but they're working on changes to the type system in GDScript. IIRC they said the biggest issue they hear about with the current system are that it's optional, which means that the compiler doesn't really do any optimizations based on knowing types ahead of time. In the future, there will be a setting to enforce static typing throughout a project, allowing the compiler to perform better optimizations because it knows that the type of a variable will never change.
- TobTobXX 6y agoAlso you could use the (first citizen) C++ API, which has (obviously) types. Or use one of the community supported bindings for the gdnative API. I used Rust for a short experiment and it worked nicely.
- jere 6y agoJust want to echo all this praise for Godot. I developed games in JS for a while, then switched to Unity for platform/performance reasons. I really did not get on with Unity and struggled through the tutorials (I was so frustrated I wrote a tutorial about JS game dev in response [1]). Unity felt bloated, slow, making simple things unintuitive, and with a mess of an API. Godot on the other hand is straightforward, fast, and lightweight in a way I didn't think was possible. Like I'm absolutely floored the executable is ~50MB and the low memory usage made me question intially if I had even launched it properly. Regardless of the pros/cons, I'm just enjoying gamedev again. Coming from JS, the optional type system doesn't bother me none. My only annoyances are a few missing language features like increment operators or type coercion (even in Java I don't need to cast a number to a string to print it). [1] https://nluqo.github.io/broughlike-tutorial/ https://nluqo.github.io/broughlike-tutorial/
- aidanhs 6y agoI lightly used Godot before and using GDScript was a bad experience. It has some confusing semantics relating to reference counting and in-place modification (e.g. [0]) that make it really hard to use as a 'real' language (as opposed to small bits of code for scripting). The mitigating factor is that it's got good bindings support and a codebase that's very tractable to poke around in, so you can easily extend it in other languages. [0] https://github.com/godotengine/godot/issues/15265 https://github.com/godotengine/godot/issues/15265
- UnpossibleJim 6y agoThey now have really pretty good C# support with integration support with Visual Studio (and with more complicated trickery, VSCode, which is my preference on Linux). It also speeds up your application a bit.
- pastrami_panda 6y ago> about my frustrations around Unity, most specifically slow compile times... fyi they've added incremental compilation support in 2021!
- johnfn 6y agoWow, that's pretty big news! Though I'm so pleased with Godot these days it would be hard to drag me back.