LONG POST INCOMING. PLEASE READ.
TLDR: The commerce and taxes and stuff is all well and good but it seems like no one is talking about where value should actually come from in dwarf fortress. I fear that many of you may be content with the current system whereby everything has an intrinsic exchange value. and when people do propose a supply and demand system instead, like sal880612m I think it isn't good enough, because he is only applying supply and demand to big things like rented rooms and not to little things like the things in the rooms. I say we should model market forces for little and subtle things, too. For everything, really. See the summary section.
Toady if you're reading this please please please please please for the love of armok read the first book of Wealth of Nations before you code the new economy. It explains a lot of really basic and critical classical economic concepts and it is not that hard to read.
I wasn't around for the original economy but from what I've read it seems that it failed because (besides the coin stack issue) it was trying to simulate the
symptoms of market forces without
actually modelling market forces.
sal880612m has the right idea with making rents based on supply and demand but I really really think it's a fatal error to try to assign intrinsic values to things like materials, furniture, etc, which is what the value of rooms would be based on in his system.
All values, not just of the rooms, but of the things in the rooms, should be based on supply and demand. This is a big problem that I see a lot both in threads like this and in the game currently.
I will summarize a few basic economic ideas that I think are critical to implementing economics properly If I leave certain aspects of this unexplained it's because I don't think it's relevant enough, I'm just summarizing:
VALUE IS AN EXPRESSION OF SUBJECTIVE DESIRES. IT IS NOT INTRINSIC. There are essentially 2 types of "value" to consider, which tie into each other a lot.
1) USE VALUE = the "usefulness" or "utility" of a thing. Subjective. Different for each person. Look up "marginal utility theory of value" (MTV).
2) EXCHANGE VALUE = what other people are willing to give you in exchange for a thing. Objective. Is the same for everyone in an entire market.
It's based on supply and demand. Demand and supply can be graphed with y=price and x= amount supplied or demanded. When graphed in this way, demand slopes down and supply slopes up, where they intersect is the exchange value.It's basically synonymous with "price". (Note that "demand" is essentially an expression of the use value (to the people in the market) talked about above.) (Also note that for money, exchange value basically = use value, because that's how money works.) Look up "supply demand graph" and stuff like that to see the graphs I'm talking about.
Furthermore there is the "labor theory of value" (LTV) which essentially states that
all costs can be rephrased in terms of labor (ie the amount of work it takes to acquire something, directly or indirectly (if indirect, then this obviously therefore depends on the exchange value of the produce of your efforts)). Just as "demand" is essentially a representation of use value, "supply" is essentially a representation of labor value. (ie how easy or hard is it to acquire this thing? What is the
availability of it?) (It is a common misconception that you might have seen on the Internet that the LTV and MTV contradict each other, and that one or the other is true while the other is wrong. This is FALSE.
They are both true. They are about different things.)
There's also the idea of opportunity cost, but honestly I don't think it would be worth it to model that, it requires really abstract reasoning and real intelligence to determine opportunity cost and it wouldn't be worth it to code dwarves to be so smart, not to mention it would slow things down. Enough calculations as it is...anyway...
Finally, what exactly is money? Money is anything that is used asa) A medium of exchange
b) a store of value
c) a measure of value
The degree to which a thing is "money" is the degree to which it fulfills the above. Keep that in mind.
What this means for the game:Currently, everything (materials, quality levels, items, currency) has an intrinsic value. It isn't stated explicitly in the game, but the value that we see currently, denominated in the * symbols (are they called urists?),
is exchange value. http://dwarffortresswiki.org/index.php/ValueIn my opinion, if Toady keeps it this way, then it won't be worth it to attempt to model markets at all. How can you model market forces if the exchange value of a thing always stays the same? People in this thread are talking about modelling rents of rooms with supply and demand, but why stop there? Why not make
everything based on supply and demand, including the value of each item, and of particular quality levels, and every different material and every different service? Because that's what it's like IRL. And that is what I propose.
Even if we don't model use-value/demand at all and assume that every sentient creature has the same desire for each thing as every other sentient creature, which I don't think would be fun, it still wouldn't work because supply would fluctuate.
Thus I think an intrinsic-exchange-value based "market" is doomed to failure because the prices of things will stay the same regardless of how their supply changes. Think about this. Eventually caravans from different civs are going to be going around trading with each other during world gen and during play. If the price (exchange value) of things stays the same, then what will happen when the only site that produced a certain resource is taken over by a megabeast? If it's modelled realistically the price will increase and the remaining civs will consequently look for alternative sources of the resource. Some sites that weren't producing it before but can might start to. There might be rationing in some sites. A wave of robberies of the resource in others as people panic about its scarcity. The division of labor will change a little. Sites will shift focus between various industries. The economy would adapt. It would be
dynamic. But with a fixed-exchange-value system, the price would stay exactly the same, the caravans would keep trading the resource and sites would keep using it up at the same rate until it's all gone, and then for the rest of history that resource wouldn't exist anymore unless the player reintroduced it. And I'm not saying the player shouldn't have the opportunity to heroically reintroduce resources, I'm saying that it shouldn't be
the only possible way for it to be reintroduced, and if the player is idle the world should try to
adapt on its own and at least
try to find new sources of the resource, and if it doesn't succeed that's fine, that's great, it's a simulation!
And if the player does produce a scarce resource the player should be rewarded for it with a price that is consistent with its low supply.Again, the basic problem is that people are thinking supply and demand in terms of big things. But I say we should model it for little and subtle things too. The closer we are to having everything based on supply and demand, the more dynamic and realistic the game's economics will be. The more "little things" are tied down with intrinsic values, the clumsier, less interesting, more broken the game's economics will be.
What I ProposeAll sentient creatures should have a range of agreeable prices which apply to them selling or buying. This range is determined by combining their "demand value" (by value in this case I mean
number) for the thing with the relevant "supply value" in some semi-arbitrary mathematical way that Toady will decide. In other words, IRL demand and supply have inverse effects on price and the price of something is ultimately where they intersect (as seen on those graphs I pointed you to earlier). Thus Toady will need to decide how much weight creatures should give to their "supply value" vs how much weight they should give to their "demand value". Transactions should only occur if the buyer(s) and seller(s) involved have overlapping acceptable price ranges (basically it should be the average between them, but it would be cool if it factored in power differentials as well. Anyway...)
SupplyNow, should each sentient creature be aware of the exact global supply of every resource? Of course not. This is why I said "
relevant supply value". The only thing that matters is the resource's availability to the creature in question. That is the "supply" of the resource as far as that particular creature is concerned. Keep in mind the LTV here. I think sentient creatures should be roughly aware of how much work they would
need to do to get something (and realize when it is infinitely high), and remember
how much work they did in the past to get something, and these two types of knowledge will together constitute their "supply value" which will be combined with their "demand value" for transactions as described above. Obviously this can't be modelled explicitly or in detail for every single sentient creature, but this is what Toady should aim to simulate.
For example this is what I'm imagining happening: A jeweller encrusts someone's cabinet. How much should he charge for this service? He bought the gems from a miner. He should remember how much the gems cost him in that original transaction. Then he should think about how much he just exerted himself, and calculate a "supply value" (or "cost" if you will) based on those things. Then he should combine this "supply value" with a "demand value" (ie "how much do
I like the gems? Maybe I would be better off keeping them for myself instead of putting them in this guy's cabinet") to determine an "acceptable price range". His customer also calculates an acceptable price range in the same way, except
his supply value won't be based on what the jeweller paid for the gems, but rather, "how hard would it be to decorate this cabinet myself?" and stuff like that, and likewise the customer's demand value would be
his preference for a cabinet encrusted with the relevant gems. The game sees if the buyer's price range and the seller's price range overlap, and if they do the transaction occurs with the middle price of the overlapping region. If they don't overlap, there is no transaction.
Furthermore, the "cost" or "supply value" of a thing should be weighted differently by different dwarves. For example lazy dwarves won't want to do work, so the "supply value" or "cost" of everything will be relatively high for them and they will charge high prices because they'll want to minimize how much they're going to have to work later to earn more money. Unlike demand weights, which are explained below, these supply-weights will represent how much effort a certain dwarf is willing to exert or how much work they are willing to do (ie the labor cost).
DemandWe are already mostly there with demand. They already have personality traits that show desire for various things. These should be expanded, but in addition to the specific idiosyncratic desires that they currently have, dwarves should have
general desires and preferences that vary by dwarf, and that are consistent with the rest of the dwarf's personality. For example a dwarf that "doesn't think craftspeople really contribute anything" should have relatively low demand for crafts.
For these general desires and preferences, the current intrinsic values for items can stay, but their role and function needs to change. Instead of dictating exchange value, as they currently do, http://dwarffortresswiki.org/index.php/Value these values should be weighted differently by different dwarves, just like how costs are weighted differently, and rather than representing price, they should represent that particular dwarf's demand for the thing. Like I've said this should apply to everything, not just items, but also to services and materials and even quality-levels. If we do that for everything, then we will basically be simulating the varying desires of the dwarves and their demands will all be similar because we weighted the same base values, and that's fine because it's realistic, and they will vary a little by personality which is also realistic. To make the weights accurate and sensible, Toady will really need to think long and hard while figuring out what the weights should be and how they should tie in to personality. He's really going to have to think hard about "what do dwarves
want".
All dwarves should have their demand for certain things affected by various special conditions, definitely including bodily circumstances such as being dehydrated increasing their "acceptable price range" for water and booze. For example a vampire should have significantly less, if any, demand for beds, bedrooms, booze, food, etc.
Outside of Dwarf Fortress ModeThis might seem hard to do for an entire world but I honestly don't think this will be too difficult to expand outside the player's fortress. It will work the same way for all sentient creatures. Outside of the player's dwarf fortress in dwarf fortress mode, and for NPC's during adventure mode, and for people in world gen, the demand values and supply values will simply be generalized to whole populations. "Whole populations" shouldn't necessarily be limited to people who are in the same site or civ though. Maybe the game can keep track of "what percentage of people in each site have certain demand-value-weights, and therefore how does the
aggregate demand of this site determine what they will try to buy from other sites?"
Sites should also be affected by conditions similarly to individuals. A town that is by the sea should have lower fish prices because the town as a whole should have a lower "weighted supply value" because the supply is so high locally. Hinterland towns should have high fish prices because the supply values are higher.
Ideally, though, your adventurer should be able to find out about the personality traits of NPC's, and when this happens the answer should depend on that NPC's actual preferences. In other words there needs to be consistency between conversations and actual economic activity and actual supply and demand values. Toady will have to figure that part out on his own though, lol.
Ideally, immigration and emigration should also be dependent on market forces. Sentient creatures should tend to emigrate to areas where the exchange value of the produce of their profession is higher. For example miners should tend to emigrate to places where the
price of rocks is relatively high, and/or simply to places where the
price of the mining labor itself is relatively high if there is a new fortress being built or something.
SummaryBasically, what Toady needs to do is program it so that the demand values are randomly generated for each dwarf (composed of base values which are the same for all, and the weights which are specific to the individual), and that at the same time these demand values are consistent with the dwarf's personality. When transactions occur, the demand values for the thing being exchanged are considered for each dwarf (representing how much each dwarf wants the thing), along with the supply value of the thing for each dwarf (representing the cost of not doing the transaction, or in other words, the availability of the thing from other sources). Each dwarf combines the supply value and demand value to determine an acceptable price range, and if their price ranges overlap the transaction occurs using some price in the middle of the overlapping region.
I don't think the game will need to constantly be thinking about each dwarf's respective supply and demand values for every single thing, the
information from which to calculate those values simply needs to be stored somewhere, so the game can come back to it at the relevant time (when the relevant transactions occur) and determine what the price will be according to what each dwarf is willing to accept.
Thus the information that will need to be generated and stored for each world will be:
a) The base demand values for all items, quality levels, materials, and services. These will probably be the same in all worlds.
b) In dwarf fortress mode, when migrants arrive or children are born, random weights need to be assigned to the values in part a, exclusive to that particular dwarf, and corresponding to the dwarf's personality.
c) for supply, when transactions occur, the availability of the thing being transacted needs to be assessed somehow by the game, for both buyer and seller individually.
With the weights and values, obviously there could be some grouping by type.
The main idea is that intrinsic values should be weighted by each dwarf to represent their desire for it (demand) and its availability to them (supply). Economic relationships should be the emergent result of creature psychology, not fixed in the code explicitly.
TLDR: See the summary section.