Page 1 of 2
Revamping the trade system?
Posted: Wed Jan 18, 2012 2:10 pm
by Sagasa
Recently I've been playing Freelancer, another arcadey space-sim that takes a lot of cues from games like Elite. It's been fun, though the restrictive storyline really kills it for me since after the final mission, there's really not much else to do except try to earn some more cash to upgrade my ship (which is kind of pointless since I've already beaten the big bad).
One of the things I feel that Freelancer did get right however is the trade system. In the game, none of the planets (or even the systems the planets are in) carry all available trade goods. Some goods can only be found in particular regions and offer huge profit margins to anyone willing to brave the long journey to ship it to systems where they are scarce, others can only be found in smuggler's stations hidden in dense nebulae and can also be smuggled into planets for even larger profits than legitimate goods.
All of this encouraged me to actually go out and explore in the hopes of finding that holy grail of a trade route which gave me the maximum profit for the least time expended. All while dodging pirates and cops alike of course.
So it got me to thinking, in Oolite, the best trade route is to simply haul cargo between a Rich Industrial Planet and a Poor Agricultural Planet. Given that, right next to Zaonce, there are pair just 2 lightyears away from each other, I just spent my all my time going back and forth between the two. There was basically no incentive for me to go out and see the rest of the galaxy since everything I needed was right there at the very start. Enemies were plentiful in the Anarchy planets nearby, there were high technology planets nearby as well. The only reason I would ever want to go to a distant planet was to ferry a passenger or haul some cargo for a company which makes me feel like a glorified truck driver. Either that or go do a mission which was suicide anyway without some good equipment.
So, my suggestion is, vary the trade goods between particular regions of a galaxy or even between galaxies themselves (although the one way hyperdrive would probably make this impractical). Make some trade goods unavailable in a particular cluster of systems and plentiful in others. Maybe even vary the trade goods within a cluster of systems to give people a choice of shorter, safer trade routes with less profit or lengthier, riskier trade routes that give a substantially larger profit. This would give me even more incentive to upgrade my ship to be able to survive the longer journeys. Imagine launching with a fully-laden python filled with essential goods desperately needed by a far away world with nothing but high hopes and a beam laser to see you through, running afoul of pirates that stalk you through every anarchic world you pass through, and then finally limping into your destination's station bloodied but unbowed. Certainly revives that adventurous feeling yes?
Now as to how this could actually be done, I am no programmer unfortunately; just a kid with dreams and hopes. If this topic has been brought up before, I apologize. I love this game for the freedom it gives me and the heights to which it takes my imagination. I'm not deriding this game for what it lacks but simply sharing my thoughts on what could make it be so much more.
Your thoughts?
*Edited because of the typo gremlins...
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 2:16 pm
by ulaidian
I was thinking the same thing a few days ago, which made me think that other's have contemplated it as well, and found it too hard/impossible to do?
My idea was to have the trades on planets 'synced', or somehow all interconnected with one another.. this would allow for price fluctuations etc
Like yourself though, I am no programmer, just an oul Elite tubthumper.
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 2:53 pm
by cim
The problem is that there are only 17 types of trade goods. Alien Items don't really count (though you can get an excellent profit by harvesting them at higher risk to yourself than the average trade), and the 3 "ship's safe" commodities have a different dynamic anyway. That leaves 13 fairly generic commodities, three of which are illegal.
The Industrial <-> Agricultural trade dynamic is a pretty core part of Elite/Oolite, in my opinion, so you need some goods at a range of prices that are cheap at one and expensive at the other, to allow for short-range low-risk trading. Without that, it will be extremely difficult to get started from the "100 Cr. and a pulse laser" initial position. The generic commodities meet that need very well, but don't really give much scope for large-scale variance, "sole suppliers", desperate needs on particular planets, and so on.
(On the technical side, because of the pseudo-random way the galaxies are generated, mapping long-range variation in availability over a galaxy is quite tricky without a lot of hand-tuning, so it would have to be provided by OXP)
OXPs can define "special" cargoes, but at the moment this is an all-or-nothing approach: either your entire cargo hold is full of one special cargo, or your entire cargo hold is free for normal use with the 17 standard goods. It's good for certain missions but not really suited to trading with.
So the solution to the problem would be to allow OXPs to define their own TC cargoes - but that gives two further problems:
1) The current F8 interface works well for a limited number of generic commodities. There's literally no space for extra commodities on that screen as it stands. So there'd need to be a significant bit of UI design to support extra cargoes well, and that could be a lot of work for the developers to implement. (But at the same time, if no Trade Good OXPs are installed, the new interface would need to work in the optimised way the current one does).
2) Currently OXPs can specify pricing for the generic commodities for custom stations. Extending this method to cope with custom pricing commodities is going to be some more work for the developers, and then even more work for OXP writers. (Or the specialist goods end up only tradeable at main stations and any stations added by the OXP that added the trade good, which also has issues)
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 3:34 pm
by snork
have not yet really read
cim's post - not going to rewrite this anyways.
--------------------------------------------
Yesnaby.
All this in my personal opinion, for my own personal Ooniverse :
There was basically no incentive for me to go out and see the rest of the galaxy since everything I needed was right there at the very start. Enemies were plentiful in the Anarchy planets nearby, there were high technology planets nearby as well. The only reason I would ever want to go to a distant planet was to ferry a passenger or haul some cargo for a company which makes me feel like a glorified truck driver.
This was pretty much the same for me on first run. Passenger and cargo contracts for me were a good way to find sth. to do.
Try long distance contracts with narrow time schedule for more challenge.
Should that get boring too, after a while - then maybe it is time to find some mission oxps. That's what they are there for.
There are also market-tweaking oxps, but not to the extent you schemed there.
To me it is not only the trade in goods, but also the pricing in ships and equipment, that is fine for an Oolite beginner; but a slightly seasoned Commander may soon find the game too easy, or without forced-on-player objective.
Or said the other way around -
to me one all-over difficulty about Oolite is that the player themselves is responsible for filling their game with incentive and challenge.
I find this difficult because as a novice it is hard to find out about
"the things better not to do" and "
the things to try to do"; the same about oxps : to find those that add to the game to one's liking without "breaking the game" after one's understanding ; and without having to learn too much about them oxps, more or less spoiling them.
Just one of several ways to add incentive :
You could also restart the game, but with a way less powerful ship than the Cobra 3 to begin with, with or without : tweaked shipmarkets, tweaked equipment pricing, and if you are really willing to learn about it even commodities market tweaking. It is mostly well documented, and this can be a kind of "game" itself.
You do not have to be a programmer to do that, I am in no way
near anything programming but am doing this for myself - the commodities market I do not touch it atm, it is somewhat complicated and tweaking this has (strong?) limits anyways.
Other ideas can e.g. be found here :
House Rooles
Imagine launching with a fully-laden python filled with essential goods desperately needed by a far away world with nothing but high hopes and a beam laser to see you through, running afoul of pirates that stalk you through every anarchic world you pass through, and then finally limping into your destination's station bloodied but unbowed. Certainly revives that adventurous feeling yes?
this should be feasible per oxp.
Hehe, yes. These are the only moments when I use the docking computer in "slow-mode" with the music playing.
And for the
very heroic moments with my ship very down to pieces, I have a
superbe replacement for the blue danube.
Some day, far, far in in the footure, I hope to be able to write me a little script that on calling the docking computer checks how battered my ship is, or if I am docking where a contract or mission will be fulfilled and choose the docking music accordingly, from a pool I put myself together.
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 3:46 pm
by CaptSolo
Sagasa wrote:So it got me to thinking, in Oolite, the best trade route is to simply haul cargo between a Rich Industrial Planet and a Poor Agricultural Planet.
This would appear to be the case but doesn't always work. While you will make a profit trading in computers because the price for them varies little, the price for furs on both systems varies widely. Sometimes you may sell your furs for just a little more than you payed for them. Then if you load up on computers for the return trip you end up in red on that system. Same holds for the booze commodity even though it's price is not as variable as furs.
That is why I fancy Thargoids "Flight Log OXP". It tells me exactly how much I made on my cargo. Oolite is a game of surprises. I have made the largest profits on the least likely systems.
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 4:30 pm
by Disembodied
Svengali has a project in development, to which I've shamefully neglected my duties during the last month or so, which creates special products which can only be bought at certain locations. These products can be sold for high profits in certain specific locations. It's all via the wonders of the [wiki]Cabal Common Library[/wiki] ... so watch this space, there may be speciality trading goodness coming your way!
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 6:18 pm
by cim
cim wrote:So the solution to the problem would be to allow OXPs to define their own TC cargoes - but that gives two further problems:
...and I've just realised that it's just about possible within existing functionality to let OXPs do just that.
Disembodied wrote:It's all via the wonders of the Cabal Common Library
I'd forgotten about CCL_SpecialMarkets. Before I start reinventing the wheel (only mine will be triangular), could you tell me if my impression from reading the code is correct that CCL_SM cargo only takes up hold space as either "entire hold
useSpecialCargo
" or as an
awardContract
cargo delivery contract for one of the standard 17, and if it's neither "block" nor "contract" it takes up no space?
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 7:06 pm
by Svengali
cim wrote:I'd forgotten about CCL_SpecialMarkets. Before I start reinventing the wheel (only mine will be triangular), could you tell me if my impression from reading the code is correct that CCL_SM cargo only takes up hold space as either "entire hold useSpecialCargo
" or as an awardContract
cargo delivery contract for one of the standard 17, and if it's neither "block" nor "contract" it takes up no space?
Yep. That's the way it works .-)
Re: Revamping the trade system?
Posted: Wed Jan 18, 2012 7:46 pm
by cim
Svengali wrote:cim wrote:I'd forgotten about CCL_SpecialMarkets. Before I start reinventing the wheel (only mine will be triangular), could you tell me if my impression from reading the code is correct that CCL_SM cargo only takes up hold space as either "entire hold useSpecialCargo
" or as an awardContract
cargo delivery contract for one of the standard 17, and if it's neither "block" nor "contract" it takes up no space?
Yep. That's the way it works .-)
Thanks. In that case, I'll see if my concept for TC cargo can work.
Re: Revamping the trade system?
Posted: Thu Jan 19, 2012 11:20 am
by Sagasa
1) The current F8 interface works well for a limited number of generic commodities. There's literally no space for extra commodities on that screen as it stands. So there'd need to be a significant bit of UI design to support extra cargoes well, and that could be a lot of work for the developers to implement. (But at the same time, if no Trade Good OXPs are installed, the new interface would need to work in the optimised way the current one does).
In some of the game's menus such as viewing equipment installed on a ship and purchasing gear, whenever the list goes beyond the amount that can be displayed, a button in the lower right corner appears which shows the rest of the list when clicked. Couldn't a similar system work for the extra commodities? Given that the default trade screen already has no room for new trade goods, all new commodities can be placed on the next page and need not interfere with the vanilla goods.
2) Currently OXPs can specify pricing for the generic commodities for custom stations. Extending this method to cope with custom pricing commodities is going to be some more work for the developers, and then even more work for OXP writers. (Or the specialist goods end up only tradeable at main stations and any stations added by the OXP that added the trade good, which also has issues)
I can certainly see why this would be difficult. Oolite has far, far more planets than Freelancer which I think is why the developers didn't choose to create each system by hand. Perhaps a modifier to a specific commodity's price could be added to a particular region of the galaxy? For example, computers are twice as expensive in the north west sector while firearms are only a third of the regular price in the galactic south east. This way, developers don't have to customize every single station to vary the prices. It also simplifies having to balance short and long trade routes. Computers will still fetch a profit when shipping from rich industrial planets but will offer less profits when sold to nearby planets than to distant ones.
Re: Revamping the trade system?
Posted: Thu Jan 19, 2012 12:34 pm
by cim
Sagasa wrote:I can certainly see why this would be difficult. Oolite has far, far more planets than Freelancer which I think is why the developers didn't choose to create each system by hand.
That, and in the original Elite which the system data comes from, computers of the day wouldn't have been able to store the information for 2048 hand-coded planets anyway.
Sagasa wrote:Perhaps a modifier to a specific commodity's price could be added to a particular region of the galaxy? For example, computers are twice as expensive in the north west sector while firearms are only a third of the regular price in the galactic south east. This way, developers don't have to customize every single station to vary the prices. It also simplifies having to balance short and long trade routes. Computers will still fetch a profit when shipping from rich industrial planets but will offer less profits when sold to nearby planets than to distant ones.
Doable with an OXP now, for system main stations, though pretty time-consuming even for the basic 17 trade goods because of how the commodity prices are defined, since with 17 overlapping zones you'd need a custom price list for every system. Still a mess when OXP stations are considered, though, since their pricing calculation can't be (easily) changed in the same way.
What I'm looking at for an OXP - and I think should work scalably and compatibly with existing code - is allowing the definition of specific cargo types that are also generic cargo types.
So, for instance, you can, as now, buy a cheap TC of Food from the main market. It will contain a mix of food products, and you can probably guarantee some profit by shipping it from Agri to Ind. Someone else is making the real money on the trade, though, and you're mainly being paid for shipping. Low-risk, low-profit trades.
Or, for a bit more money, and to take an example from the original Dark Wheel novella, you can buy a TC full of Sunflower Seeds on the specialist market in some systems. They'll appear in your hold (and take up space) as a TC of Food - and if you get desperate for money, you can sell them as that - but if you get to Bierle, where the resident amphibioids find them a particular delicacy, you can sell them at a huge profit. But you do have to get them there, and hope that they haven't gone out of fashion, that you don't arrive 10 minutes after a fleet of Boas unloaded 1000 TC of Sunflower Seeds and depressed the market price, that they haven't figured out how to grow decent sunflowers in Bierlian soil, etc. High-risk, high-profit trades. (Well, for something with a low base price like Food, probably medium risk/profit, since even at a massively inflated sale price you wouldn't make much money shipping it half-way across the galaxy)
Or perhaps you find a couple of TC of paintings while scooping up the remains of a pirate. Do you sell them on the generic Luxuries market for 80Cr. at your next stop, or do you hang on to them - taking up space in your hold - until you find a planet hosting a major arts auction, and get 800Cr. or more each for them?
Hopefully that, if I can get it to work, should make the trade route variation you're looking for a possibility.
Re: Revamping the trade system?
Posted: Thu Jan 19, 2012 10:11 pm
by Commander McLane
Sagasa wrote:1) The current F8 interface works well for a limited number of generic commodities. There's literally no space for extra commodities on that screen as it stands. So there'd need to be a significant bit of UI design to support extra cargoes well, and that could be a lot of work for the developers to implement. (But at the same time, if no Trade Good OXPs are installed, the new interface would need to work in the optimised way the current one does).
In some of the game's menus such as viewing equipment installed on a ship and purchasing gear, whenever the list goes beyond the amount that can be displayed, a button in the lower right corner appears which shows the rest of the list when clicked. Couldn't a similar system work for the extra commodities?
Our developers have informed us that Oolite's GUI code is a complete and utter mess. They got the multi-page support working for some of the screens, but apparently it can't be ported from one screen to another without risking to heavily break things all over the place. So adding arrows to the F8-screen is currently not an option, I'm afraid.
It seems a complete rewrite of the entire GUI code would be the most sensible (and probably the required) solution, but there are no capacities for that at the moment.
Re: Revamping the trade system?
Posted: Fri Jan 20, 2012 1:04 pm
by Sagasa
Hopefully that, if I can get it to work, should make the trade route variation you're looking for a possibility.
And this is why I love this community.
Re: Revamping the trade system?
Posted: Fri Jan 20, 2012 7:47 pm
by PhantorGorth
This doesn't fix many of the issue people have listed in this thread but I have looked modifying oolite core to create dual price markets. I.e. each commodity has a buy and a sell price. This definitely looks doable with very few code changes and can be done without changing the price parameters for each market.
It is based on the idea of calculating the random market price twice. The lowest of the two becomes the markets buy price and the high one becomes the market's sell price.
This simple addition that should make trading a bit more interesting. Though the idea needs to tested out as I can't be 100% sure that you end up in the situation were the buy prices is always less than sell price in most other systems which means you end up with a situation where you can only lose money.
On the GUI: I have also looked at the GUI and keyboard control code in the source code and can see exactly why it is a mess. The individual screens are all coded separately with only basic actions being put into reusable functions. The keyboard control code is basically just branching sets of case statements. Essentially there is no objected oriented GUI framework which is so so needed.
Re: Revamping the trade system?
Posted: Sat Jan 21, 2012 3:43 pm
by cim
Okay - the first preview release of
New Cargoes is now available. If you're interested in additional trade goods, please give it a go.