Asset Lookup Propagation

Zones are allowed to override most of the assets that the game comes with. These assets are commonly called "Core" or "Base" assets.

Current Implementation

The current implementation expects all Mesh to be located in the Meshes/ directory, all Doodads or props to be located in Doodads/ directory, and so on. The root directory for these is /Game/Content/. in case of textures, they are expected to be in the same folder as a given mesh. Each mesh should have it's own folder. This enforces the folder structure so it remains tidy.

Proposed Additions

The next step is to have the clients, zone servers, and editors first look for a given asset in the zone folder first, ie. /Game/Zones/Twin Peaks/Content. If the asset is found there, use it, and if it isn't, look in the base directory.

This would allow zones to override certain files if needed such as meshes or the user interface as needed, and would avoid the issues that Infantry 1 currently has where multiple zones are using the same file name with different contents and the client having to re-download every time they join a zone.

If an asset is not found, we display an error and terminate the zone server at that point.