I'm not sure this is the best subforum for this, but here we go! (Cross-posting from Reddit.)
We have a library of GameMaker games that share a lot of code (for Levelhead, Crashlands, and others), and for which we have built asset pipelines for managing art and sound assets.
GameMaker's recent major update to 2.3+ came with a huge swath of internal changes that broke all of our pipeline tooling, and when we rebuilt them we decided to also open source them (where possible).
The most powerful of those tools is something we call Stitch, and I just made it public today on GitHub.
Stitch is the underlying tool we use to make our pipelines. It models GameMaker 2.3+ projects so that they can be programmatically manipulated. We've only implemented the features that we currently need, but those are already very powerful:
* A 'modules' concept, allowing you to import subsets of resources from one GameMaker project into another. We developed this as a more robust way to share resources, since the Extensions system, the Marketplace, and GameMaker's built-in way to import assets all suffer from many ease-of-use issues.
* Asset importers, allowing you to convert folders full of sounds or images into GameMaker Sound and Sprite assets.
* Texture Group and Audio Group management by folder. Currently these are managed manually, per-asset. Stitch lets you assign a *folder* to a Texture/Audio Group, so that all assets in that folder will always be correctly assigned.
* A Typescript API, allowing you to create programmatic pipelines using Node.JS
* A CLI, making it easy to run common commands without having to write any code
Note that Stitch is very dangerous to use if you aren't using source control, since it directly edits your GameMaker project files. By default it won't perform any actions unless your project is in an up-to-date Git repo (this is bypass-able, but I wouldn't recommend that).We'll be continuing to develop Stitch over time, adding features as we need them, and the code base will give you a solid starting point for adding your own features.
All the details are in the project's README.