Page 4 of 9

Re: Proposal for 1.82: support for economic changes

Posted: Wed Aug 20, 2014 11:07 pm
by Neelix
Switeck wrote:
Cargo Contracts are perfectly workable with a Python -- especially if you get the Large Cargo Bay with it so you can haul 115 TC instead of 100 TC. Even without shell game tricks, you can have 2 cargo contracts going at a time because there's many that are 30-65 TC in size. The problem in Oolite v1.80 is the cargo contracts take your slow Python through many dangerous systems it's ill-equipped to survive because it can't have military shields and is unlikely to have a naval energy unit or cloaking device. Its 2 missile slots are likely not enough to make up the difference. The Boa 2 on the other hand is as fast as some fighters, much tougher, and has 5 missile slots...and with its 175 TC cargo capacity makes a great ship for cargo contracts. (It really should cost far more than a Boa 1!)
I would add to that that once you build enough reputation to carry precious metals or gems cargo contracts become quite lucrative.. I spent quite a while running effectively worthless contracts in my Cobby III to build my reputation. It was well worth the effort though as I was later able to run multiple contracts and still have most of my cargo bay free for scooping.
Switeck wrote:
Needing to do a Galactic Jump does not require that such a contract pay at least 5k credits, especially since they may be hoping to "tag along" with a ship that was already intending to do a Galactic Jump for other reasons. But a big problem is arriving at a new Galaxy Chart currently reduces your contract reputation to 0. The region simply hasn't heard of your "exploits"...or doesn't care yet.
This didn't happen to me when I jumped from Chart 1 to Chart 2. (It would have been quite the setback for me if it had)

- Neelix

Re: Proposal for 1.82: support for economic changes

Posted: Thu Aug 21, 2014 3:57 am
by Falcon777
Switeck wrote:
Cargo Contracts are perfectly workable with a Python -- especially if you get the Large Cargo Bay with it so you can haul 115 TC instead of 100 TC. Even without shell game tricks, you can have 2 cargo contracts going at a time because there's many that are 30-65 TC in size. The problem in Oolite v1.80 is the cargo contracts take your slow Python through many dangerous systems it's ill-equipped to survive because it can't have military shields and is unlikely to have a naval energy unit or cloaking device. Its 2 missile slots are likely not enough to make up the difference. The Boa 2 on the other hand is as fast as some fighters, much tougher, and has 5 missile slots...and with its 175 TC cargo capacity makes a great ship for cargo contracts. (It really should cost far more than a Boa 1!)

Needing to do a Galactic Jump does not require that such a contract pay at least 5k credits, especially since they may be hoping to "tag along" with a ship that was already intending to do a Galactic Jump for other reasons. But a big problem is arriving at a new Galaxy Chart currently reduces your contract reputation to 0. The region simply hasn't heard of your "exploits"...or doesn't care yet.

The profitability of PA<->RI milk runs is usually based on a Cobra 3's 35 TC (with LCB) capacity. But with a starting ship like a Cobra 1 or Moray, profit goes WAY down and difficulty goes up. Consider also the Adder and fighter-like ships that have small cargo capacities. Likewise, a Python may carry much more than a Cobra 3...but since a Python cannot fill up entirely on the most profitable commodities (since nowhere near enough are for sale), it's not much more profitable but it is more vulnerable if it runs into trouble. Even with just slightly more variability for how much is for sale, milk run round-trip profitability goes down immensely. As-is, Furs are terrible due to their huge price variations and often tiny numbers for sale.
True, you can do cargo contracts with a python, and even more so with a boa. However, if you truly want to maximize your profits you'll have an anaconda so that you can take five, six, or seven contracts at once.

The problem with not paying at least 5k per galactic chart jump (presuming that a contract would require more than one galactic chart jump (e.g. a contract from chart 5 to chart 3)) is that barring wanting to explore or simply have a slight change in overall chart scenery, there's really not any incentive to do any galactic jumps. Sure, I suppose you could download one of those oxps like explorers club or that one where you try to race around the galaxy by doing eight "intergalactic" jumps, but otherwise, why change to a different chart? I guess some of the core game missions require it, but the core game currently has, at least in my opinion, almost no incentive to change what galactic chart you are in. On top of that you have the current issue of where your reputation could tank if you change charts (it happened for me when I went from chart 5 to 6). And then you want to introduce parcel contracts that will pay less than the cost of a galactic hyperdrive going cross galaxy? If I'm not quite familiar with where the particular planet is within the chart that I'm going to, I could find myself going on not only multiple jumps to different charts, but also cross chart once I'm in the proper one for less money than what it would cost me just to get there. A player can currently look at a contract and get an idea of whether or not it is worth it based on where it is going and how many other contracts one can take with it. However without a few more additional features, I doubt many players would be able to determine if a particular contract could make them any money going to a different chart without there being a large payout at the end.

It is quite true that doing milk runs in a smaller vessel will not net you 1400 credits every other trip. That's fairly easy for me to see with my adder. However, even without being able to fill up completely on highly profitable goods, flying a python is most certainly more profitable than a cobra mk III. I did a massive number of milk runs between Isinor and Ensoreus on both a cobra mk III and a python, and the python, while much slower as a ship, made up for it in the sheer cargo hold size.

That is how I see things to be right now. If the eight commodity system were introduced, I have a feeling that profitability would rise quite a bit, thus making "spot trading" even more viable than it is now. It would take fairly equal profits on each part of the run for me to not simply just buy commodities at only one part of the loop and sell at the appropriate planet. Otherwise I don't have much incentive to go all the way around to each of the different economy types trading all eight of the different commodities that give the maximum profit for that planet type. It would also take fairly good profits on each part of the run for me to not want to change to doing pirating/bounty-hunting/contracting.

Re: Proposal for 1.82: support for economic changes

Posted: Thu Aug 21, 2014 5:53 am
by Switeck
Falcon777 wrote:
True, you can do cargo contracts with a python, and even more so with a boa. However, if you truly want to maximize your profits you'll have an anaconda so that you can take five, six, or seven contracts at once.
Back in Oolite v1.74, I had 15 cargo contracts going at once with my Boa 2 and completed them all. Over half were Gold/Plat/Gems though. 5 of them were to the same system. Had to play shell games to do it, selling and later buying back the goods to be delivered. Having 5+ going at once is hard even with an Anaconda due to finding enough going in the same direction. Profitability is marginal for "standard" TC cargo contacts on account of distance and profit-per-TC carried. Gold/Plat/Gem contracts got large profit bonuses on a per unit (TC/kg/g) basis. There is no high reputation profit bonus, other than getting Gold/Plat/Gem contracts at max reputation. (I address these problems in my Cargo Contracts Mod.)

Re: Proposal for 1.82: support for economic changes

Posted: Thu Aug 21, 2014 9:34 pm
by Falcon777
Switeck wrote:
Falcon777 wrote:
True, you can do cargo contracts with a python, and even more so with a boa. However, if you truly want to maximize your profits you'll have an anaconda so that you can take five, six, or seven contracts at once.
Back in Oolite v1.74, I had 15 cargo contracts going at once with my Boa 2 and completed them all. Over half were Gold/Plat/Gems though. 5 of them were to the same system. Had to play shell games to do it, selling and later buying back the goods to be delivered. Having 5+ going at once is hard even with an Anaconda due to finding enough going in the same direction. Profitability is marginal for "standard" TC cargo contacts on account of distance and profit-per-TC carried. Gold/Plat/Gem contracts got large profit bonuses on a per unit (TC/kg/g) basis. There is no high reputation profit bonus, other than getting Gold/Plat/Gem contracts at max reputation. (I address these problems in my Cargo Contracts Mod.)

Which is why I use your oxp. :)

Re: Proposal for 1.82: support for economic changes

Posted: Fri Aug 22, 2014 2:04 pm
by Zireael
Less of an economic change, more of a cosmetic change, but: could we have icons and/or descriptions support for the commodities?

Re: Proposal for 1.82: support for economic changes

Posted: Tue Aug 26, 2014 9:17 pm
by cim
So, a bit of trial coding work later, and the main idea certainly looks possible.

The state in terms of OXP compatibility is variable, though.

1) Obviously OXPs which assume there are exactly 17 trade goods with the traditional names are going to need updating to be compatible with OXPs which add more trade goods (though they should mostly continue to work okay with just the core game).

2) Stations which don't have a market defined in the new way get a completely zeroed market. (Other easy options which seem less good: get the same market as the main station, get a copy of the market of the main station). The OXPs which add dockables can be updated, and it's possible to mix 1.80 market definitions and new market definitions in the same shipdata.plist file without them interfering with each other, so this could in theory be done well in advance of 1.82 being released.

I could add compatibility code for commodities.plist and the 1.80 market properties: it perhaps seems most sensible to wait several months and see how many OXPs still need it once 1.82 is actually approaching. There are I think 20-30 OXPs which would need some sort of update: the debate earlier on whether or not this sort of compatibility break was acceptable was inconclusive; let's see how many OXPs actually get updated in advance given the chance.

3) OXPs changing illegal-goods.plist will no longer work. I think this is only New Cargoes, which would be largely obsolete anyway if there was a supported way to define extra cargo types, and changing that file has never been recommended, so I think this is acceptable.

4) In 1.80 in many contexts there are certain aliases accepted for commodity names (e.g. liquorWines rather than liquor_wines). These would stop working. I'd rather not put support back, since I'd be aliasing a hard-coded value to a non-hard-coded value. I don't think this affects that many OXPs, and the canonical forms (all lower-case, underscores separate words) have worked for years so conversion in advance should be straightforward.

5) Unavoidably, JS commodity properties from the old pricing algorithm have been replaced by the new ones. Where the property actually means the same thing (e.g. quantity, price) the name is the same, but e.g. MARKET_ECO_ADJUST_PRICE no longer exists. Unless you were using those properties to generate prices in script, this isn't likely to affect you; there is a method added which will generate the prices for you without you having to coincidentally duplicate the price generation algorithm in JS. (I had to slightly update the cargo contracts script over this)

6) Using system.info.market = "..." no longer works. Again, not many OXPs did this in the first place, and many of the existing uses could be replaced by a small bit of JS when entering the system. Allowing a system to have a JS file attached to it via planetinfo which generates the prices is probably the most flexible way to do this, rather than trying to guess what modifications future OXPers might want to do to support by plist.

So ... especially those of you who write (or plan to write) OXPs which add or change markets, what do you think? Too much incompatibility? Acceptable for the extra flexibility? Some areas you think could be handled better?

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 11:35 am
by cim
Neelix wrote:
[...] any chance of adding colour coding based on legality?
It would be nice if items that would get you a price on your head just for launching with them were made to stand out somehow.
I'm putting in an extra column for this now, and one thing that has occurred to me is that with the ability to add import-illegal goods, you really need that information before you dock.

Would it make sense if the F8 screen in flight displayed:
- your current target's market, if the current target is a station
- else your compass target's market, if the compass target is a station (this may make things too easy?)
- else the main system market

There would be a "market_broadcast" shipdata parameter (default on) for stations where this wouldn't make sense (e.g. abandoned or secretive ones) to disable it.

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 2:25 pm
by Zireael
Sounds fine!

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 2:27 pm
by Cody
cim wrote:
... else your compass target's market, if the compass target is a station (this may make things too easy?)
Yeah, I tend to think it would.

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 2:54 pm
by Smivs
Indeed, is there a case for not having current market information on F8 at all unless you are in a station's aegis or docked?
In RL markets fluctuate rapidly, almost by the second, so it sort of makes sense to have 'real time' information only, and only when you are in a position to actually use the information.

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 3:07 pm
by Venator Dha
Smivs wrote:
In RL markets fluctuate rapidly, almost by the second, so it sort of makes sense to have 'real time' information only, and only when you are in a position to actually use the information.
Or the information could be visible all the time but change every time a trader docks/leaves a station. e.g. an Anaconda docks and prices plummet for a while then slowly rise as a couple of Boas and some Cobras leave. Imagine getting to the station and being queued behind a Boa, looking at the markets and deciding if it would be better to perhaps try a different station.

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 5:20 pm
by Norby
cim wrote:
- your current target's market, if the current target is a station
Nice idea, please show if a ship has market also.
Compass support is not needed in the core imho due to [wiki]Market_Inquirer[/wiki] do the same.

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 5:32 pm
by cim
So, this is what the legal status column currently looks like
Image
It's a bit wordy still - any suggestions on a shorter but still clear way to express "import only", "export only" and "restricted"? I'd like to make that column narrower if possible.

Meanwhile, various OXPs need a way to display additional information about trade goods. So, if you press the 'i' key when on a trade good, you get the info screen. Here's an example from a hypothetical "trade good descriptions" OXP.
Image
This can be read in JS with manifest.information(good); and set to a new string with manifest.setInformation(good,newText);, if you want to dynamically vary it, or you can just set it in a "comment" property in trade-goods.plist for static information about the good.

If multiple OXPs want to set and update dynamic information on this page, they'll need to figure out a way to do so cooperatively. I'd recommend making sure that your modifications either add a block of content, or update or remove a block of content which matches the pattern of the type of block you added, since that doesn't involve having to actually know about the other OXPs. (Also note: the info screen doesn't scroll, so if lots of OXPs want to add extra info, eventually they're going to end up using more space than there is)
Norby wrote:
Nice idea, please show if a ship has market also.
The way Oolite does it, things like Behemoths and Bulk Haulers are stations. (There are distinctions made between "stations with a max speed of zero" and "stations which can move" but those aren't relevant here)

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 6:32 pm
by Venator Dha
cim wrote:
It's a bit wordy still - any suggestions on a shorter but still clear way to express "import only", "export only" and "restricted"? I'd like to make that column narrower if possible.
An idea:
Column header
: Legal?
Choices
: Yes
: No
: Import
: Export

Re: Proposal for 1.82: support for economic changes

Posted: Sat Sep 06, 2014 7:35 pm
by Neelix
cim wrote:
It's a bit wordy still - any suggestions on a shorter but still clear way to express "import only", "export only" and "restricted"? I'd like to make that column narrower if possible.
Personally I think the best way is to just highlight anything that's not completely legal in red, and then leave specifics of the legality to the information screen.

Am I correct in my understanding that the the possible legal statuses are:
  • Clean
    Import illegal
    Export illegal
    Both import and export illegal
If so I think the cleanest way to display this in the list would be to come up with icons for import illegal and export illegal, and then display one or both after the commodity names they apply to in the name column. (and again, highlight the line in red)

If not could you please explain all the possible legal statuses in detail?
cim wrote:
Meanwhile, various OXPs need a way to display additional information about trade goods. So, if you press the 'i' key when on a trade good, you get the info screen. Here's an example from a hypothetical "trade good descriptions" OXP.

This can be read in JS with manifest.information(good); and set to a new string with manifest.setInformation(good,newText);, if you want to dynamically vary it, or you can just set it in a "comment" property in trade-goods.plist for static information about the good.
This looks good, and as I mentioned above I can see uses for it. That being said, If I had to view the info for each commodity individually just to get the same sort of detail I currently get at a glance from Market Observer I would find that very frustrating, so some way of customising what's displayed in the list would still be appreciated. It would also be useful to be able to buy and sell, commodities, and change the selection from the info screen.

What I think would be useful to display somewhere, be it on the listing or on the info screen is how much of a carried commodity is contracted cargo.
An easy way to sell all but the contracted amount of a cargo would also be appreciated. As an example, If I am running a contract for 505kg platinum, and another for 250kg platinum , and I'm carrying 800kg of platinum, and want to sell the non-contracted portion of it, I have to first visit the Mission screen to see the value of the contracts, manually add them up to find the total, then switch back to the market screen, select the commodity in question then hit the left arrow 45 times to sell the excess.
Needless to say I find this to be somewhat tedious, especially when I'm running more than half a dozen contracts at once.


- Neelix