Haha, "funky" isn't very descriptive is it. Defold has a bit different design than the other engines I've used. You communicate between objects via "message passing". Most things are asynchronous, you don't have direct object references and call functions on them, instead every object and component has an address or "URL" and you pass named messages around. The receiving object must decide whether to respond to a message or not. As I said in the other thread, it's not limiting, it's just different than most people are used to.
Defold's object/scene organization is a little strange too. It has "Game Objects" and "Collections". A Game Object is basically an empty container with a transform(position, rotation, scale). They can have any number of components—scripts, sprites, collision objects, sounds, etc. The weird part is they can't have other game objects as children in the editor, but they
can be given children at runtime.
Collections have no transform and don't really exist at runtime—they mainly serve to determine an object's URL—but they can have any number of Game Objects inside them, either as a loose group or in parent-child trees. Collections can be nested infinitely in the editor, but they don't have a "physical" existence, so dynamic parent-child relationships between collections at runtime don't exist.
And it's got random other weird or missing bits, like most engines.
- The editor is fairly minimal. A couple things that you'd expect to be able to edit can only be set via script.
- It's a 3D engine and uses quaternion rotations. Euler rotations are not really supported at the moment, though it has helper functions for quats, so its generally not an issue.
- It began (years ago) as a service-based thing and you still have to create projects on their server for the editor to recognize them (you can easily move them later). They're transitioning to a new editor that doesn't have that problem, but it doesn't have the build functionality yet.
Sorry if this was too specific and long-winded. I'm using Defold because it's small, fast, has few bugs, and makes it really easy to export your game for any platform. So far I can deal with its weaknesses.