[Proposal] Content folder structure
Either by function:
e.g.
create/ (birth,
kill/ (weapons, …)
move/ (vehicles, …)
…
by geographical / biological homogenous heterogenous development:
e.g.
biped/
triped/
quadruped/
…
by biological/geological/… kind, order, group or family:
e.g.
plant/
humanoid/
…
(Note while my examples may not be consistent because quickly thrown together, the real folder structure must be consistent. Redundancy is always a problem, e.g. several things may belong into different categories which must be avoided by a good a priori folder structure.)
by time / epoch
e.g.
stone age/
bronze age/
iron age/
ancient/
medieval/
...
By epoch is overlapping definition and on the first thought may better be achieved by structuring into several content addons. On the second thought it not solves the overlapping problem and leads to issues with fluent development over time of items, e.g. evolution of helmets over the course of history!
Conclusions:
=> So better use tagging which also allows items to be in several categories!
=> Every item its own folder, including a tags/ sub-folder and all the existing variants denoted by e.g. the time span it existed (or by stating it in the descriptive file in e.g. .json or .xml format).
This approach - while leading to many submodules - then allows specific overlapping content addons to use common items in different versions (like gentoo portage and 0install package manager).
If the newest version is desired, then use relative reference to the folder one level higher …/. To avoid unkown folder recursion depth this should always be the root folder of the collection repository, e.g. 0bc/ in case of the Time Machine.
If on the other hand a special version is required, then load the repository into the current repository as git submodule, check it out in the desired version, and reference using ./ (current directory, i.e. one, not two dots!).
This leads to the following folder structure with the full scientific name:
~ (home directory):
0bc/ (collection of repositories included as submodules, program dependencies specified using 0install package manager unless no circular dependencies ar e expected!)
homo_sapiens_sapiens/ (git repository containing homo sapiens models in all variants (female, …) over time)
…
lolium_perenne/ (kind of grass; containing the 3d model, its xml, json definitions, et alia development files in its variants over time)
lolium_multiflorum/ (kind of grass; - " -)
…
You get the picture.
Note this implies that there won’t be distinguished in simulation, art, … folders! Because if a model changes then in scientific terms the simulation properties also change, i.e. they are inherently interlinked and thus can and should be provided in a bundled manner (for compatibility to 0A.D. without post processing, the modules can locate the files at the respective simulation/, art/, … folders).