Anyone here who has worked with Godot?

I was just curious how those who have worked with godot feel about their productivity with defold in contrast to their productivity with godot. Also, what are your preferences between the two and things you might of liked/disliked over one or the other if youā€™ve used both engines.

I only have limited experience myself on both engines but off the top of my head I love the packaging/deployment in defold. I had issues trying to compile to windows on godot my first time around where as defold did everything in a click without a hitch. Iā€™m just wondering now which engine Iā€™ll be more productive with making different types of 2D RPGs once Iā€™ve gotten the hang of both.

1 Like

I guess I am the one here who has used way too many game engines (and has time to blab about it). :smiley:

I used Godot for a year or so before switching to Defold. I made 1 finished game, 2 half-finished games, and several prototypes with it. This was a while ago, around the time they started working on 3.0, so some of my experience may well be out of date, but I doubt the general things have changed.

I already wrote some posts related to it:

Regarding productivity, I think Godot and Defold are pretty equal, but they require slightly different methods/mindsets. Godot has a lot more features out-of-the-box than Defold, so you may find it faster in the beginning. Defold, instead of trying to handle everything anyone will ever need, is more set up to use external libraries for game-specific features. Grab a few libraries from the community asset portal and you will be off to a pretty quick start. You can also grab any Lua code that other people have written for general purpose or other Lua game engines and use it with Defold with little or no adaptation. Some people donā€™t like using other peopleā€™s code that they donā€™t understand, but letā€™s face it, youā€™re doing that either way.

So itā€™s a trade-off. With Godot you have lots of features ready-to-use, but if they have bugs or donā€™t work quite the way you want, you canā€™t fix or change them without editing the source code and compiling the engine for your platforms. With Defold, you have to find libraries or write things yourself, but if theyā€™re not perfect you can change them just as easily as you can change your game code, and they will work on all platforms.


Iā€™m a bit heated on this topic :smiley: and I havenā€™t used Godot in the last year and a half or so that Iā€™ve been using Defold, so take my word with a grain of salt, but here isā€¦

A long rant about Godot...

Godot has some nice core ideas (the scene/node system), plenty of features, and is fairly easy to learn, but itā€™s also bug-ridden, slow, has very incomplete documentation, and a cultish community.

Bugs:
Hopefully itā€™s gotten better as the community has grown, but when I was using it 90% of the engine development was done by Juan (reduz). He pumps out code amazingly fast, but he also doesnā€™t pause to test it or document it, and he rarely goes back to fix old code. Thereā€™s a strong focus on adding new features, very little on fixing things. His most common response to serious bug reports was ā€œoh yeah, thereā€™s no point fixing this, Iā€™ll be rewriting it for 3.1ā€. So there are lots of broken or unfinished features lying around. Thereā€™s really no such thing as a stable release of Godot.

People think the open source thing is awesome, but to be honest Iā€™m not sure if it is more positive than negative. They routinely use it as an excuse for terrible documentation and sometimes bugs. Several times I (or other people) asked for help on how a feature worked and the answer was: ā€œI donā€™t know, go read the source code and let us know what you figure outā€, or ā€œif itā€™s broken, feel free to fix it!ā€. Also, there is no great review process or testing for code to get added to the engine. Random people write stuff, add a pull request, and chances are, it is added to the engine a day or two later. I was in a discussion once about how modifier keys were handled. Some guy decided he knew the solution, wrote some code, and the next day or so it got pulled into the engine. But all it did was move the problem from one place to another! As far as I know thereā€™s nothing in place to stop this from happening constantly. It looks like they donā€™t use unit tests or any other kind of code testing (at least not with any consistency).

Slowness: (scripts)
GDScript is slow. I havenā€™t done any tests in ages, but I am confident if you test the same code between GDScript with Godot and Lua with Defold, Godot will be 10x slower or more. This wonā€™t be noticeable when you start working on a new project, but as things get more complicated and you add more and more scripts, you will see the framerate slowly get lower and lower. I think someone did a test when they started adding support for other languages and the others were significantly faster, but I donā€™t know the specifics. This has been tested and reported multiple times over the years, but the Godot devs have simply denied that the tests were valid and havenā€™t shown any interest in trying to find bottlenecks and optimize.

Slowness: (rendering)
Godot also seems very slow about rendering. As far as I can tell, it still doesnā€™t do draw-call batching at allā€¦ You can kind of get away with this on desktop, but mobile devices canā€™t handle it. See here, here, and here. Some quotes from Juan regarding 1000 draw calls: ā€œThis number of draw calls is not much of a problem in OpenGL. Batching is not really necesary.ā€ and ā€œā€¦might be better to eventually wait for phones to get better than fixing this.ā€ For comparison, with Defold itā€™s pretty easy to stay below 50 draw calls for everything in your game. Also it has overdraw issues. I was working on a platformer and wanted some parallax backgrounds, but I simply couldnā€™t draw more than two layers over large parts of the screen before the framerate dropped below 60 (with everything else going on of course). I recently tried something similar with Defold and it had no problem drawing a dozen or so overlapping screen-sized images. Itā€™s quite possible that Godot doesnā€™t do any depth sorting either, which could be the problem.

Documentation:
Godot has a pretty sizeable community to ask for help, but its documentation is very bad. To start with, a lot of it doesnā€™t exist. When I was using it, they announced that 60% of the class documentation was missing. 60%!!! And thatā€™s just the stuff that doesnā€™t exist at all. The stuff that does exist is far from being good documentation. Most of it just reiterates what the name of the function already tells you. It doesnā€™t necessarily tell you what units all the arguments use, what each argument does, what the corner cases are, and almost never has examples of use. This is just the API documentation, never mind actual manuals that tell you how to use things in a pleasantly readable way.
The community has made some valiant efforts, but I donā€™t see how the situation will change much. New features are added without proper documentation. Unless that changes (either by not adding any new features or only adding them after they are fully documented), it is a losing battle. No one should have to delve into the C++ source code to figure out how a feature works.

and:

A few more opinions about Defold.

Defold isnā€™t perfect either, but it is light, fast, relatively bug-free, has great documentation, and very active and helpful staff and community support. Releases generally include more bug-fixes and small improvements to old features then added new features. Iā€™ve seen occasional serious bugs reported on this forum get fixed within a couple days or a week. You donā€™t have to worry about new releases breaking your game without warning or having new features that donā€™t work correctly. I canā€™t begin to say how valuable this is. Iā€™ll take a small core engine that works reliably over a big, untested engine with all the fancy features in the world.

I basically detailed the main things I donā€™t like about Defold in my post about Love in your other thread. (just invert the things I like about Love.)
(To sum up: poor desktop support, limited physics, and very limited audio.)

Defoldā€™s platform support and build process is generally better than Godotā€™s, except that Godot has more desktop-specific engine features. I guess Godot has working web builds now, but from what Iā€™ve seen theyā€™re not as small and fast as Defoldā€™s. (Defold is heavier than a dedicated web engine though.) Defold has quicker and easier builds for desktop (as youā€™ve seen), and makes it very easy to build and test things on mobile.

34 Likes

Fantastic response. Iā€™m sure this will help a lot of others who might come across this post in the future. So far Iā€™ve liked both engines, but the biggest thing that was bugging me was ā€œwhatā€™s all the hype about Godot?ā€ I just couldnā€™t see what was so amazing about Godot like everyone else made it out to be, especially when I compared it to Defold which seemed to do quite a few things better (granted not everything).

The common thing Iā€™ve finally noticed about those who recommend Godot over alternatives is either they havenā€™t really used other engines or even Godot that much, or they were experienced programmers/hobbyists that found Godot ā€œfunā€ to use/ā€œdiscoverā€ and they enjoyed ā€œcontributingā€ to the engine. With your post it makes a little more sense now. It isnā€™t always an easy engine to use, but thereā€™s a lot to discover (lots of features, and lack of documentation) and if you wanted to comtribute, it was very easy to do that. So maybe if you were interested in game engine development more than game development, godot could be a good choice.

While godot looks extremely interesting and possibly fun to mess around with, I think I will be staying away from till atleast a 4.x where I will likely just be poking at it for ā€œfunā€.

The larger community godot had was also pretty attractive to me, but at the end of the day doesnt really make up for the documentation, manuals and bugs. At the very least it seems to have interest from a lot of people and developing at a fast pace so it will be interesting to see where it is in the future.

Edit: On another note, I do remember the discussion on performance. This seems to be improved by roughly 2-4 times in Godot bunnymark benchmarks with the use of GDNative (Nim, D, or C++) in Godot 3.x. So while I wonder how it matches up to Defold now, using GDNative would mean giving up using a simple language like GDScript or Lua.

5 Likes

Heh, yeah, there is a lot of hype around Godot. I think it has a strong initial draw because it is totally free, open source, and its editor runs on linux. So it has a lot of appeal for that linux/open-source/free-software crowd. Defold is one of a very few similar engines that meets two out of those three, but it suffers from a lot of ā€œKing is Evil!ā€ sentiment. That with its online features (which are mostly gone now of course), mean the people that are attracted to Godot will probably have objections to Defold.

Thereā€™s also a significant ā€œanti-Unityā€ crowd, and Godot ticks all the right checkboxes for people to see it as a viable alternative. The main Godot dev has been pretty vocal about comparing Godot to Unity and Unreal too, especially regarding the new rendering features for 3.0. If you tell people that something is better and have a cool picture next to your statement, a lot of people will probably believe you. Itā€™s not generally overt or insulting, just a lot of: ā€œIn Godot, unlike in other enginesā€¦ā€ or:

ā€œThis is one of the strong points of Godot implementation, which uses a novel blending algorithm between probes. Other popular game engines present hard edges between one probe and the next.ā€

ā€œThanks to Godotā€™s Forward/Clustered design, the material system is far more advanced than in other popular game engines, requiring no hacks to allow a much larger amount of parameters ready to use for the artists, at no cost.ā€

This month has been mostly implementing standard modern engine features, always with a twist to improve them the Godot way.

- Source article.

10 Likes

I adore Defold and have come to appreciate it more and more over the course of developing Chemaria.

At the same time, I think this is more of a question of what is best for the situation. I use Godot for another game I am working on because Godotā€™s built-in features simply make my life that much easier (lighting, built-in UI system as the game is heavy with menus).

There are plenty of things about each engine that make me annoyed (Trying to support multiple resolutions with Defold. Cleaning up after myself when switching scenes in Godot because I instantiated scenes inside of the one scene and for some reason the switch scene functions simply donā€™t work as promised.), but in the end, whatever makes you more productive should be followed.

(Also, Godotā€™s community sucks compared to Defoldā€™s. Defoldā€™s community and development team are a unique miracle.)

Rewrites are quicker than making the initial product, so just get a thing working, and once the infrastructure is getting in the way, that is the time to re-evaluate and switch. I know, I have done this both for Chemaria (Unity to Defold) and Into the Crypt (Unreal to Godot).

16 Likes

i hate godot very much wouldnā€™t recommend it like at all

1 Like

What is it that you donā€™t like with it specifically? Iā€™ve heard a lot of people say they donā€™t like GDScript and Iā€™ve seen mentions of stability issues (a lot of changes coming in all the time).

1 Like

GD script is very specific. I recently tried Godot and I was only bothered by the absence of Lua language and great clutter. On the other hand, unlike Defold, it has a more sophisticated and less complex scripting system for working with rotation, lights or setting collision objects. Specifically, I easily programmed the simplified rotation system in Defold myself (Simple rotation and facing), but I firmly hope that working with lights and collision objects in Defold became simplifies.

3 Likes

Godot set up is wierd and all i made a kinematic body but it saves it just node for ground and 2d workspace is limited the tourtorials on it are long and confusing and i tried to learn GDscript but the best thing i got was long video for each thing in code like how you make inputs and some stuff but i was very long and didnā€™t work you need to download all example projects and look for their code and understand GDscript

1 Like

I have completed a couple games with godot. Let me share my experience this week and you will see why I dont trust it, though it has a lot of nice features and .

On my current project: After 1 month of coding I completed the infrastructure and 1st level of a TD game. Took a break for 2 days and came back and the code just doesnt work anymore. I duplicated a scene via save as, edited the sprites and variable values and it broke the whole project. Even after deleting the added scene the project was broken. I saw where others had this issue.

Secondly there is no easy way for version control except github. There is no project save as. You have to physically go to the directory and manually make a copy. And everytime you test run it overwrites your current project.

Lastly I can take code from a current tutorial copy and paste it and get an error. Then when researching not find any documentation. Especially with urls, paths, and groups. I can create two identical nodes in the same tree at same level and godot can find one but not the other. nodes tagged with group on one but not the other. The only difference in the nodes one is named yellow and one is named red. When I post the code to someone else works just fine for them. So its most likely an editor / compiler issue on my end. Still though. Or even more likely my misunderstanding the error. I really hate things that are not intuitive or not well documented.

Community support is almost non existent on the forum.

Im to the point I am just about to remake this project in lua.

What do I like about Godot?

I can build gui apps quickly in godot. I like the Level design, super easily map out collisions and object follow paths.

I have not made anything in defold yet. I wrote some small stuff in LOVE2d.

In other words I feel like I may have wasted a month of my life. I dont know yet, depends if my issues can be resolved.

7 Likes

I donā€™t know enough of Godot to help. There are probably some Defold users here at the forum with experience with Godot but probably not that many.

Hi guys. I do have Godot experience. I have even done a couple games on it (experimental mostly)

Let me answer this questionā€¦ I think to be honest there are strong points with Godot and Defold in various aspects. I would not select a specific tool and prefer it over another, but I will summarize:

  1. Godot has an amazing way of dealing with modular nodes / scenes. It has an amazing organization to scenes and can do things like scene inheritance, etc.
  2. It is also amazingly easy and quick to get game concepts up and running on Godot.
  3. It also has an amazing amount of functionality built in as nodes that can cut down on development time significantly. These nodes automate amazing amounts of routine and hard tasks for game devs.

However, Defold wins when it comes to more lower level control of games and speed of execution / optimized exports for games in terms of size of APKs, executables, etc.

To be honest for myself I love both tools the same, and I wouldnā€™t say I would prefer one over the other. They are both amazing and they have different ways of approaching problems.

8 Likes

There is a lot to like in Godot. Personally I like the amount of shader support, allowing to write lots of various effects which are not possible in Defold. I like that everything can be created and manipulated at runtime, itā€™s my style of development. I like nodes and hierarchy in Godot with clear parenting.

Defold on the other hand has no competitors when it comes to lightweight mobile and HTML5 builds. Thatā€™s a great advantage. Ease of building is astonishing (but for instance Solar2D can automatically copy to device, which Defold canā€™t). Speed of iteration is great as well with fast local building and hot reload.

9 Likes

Hello Sergey,

It would be interesting to know about the shader capabilities that Godot has that are currently missing from Defold, I know both Pkeod and myself are interested in learning more about the shader capabilities of Defold and might be able to expand them. It would be cool to know what effects come to mind if you have any specifics. Additionally I might have a look at what currently exists for the Godot shaders.

Cheers,
Spen

3 Likes

Well, I donā€™t know where to begin. Perhaps letā€™s start with that Godot has a completely different rendering pipeline. https://godotengine.org/article/godot-3-renderer-design-explained

Defold has scriptable rendering pipeline (which Godot doesnā€™t have yet), but itā€™s quite limiting.

Godot has a special language to write shaders, itā€™s much easier to use. And a visual editor https://www.youtube.com/watch?v=sf_Dc4ew3eM

Godot has PBR material shader out of the box called Spatial, which can be easily extended/modified to change the looks of your game.

Here is a cool video of what is possible in Godot - https://www.youtube.com/watch?v=BXo97H55EhA

Look at constants available inside shaders for Godot https://docs.godotengine.org/en/stable/tutorials/shading/shading_reference/spatial_shader.html

The most straightforward example of what is desirable in Defold is the light system. Even for just 2D games, it would be cool to have it. Defold has very limited data passing to shader capabilities, so writing such system is not possible.

Another example is instancing and having slight variation based on instance id, Defold doesnā€™t provide this shader parameter.

I hope that somewhat answers your question.

6 Likes