CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.33k stars 4.14k forks source link

[RFC] Post Cataclysm trade and quick and dirty faction cash #27449

Closed mlangsdorf closed 5 years ago

mlangsdorf commented 5 years ago

Ecash considered harmful

NPCs accept pre-Cataclysm electronic cash. This makes a huge number of features and missions related to the Free Merchants, Evac Center, and Refugee Ranch/Tacoma Commune fairly pointless because no sane survivor is going to trade meat jerky at $3/piece, or send NPC allies out to work at $8/hour, when they can go kill some random zombie and pick up a cash card worth $300.

In order to make post-Cataclysm trade sensible, NPCs need to heavily discount eCash and require PCs to engage in barter.

Faction cash

Actual barter is a hassle, and requiring NPCs to have trade-goods for everything the PCs wants to buy or sell is going to quickly run into limitations with the NPC code. Instead, we should abstract some kind of faction cash, and let NPCs buy and sell stuff using faction cash. Different factions would discount cash from other factions at different amounts: full value or nearly so for friendly factions (the Old Guard and the Free Merchants), much less for hostile factions (Free Merchants are going to value Hells Raider cash at 10% or less). All factions discount eCash at 99.9%, so $1000 in eCash buys $1 of goods from the Free Merchants.

Implementation wise, the current int character::cash gets replaced with std::map<faction_id, int> character::cash, and factions get a similar map containing their discount rates (probably a fixed point value with 6 sigfigs, so 100,000,000 represents 100% and 100,000 represents 0.1%).

When the player attempts to trade with an NPC, his current cash map gets discounted and summed into a single cash value in the npc trade window. Purchases are made in descending order from the least discounted faction cash to the worst (or with the value of a bartered good).

Ramifications

Some costs at the Free Merchants would need to be adjusted in lines with the new costs. The Refugee Ranch doctor charging $5000 to install a CBM is reasonable when that represents 30-40 zombies killed and looted, but it may be too much when it represents 1800 pieces of meat jerky.

See also #27447. and #12539

kevingranade commented 5 years ago

In order to make post-Cataclysm trade sensible, NPCs need to heavily discount eCash and require PCs to engage in barter.

I couldn't agree more, the value of a cash card is only that it acts as a key to get into vending machines, and it requires you to run all the usual risks of looting to get at the vending machines. Even worse, there's a lot more cash than there is vending machine contents, so the market would quickly get saturated.

I feel like the value should be something like 1% of the value of goods you can use it to buy from a vending machine, capped at 0.1% the total value of a fully stocked vending machine. That might be pretty close to 0.1% of some dollar-like faction currency, so if you want a fixed value that sounds like a good start. I do think having it saturate is important so we can scatter around reasonable quantities of pre-cataclysm money without breaking economies.

Actual barter is a hassle,

It is, but it's how it will work. Just for sanity every faction should have an internal currency-like value even if they don't issue it so we can use it to compare items to each other, but we are going to want there to be loners the players encounter that don't even know about any factions, and therefore will operate purely on barter. Also even when there is faction currency, each NPC should still have a limited amount of cash on hand, so in the end you can get more out of them if you accept some barter goods.

I'm totally fine with faction members using faction-issued currency and having exchange rates, etc, but I don't want to lose sight of this being the exception (though a common one) rather than the rule.

Implementation wise, the current int character::cash gets replaced with std::map<faction_id, int> character::cash

I'm very against this, there's no good reason to keep cash abstracted, let's do cash items.

We can also mark items as barter goods and merge their values into the displayed "purchasing power" display. We can do likewise for NPCs, who should either not offer their used/equipped gear for sale, or only offer it at a large premium.

mlangsdorf commented 5 years ago

Okay, barter cash it is.

nexusmrsep commented 5 years ago

Principle of cash is social agreement, so can can be abstract like RL money, but real money came a long way to be abstract by itself. The primal cash is a trade item that is acceptable by large amount of people that trade. It needs to be rare (thus for ex. NukaCola bottle caps), and most likely have a value of its own. Preferably non-perishable, but for example Caves of Qud plays with the concept of perishable currency in form of fresh water. In post-apocalyptic theme where even gold and silver seems to be depreciated, the most obvious currency would be food, but its perishable, so its not a long term valid option (perhaps canned of food?), or bullets (see concept in Metro 2023 novel by Dmitry Glukhovsky). I personally like the concept of calories as an abstract currency for an end-times world. If something is denominated in calories, it means it can be traded for food with equivalent caloric value. Yes, yes, i know the concept of inflation, unequal trade, exchange rates, and that it would bend the 1:1 ratio in a day but I still like the idea.

logros13 commented 5 years ago

If we want a universal physical storage of value disassociated pre-cataclysm fiat currency we could simply take a page from history and introduce commodity money. This would ease the barter issue (which is why it was introduced in real life after all) while giving us something to craft with all those worthless yellow rocks we find in those bank vaults and armored cars. 😉

mlangsdorf commented 5 years ago

So there two separate questions:

Clearly, any faction that calls itself the Free Merchants has an economist involved in it somewhere, and economists are going to want a currency to facilitate trade. My current proposal is that Free Merchant scrip is actual physical US dollars that have been stamped as Free Merchant currency. So the Free Merchants won't take that $10,000 money bundle from the player and give them $10,000 in goods, but they will take it from them and give them $500 or so because they need the bills to manage their own currency. Meanwhile, the Robofac faction (which doesn't exist but is the hypothetical AI controlled faction) considers money bundles to be paper and value them at $1 or so. But the Robofacs use gold for currency, while the Free Merchants don't.

Separately, we have the question of how to represent a player's wealth inside the game code. Currently, that's the sum of the value of their tradeable possessions plus the value of cash field (which is the sum of the value of all the cash cards a player has deposited). The cash field shouldn't be counted at all during NPC trade (NPCs may or may not take cash cards at some discount, they are not going to take a promise to withdraw ecash from your bank account the next time they go to an ATM) and some NPCs should have stacks of faction cash that they will use to balance out transactions.

I can add check at the end of npctrade::trade() that if the NPC is a shopkeeper, they replenish their faction cash to some reasonable level immediately after the trade.

Human-Shield commented 5 years ago

Don't think anyone is issuing paper fiat money. If anything it would be promise notes to be redeemed, so instead of carrying clean water you can use paper notes to redeem for water. Because water is heavy while paper can be easy to carry.

Calories, grains of gunpowder (pipebombs and black powder guns are still useful), fuel, battery charges.

mlangsdorf commented 5 years ago

One of the functions of currency is a promise note to be redeemed aka "standard of deferred payment." You give the Free Merchant $400 in guns, he gives you $400 in Free Merchant scrip that you can later use to buy $400 in clean water or whatever else you want to buy.

Sure, some factions are going to give you a promissory note to acquire some specific good at some future date, but the Free Merchants are obviously going to have actual currency.

Faction Description Barter Facilitator
Old Guard Remnants of the US government Authorized US bills, eCash at favorable rates
Free Merchants Entrepeneurs at the Evac Center Defaced US bills as a currency
Tacoma Commune Free Merchant outpost going its own way Free Merchant scrip
Wasteland Scavengers Autonomous bands of scavengers Short-term barter only
Hell's Raiders Hooligans and bandits Short-term barter only
Robofac Minions of a Melchior AI Precious metal coins as currency
Mycus Alien invaders and fungi Promises of future marloss berries
Zombie Cult Madmen who think they can ally with the blob Short-term barter only
Survivalists Rugged individualists who oppose the Old Guard and Free Merchants Barter with specific promissory notes
Fence Men Former convicts at a prison who trade with the Hell's Raiders Ammunition as currency
stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not \'bump\' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

mlangsdorf commented 5 years ago

This was supposed to be closed by 31245