I am trying to wrap my head around Perforce recently, maybe some more experienced users can help me decide whether it's the right tool for my
Our immediate goal is to improve our projects cost scalability (multiple clients) by reusing assets from a single source of truth, however our assets
usually need to live in a folder structure that is maintained by the game engine (Unity3d) for editability and meta ﬁle generation.
I already had a look at GIT submodules and deemed them unﬁt for the task as we are missing control over the folder hierarchy and included content
(there is sparse checkouts though), apart from that contributing back into submodules is a pain because of constant detached head state.
A usual Unity project contains the following folder structure in order to work with the engine:
Under /Assets lives the content the project uses, its our main concern to reuse Assets (Art & Code) from these Project I call Producers. For sake of
reuse ability I am prepared to put the essential reuse artefacts into one folder e.g. /Assets/__Export if necessary.
An Producer's folder hierarchy below /Assets might look like this:
With the folders except /__Export possibly existing under /__Export as well to keep things organized there e.g. /__Export/_3D
So these Producer projects contain Assets that should be reused by other projects as well which I call Consumers.
A Consumer folder structure below /Assets might look like this:
In theory this should be no problem with Perforce's Workplace View or Stream Mapping, however I have some questions whether the following things
will work at the same time:
A) Can I keep the revision of content in /'REUSED ﬁxed until I manually choose to allow this workplace newer revisions, I saw there is a revision
feature in the form of @1000 in one example but I am confused since Perforce gives Assets individual revisions and some in the same folder might be
at Rev 5 while others are still at Rev 2 which might make it hard to give a common upper limit.
B ) Can I keep some path mappings readonly while other can be contributed to (e.g. write to the Consumer Path and to /Assets/`Reuse1 but not to /
Assets/`Reuse2)? I read about Include and Include+ but it seems to be a stream-only feature? So maybe the actual question is whether Streams are
the way to go and work with these other points...
C) Give collaborators a nice way to check out one Consumer Project Folder Mapping? Streams seem to do exactly that and Workspace Views seem
to be shareable.
D) I can see things get complicated with Perforce when one of our Producer Projects has essential dependencies without the /__Export would not
work but we would like to keep centralized and not dublicated e.g. In a Producer:
Which is basically a Subrepo in Subrepo problem, for this Perforce seems to have no simple solution. Streams in Streams are not possible right? So I
would need to keep track of the dependencies of my Producers manually and include them manually in every Consumer?
E) Will a still have solid merging with all points considered, even without Streams?
Thank you very much to those who have taken the time to read to this point, it took also some time to write this post and I hope you can see my
honest interest in trying to understand Perforce, I would be very glad if you could show me a way so this could work out
MarcurionMember Since 20 Apr 2019
Offline Last Active Apr 23 2019 06:46 PM
- Group Members
- Active Posts 3
- Profile Views 272
- Member Title Newbie
- Age Age Unknown
- Birthday Birthday Unknown
Marcurion hasn't added any friends yet.
No latest visitors to show