Hi
@ChrisIceBox , once again I'm probably asking about something uncommon and possibly a risky approach.
Previously you've added per my requests some special hooks, like allowing my to define "SearchAllScenes" if I want string translation tool to get translateables from all scenes in the build, not just currently enabled ones. Thanks for that added flexibility.
Currently however we are working on an approach were our episodic story is released to multiple platforms (including WebGL, which works suprisingly nice!). Each episode would be a a separate build and release, but they share huge amounts of stuff. We also need to add frequent updates to each of these in a short time frame. Our team is small and partially not very technical, and for now it seems our optimal solution is having all the episodes in the same Unity project (as they have been for a long time).
Build size optimization is also a big effort, and working ok currently. Each platform and episode will have their own pre/post process hooks so that they automatically include only the assets/StreamingAssets/Resources folders etc which they specifically need.
However, Unity includes all rerefenced stuff, which means that it will include the references asset, which contains references to all managers, which are currently common. There are for example characters and menu textures which are added to episode 1 and episode 2, though neither needs all of them.
So, we want each episode to have their own set of separate managers. This seems technically possible and not hard to do, but is this a sensible approach, or are we wasting our time on something which goes against the architecture of Adventure Creator and will hit us in the face later?
PS: I know that the normal solution would be to simply have the episodes in separate Unity projects, but it seems this is the only way we can operate efficiently enough (also to meet some tight deadlines), and we really want them to live in the same project.
What do you think?
Comments
The reason for this is that AC allows for the transferring of certain variables between episodes via the "Import" feature of SavesList element boxes (see the "Importing saves from other games" chapter of the Manual). This means you can have the player's various choices transfer from one episode to the next.
If you don't need that feature, then separate Variables Managers can also be used for each episode.
There is also the matter of keeping unused Resources folders out of unrelated episodes, but it sounds like you've already taken care of that.
If you want to be able to build a given episode, you will indeed have to switch out your Managers - whether manually or via script. The ManagerPackage file is a convenience, however - if you open the ManagerPackage.cs script, you can see all its doing is loading in the Managers assets it stores references to, then saves the References file (which is what gets updated).