I’m coming from Unreal Engine and trying to understand the typical workflow / project structure for making changes to the Defold editor/engine itself while developing a game.
In Unreal Engine, when we need to modify the editor or core engine functionality, we build the engine from source and maintain our own version. The typical structure looks like:
root/
├── Engine/ (UE source, with our modifications)
└── MyGame/ (game project using our modified engine)
I see that Defold’s editor and engine source is available on GitHub. What I’m trying to understand is:
Is building the editor from source a common thing to do in the Defold community? Or do most people stick with the distributed editor + .editor_script extensions?
For those who ARE building the editor from source and working on games: How are you structuring your development environment? I’d love to hear about your folder organization and workflow.
What’s your typical workflow for:
Building and iterating on editor changes
Using your modified editor with your game projects
Version controlling both editor changes and game projects - Do you keep everything under the same repository? Do you keep things in different repositories?
If you need to extend the editor then editor scripts is usually your best bet. But it is also limited in terms of what you can do. We are actively working on expanding the editor script capabilities based on user feedback. Did you already have specific changes in mind?
I would expect developers to maintain a separate fork or copy with their changes, build the engine, tools and editor from the modified source. To further complicate things you also have the native extensions mentioned above. If you plan to use native extensions and maintain a custom version of the engine then you’ll also need to run your own build server (local or online) so that your build server can link your custom engine with native extension code.
Since none of this is frequently done by Defold users there’s bound to be a lot of rough edges and I would caution you to not go down this road unless you really really have to.
Thanks - that’s a great answer and makes a lot of sense!
I can definitely start as a regular user and see how much I can extend when needed and only go to source code change if really needed.
I was mostly thinking about integrating Defold with an AI CLI agent - like claude-cli or gemini-cli - for me to be able to approve / deny things directly from Defold
Yeah, you don’t really need a super tight integration in the editor for that. There’s several recent discussions about using AI assisted development here on the forum.