The current organization and folder structures of my project are a result of continuous development. When I started my work I had decided against a
"master-plan" which comprises of all features and which tries to anticipate almost everything.
I rather favour a step-by-step journey with a clear destination and healthy focus on time than a constrictively scheduled achievement long distance run
or a micro-management nightmare. I had to endure the latter approaches during a number of IT-projects and they REALLY suck!!! As one of my former
professors once stated: "No plan can foresee all actions because of itself or re-actions to itself".
Thus, I allowed myself much room to experiment and to make many errors in order to facilitate change and to accomplish my goals. Today, I am very
pleased and sometimes amazed that I am about to finish my modification in the near future.
The following diagrams and images depict that I have come a long way. This organization helps me tremendously to finish my tasks and to keep track
of the overall progress.
Under every top directory, the individual faction model folders reside. Each model folder has a simple and standardised structure as you can see next:
Tools: Asset Pipeline
At project start I primarily used GUI applications. As the number of models increased, I switched
to command line programmes because I wanted to automate as much as possible. For the initial
creation of textures I am still using Corel Photoshop. For cropping, re-sizing and finishing I
found ImageMagick to be an excellent choice. You can easily create CMD-Scripts which prevent
many repetitive keystrokes and reduce times per model.
A W3D-Model is a container composed of individual meshes. At the end of a model file you can
find the HIERACHY section which is an assembly list. Having discovered this crucial fact, I
created ModelHelper/ModelCutter in order to easily seaparate single meshes from a model. At
the same time, these programmes output assembly lists which can be edited and can be processed
by ModelMaker/ModelBuilder. This approach enables me to dis-assemble and re-assemble any
model at will and to my very liking.
How efficient this was, I did realize when I modelled all of the cavalry units. First I created the
horses with GMAX and checked how they appeared animated from all sides in the W3dViewer.
Finally pleased with the result, I modelled the individual riders in GMAX and exported them.
Knowing the required HIERACHY and BONE assignment, I assembled the new cavalry unit in
the ADD_Model folder (see below) and repeated the cycle until finished. Moreover, modifying
all these structures would not have been possible at all.
This cut 'n' build procedure simply emerged due to an intensive study of the W3D-Format and
turned into a valuable asset for automating otherwise time-consuming tasks.
For assembly of each W3d-model, I use the ADD_Model folder where I build each model from its previously cut meshes and its required hierarchy. It
took me quite a while to figure that out and to create all necessary tools. Especially for riders this is very efficient because there are two types of horse
meshes in the game which fit all cavalry units. For structures it's just a breeze to be imaginative by assembling new models - splendid.
Here is a short movie clip which describes the asset pipeline for assembling a new banner rider. I used ModelCutter, ModelCloner, and ModelBaker.
in order to modify and build a new Elven banner rider. Watch and enjoy:
All mod-related BIG files are assembled by the Big4Creator command line programme.
I setup cmd-scripts for each type as shown in Modding Notes. This automation makes
deployment very convenient and easy. Thus, testing my changes can happen very quickly
and controlled. I have tweaked the game to an extensive degree but have not encountered
any strange errors so far.
Whenever a new/altered model or a texture has to be integrated into the game I first use
AssetCacheBuilder to create the asset file and then AssetCreator to append its data to the
existing file. The whole procedure is achieved by just invoking two cmd-scripts.
On calling UpdateFilesVersion2.cmd I am able to copy all mod-files to a release folder in
order to store the current versions. This folder serves as my main installation directory
and progress tracker. All modified files are copied from here into the game directory.