OXP Distribution
Making sure that users can easily find, download, understand, and install your OXP helps making it more popular and keeps requests for help to a minimum. The following best practices help you achieve that.
Contents
General
- Make sure that the file names in your plists precisely match the actual file names, including the capitalization. File names on non-Windows systems are case-sensitive.
- Include requires.plist in your OXP.
- Avoid file names with spaces. They make it harder for people who use the command line.
- Avoid the use of generic names for textures, models, scripts, and keys in .plist files as they may lead to conflicts with other OXPs. Prefixing the names with the OXP name is recommended (e.g. "MyOXP_MetalTexture.png" not "MetalTexture.png")
Packaging
|
|
Distribution
- Create a zip file based on the "MyNewOXP_x.y.z_yyyy-mm-dd" directory and name it "MyNewOXP_x.y.z_yyyy-mm-dd.zip"
- While there are other, more efficient compression tools (such as rar, 7z), zip is available out-of-the-box on all operating systems that are officially supported by Oolite.
- If you are working on a Mac, please use either a compression tool like YemuZip, or the "compress" command from the context menu in Finder followed by a run through ZipCleaner. Otherwise, OS X specific files that are not relevant for other platforms will be included and lead to confusion.
- Upload the zip file to an easily accessible online storage. Most OXP authors use box.com for distribution nowadays. It is free up to 5GB and does not annoy your users with advertisements.
Announcement
When you start work on an OXP and wish to make this known start a new thread in the Expansion Packs forum of the Oolite Bulletin Board (BB). The title of the thread should be the name of the OXP preceded by [WIP] as long as the OXP is under development. When you decide your OXP is finished, it is recommended that you change [WIP] to [Release].
- Screenshots in the BB post are much appreciated.
- Create a wiki page for your OXP if you can, or ask around the BB for help with setting one up.
- At the very least, provide enough information for creating a one-liner in the OXP List.
Updating
- Update your readme file with a new entry to the version history.
- Rename the directories based on the release date of your new version, create a new zip file, and upload it.
- Both modify the first post in the OXP thread that you created, and post a new message in the same thread. In the first post, update the download location and provide up-to-date version information. In the new message, mention that there is a new version and give whatever other information is necessary.
- If you only modify the first post, then the BB will not show that the thread changed. If you only add a new post, users will miss the new version if they only look at the first post.
Packaging Retexture/Remodel OXPs
If you are making an OXP which adds alternative versions of the core Oolite ships or replaces the core Oolite ships entirely we suggest you follow these guidelines to ensure compatibility with similar OXPs. This modular format also allows end-users to easily customise their 'mix' of ships.
- Firstly create an OXP named ShipSetName_Resources.oxp or similar. This should include the Models, Shaders, and Textures folders required for your ships. As is generally advised the names of the individual models, shaders and textures should be unique.
- Secondly create two separate OXPs named ShipSetName_Replace.oxp and ShipSetName_Addition.oxp or similar. These should contain the Config folder for your ships. End users can install one or the other depending on whether they want your ships to replace the core Oolite ships entirely, or if they want your ships to appear in addition to the core Oolite ships, or in addition to another retexture OXP which has replaced the core Oolite ships.
- The shipdata.plist in ShipSetName_Addition.oxp should reference each ship with a unique identifier. For example your version of the adder may be referenced as "ShipSetName_adder". You will also need to include a demoships.plist so that your ships will appear on the demoships parade and a shipyard.plist referencing the ships that are player purchasable.
- The shipdata.plist in ShipSetName_Replace.oxp should reference ships that are the direct equivalent of an core Oolite ship with the same name as is used in the core game's shipdata.plist (this file is found in Oolite\Oolite.app\Resources\Config). For example your version of the adder would be referenced as "adder". This will result in your ships replacing the equivalent core Oolite ships entirely. If your package includes a version of the "cobra3-player", new Jamesons will start the game flying your version. Any ships which do not have a direct equivalent in the core game's shipdata.plist should retain their unique name. You will only need to include a demoships.plist or shipyard.plist if you are including ships which do not have a direct equivalent in the core game's shipdata.plist.
- End users will need to download the ShipSetName_Resources.oxp and either the ShipSetName_Addition.oxp or the ShipSetName_Replace.oxp depending on their preference. In general end users cannot install multiple 'replacement' type retexture OXPs without them conflicting. However they can install one 'replacement' type retexture OXP, and as many 'addition' type retexture OXPs as they wish to achieve more variety of ships in game. Providing your retexture/remodel OXP in this format facilitates this end user choice.
- Guidance for end users on how to mix and match the currently crop of retexture/remodel OXPs can be found at Installing_multiple_retexture_OXPs