Map Database  •  FAQ  •  RSS  •  Login

Wares costs in Market

<<

Krom

User avatar

Knights Province Developer

Posts: 3280

Joined: 09 May 2006, 22:00

KaM Skill Level: Fair

Location: Russia

Post 19 Nov 2015, 18:37

Wares costs in Market

  Code:
//How many of resource gets produced per minute on AVERAGE //Measured on a test map RES_COUNT / TIME in minutes ProductionRate: array [WARE_MIN..WARE_MAX] of Single = ( 88/120, 414/120, 390/120, 160/120, 160/120, 155/120, 218/120, 330/120, 120/120, 138/120, 336/120, 162/120, 324/120, 510/120, 84/180, 84/180, 180/120, 155/120, 180/120, 155/120, 200/120, 195/120, 200/120, 195/120, 200/120, 195/120, 69/120, 122/120); //How much time it takes from owner taking a house till stable production //1 minute on average for the time it takes to process input into output //Some wares need extra time to grow (e.g. Horses) and some //depend on environment supply (e.g. Trunks) //Trunks 1-15 //Wine 1-8 //Corn 1-11 //Pigs 6 //Skins 6 //Horses 6 ProductionLag: array [WARE_MIN..WARE_MAX] of Byte = ( 6, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1);
  Code:
procedure TKMWaresList.CalculateCostsTable; const NON_RENEW = 1.25; //Non-renewable resources are more valuable than renewable ones TREE_ADDN = 0.15; //Trees require a large area (e.g. compared to corn) WINE_ADDN = 0.1; //Wine takes extra wood to build ORE_ADDN = 0.2; //You can only build a few iron/gold mines on most maps (compared to coal) begin //Take advantage of the fact that we have both classes in same unit //and assign to private field directly Wares[wt_Trunk ].fMarketPrice := (1/ProductionRate[wt_Trunk]) + TREE_ADDN; Wares[wt_Stone ].fMarketPrice := NON_RENEW*(1/ProductionRate[wt_Stone]); Wares[wt_Wood ].fMarketPrice := (1/ProductionRate[wt_Wood]) + (1/2)*Wares[wt_Trunk].MarketPrice; Wares[wt_IronOre ].fMarketPrice := NON_RENEW*(1/ProductionRate[wt_IronOre]) + ORE_ADDN; Wares[wt_GoldOre ].fMarketPrice := NON_RENEW*(1/ProductionRate[wt_GoldOre]) + ORE_ADDN; Wares[wt_Coal ].fMarketPrice := NON_RENEW*(1/ProductionRate[wt_Coal]); Wares[wt_Steel ].fMarketPrice := (1/ProductionRate[wt_Steel]) + Wares[wt_IronOre].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Gold ].fMarketPrice := (1/ProductionRate[wt_Gold]) + (1/2)*(Wares[wt_GoldOre].MarketPrice + Wares[wt_Coal].MarketPrice); Wares[wt_Wine ].fMarketPrice := (1/ProductionRate[wt_Wine]) + WINE_ADDN; Wares[wt_Corn ].fMarketPrice := (1/ProductionRate[wt_Corn]); Wares[wt_Flour ].fMarketPrice := (1/ProductionRate[wt_Flour]) + Wares[wt_Corn].MarketPrice; Wares[wt_Bread ].fMarketPrice := (1/ProductionRate[wt_Bread]) + (1/2)*Wares[wt_Flour].MarketPrice; Wares[wt_Pig ].fMarketPrice := (1/ProductionRate[wt_Pig]) + (1/2)*4*Wares[wt_Corn].MarketPrice; //1/2 because two products are made simultaneously Wares[wt_Skin ].fMarketPrice := (1/ProductionRate[wt_Skin]) + (1/2)*4*Wares[wt_Corn].MarketPrice; //1/2 because two products are made simultaneously Wares[wt_Leather ].fMarketPrice := (1/ProductionRate[wt_Leather]) + (1/2)*Wares[wt_Skin].MarketPrice; Wares[wt_Sausages ].fMarketPrice := (1/ProductionRate[wt_Sausages]) + (1/3)*Wares[wt_Pig].MarketPrice; Wares[wt_Shield ].fMarketPrice := (1/ProductionRate[wt_Shield]) + Wares[wt_Wood].MarketPrice; Wares[wt_MetalShield].fMarketPrice := (1/ProductionRate[wt_MetalShield]) + Wares[wt_Steel].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Armor ].fMarketPrice := (1/ProductionRate[wt_Armor]) + Wares[wt_Leather].MarketPrice; Wares[wt_MetalArmor ].fMarketPrice := (1/ProductionRate[wt_MetalArmor]) + Wares[wt_Steel].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Axe ].fMarketPrice := (1/ProductionRate[wt_Axe]) + 2*Wares[wt_Wood].MarketPrice; Wares[wt_Sword ].fMarketPrice := (1/ProductionRate[wt_Sword]) + Wares[wt_Steel].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Pike ].fMarketPrice := (1/ProductionRate[wt_Pike]) + 2*Wares[wt_Wood].MarketPrice; Wares[wt_Hallebard ].fMarketPrice := (1/ProductionRate[wt_Hallebard]) + Wares[wt_Steel].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Bow ].fMarketPrice := (1/ProductionRate[wt_Bow]) + 2*Wares[wt_Wood].MarketPrice; Wares[wt_Arbalet ].fMarketPrice := (1/ProductionRate[wt_Arbalet]) + Wares[wt_Steel].MarketPrice + Wares[wt_Coal].MarketPrice; Wares[wt_Horse ].fMarketPrice := (1/ProductionRate[wt_Horse]) + 4*Wares[wt_Corn].MarketPrice; Wares[wt_Fish ].fMarketPrice := NON_RENEW*(1/ProductionRate[wt_Fish]); end;
Tree trunks 1,51363635063171
Stones 0,362318843603134
Timber 1,06451046466827
Iron ore 1,13749992847443
Gold ore 1,13749992847443
Coal 0,967741966247559
Iron 2,65570068359375
Gold 1,41625726222992
Wine barrels 1,10000002384186
Corn 0,86956524848938
Loaves 1,16229581832886
Flour 1,61030602455139
Leather 2,31136417388916
Sausages 1,52928996086121
Pigs 3,88198757171631
Skins 3,88198757171631
Wooden shields 1,73117709159851
Iron shields 4,39763641357422
Leather armor 2,97803092002869
Iron armor 4,39763641357422
Hand axes 2,72902083396912
Swords 4,23882722854614
Lances 2,72902083396912
Pikes 4,23882722854614
Longbows 2,72902083396912
Crossbows 4,23882722854614
Horses 5,21739149093628
Fish 1,2295081615448


Exported by F11 - Export - Resource values
Knights Province at: http://www.knightsprovince.com
KaM Remake at: http://www.kamremake.com
Original MBWR/WR2/AFC/FVR tools at: http://krom.reveur.de
<<

Esthlos

User avatar

Knight

Posts: 676

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 20 Nov 2015, 00:33

Re: Wares costs in Market

  Code:
NON_RENEW = 1.25; //Non-renewable resources are more valuable than renewable ones TREE_ADDN = 0.15; //Trees require a large area (e.g. compared to corn) WINE_ADDN = 0.1; //Wine takes extra wood to build ORE_ADDN = 0.2; //You can only build a few iron/gold mines on most maps (compared to coal)
You know, I wonder what would happen if instead of being fixed these values depended on the map.

E.g. in a map with lots of mineable iron, or with lots of iron in the storehouse at start, then selling iron (or refined iron, or weapons/armors) yields extremely little but buying it is very cheap.

In a map instead with very little fertile ground, then wares from the wood and food lines sell for a very good price but are also sold at a very high price.

Would this add a strategic layer to the Market or would it simply be abused?
In a map where there is low iron, would you use it to make better soldiers or would you sell it to buy food/wood/leather and jumpstart your town, or supplement a weaker but bigger army?

Also, what would happen if it depended on what the other players are doing too?
E.g. if every player is selling iron, then it sells for less and is cheaper to buy.
If everybody is buying it, then its cost is higher when buying but also gets you better deals when selling it.
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

Krom

User avatar

Knights Province Developer

Posts: 3280

Joined: 09 May 2006, 22:00

KaM Skill Level: Fair

Location: Russia

Post 20 Nov 2015, 05:10

Re: Wares costs in Market

Making prices depend on map is not so good idea, because that would break the consistency. Players get used to and memorize the trades they use. Now when a new map comes they will have to check MANY combinations to see if anything got cheaper and they could use it? Does not sound good to me.

Dependancy - Reminds me of Offworld Trading Company - an RTS built around this feature.
Knights Province at: http://www.knightsprovince.com
KaM Remake at: http://www.kamremake.com
Original MBWR/WR2/AFC/FVR tools at: http://krom.reveur.de
<<

thunder

User avatar

Moorbach's Guard

Posts: 1044

Joined: 15 Apr 2012, 12:11

KaM Skill Level: Fair

Location: In the Market

Post 20 Nov 2015, 08:40

Re: Wares costs in Market

Hello,

I think the market is almost perfect now just some small change would be good.

-The maxrket tax is a bit high maybe should decrease a bit.I liked market much better when there were more straegy way to use in the PT(Of course then the prices were imba...). I still say the market has power to eqaulizate the weaker locations in the PT maintly when the market has tradeable atrating wares.

-More exact prices would be good also. (example: 1horse price is only 3.5 ironbar so the market say that okay 1 hrse is 4ironbar, but would be better to say 2 horse price is 7 ironbar- It is just an example for explain what I mean under more precise values-maybe the horse value was a bad example but there are lots of this values what this system could fix). This feeling make the market tax a bit more higher :S

-We can not buy anything from the collected wares in the market. Example: At first I would by a horse in the market what cost is 13corn and i start to collecting corn in the market, after the 11th corn switch my mind and want to trade this corn to bread(price 3 corn) so i could buy 3 bread(9corn), but we cant do it. The corn should leave the market before we could trade it again. So if we anytymie change our mind we only can by higher values wares from the remained wares.

-Maybe should give Storhouse power to the market?? The storehouse usualy deleted by the players and the market could be a good alternative.

These are my opinions what could make the market a bit better building as now.
:wink:
<<

Esthlos

User avatar

Knight

Posts: 676

Joined: 23 Jun 2013, 16:02

KaM Skill Level: Beginner

Post 20 Nov 2015, 09:18

Re: Wares costs in Market

Making prices depend on map is not so good idea, because that would break the consistency. Players get used to and memorize the trades they use. Now when a new map comes they will have to check MANY combinations to see if anything got cheaper and they could use it? Does not sound good to me.
True, but it doesn't have to be implemented this way: for example, the map editor could check these availabilities on map saving (maybe relating to the relative distances from the starting locs) and write them somewhere in the map description, even as a detailed description that would come up on clicking a button.

It could say "Player 1: High iron availability", and without even checking you'd know that iron is very cheap here.

Deals relative to single wares don't need to be changed: for example, the price ratios Corn:Leather:Bread:etc doesn't have to change since they involve the same raw materials, so their individual prices would change together.

Anyway, I proposed this mostly as an alternative solution to the current one in preventing the cases of "Market abuse" that have been complained about in the past: you can't just build a powerhouse base that sells huge volumes of a ware to gain an advantage, because
a) If you could build so much production for it, it means its raw materials are aboundant
and
b) if you are selling so much its price goes down, so selling is less convenient.

----------------------------------------------------

Also, I think it would be interesting to allow player interaction through the market.
For example: one player could be trading Wood for Wooden weapons, while another could be trading Wooden Weapons for Wood.
The first one from this trade could get a lighter base, while the second one would gain a straight ware revenue (maybe thanks to price adjustments for refined wares vs raw wares, that should be easy to implement fairly since this relates to data that is objectively computable?).

----------------------------------------------------

Anyway, it was just an idea to make the market feel more realistic and more strategically important beyond a general "which trade can be exploited best"; it obviously isn't necesary to add this to the Remake.
Just when you think you know something, you have to look at it in another way, even though it may seem silly or wrong. You must try! - John Keating, "Dead Poets Society"
<<

Ben

User avatar

Former Site Admin

Posts: 3814

Joined: 08 Jan 2009, 23:00

Location: California - Pacific Time (UTC -8/-7 Summer Time)

Post 20 Nov 2015, 16:52

Re: Wares costs in Market

Making prices depend on map is not so good idea, because that would break the consistency. Players get used to and memorize the trades they use. Now when a new map comes they will have to check MANY combinations to see if anything got cheaper and they could use it? Does not sound good to me.
Totally agree. This has been brought up hundreds of times too. It's like playing Furious Warriors with randoms: Their are so many different versions idk what is even going on anymore...
I used to spam this forum so much...

Return to “General / Questions”

Who is online

Users browsing this forum: No registered users and 6 guests