TeamPorcupine / ProjectPorcupine

Project Porcupine: A Base-Building Game...in Space!
GNU General Public License v3.0
483 stars 279 forks source link

[Feature Todo list] Trading System #1075

Open sboigelot opened 7 years ago

sboigelot commented 7 years ago

Here is a list of task for the current simple trading system (rimworld like)

I'm adding it here as a reference to keep track of the progress in the feature. If you wish to handle one of the sub-tasks, don't hesitate to start on it, just post a comment here so we don't make concurrent work

Later

mikejbrown commented 7 years ago

Trade ship visit at random times (game event?)

This would be a perfect use case for the new Scheduler system #998 if/when that gets merged.

sboigelot commented 7 years ago

@mikejbrown I'll have a look at it as soon as I can if no-one else pick it up before ;)

buggy213 commented 7 years ago

Do you think it would be a good idea to have some way to convert between currencies?

TomMalbran commented 7 years ago

A few other suggestions for later:

  1. Since we have a ship that lands, I think that it will make a lot of sense that when the trade is complete, we would need to move the resources we sold into the ship. Make them instantly disappear from a stockpile feels unrealistic. The trader could come with some characters that could help move the items, and they will leave once all items are in the ship. Same can happen when unloading, we could define and unloading stockpile close to the landing pad and the items we bought would be move from the ship into the stockpile.
  2. We could also add a console to call other traders if we need to. We can play here with how it may work, which other traders we could call and when? do we need to pay them extra to come? are they prices more expensive since we demand them?
  3. What if we could request a trader to bring certain items (which ones depend on the trader type). The amount can be random, and even whether they always bring them too, but with a high probability of having them. This items would have a higher price.
buggy213 commented 7 years ago

In response to the person above me

  1. I agree, there should be a time element involved with trading.
  2. One possible implementation is the RimWorld trading system, where traders stay in your general vicinity for some amount of time during which you can trade with them. An interesting mechanic would be trading persistence, where several traders would return time and time again.
  3. This is the way it works in Dwarf Fortress / Banished and it generally works pretty well in terms of actually getting things you want.
TomMalbran commented 7 years ago

@buggy213

  1. I was thinking of how PlanetBase worked, where the ship lands, you do the trade and then the character load/unload the items. It works good there.
  2. A RinWorld style will work fine. Maybe depending on the relation with the Faction some would first announce and request permission to land, and others could just land. You could also call factions you are in a good relationship with to do some trades, if they are relatively close.
  3. Yes I was thinking on Banished when I suggested that.
sboigelot commented 7 years ago

@buggy213 @TomMalbran Great set of suggestion! thanks, I updated the issue to add them.

About

Do you think it would be a good idea to have some way to convert between currencies?

I think this is more a question for #776

buggy213 commented 7 years ago

I've created a simple label element for the currencies. #1143

buggy213 commented 7 years ago

I've finished the request system in #1143, will proceed to work on adding trading console

Tranberry commented 7 years ago

On the frequency of trader visits wouldn't it be more reasonable that the wares be better as base value/renown/time played increased, but then I have no clue how rare these visits would be in your implementation, or how frequent the visits will be at max.

sboigelot commented 7 years ago

@Tranberry I think the balance of the trade system (frequency / quality of goods/ etc) will be for later and depend vastly on the world, a space station around a high traffic wormhole will see more trade ship then a far-edge-of-the-galaxy mining base

buggy213 commented 7 years ago

As of now I don't think it's even possible to modify existing events, you have to create a new one each time you want to change it

sboigelot commented 7 years ago

@buggy213 you can change the event property if you keep a c# reference to it, it should work. The TradeController keep a reference to the trade event.

mikejbrown commented 7 years ago

Any signs of life?

sboigelot commented 7 years ago

Hey @mikejbrown, I'm super busy at work since 2 weeks (release sprint for our product) but I will come back to this soon

sboigelot commented 7 years ago

Well sorry everyone, we are 3 months later and I still didn't have time to come back; (it's been a mess at work, PO leaving and customer super un-happy) But I'm keeping a silent look on the project! Great work everyone, it's cool to see it still active.

I hope I can come back soon, but meanwhile, I'm happy to see some of you taking some of the features of this epic! Thanks a lot to all the contributors!