Model Structure

Strategy to dynamically create models at run-time for procedural animation.

Technical Details
Alias Definition:
Alias refers to uniquely modified instances of objects specified by name only. For instance, 12 entities could have a model named "windmill.mdl", yet an internal reference is made to alias 1-12 of the "windmill.mdl" branch in the scene rendering system(different objects, same assets.) Thus, if an object with no modifications is spawned(such as a static prop,) alias 0 is all that's needed; it can be re-used at no extra cost.

Any time a request is made to change a model or its sub-components, a unique alias is generated if the current alias is 0. In the case of our 12 windmills, each is tracking its own keyframe in the articulation program, so a unique object is required to maintain the state variables.

Scenario I
Initial Conditions: 50 Entities(Game-side) using "human.mdl". All begin by referencing a single Model, loaded(Display-side) from file "human.mdl"

Actions Taken: Game sets 25 of the Entities' Models to have a blue(Filter) metallic(Sample) head(Mesh)

Expected Results: All Entities should still report "human.mdl" as their Model Name, but the 25 Entities that were changed should have referenced a unique Model object replicated for the changes requested.

1. Can/Should this be serialized?
2. Can the operation be done efficiently for a group of entities?