TLDR: I need help figuring out how to implement a project structure that supports multiple developers with the ability to easily change out individual assets, layouts, and nodes.
The situation is that I work for smallish game studio and I've been tasked with finding an alternative to our existing gaming framework, which is flash with starling. Flash made sense when the company was founded but has long overstayed it's use. For monetary and legal reasons we have to use an open source engine so I've been investigating a ton of options and frankly Godot is my favorite, but there's an issue. The type of games we make, casino-slot gambling games, are mostly identical between game types with different images, sounds, fonts, etc. We may have 20 games of a type where the differences between each game might just be a few background images. However, games of a different type might have a whole different presentation with separate sub-bonus game systems and videos etc. The issue I'm having is trying to wrap my head around the best way to implement this type of structure in Godot.
Our current solution is to have a series of xmls that define all the nodes, to use Godot terminology, and layout information for every object in our entire presentation. These get loaded in levels such that we have shared assets that all games have access to, assets that a set of similar games have access to, and individual game specific assets. These assets could be images, fonts, videos, sounds, spine animations, or even complex Node like GameObject structures. Our engine loads these xmls and then builds the game from them. This allows us to easily change out one sprite sheet or sound or whatever by simply changing the file at the folder path mapped in the xml, or altering the xml if necessary. The key here is that we have one real project file where all our code lives and it's told how to make a specific game via these xmls. We had to build all of these assets loading, xml parsing, object creation, layout handling code ourselves.
The issue is I want to be able to use the editor and still be able to point to an asset folder to say "Godot use this game". Obviously I could have a separate Godot project each and every game that has separate images and separate copies of all of our scripts but that's very dangerous as will eventually have hundreds of different game types. Fixing a bug in one game would require changing dozens of things. Also it would be incredible if we could use the editor for the things you use the editor for like object positions and node variable changes and things of that nature. We basically replicated this system in our xmls.
In summation I'm sorry if this is hard to follow, and or I'm missing some obvious feature in Godot that facilitates this. I'm just looking for ideas on how to solve my problem. I'd love to move our entire team to Godot but this is the singular issue that will prevent us from making the switch. In a perfect world I wouldn't have to re-implement our current xml layout and asset loading systems in Godot and completely lose the benefit of the editor. Seriously thanks for slogging through this post and taking the time to help.