Happy Monday!
After a few recent conversations in the Discord about the pace and priority system of how features and bugs are handled in the engine and editor, I thought I’d post my thoughts on the matter here so that I can potentially hear from more people.
Although Defold is source-available on GitHub and there is a rather formal process for contributing features or fixing bugs, the repository is just too big and complex for most people to understand where things are located and how the larger project is structured. I know for a fact there are many power users in the Defold community who would like to contribute by adding small editor features, fixing bugs that have existed for years but are low priority, etc. I understand there is a superficial description of the directory hierarchy somewhere in the repository, but it’s not comprehensive nor very helpful beyond the absolute bare basics that most developers could figure out on their own rather quickly. I believe there is potential for the engine and editor to improve more quickly. Some of the more niche and low-priority features and bugs are still important to some people, but these tickets are perhaps years old by now since these aren’t issues that corporate sponsors are asking for or they’re just kind of… yeah, niche issues.
My proposed half-solution to this problem is for the Defold team to create a video, writeup, or maybe a live demonstration, stepping through the repository and explaining the structure of at least a fraction of it. One small example would be to trace a call to go.property()
through the engine to see how it actually works and which files it touches. Imagine how much could be learned from a simple demonstration like that. I understand that contributing to a large codebase isn’t out of reach for some developers since they are used to that sort of thing and have ample time to do so, but most developers don’t have that kind of time or experience diving into many-years-old codebases and making changes. In my opinion, this is one of the most difficult ways of programming… it’s tough for people to understand just how much more difficult it is than writing something small from scratch. I call it "grep
programming" or "ctrl f
programming." I also think this proposed half-solution is quite conscientious of the Defold team’s time, since it would be more than likely a one-time thing instead of an endeavor that needs to be maintained over time.
What do you think? I’m hoping something like this happens so that we can more easily add useful but overlooked things like fixing the extremely zoomed-in default in the editor, adding markdown support for those all-important README.md files, adding an option to increase and decrease the UI size of all elements of the editor instead of just scripts and graphical views, and much more.