Today I have fleshed out the facet system a bit more. Here's how it works :
We have .csv files, that contain data used to spawn entities in the game or editor - like what mesh & material they use, whether they cast shadows, etc. These values are now loaded as facets stored with each object upon creation - so you can add new a facet to all new objects of a certain type by adding to the appropriate .csv file.
Then, if you want a particular object to be unique in some way, you can add, change or remove facets from each object individually. If you find yourself making the same changes repeatedly, you can make a new prototype by creating a new row in the .csv file.
In order to be able to easily add facets without having to modify the engine code, today I created facets.csv, which contains the name, type and description of every facet in use by the game.
Although code is not needed to make facets, you still would need to modify the code to make the new facets used for anything. The facets will also be the key to integrating scripting, if we go that route.
Here is a shot of the facet editor in game, populated using data from the .csv file.
BTW, we are having trouble getting our biped / physique models out of max7 into .x format. We've tried the d3d .x converted from the october 2k5 sdk, the EaseExport, and pandasoft, with no luck so far. If anyone has any pointers on this, they would be appreciated.