Forum rules - please read before posting.

About having multiple sets of Managers in one Unity project (multiple separately released projects)

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

  • There's no restriction so far as the number of "AC projects" within a single Unity project goes, and for episodic games I encourage it.  Each episode ought to have their own Managers, except for the Variables Manager - which should be shared by all.

    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.
  • Ok, thanks for the answer! 

    I'm still somewhat confused about how the ManagerPackage-asset should work in the case when we have multiple sets of AC managers in the project. I mean, clicking on "Assing Managers" will override the values in the References.asset (located by default under AdventureCreator/../Resources/, so it ensures that the referenced assets get in the build. I could make pre/post build scripts to rename specific Resource-folders, so they other episodes stuff doesnt get included.

    But to have multiple separate "References.asset" for each episode, I probably shouldn't rely on any "ManagerPackage"-> Assing managers? Probably not a problem as we can track the managers manually. Or, we can just rely on a single references.asset file, and make sure the build process emulates clicking the "Assing managers" for each episode, affecting the references?
  • AC requires that there only be one References asset file - this is very important.  I was assuming that normally you'd only be working on one game at a time, so normally you'd only switch up your Managers when one episode is complete and you move on to the next.

    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).
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.