Trade Update Progress/Discussion


#58
Syre Outpost on Syre (9):
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Titus Outpost Value: 1.75
  Crate: Diamond To: Porrus Outpost Value: 1.2
Titus Outpost on Titus (9):
  Crate: Uranium To: Koryza Outpost Value: 2.0
  Crate: Uranium To: Aecor Outpost Value: 1.7
  Crate: Uranium To: Aecor Outpost Value: 1.7
  Crate: Uranium To: Collis Outpost Value: 1.5
  Crate: Uranium To: Collis Outpost Value: 1.5
  Crate: Uranium To: Cerus Beta Outpost Value: 1.5
  Crate: Uranium To: Scinmule Value: 1.5
  Crate: Uranium To: Collis Outpost Value: 1.5
  Crate: Uranium To: Collis Outpost Value: 1.5
Sepia on Trunkadis (9):
  Crate: Wood To: Harenum Outpost Value: 1.8
  Crate: Wood To: Harenum Outpost Value: 1.8
  Crate: Wood To: Harenum Outpost Value: 1.8
  Crate: Wood To: Sparex Value: 1.5
  Crate: Wood To: Sparex Value: 1.5
  Crate: Wood To: Sparex Value: 1.5
  Crate: Sand To: Orcus Outpost Value: 1.3
  Crate: Sand To: Orcus Outpost Value: 1.3
  Crate: Sand To: Orcus Outpost Value: 1.3
Aecor Outpost on Aecor (9):
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 2.0
Harenum Outpost on Harenum (9):
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 1.7
  Crate: Diamond To: Quod Canis Outpost Value: 1.7
  Crate: Diamond To: Quod Canis Outpost Value: 1.7
  Crate: Diamond To: Titus Outpost Value: 1.45
  Crate: Diamond To: Titus Outpost Value: 1.45
Arbusto Outpost on Arbusto (9):
  Crate: Biomatter To: Cerus Alpha Outpost Value: 2.0
  Crate: Biomatter To: Cerus Beta Outpost Value: 2.0
  Crate: Wood To: Harenum Outpost Value: 1.9
  Crate: Wood To: Harenum Outpost Value: 1.9
  Crate: Wood To: Harenum Outpost Value: 1.9
  Crate: Wood To: Sparex Value: 1.6
  Crate: Wood To: Syre Outpost Value: 1.6
  Crate: Wood To: Syre Outpost Value: 1.6
  Crate: Biomatter To: Titus Outpost Value: 1.3
Koryza Outpost on Koryza (9):
  Crate: Emerald To: Cerus Alpha Outpost Value: 1.8
  Crate: Emerald To: Cerus Alpha Outpost Value: 1.8
  Crate: Emerald To: Cerus Alpha Outpost Value: 1.8
  Crate: Emerald To: Arbusto Outpost Value: 1.7
  Crate: Emerald To: Arbusto Outpost Value: 1.7
  Crate: Wood To: Harenum Outpost Value: 1.4
  Crate: Wood To: Harenum Outpost Value: 1.4
  Crate: Wood To: Harenum Outpost Value: 1.4
  Crate: Wood To: Syre Outpost Value: 1.1
Cerus Beta Outpost on CerusBeta (9):
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Porrus Outpost Value: 2.0
  Crate: Chorus Fruit To: Sakaro Outpost Value: 1.6
  Crate: Chorus Fruit To: Sakaro Outpost Value: 1.6
Sparex on Syre (9):
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Quod Canis Outpost Value: 2.0
  Crate: Diamond To: Titus Outpost Value: 1.75
  Crate: Diamond To: Titus Outpost Value: 1.75
  Crate: Diamond To: Titus Outpost Value: 1.75
  Crate: Diamond To: Porrus Outpost Value: 1.2
Porrus Outpost on Porrus (9):
  Crate: Mushroom To: Titus Outpost Value: 2.0
  Crate: Mushroom To: Aecor Outpost Value: 2.0
  Crate: Mushroom To: Aecor Outpost Value: 2.0
  Crate: Mushroom To: Aecor Outpost Value: 2.0
  Crate: Mushroom To: Aecor Outpost Value: 2.0
  Crate: Mushroom To: Terram Outpost Value: 1.5
  Crate: Mushroom To: Sakaro Outpost Value: 1.5
  Crate: Mushroom To: Cerus Alpha Outpost Value: 1.3
  Crate: Mushroom To: Cerus Alpha Outpost Value: 1.3
Scinmule on Collis (9):
  Crate: Coral To: Koryza Outpost Value: 2.0
  Crate: Coral To: Koryza Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 1.7
  Crate: Water To: Harenum Outpost Value: 1.7
  Crate: Coral To: Sepia Value: 1.3
  Crate: Coral To: Trunkadis Outpost Value: 1.3
  Crate: Lava To: Aecor Outpost Value: 1.1
  Crate: Lava To: Aecor Outpost Value: 1.1
  Crate: Water To: Cerus Beta Outpost Value: 1.0
Quod Canis Outpost on QuodCanis (9):
  Crate: Chetherite To: Cerus Beta Outpost Value: 2.0
  Crate: Chetherite To: Porrus Outpost Value: 2.0
  Crate: Chetherite To: Cerus Beta Outpost Value: 2.0
  Crate: Chetherite To: Cerus Beta Outpost Value: 2.0
  Crate: Chetherite To: Porrus Outpost Value: 2.0
  Crate: Chetherite To: Porrus Outpost Value: 2.0
  Crate: Chetherite To: Porrus Outpost Value: 2.0
  Crate: Chetherite To: Sepia Value: 1.3
  Crate: Chetherite To: Sepia Value: 1.3
Terram Outpost on Terram (9):
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Dead Bush To: Sparex Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Sand To: Orcus Outpost Value: 2.0
  Crate: Dead Bush To: Scinmule Value: 2.0
  Crate: Water To: Harenum Outpost Value: 1.25
  Crate: Water To: Harenum Outpost Value: 1.25
Collis Outpost on Collis (9):
  Crate: Coral To: Koryza Outpost Value: 2.0
  Crate: Coral To: Koryza Outpost Value: 2.0
  Crate: Coral To: Koryza Outpost Value: 2.0
  Crate: Water To: Harenum Outpost Value: 1.7
  Crate: Water To: Harenum Outpost Value: 1.7
  Crate: Water To: Harenum Outpost Value: 1.7
  Crate: Coral To: Trunkadis Outpost Value: 1.3
  Crate: Lava To: Sakaro Outpost Value: 1.3
  Crate: Coral To: Trunkadis Outpost Value: 1.3
Orcus Outpost on Orcus (9):
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Sakaro Outpost Value: 1.4
  Crate: Lava To: Aecor Outpost Value: 1.2
Cerus Alpha Outpost on CerusAlpha (9):
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Sakaro Outpost Value: 1.5
  Crate: Lava To: Aecor Outpost Value: 1.3
  Crate: Lava To: Aecor Outpost Value: 1.3
Sakaro Outpost on Sakaro (9):
  Crate: Machinery To: Syre Outpost Value: 2.0
  Crate: Machinery To: Quod Canis Outpost Value: 2.0
  Crate: Machinery To: Syre Outpost Value: 2.0
  Crate: Machinery To: Syre Outpost Value: 2.0
  Crate: Machinery To: Quod Canis Outpost Value: 2.0
  Crate: Machinery To: Syre Outpost Value: 2.0
  Crate: Machinery To: Terram Outpost Value: 1.75
  Crate: Machinery To: Terram Outpost Value: 1.75
  Crate: Machinery To: Arbusto Outpost Value: 1.5
Trunkadis Outpost on Trunkadis (9):
  Crate: Wood To: Harenum Outpost Value: 1.8
  Crate: Wood To: Harenum Outpost Value: 1.8
  Crate: Wood To: Syre Outpost Value: 1.5
  Crate: Wood To: Sparex Value: 1.5
  Crate: Wood To: Syre Outpost Value: 1.5
  Crate: Wood To: Sparex Value: 1.5
  Crate: Wood To: Sparex Value: 1.5
  Crate: Wood To: Syre Outpost Value: 1.5
  Crate: Wood To: Syre Outpost Value: 1.5

#59

@Xarulok No, it’s the outpost of the mission generator prototype


#60

Ah, k that makes more sense.


#61

Ok so making sure I’m getting this right. So like how syre has diamonds going to Quod like 6 or 7 times this just basically means there is greater chance for that mission to be given?

All the progress is exciting if and when you need a guinea pig to fly missions around I am available lol. Good work.


#62

Currently, higher chance is given to planets with higher value of a crate for missions being generated to them. However, I am uncertain if I will keep it this way; it might be better to have it evenly distributed.


#63

Gotcha ok I think I am getting this.

For what it’s worth, my opinion is that giving them equal chances or maybe almost equal chances of generating would just make sure their is more variety and that you don’t get sent to the same place over and over, back and forth which is a problem with the current system.

More chances to see cooler builds or explore somewhere you wouldn’t see. Also I think it would be a bit more realistic probably.


#64

I think rather than disable npc cities entirely on planet with a settlement city, it’d be simpler to make them have a much lower chance of having a mission to them generated, and make them have lower profit.


#65

That works too. All that means is more variety, which isn’t a bad thing at all.


#66

Implemented but didn’t yet test city NPC creation and deletion


#67

(Note: clicking them does literally nothing)


#68


#69

Next step is to complete implementation of the mission generation, including the expiry time, cost, and profit. Any ideas for that?

@Evra007 @Shady0879 @Xarulok poke


#70

There needs to be the system for determining how many crates you get in a mission, and how much money you get per crate sold, and how much it costs to accept the mission


#71

Ok a lot to think about. For how many crates you get I believe there needs to be a range available for small, moderate, and large loads. At minimum this could just be a few to choose from, with the player selecting the mission that he has space for. But maybe, somehow, the NPC could detect which ships you have unlocked with the SL XP. The missions requiring larger loads would only show up when the player had unlocked a ship even capable of holding that much.

I don’t know if what I’m picturing here is too much effort or even possible lol. Just spitballing. But variation is important I believe. Maybe even make it kind of random?

Like for instance, the player goes to the exporter, and selects the mission that is deemed the “small load” option because they have a smaller ship. This mission has a range of crates like 30-50 crates or something maybe more idk. But then the mission randomly chooses a number from that range and that’s the amount the player gets. So even if you went and did the small load over and over you would get small variations in load amount and ultimately profit.

As for expiration limit, I don’t see why you would need longer than 1 day maaayybbee 2? I don’t see why they would need to sit on a mission any longer.

Not sure really about cost, with the challenge of how to place them and thus limiting amount, shipping runs will be much more valuable I feel like.


#72

Could just make it make sure you have a ship with enough crates parked nearby.

The idea with the cost is to make pirating and avoiding pirates worthwhile


#73

Just my two cents (as an irl economics nerd)
One way to help encourage pirating & make protection relevant would be to flavor the trade missions like you’re investing in those wares/products and selling them at a higher market value elsewhere.

I might’ve misunderstood, but it sounds like they’re structured more like delivery quests rn and less like variable buy/sell opportunities. (Again, I may have misunderstood)

The value of the crates of any 1 mission could be determined by 2 variables and a constant:

n = resource’s inherent value. This is an unchanging constant across all instances of that crate type in the universe. In economics It’s the concept of something’s “True value” in an unchanging perfect world.

x = scarcity of that resource at that specific importer (simulated supply/demand). ie, if you buy wood on a planet loaded with lumber, it’s marginally cheaper to invest in. This value would be static across a particular crate type at THAT importer.

y = market sentiment RNG’d at mission generation. This simulates a “bear” or “bull” market where external conditions/emotions further skew the true value of a product. It could be a randomly selected number from a set like [.75, .85, .9, 1, 1.1, 1.15, 1.25]

P = net price per crate. This is what each crate costs, so if you have a sales opportunity for 6 crates at 500c apiece, it’ll cost you 3000c to buy into it.

n * x * y = P

Profit is made off the margin between trades between point a and b.

This simulation of an actual investment incentivizes traders to hire guards to protect their goods, and pirates to intercept the goods. (Maybe they can salvage 30-50% of crates from a ship wreckage to balance their lack of investment. They could keep 100% if the pirate somehow captures the ship without destroying it)

I’m curious to know what other people think about it. I’d be willing to help flesh this idea out further and help balance some of the numbers if this model takes root.


#74

Here’s an explanation of how it’s structured:

There are crates with a name and color, and a map of planet to value. Value is a number from -1 to 1. Negative values mean it imports, lower negative = more valuable there. Positive means it exports, higher positive = exports more. If you want to see the data, I think the one I linked here is mostly up to date.

Missions are generated at an interval (half an hour currently). x (currently 9) missions are generated for each city (there can be multiple cities per planet) at the interval. It picks a random crate from the crates the planet exports, giving higher weight to ones with greater value.

After picking a crate to export, it picks a random city from the cities importing the crate (currently unweighted except settlement cities have higher weight than NPC cities). Now it has the origin, destination, and crate.

That’s all that’s implemented so far, but there’s the framework for more once the rest’s figured out. The remaining variables are total crates, credits per crate, and expiry time (probably about a day after getting the mission). So with that in mind, how do think your idea should fit in at the last stage?


#75

From a technical perspective, all my model would do is help determine the cost of buying into a mission, and the reward once the delivery is made.

From a gameplay perspective it would also corroborate a merchant/trader theme in its structure. With a hefty buy in/moderate profit margin model traders would feel committed to a delivery, and would make the interactions with pirates that much more painful, which then validates the need to hire Privateers even more.
When you have to invest so much to turn a profit (esp with a dynamic price-model behind it) it would feel like you’re an actual merchant, instead of just the uranium delivery guy.


#76

I was more asking to reword what you suggested to expand on what I described


#77

So to briefly recap your explaination:

Every half hour 9 missions per exporter are generated from a list of viable crates, weighted in favor of crates with a high value (-1 to 1) for this example we’ll call this value “x”. It then picks a target to deliver to.

So far we know: The origin, the crate type, and the destination.


Next we want to determine how much it costs to partake in the mission.
First, you assign an unchanging base value for each crate. A crate of wood could have a base value of 200c, but a crate of uranium might have a base value of 1000c. This = n.

You’ve already determined supply/demand value for each resource and each planet with x from your -1 to 1 scale. The higher x is, the more abundant that resource is on your planet, and the farther it’ll drive the price down. We know -x to 0x doesn’t export at all and have already been filtered out of viable mission suggestions, leaving us with only missions with a +x on that planet. So, leftover from x’s previous use determining crate probability, we have a supply scale from 0.1 to 1 ordered from scarce => abundant. In order for this to have the intended effect on our formula we’re going to want to put x under a constant, say .75. So now we have
n * (.75/x)

Next, we just need a splash of RNG to keep things from feeling too static. I felt like my last figures were a little too broad, so I’ll suggest more conservative margins. We’ll say “y” is randomly selected from [1<1.15].

Now we’ve determined how much it costs buy into a mission. Price ( P) = n* (.75/x)* y
Now just do Price * Number of crates generated for the mission = Mission cost.


NEXT we want to determine how much the mission is worth once the delivery is completed.

n stays the same.

For our demand variable we will take the x value of the target planet, and divide its absolute value by .6.

And finally y is another rng [1<1.15]


Buy Price/crate = n* (.75/x)* y
Sell Price/crate = n* (|x|/.6)* y

Example: Export 5 crates of Machinery from Sakaro (S) to Terram (T).
Machinery n = 500c
Sx = 1
Tx = -.75
Sy = 1.15
Ty = 1

S Buy = 500* (.75/1)* 1.15 = 431. * 5 crates = 2155c buy in
T Sell = 500* (|-.75|/.60)* 1 = 625. * 5 crates = 3125c pay out


Now we know:
The Origin
The Crate Type
The Destination
The Cost to Accept, &
The Proportional Reward.

Obviously the exact figures used at each step can be tweaked and engineered until they fall within an ideal, controlled margin. It’s the method and concept that’s the juicy bit.

EDIT: I’ll work on fleshing this out a bit further to work around what you have so far and see if I can polish the formula a little.