If you’re a scenery developer, and you open up OverlayEditor and see the list of objects in OpenSceneryX, you are looking at a set of Virtual Paths to the objects. These are not real paths on disk, they are made-up. Hopefully I’ve done a reasonable job of making up these paths so that it is easy to find the object you are looking for. Sometimes this goes a bit wrong and I have to change things around a bit, see the previous post for an explanation of how this is done.
Virtual paths give us three benefits:
- The folder structure on disk does not have to bear any resemblance to the path that an object is published to.
- An object can be published to more than one (indeed, many) paths. However, it is still the same object and is only loaded once by X-Plane.
- Several different objects can be published to the same path.
Item 1 is good for library maintainers – We can organise the files however we like, as long as the published paths stay the same as time goes by it doesn’t matter where things sit on disk.
Item 2 is good for everyone – This allows objects to be found in different places, so they can be organised under different schemes and found by the user more easily. A good example are the static aircraft in the library – These are organised both by aircraft type and by livery… So if you are looking for a B747 then you can find it under /objects/aircraft/jets/heavy/b747-400/aer_lingus.obj but if you are looking for Aer Lingus aircraft you will find the same 747 here: /objects/aircraft/livery/aer_lingus/b747-400.obj.
Item 3 is also good for everyone – Publishing multiple objects to the same virtual path means X-Plane can introduce random variety as the sim will pick a random object each time the scenery is loaded. A massive example of this is /objects/aircraft.obj – Almost every aircraft in the library is published to this path, so if you use it you will get a random aircraft each time – a bit extreme! Perhaps more useful are paths like /objects/aircraft/jets/heavy.obj (a random heavy jet) or /objects/aircraft/jets/heavy/b747-400.obj (a random b747-400). Note that some aircraft are excluded from this, specifically historical liveries, house colours and one-off liveries.
I’ll blog a bit more about historical liveries in future, as well as blogging about the build scripts that are used to compile the library.