OXP Development Best Practices
Moderators: winston, another_commander
Re: OXP Development Best Practices – meta
Ah, I may have been going about this in the wrong way then. Think I may have over complicated it for myself!
I will try again tonight to see if I can convert it, and if not I will simply have to exclude it from my next release. Thanks Ahruman!
I will try again tonight to see if I can convert it, and if not I will simply have to exclude it from my next release. Thanks Ahruman!
Desktop PC: CPU: Intel i7-4790K Quad Core 4.4GHz (Turbo-Charged) GPU: Nvidia GeForce GTX 1080Ti RAM: 32GB DDR3
Laptop PC: CPU: Intel i5-10300H Quad Core 4.5GHz (Turbo-Charged) GPU: Nvidia GeForce GTX 1650 RAM: 32GB DDR4
Laptop PC: CPU: Intel i5-10300H Quad Core 4.5GHz (Turbo-Charged) GPU: Nvidia GeForce GTX 1650 RAM: 32GB DDR4
Re: OXP Development Best Practices – meta
Having never developed an OXP, the only disadvantage I noticed with Notepad is the lack of displayed line-breaks when viewing Unix formatted text files. (As an aside, I never heard anyone speak quite that highly of Windows Me - in my opinion, having only very briefly used it at a friend's place, the biggest problem after lack of Unicode was its FAT32-imposed file size limitation. The commonly-cited problem with crashes after resuming from sleep when some USB device had come unplugged was just a config issue, then?)
- Wildeblood
- ---- E L I T E ----
- Posts: 2453
- Joined: Sat Jun 11, 2011 6:07 am
- Location: Western Australia
- Contact:
Re: OXP Development Best Practices – meta
I don't know about that. "Out of the box" it was a shocker. But I found most of the problems seemed to be caused by System Restore (a shiny, new feature in ME). Once I learnt how to disable that it just hummed along. I didn't see a BSOD for years (and never had an occasion when I thought, "I wish I could do a system restore."), until the computer started playing up a few months before it finally gave up the ghost. I wish my current celeron/Win7 notebook was as reliable. It freezes up almost daily.BuggyBY wrote:As an aside, I never heard anyone speak quite that highly of Windows Me - in my opinion, having only very briefly used it at a friend's place, the biggest problem after lack of Unicode was its FAT32-imposed file size limitation. The commonly-cited problem with crashes after resuming from sleep when some USB device had come unplugged was just a config issue, then?
Now, about this converting <pointyBrackets>XML<pointyBrackets> business. It's very simple XML with no attributes, mixed namespaces, or other hoopla, so a CSS stylesheet should be all you need. You just need to know all the the possible element types... <string></string> <array></array> <key></key> etc...?
- Shipbuilder
- ---- E L I T E ----
- Posts: 877
- Joined: Thu May 10, 2012 9:41 pm
- Location: Derby
Re: OXP Development Best Practices – meta
There is also a converter to change XML to Openstep (Section 7 of the Property list doc on the Wiki).
See here http://wiki.alioth.net/index.php/Property_list
See here http://wiki.alioth.net/index.php/Property_list
The GalTech Industries Corporation - Building ships to populate the galaxies.
Increase the variety of ships within your Ooniverse by downloading my OXPs
Flying the [wiki]Serpent_Class_Cruiser[/wiki] "Thargoid's Bane"
Increase the variety of ships within your Ooniverse by downloading my OXPs
Flying the [wiki]Serpent_Class_Cruiser[/wiki] "Thargoid's Bane"
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: OXP Development Best Practices
After reading SandJ's list of ideas (now deleted) I was able to see that I have left out some additional areas that this thread should cover. These are:
To start here are few points for the Basic Dos and Don'ts:
Dos:
- Correct packing of the OXP. Including documentation and Change Logs files.
- Version numbering.
- Licensing & copyrights.
- Documentation writing.
- Wiki entries for OXP.
To start here are few points for the Basic Dos and Don'ts:
Dos:
- Always comment your code. It helps both you and others later if you put comments in your code that explains what each function does or what certain parts of the code do. The more thorough the commenting is the easier debugging and maintaining is.
- Always indent your code. Either use a tab or a fixed set of spaces for each level of indenting. If you uses tabs always use tabs. If you use n spaces always use n spaces. Doing this will indent your code consistently so it is much easier to read and to find the relationship between parts of the code.
- Do not create global variables always do this.<varname> = <value/expression> never do var <varname> = <value/expression> that are not inside a function. Reason is because the var ... form when not inside a function is global and that variable name could already be used by some other OXP. Using "this" to declare them makes the variable part of the worldScript object that is your script and therefore will never clash with a variable from another OXP. Generally there is no need to create a global but if you find a reason to do so it is suggested you prefix the variable name with the name of the OXP. (This reduces the chance of a name clash)
- Do not hard code System names in mission screen and manifest screen instruction texts. Instead use the code "%Jxxx" where xxx is the number of the system. (e.g. "Go to LAVE main station to collect Agent Jones" should be "Go to %J007 main station to collect Agent Jones".) The reason for doing this is that names of systems can be altered by OXPs so you can't be guarantee that it will always be the name you hardcoded into the text. "%Jxxx" is one of the codes that get automatically substituted in mission and description texts.
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- JensAyton
- Grand Admiral Emeritus
- Posts: 6657
- Joined: Sat Apr 02, 2005 2:43 pm
- Location: Sweden
- Contact:
Re: OXP Development Best Practices
Don’t put your OXP and its documentation in a folder also called <something>.oxp. It causes confusion about what actually constitutes the OXP, and on Macs the entire folder will appear as a single file so the documentation can’t be seen.PhantorGorth wrote:
- Correct packing of the OXP. Including documentation and Change Logs files.
E-mail: [email protected]
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: OXP Development Best Practices
I think I am guilty of this one!Ahruman wrote:Don’t put your OXP and its documentation in a folder also called <something>.oxp. It causes confusion about what actually constitutes the OXP, and on Macs the entire folder will appear as a single file so the documentation can’t be seen.PhantorGorth wrote:
- Correct packing of the OXP. Including documentation and Change Logs files.
So what is the best high level structure:
Code: Select all
Name.zip
├> Name.oxp (folder)
│ ├> (subfolder)
│ ┊
│
└> Documention (file)
Code: Select all
Name.oxp.zip
├> Config (folder)
├> Models (folder)
┊
└> Documention (file)
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Re: OXP Development Best Practices
The .zip file should contain the .oxp folder, and a readme (and any other documentation).
Commander Smivs, the friendliest Gourd this side of Riedquat.
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: OXP Development Best Practices
So the first example I gave then?Smivs wrote:The .zip file should contain the .oxp folder, and a readme (and any other documentation).
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- Cody
- Sharp Shooter Spam Assassin
- Posts: 16081
- Joined: Sat Jul 04, 2009 9:31 pm
- Location: The Lizard's Claw
- Contact:
Re: OXP Development Best Practices
Code: Select all
Name.zip
│
Name (folder)
├> Name.oxp (folder)
│ ├> (subfolder)
│ ┊
│
└> Documention (file)
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
And any survivors, their debts I will certainly pay. There's always a way!
- Smivs
- Retired Assassin
- Posts: 8408
- Joined: Tue Feb 09, 2010 11:31 am
- Location: Lost in space
- Contact:
Re: OXP Development Best Practices
Code: Select all
.zip
|
------------------
| |
.oxp readme
|
sub-folders eg Config
Commander Smivs, the friendliest Gourd this side of Riedquat.
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: OXP Development Best Practices
EV's version modified for consistency
Given that most OSs/Archiving Programs treat the .zip file as a special kind of folder surely that having a folder Name is redundant?El Viejo wrote:Code: Select all
Name.zip └>Name (folder) ├> Name.oxp (folder) │ ├> (subfolder) │ ┊ │ └> Documention (file)
Perhaps?
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- PhantorGorth
- ---- E L I T E ----
- Posts: 647
- Joined: Wed May 20, 2009 6:48 pm
- Location: Somewhere off the top left of Galaxy 1 map
Re: OXP Development Best Practices
that's the same as my:Smivs wrote:Code: Select all
.zip | ------------------ | | .oxp readme | sub-folders eg Config
Code: Select all
Name.zip
├> Name.oxp (folder)
│ ├> (subfolder)
│ ┊
│
└> Documention (file)
Chat and relax with other commanders in the [url=irc://irc.oftc.net/oolite]DS's Seedy Space Bar[/url]. The Coolest Bar in the Eight.
Phantor's OXPs: GalCop Rewards and Safe Docking
Phantor's OXPs: GalCop Rewards and Safe Docking
- Cody
- Sharp Shooter Spam Assassin
- Posts: 16081
- Joined: Sat Jul 04, 2009 9:31 pm
- Location: The Lizard's Claw
- Contact:
Re: OXP Development Best Practices
That's how I find many OXPs packaged already - it makes sense to me, but that means zilch!PhantorGorth wrote:... surely that having a folder Name is redundant?
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
And any survivors, their debts I will certainly pay. There's always a way!