Important Info For Scenery Developers

IMPORTANT FOR ALL SCENERY DEVELOPERS USING OPENSCENERYX: Please read the instructions in the developer’s pack.  It is especially important to read the part about including the “Placeholder Library” in your package.  If you don’t do this, your scenery package may* CAUSE X-PLANE® TO QUIT if a user hasn’t installed OpenSceneryX.

I’ve noticed that a number of released packages don’t include the Placeholder Library and have tried to alert the authors whenever I spot this.  If you don’t do it you’re simply making work for yourself because you’ll get a bunch of users complaining that “I installed your package and it crashes X-Plane”

It is simplicity itself to include the Placeholder Library in your package, it’s just a file and a folder that you copy across.

For more detailed info, download the latest developer’s pack, which is always available from the OpenSceneryX Home Page.

(*) Versions of X-Plane® older than 9.30 beta 8 will quit, versions of X-Plane® newer than that will throw up a warning message.

The OpenSceneryX Incremental Installer

A quick exposé on how the installer works:

  1. The installer firstly checks whether it needs to update itself and will tell the user to download a new version if one is available.
  2. Next it scans the user’s existing local OpenSceneryX folder (if one exists), gathering information about every file it finds and creating a CRC checksum for each.
  3. It then downloads a manifest from the OpenSceneryX website.  This is an XML file that contains an entry for every file that exists on the server, together with its file size and a CRC checksum.
  4. Next, each entry in the manifest is compared to the information from the local file system and a list of new, changed and deleted files is generated.
  5. The installer then deletes all the local files that it no longer needs and downloads all the files that are new or that have changed.  It uses a standard HTTP (web) connection on port 80 to avoid firewall issues and every file that it downloads is individually compressed to reduce bandwidth and download time.

The basic principle will stay the same, but the installer is currently being revamped to be more user-friendly and will present a standard step-by-step install process, describing what it is doing at each step. Not sure when this will be out, but “soon” is probably quite a good estimate.

A General-purpose Scenery Package Installer?

There has been some discussion on x-plane.org recently about producing a more general-purpose installer of X-Plane addons.  This dovetails with something I have been considering for OpenSceneryX – The ability to select from a choice of OSX components, so a user can tailor their install to their own preferred set of content.

For example, OpenSceneryX could initially be split up into ‘Airport Buildings’, ‘Static Aircraft’, ‘Forests’ and ‘Other’ and the user could select which sections to download.

If this idea was extended to allow the user to pick scenery packages not just from OSX but also from other developers, then hey presto you have a global package installer.

As always, there would be a few hurdles to cross:

  1. There would need to be a central repository of all the sites where packages are available, and this would need to be kept up to date by each individual scenery author as they release new packages.
  2. A decision would need to be made whether this central repository was also where all the packages were stored, or whether each individual scenery author would be responsible for hosting their own packages on their own servers.  Of course, a central repository would need to be hosted and the usage could get quite high.
  3. Because an incremental installer is the best way to go (i.e. an installer that only downloads files that have changed since the last time the user checked) then each author would have to carefully process their content.  If they were hosting their own then this processing would need to be done by them but if it was all centrally hosted then the system could do most of it automatically.

This is basically all food for thought. I’ll post in future with more detail on how the OpenSceneryX incremental installer works.

“Adopt an Object”

I’ve had a few comments about certain objects in the library “not being very good“.  There is definitely a range of quality in there and nowadays I’m a bit more strict about what gets in and what doesn’t, but to be honest I think a basic object is better than no object at all.

Anyway, here’s a call out to everyone who has a bit of skill in 3d modelling (or wants to learn), and perhaps isn’t quite ready to build something from scratch  – why not choose an object from the library and spend 20 minutes / an hour / a day improving it? Send it back, and you’ll get credit for your work.

Just grab something from inside your X-Plane/Custom Scenery/OpenSceneryX/ folder, but please copy it to somewhere else on your hard disk before working on it, otherwise the OpenSceneryX installer may overwrite it with an older version from the web, wiping out your work.  Also, let me know what you plan to work on, just in case someone else is planning to make changes at the same time.

Jonathan Harris has written plugins for Blender and Sketchup and Ben Supnik has written a plugin for AC3D. If you’re happy with your work, send it back by using the OpenSceneryX contribution form.  Please mention in the notes field on that form that you have modified an existing object.

Don’t be scared, give it a go!

Optimisation

Optimisation is always going to be a continual process with a library like OpenSceneryX, having so many contributions from so many different authors inevitably means that the library puts a load on many people’s machines.

The biggest wins are:

  1. Reducing texture size
  2. Sharing textures
  3. Reducing object complexity (polygon count)

The third one is becoming less critical as graphics cards become more powerful, but the first two give big improvements, and aren’t that hard to do.  Just before you submit your objects, have a quick think about how well optimised your work is, and whether a few minutes spent improving it would benefit everyone.

On the same theme, it would be really cool if someone would volunteer to be ‘library optimisation guru’ and take the job of auditing all contributions for efficiency, perhaps scaling down large textures where appropriate, or even combining textures to produce shared textures for objects that are likely to be used together.

DDS Textures

As many of you will know, X-Plane 9 supports the DDS graphics format, which has been optimised for use with 3D graphics cards and gives a number of key benefits.  Take a look at this post in Ben’s Scenery Blog, where he discussed the future of DDS in X-Plane in August 2007, before it was implemented.

So, what’s the future of DDS in OpenSceneryX?  Well, DDS is an X-Plane 9 feature, so as soon as we start including DDS textures in the library then we are potentially cutting out XP8 users….

But I’m sure I read somewhere that the library already does include DDS textures?!

I hear you cry, and yes, it turns out you read it here in the release notes for version 1.7.0.

But I’ve been short changed then because why are there are no DDS textures in my copy?!

you wail once more… and of course there’s a good reason – I forgot to update the build script to copy DDS textures into the release versions!  So, I’ve decided to refund everyone’s money.

…    🙂

That didn’t take very long, so back to the future of DDS in OpenSceneryX…   Instead of distributing two textures to every user, a better solution is to upgrade the installer to be more intelligent about which textures are installed on a particular user’s system. If a user has X-Plane 9, they get DDS, otherwise they get PNG.  So, this is something that will be coming soon.

Get Your Scenery Package Listed

There’s a new page listing all the scenery packages I know about that use OpenSceneryX, together with a link to each package.  If you’re a scenery developer and you’ve built a package that uses the library but isn’t listed, or if your package is listed but the link is wrong, please post a comment on that page and I’ll add to or correct the list.

Please always include the OpenSceneryX URL in your docs so users know where to download the library. If possible, also include the ‘Enhanced By’ logo in your documentation too:

Enhanced by OpenSceneryX

This is included in the developer pack and helps users identify that a package is enhanced by the library, using it gives the library more exposure and will hopefully increase the contributions.

USA Forests

I’ve just finished adding all of alpilotx‘s USA forests to the library.  This gives us a huge increase in the number of forests available, so hopefully you’ll be able to get the exact tree type you need, wherever you need it.

The USA forests will be available in the next release.