Hi friends,
I’d like to learn more about the design decisions that have gone into building Defold so that I can better employ them while using the engine. I have built a few small projects with Defold and am familiar with the core concepts and features, and would like to know more of the “why” (as opposed to “how to”).
Please note that the following questions come from a place of curiosity, rather than critique:
-
One of Defold’s features is its minimalism, offering lower level building blocks to avoid engine bloat. Why is some functionality provided out-of-the-box, rather than others? E.g., why are things like colliders included, but not primitive shapes?
-
Along those lines, how have other higher-level systems been determined to be extraneous to the core engine and editor, such as GUI development? Assets like Defold-Input and Gooey seem like they would be central to a broad swath of game types, but clearly a calculus has been made that they are better served as asset dependencies.
-
Why is Lua chosen as the scripting language of choice, to the exclusion of others? I recognize that it’s an industry standard and lines up neatly with the C API. But, why select it over something like JS (for similar overhead), C# (for industry popularity, even if it has a heavier footprint), or in lieu of multiple scripting options?
-
What kind of decisions were made that led to the low level APIs becoming available through Native Extensions, rather than directly through the normal workflow? (I suppose this question is similar to the previous one: why not just provide for direct C/C++ access in addition to Lua scripting?)
-
The focus on message passing, rather than drawing upon OOP concepts such as inheritance and member functions, is a clear directional choice, perhaps to benefit from decoupling and allowing game objects to be discrete in their relationships to one another (it reminds me a bit of ECS). I’d love to know more about why this approach was chosen.
Thanks for any insight! I feel like if I know why a fork is shaped the way that it is, I’ll be less likely to try to use it as a spoon.