Page 3 of 6

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 8:06 am
by Cholmondely
Tweaked.

Docked.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 8:11 am
by spara
montana05 wrote: Tue Apr 27, 2021 7:55 am
spara wrote: Tue Apr 27, 2021 7:38 am
Next step would be fixing the market. Do you want to be ambitious and create a market with some flavor or shall we just go with the standard market?
Bold suggestion of mine, how about creating a new market similar to the rock hermits in the core ? :wink:
Definitely a new market, but the big question is, how will it differ from the main market? If it follows the main market, then there's little to no profit in zipping between the Sothis and the main station. In that case we're basically expanding the capacity of the main station market. Game wise that makes sense, since Sothis is positioned quite close to the main station and one might assume that the prices would converge.

If the bulk market is wildly different then we're sort of making a cheat.

What is the purpose of the Trade Center? In my original vision, it was a business center with a tweaked speciality cargo market from the new cargoes oxp. Bulk market is for others.

One possibility is to create a small market (low capacity) with some hopefully interesting differences. If you're lucky, you could get a nice price for your luxuries, but the station would only buy 7 units. That would give some flavour and an incentive to visit the station, but would not break game economy. At least not a lot :D.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 9:06 am
by Cholmondely
spara wrote: Tue Apr 27, 2021 8:11 am
montana05 wrote: Tue Apr 27, 2021 7:55 am
spara wrote: Tue Apr 27, 2021 7:38 am
Next step would be fixing the market. Do you want to be ambitious and create a market with some flavor or shall we just go with the standard market?
Bold suggestion of mine, how about creating a new market similar to the rock hermits in the core ? :wink:
Definitely a new market, but the big question is, how will it differ from the main market? If it follows the main market, then there's little to no profit in zipping between the Sothis and the main station. In that case we're basically expanding the capacity of the main station market. Game wise that makes sense, since Sothis is positioned quite close to the main station and one might assume that the prices would converge.

If the bulk market is wildly different then we're sort of making a cheat.

What is the purpose of the Trade Center? In my original vision, it was a business center with a tweaked speciality cargo market from the new cargoes oxp. Bulk market is for others.

One possibility is to create a small market (low capacity) with some hopefully interesting differences. If you're lucky, you could get a nice price for your luxuries, but the station would only buy 7 units. That would give some flavour and an incentive to visit the station, but would not break game economy. At least not a lot :D.
According to the statistics, the Sothis is considerably larger than a Coriolis/Ico/Dodo (1.5km/side instead of 1km/side). If the market is minute, and there is no shipyard, what is all that extra space used for?

Sothis:
Mass: 2,523,898.88t
Size: 1503 x 1503 x 1589m (radius 1547m)
Ebanks: 390; Recharge: extreme; No laser

Coriolis:
Mass: ?
Size: 1000 x 1000 x 1000
Ebanks: ?

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 9:19 am
by montana05
Cholmondely wrote: Tue Apr 27, 2021 9:06 am
According to the statistics, the Sothis is considerably larger than a Coriolis/Ico/Dodo (1.5km/side instead of 1km/side). If the market is minute, and there is no shipyard, what is all that extra space used for?
Ship production ? Could create a market slightly higher for the oolite-shipyard group, include a shipyard exclusively selling ships produced there and park some of this offers out of the station, ready to get picked up.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 9:27 am
by Cholmondely
montana05 wrote: Tue Apr 27, 2021 9:19 am
Cholmondely wrote: Tue Apr 27, 2021 9:06 am
According to the statistics, the Sothis is considerably larger than a Coriolis/Ico/Dodo (1.5km/side instead of 1km/side). If the market is minute, and there is no shipyard, what is all that extra space used for?
Ship production ? Could create a market slightly higher for the oolite-shipyard group, include a shipyard exclusively selling ships produced there and park some of this offers out of the station, ready to get picked up.
Then there would be slightly higher demand for alloys, machinery & computers for ship production.

Unsure whether totally raw unprocessed minerals & radioactives (are they raw & unprocessed) would also be in demand. It would make sense to have factories processing such things in orbit.

Would we need to increase the size of the docking bay? Or introduce another (insect queens only!)?

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 9:39 am
by montana05
Cholmondely wrote: Tue Apr 27, 2021 9:27 am
montana05 wrote: Tue Apr 27, 2021 9:19 am
Cholmondely wrote: Tue Apr 27, 2021 9:06 am
According to the statistics, the Sothis is considerably larger than a Coriolis/Ico/Dodo (1.5km/side instead of 1km/side). If the market is minute, and there is no shipyard, what is all that extra space used for?
Ship production ? Could create a market slightly higher for the oolite-shipyard group, include a shipyard exclusively selling ships produced there and park some of this offers out of the station, ready to get picked up.
Then there would be slightly higher demand for alloys, machinery & computers for ship production.

Unsure whether totally raw unprocessed minerals & radioactives (are they raw & unprocessed) would also be in demand. It would make sense to have factories processing such things in orbit.

Would we need to increase the size of the docking bay? Or introduce another (insect queens only!)?
For a large station close to the main station factories would come to my mind. Ship production was an idea to make the location interesting. Offering only some ships but cheaper than at other locations make it worth to visit. However, including only my first ideas would require some additional lessons, so the decision how to proceed is with Master spara. :D

Coriolis (core):
Mass: 514,483.904 t
Size: 1000 x 1000 x 1034
Ebanks: 25000/64 = 390 / Recharge: extreme

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 10:29 am
by spara
The idea of expanding the ship-market is an interesting one. With the current version of Oolite it's possible to tamper with the shipyard. Previously the shipyard just was or wasn't. Maybe there could be a wide selection of ships suitable for interstellar cargo transport available from Sothises? Like Pythons and Boas. Or we could include some ridiculously expensive or fancy ships (like the revised version of SuperCobra from Random Hits or Teretrurus or Imperial trader/courier) to be sold only in Sothises.

All in all Sothis station is huge and there should be some in-game justification for that. Adding a large market to a system is not a good idea because of the game balance. After we've fixed the market, it's of course totally possible to change the market capacity to what ever people want in their own games. A large market should not be a default though.

The game already has a "business" classification for certain goods. I think we'll start with that. We'll create a market with emphasis on those and think about the shipyard later. Less is usually more, so maybe the idea of a shipyard focusing on cargo ships is the most reasonable.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 10:40 am
by montana05
spara wrote: Tue Apr 27, 2021 10:29 am
The idea of expanding the ship-market is an interesting one. With the current version of Oolite it's possible to tamper with the shipyard. Previously the shipyard just was or wasn't. Maybe there could be a wide selection of ships suitable for interstellar cargo transport available from Sothises? Like Pythons and Boas. Or we could include some ridiculously expensive or fancy ships (like the revised version of SuperCobra from Random Hits or Teretrurus or Imperial trader/courier) to be sold only in Sothises.

All in all Sothis station is huge and there should be some in-game justification for that. Adding a large market to a system is not a good idea because of the game balance. After we've fixed the market, it's of course totally possible to change the market capacity to what ever people want in their own games. A large market should not be a default though.

The game already has a "business" classification for certain goods. I think we'll start with that. We'll create a market with emphasis on those and think about the shipyard later. Less is usually more, so maybe the idea of a shipyard focusing on cargo ships is the most reasonable.
I am aware it's going to far but depending on the system economy/tech level different ships could be offered. Focus on freighters in average and on luxury ships in rich systems for example. The logic is basically the same just some additional modifications would be required. :oops:

Btw I am currently "borrowing" from your Random Hits OXP for my drug cartel biospheres, my respect, your collection in descriptions.plist is outstanding.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 10:53 am
by spara
montana05 wrote: Tue Apr 27, 2021 10:40 am
Btw I am currently "borrowing" from your Random Hits OXP for my drug cartel biospheres, my respect, your collection in descriptions.plist is outstanding.
I wish I could take any credit on those. With RandomHits, I just upgraded the OXP to the current standards and adopted the OXP for maintenance. I think it's most likely LittleBear you need to thank for the descriptions, that sort of things seem to be his forte.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 11:55 am
by Cholmondely
spara wrote: Tue Apr 27, 2021 10:53 am
montana05 wrote: Tue Apr 27, 2021 10:40 am
Btw I am currently "borrowing" from your Random Hits OXP for my drug cartel biospheres, my respect, your collection in descriptions.plist is outstanding.
I wish I could take any credit on those. With RandomHits, I just upgraded the OXP to the current standards and adopted the OXP for maintenance. I think it's most likely LittleBear you need to thank for the descriptions, that sort of things seem to be his forte.
If a list of useful annotated .oxp's for dark-siders could be compiled, I could easily integrate it into our wiki.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 12:29 pm
by montana05
Cholmondely wrote: Tue Apr 27, 2021 11:55 am
If a list of useful annotated .oxp's for dark-siders could be compiled, I could easily integrate it into our wiki.
Pretty difficult to say, it depends on what you are looking for and how deep is your knowledge before. The following list is my personally choice, no offense meant, and I am happy to correct myself in case I made a mistake:

When it comes to graphics (textures, shadows, models) my first choice would be Griff, I do like several other designs, but he is still my No 1

js ? If you know the language probably phkb or cim, once again there are other developers I learned from, Norby or Thargoid for example.

shipdata.plist ? No preference, I found errors in most of them (including mine :oops: ), it seems to be the major part where copy & past bugs and typos happen.

My simple suggestion would be to look in as much OXP's as you can/have time, you might don't need it now but in future you (hopefully) remember that somebody fixed already a problem you are facing now. :wink:

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 1:19 pm
by spara
Let's fix the market (F8)

For this we'll ned to tweak shipdata. We are not going to change anything in the Sothis oxp, but let's have a quick look at its shipdata.plist just for fun. The only trace of any market definition is the commented out line saying // market="nestmarket". That most likely means that the shipdata.plist of this OXP was originally constructed on top of another oxp by the same author: Wasps. Wasps actually has that exact same line, but active.

In the old days this (no market definition) meant that the main station market definition was copied to the secondary station. That part of the core game changed and novadays the default action is not to have market at all.

Another change from the old days is the change from a very cryptic arrays of numbers to a totally understandable market definitions. If you happen to stumble on my old conversion script from da old market definitions to new market definitions, you'll see the horror.

Let's jump back to SothisTC, our overriding oxp and to the file shipdata-overrides.plist. Oolite works so that it first reads all definitions from all shipdata.plist files around. There's one in the core game resources and up to one in every oxp. After that Oolite reads all the definitions in shipdata-overrides.plist files on top of the previously read definitions. This allows us to create overriding oxps. We can override core definitions, but also other oxps if needed.

The file shipdata-overrides.plist has definitions for "sothis_station" and "kw_buoy". These names must naturally match the ones we are overriding. The first one defines the properties of the station, the second one the buoy. We're currently defining the shipyard to be non existent, renaming the station to "Sothis Trade Center", setting docking clearance to be required, setting station roll to 0.18 to make the station feel more majestic and defining some roles for it.

To make the market work, we need to add some keys and values to "sothis_station". These should do the trick:

Code: Select all

market_capacity = 15;
market_definition = (
	{
		"type" = "class";
		"name" = "oolite-business";
		"price_multiplier" = 1.2;
		"price_randomiser" = 0.3;
		"quantity_multiplier" = 0.7;
		"quantity_randomiser" = 0.2;
	}, 			
	{
		"type" = "default";
		"capacity" = 0;
	}
);
market_monitored = yes;
Let's go over these.

Market_capacity sets a generic quantity limit for each good. Market_monitored sets the market to follow the laws of GalCop on legality of the goods. More info on these in the wiki: http://wiki.alioth.net/index.php/Shipdata.plist

To understand market_definition we need to understand a bit on the market mechanic in the game. A system has a primary market and secondary markets. The primary market is set in trade-goods.plist file which can be found from the core resources. It defines all trade goods in the game and their characteristics. More info on those in the wiki http://wiki.alioth.net/index.php/Trade-goods.plist. The secondary market is defined with respect to the primary market.

In our market_definition we set all goods with class "oolite-business" to have a price range of 0.9-1.5 times the primary market price. The quantity is a bit more complex. First the quantity on the primary market is scaled to match to secondary market capacity. In this case the calculation would be 15/127*primary. Then that number is multiplied with 0.5-0.9 to ensure some capacity.

All other goods are set to 0 capacity.

After this the market should be "alive" and should offer some selling opportunities. The market is very limited and can naturally be tweaked in any manner. I'm happy to help in tweaking the market to better suit the narrative.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 1:53 pm
by montana05
spara wrote: Tue Apr 27, 2021 1:19 pm
Oolite works so that it first reads all definitions from all shipdata.plist files around. There's one in the core game resources and up to one in every oxp. After that Oolite reads all the definitions in shipdata-overrides.plist files on top of the previously read definitions. This allows us to create overriding oxps. We can override core definitions, but also other oxps if needed.
Sorry to interrupt, promised my last statement for today. When it comes to override the alphabetic order (at least with Windows) is critical. An override starting with "a" will be (again) overridden by an similar override starting with "z" for example. This is based on experience facing problems in the past where I lost (a lot) time to find out why my override didn't work as intended.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 2:00 pm
by spara
montana05 wrote: Tue Apr 27, 2021 1:53 pm
spara wrote: Tue Apr 27, 2021 1:19 pm
Oolite works so that it first reads all definitions from all shipdata.plist files around. There's one in the core game resources and up to one in every oxp. After that Oolite reads all the definitions in shipdata-overrides.plist files on top of the previously read definitions. This allows us to create overriding oxps. We can override core definitions, but also other oxps if needed.
Sorry to interrupt, promised my last statement for today. When it comes to override the alphabetic order (at least with Windows) is critical. An override starting with "a" will be (again) overridden by an similar override starting with "z" for example. This is based on experience facing problems in the past where I lost (a lot) time to find out why my override didn't work as intended.
Alphabetical load order might work in Windows, but not in Linux or OSx. If there are multiple oxps trying to override the same whatever, then that must be dealt in some other fashion like using conflicts in the manager. One trick that can be used, if one is making local overrides, is the fact that oxz:s installed with the manager are read before oxps in the AddOns-folder.

Re: MasterClass: How to OXP (updating SoThisTC)

Posted: Tue Apr 27, 2021 2:39 pm
by Cholmondely
spara wrote: Tue Apr 27, 2021 2:00 pm
montana05 wrote: Tue Apr 27, 2021 1:53 pm
spara wrote: Tue Apr 27, 2021 1:19 pm
Oolite works so that it first reads all definitions from all shipdata.plist files around. There's one in the core game resources and up to one in every oxp. After that Oolite reads all the definitions in shipdata-overrides.plist files on top of the previously read definitions. This allows us to create overriding oxps. We can override core definitions, but also other oxps if needed.
Sorry to interrupt, promised my last statement for today. When it comes to override the alphabetic order (at least with Windows) is critical. An override starting with "a" will be (again) overridden by an similar override starting with "z" for example. This is based on experience facing problems in the past where I lost (a lot) time to find out why my override didn't work as intended.
Alphabetical load order might work in Windows, but not in Linux or OSx. If there are multiple oxps trying to override the same whatever, then that must be dealt in some other fashion like using conflicts in the manager. One trick that can be used, if one is making local overrides, is the fact that oxz:s installed with the manager are read before oxps in the AddOns-folder.
1) So if an .oxp is loaded in the Managed AddOns folder it will load first? Or does it need to be an .oxz?

2) And not for now (we're onto markets), but I don't see your natty images on my Mac. Just as I don't see Cim's images from his ship's manual on my mac. (I did see his images on my windows before the keyboard discombobulated and it gave up the ghost).