Welcome @mako! It is impossible to give a general answer to the question “why Defold instead of Foo”? as it “depends”, just like @ryanscottlandry says.
Are you making a 3D game? Use Unity, Unreal, Godot.
Are you making a 2D game? Use Defold, GameMaker, Cocos, Godot or maybe Unity.
Are you making a cross platform game? Use Defold, Unity, GameMaker, Godot.
Are you doing an HTML5 game? Use Defold or Phaser.
This goes on and on. There are so many factors which will affect your choice, depending on the kind of game you want to create.
Some things I can say with certainty about Defold:
- Defold is truly cross-platform. You create your game once, and can without making any changes export to all supported platforms: Windows, Linux, macOS, Android, iOS, HTML5 and Nintendo Switch
- Defold has a zero-setup policy. You download and install Defold. Nothing else. You do not need XCode to make an iOS or macOS build. You do not need Android Studio or any of the Android command line tools to make an Android build. And so on for all platforms.
- Defold has a very small engine runtime. The engine is designed to be small and performant at all times. There is no code bloat. This becomes evident when you compare the size of an empty Defold project to the competitors:
PLATFORM | DEFOLD | UNITY | GODOT |
---|---|---|---|
Android (32 and 64 bit) | 3.3MB | 11MB | 7.1MB |
iOS | 2.6MB | 9.8MB | ? |
HTML5 | 881kb | 2.7MB | 2.9MB |
Source: GitHub - Calinou/godot-size-benchmarks: Benchmarks to compare Godot binary sizes with different build-time options and Build size. Auto Stripping or manual configuration - #65 by AGulev
- Defold very rarely introduces breaking changes. We know how frustrating it is to play catch-up with breaking changes. We promise to very very rarely introduce breaking changes. You should not have to worry about your game breaking just because there is a new version of Defold.
- Defold provides low level building blocks to create high level things. The design philosophy of Defold is to provide developers with low level building blocks that can be used to create just about anything. But they are just that, low level, which means you have to do a bit more work yourself. On the other hand you are in full control of what you create. Two examples:
- If you need a button you can create one using our GUI system, but there is no ready made button component. You create a button from a box node with a nested text node.
- If you need a spaceship that can shoot bullets you create one from a game object (the basic building block of Defold games) to which you attach components. A sprite component for visuals, a factory component to spawn bullets and a script component for the logic.
- Defold has a great community. We get a lot of praise for our friendly and active community, especially here at the forum. We care about our users and the community is usually very helpful and inclusive to new members.