Author Topic: A vision for Foundation Publish - syncing, stability, collaborative bugfixes  (Read 321 times)

Dasher

  • Guest
There are game-changing things brewing with Foundation 2023, and Tethys and FekLeyr Targ are being so helpful that they've made some UI for the feature as I generally describe, for me to make the back-end work.  Thanks you two!  I've no choice but to make it happen now, eh?!   :funny

I've described several features: Freeze (snapshotting multiplayer-ready scripts), a Launcher, and git management and updates of mods.  Turns out they really belong together.  Here's the combined vision:

* A single Bridge Commander installation will have two versions of scripts:  moddable scripts/ as you've known it, and stabilized mplayer/ with mostly .pyc files only, ready for multiplayer.

* The scripts folder will be under git management, and the mini-launcher will handle basic git operations for you.  This will allow snapshots and backups of your scripts directory.  It'll allow easy updates of your main Foundation-based mod components.  In time it will allow merges and bugfixes for popular mods to be easily distributed and reviewed, and those passing review could get synced.  This would make it less likely that each BC player with a modded install will be an island, and make it easier to collaborate on fixes.  Experienced coders will notice, and yes I confirm - this necessarily requires complete sets of .py files to work.

* scripts/Custom/Modpacks will be the directory where stable multiplayer-ready snapshots of the rest of your scripts directory will be.  I'm still working out details, but each modpack there will have its recipe of major component mods and Python files.  Upon activation, they will be hardlinked (mostly) or copied to mplayer/ to be the active stable multiplayer.  Those will be mostly pyc-only.  An implication is that nt.listdir() calls that hard-code scripts will be changing, because they'll need to point to mplayer when in the stable mode.  Some mods will need adaptation.

* A micro-launcher will need to be installed to work with the in-game UI.  It should rarely pop up except to tell you about fixes, diagnostics, and updates.  I had considered a full external UI, but it seems people like the Bridge Commander control panel just fine.  I will gladly yield to user expectation there.

Why am I telling you all this now?  So modpack authors can get ready for this in advance.  If we were to have stock BC as a multiplayer stable "modpack", we'd copy its scripts directory to this path:

scripts/Custom/Modpacks/StockBC/mplayer

There will be more to it, of course; I'll need to compose helper files which I'll detail when I reach beta.

I'm excited for this, though.  Combined, this is going to solve many of the difficulties of complex Bridge Commander modding.  Taken together with Versions, which is already working in Foundation 2023, we'll be able to rapidly and collaboratively bugfix our installations when experimenting with mods, and share those fixes - and when done, modpack authors will be able to easily snapshot their installs into multiplayer-compatible installations.

And this all seems to be more like the Bridge Commander you all have been waiting for.

Related issues tracked at:

https://github.com/Dasher42BC/FoundationFramework/issues/4
https://github.com/Dasher42BC/FoundationFramework/issues/10
https://github.com/Dasher42BC/FoundationFramework/issues/11
https://github.com/Dasher42BC/FoundationFramework/issues/13