On the valuation of time

Have a new general feature to suggest, or think one should be tweaked? Share your ideas here.
Post Reply
User avatar
nobody
Posts: 501
Joined: Wed Jun 17, 2020 7:43 am
Contact:

On the valuation of time

Post by nobody »

I've been working on a project very, very slowly to help fixing the market pricing in the game but I wanted to post before it's finished because I see it coming up in different forms in the game channel quite often now. If gems are overpriced, it is a symptom of this. If farming is underpriced, same. The problem is that the economy doesn't take everything into account. I think that it should*. When I eventually finish my pricing spreadsheet, I'll add that to this post, but it is going to take a while and I no longer want to wait until it's done to broach the topic. Incorporating everything into economic pricing will help balance things, and it will give people the tools they need to price their own goods and services. It won't fix everything though, because the game is dynamic and things will change over time and also there are a variety of bugs that probably contribute some ease to accumulation of wealth. But those aside, here is my immodest proposal: the game should incorporate almost everything into market costs, and the underlying commodity to base that pricing on is time (there are some other conversion pieces and some important modifiers, but time is key).

* I don't actually think pricing should include everything, for example, experience I think shouldn't be taken into account, though I could be wrong.

The costs
The first part is figuring out the costs. Everything costs something and the most common cost is time, but it isn't the only cost. Things in game also cost energy, sanity, nutrition, riln, skills, abilities, and tools. The difficulty of pricing is reducing all of those variables down to as few as possible.

Time
Currently there are mechanics that utilize roundtime and other mechanics that utilize passive time. With roundtime, your character is actively engaged in what they're doing and they cannot do anything else without first finishing or stopping what they're doing, this includes most professions and much of combat. With passive time, your character is doing the thing, or the thing is happening regardless of the character, and it doesn't disrupt their ability to do other things while that passive time mechanic is engaged, this includes cooking, animal husbandry, farming, pottery, and blacksmithing. You can have (at least in theory) a limitless number of passive time mechanics counting down at once, but only one roundtime mechanic at a time. I refer to these below as active time and passive time.

Energy
Energy is also a component of many (but not all) in game mechanics that lead to economic value. However, energy is often just a function of time (to recover that energy) and nutrition. Figuring out the mechanics behind converting energy to time and nutrition is fairly straightforward, but I'll leave it for you to figure it out on your own if you care and haven't already done that work. Energy regeneration is different from most passive time processes though, because unlike other passive activities, energy regeneration is disrupted by engaging in roundtime.

Nutrition
As for nutrition, it isn't possible to convert nutrition to time because it doesn't go up on its own but it is possible to convert nutrition to riln, in fact it is incredibly easy to figure out the riln-nutrition exchange rate, it is incorporated into every piece of food in the game.

Sanity
Sanity is a different beast because much of the information is concealed. I won't make any effort to convert this as not many things cost sanity and more importantly, I haven't done enough testing myself to know how to translate it. It should be a fairly straightforward activity for our dev to do so in his pricing, as for he has easier access to learning at what rate sanity points are regenerated without any additional external means.

Tools
Many crafts require tools. The valuation of these used to be more difficult, however now most of those tools degrade over time which means there are two very easy ways to convert the cost of tools. The first is the "break cost" which is to buy the tool and use it completely until it breaks and the count up all of the finished items and the steps completed on the unfinished item. If a forging hammer forges 23.4 nails, look at the riln cost of a forging hammer, divide it by 23.4, and add that to the riln cost of nails. The second method is the "repair cost" which is a little less straightforward. For the repair cost, figure out how much damage is done to the tool by making one item and then figure out the time needed to repair that much damage to that tool. This is less straightforward because it involves the passive time of the tool heating up in the forge, the active time of repairing, the energy of repairing, and the passive time of cooling the item. In a "perfect" economy, the "break cost" and the "repair cost" should be equal. Both cost methods are arguably further complicated by materials properties because a steel forging hammer will make more nails than a copper one, and require less effort to repair than a copper one. That difference should be priced into the value of the raw materials, but still it's a complication.

Skills
Skills are kind of like tools that don't degrade. They have a riln cost (training) and a time cost (the total of the active time and passive time to practice skills up to the required levels plus the passive time to level up to the minimum level for a set skill treshhold (for example, making a crossbow nut has a one-time cost of 115,000 passive seconds of XP drip to reach the minimum level to have 300 skill points in metalworking, while making a small drill bit has a one-time cost of 43,000 passive seconds of XP drip to reach the minimum level to have 200 skill points in metalworking). Figuring out the value of passive time should be done with a different process, but how does one convert a one-time cost to a potentially infinite number of future crafted items (or unlocked boxes or killed critters). The traditional answer in economic theory is a discount rate (a tool used to value the passage of time, for example what is the price difference bewteen you getting 100 riln now or 100 riln tomorrow), but that gets quite messy and causes eyes to glaze. Easy solutions are to treat it as a negligible factor (discounting somewhere between 1/1000 and 1/1000000 would be quick and dirty), using some tags to hand-wave it instead (I'll cover these below), or converting the one-time skill cost into what it would cost to unlearn the skill (which would be measured in passive time and XP) though this still neglects the one-time cost in riln for learning the skill. There is already some method being employed to determine the value of one-time costs though, because farm animals don't wear out (at least, not yet).

Abilities
Like skills, these are able to be used limitlessly like non-degrading tools, and are possessed in limited quantity. Unlike skills, there is no riln cost. The same conversion tricks apply (calculate the number of levels needed to learn them and convert that, or use the passive time to unlearn the ability of 30 days).

Experience
Most things generate experience and only unlearning skills and death cost experience, and both of those only kind of cost experience. I would recommend converting experience gains as 0 riln, and experience losses as 0 riln, mostly because I think experience should be it's own separate valuation process (that is to say, once riln-for-time is all sorted and balanced out, look at all the activities that generate exp and do the same to whittle everything down to time and exp, but that's probably insanity).

Morale
Morale is a resource and based on food, soap, and room rental pricing it has a riln value. It should probably be priced into more things eventually, but it only adds value to random processes, and does that only randomly. I don't hate myself or anyone else enough to break down how it should be priced but its possible to do so, just... complicated. *dramatic sigh*

Health
Damage can be converted directly to a riln and passive time cost via physickers. I'm not crazy about this because it assumes that the correct valuation of damage is the one already coded into the game, but it's mighty convenient and easy enough for Rias to tweak that in a pricing exercise he's in control of, so it could be adjusted as needed to fine tune the machine. I'll just use the existing coded assumption for convenience.


Those are all the costs, now let's see how to apply those a little bit.

Pricing non-random processes
These are the easy bits. Weaving a bandage is not a random process, it takes a set amount of active time, I would estimate 55 seconds. This is a good place to start, because it also doesn't consume energy, it just takes a skein of thread and 55 seconds. So the riln value of a bandage should be the value of a skein of thread, plus the riln value of 55 active seconds. But what should the value of a skein of thread be? Well, that can come from farming (an uncertain random process), animal husbandry (a non-random process), or bushcrafted with sinew/cedar bark/thornleaf (a certain random process), so let's look at the animal husbandry. That's a one-time cost for the wool producing animal, plus passive time for it to produce wool, plus active time to clean up after the animal and active time to sheer the animal, plus active time cost to gather the feed for it, plus the riln cost of land rental, plus tool costs for sheering and farm cleaning equipment. Well that got complicated rather quickly, but most of those things are knowable (I just don't know them because time and incomplete knowledge of systems).

Pricing certain random processes
This is probably where the bulk of the pricing work is. It's a more interesting problem compared to non-random processes, but also takes some more work. As a most basic example, consider the value of a large branch. To forage a large pine branch one probably needs to roll of like 60-80, but it's probably a set target, at least for the first one. So let's say 60. Then for each 5 seconds of active forage time, I have a 40% chance to find it (rolling 60+) and a 60% chance to not (rolling 59-, assuming I have no bushcraft). It's possible I'll forage by pine trees for several minutes and find no branches, but it's not super likely. I'll say when the probability that I should have found one gets to 99% then it's good enough. So at 5 seconds I'm at 40%, at 10 seconds the probability is 0.4 + 0.6 * 0.4 = 0.64 (the probability we already found it (0.4) plus the probabily that we didn't find it in the first round (0.6), but find it in the second (0.4, thus 0.6*0.4)). At 15 seconds its 0.64 + 0.6*0.6*0.4 = 0.784, 20 seconds is 0.784 + 0.6^3 * 0.4 = 0.8704 (time to start rounding), 25 seconds is 0.922, 30 seconds is 0.953, 35 seconds is 0.972, 40 seconds is 0.983, 45 seconds is 0.990 and finally good enough. If we multiply the vector of times (5, 10, 15, ...) by the vector of probabilities (0.4, 0.64, 0.784, ...) and then sum the result we arrive at 11.92 active seconds is the value of a large branch. So that's the easy example, and using just about any software will make it much faster and more efficient and we can push it all the way out to 450 seconds where the expected value converged at 12.5 seconds. It's definitely mathematically possible to arrive at that, but it tends to be less quick and there's a lot of stuff going on so lazy and close enough is going to be good enough, especially when we get to more complicated examples like combat.

Combat is tricky to value properly, mostly because there are more random processes at work than just the one as in the example above (two random rolls for each attack, and on a hit the semi-randomized hit location). There is some non-zero probability that I one-shot a mob and then cost is 5 seconds and 5 energy, but probably it will be more complicated. I would either run an unseemly amount of simulations or calculate expected damage. Expected damage could just be converted to passive time and riln, as noted above, and then add in the total roundtime and energy consumed in the combat, converted appropriately. Simulations would probably be more accurate than just expected damage, but even the best simulation isn't going to account for differences in players (or differences in classes). For example, coding simulations for warriors vs non warriors would lead to higher value chests for non-warriors and lower value chests for warriors and that frankly seems wrong. If all damage to NPCs and PCs logged as well as NPC/PC deaths, that could potentially be leveraged instead, but it'd also be a lot to sift through. Actually doing this with some depth though would give you the expected cost of killing a 0-skill NPC mob at various levels of skill, and then that could be compared to the cost of killing higher skill mobs across the same range of PC skills, and that might give a better idea of relative costs of loot drop chests.

Pricing uncertain random processes
So these are outliers, and there probably aren't a lot of them, but these not even our wonderful dev Rias can know exactly how they'll pan out. Namely, the impact of weather on farming, because as I understand it the weather data comes from the real world and while it can be predicted, it isn't a known random variable like all the others in the game design. I also haven't done any farming, so I'm not exactly sure what impacts the weather has on farming. Consider setting seasonal minimums and maximums on temperature so farmers don't have random halts, or use historical weather logs to run simulations on farming for various crops based on past seasonal weather data. This would probably produce a weird outcome though, which is that market rates on crops would increase as simulations suggest they'll not be viable. For food crops, this kind of makes sense, produce is cheap in season and (prior to global market craziness) winter strawberries were pricey luxury good. It makes less sense for rimeveil and other non-perishable crops where they could just be harvested and held until summer when they'd sell for more. I also know it runs contrary to the current set up (where pumpkins sell for more riln in Octum), and it would make for a really weird gambling incentive where farmers who accurately predict unseasonable weather could get really good payouts. So yeah, farming is complicated and weird, good job.

Useful edge cases
Beekeeping and cooking are both great examples of passive time with one-time upfront costs, so those would be the things to look at when setting the riln value of passive time.
Physickers are a very simple non-random process for valuing skills, abilities, and roundtime. Tending NPCs pays 12 riln, and has one-time costs of 25 skill points, 1 ability, and recurring costs of 10 roundtime (less for more skilled physickers). Suturing NPCs pays 25 riln for one-time costs of 25 skill points, 2 ability points, and recurring cost of 30 roundtime. Taking the difference would give the simplified function of one-time costs: 21,000 passive seconds (the time difference between 1 ability point and 2 ability points), recurring costs: 20 active seconds, payout 13 riln.

Now the fun part
Thanks for bearing with this long and grueling post so far. The fun part is where you take a perfect economy that hands out the same payout no matter how you choose to spend your productive time, and deliberately bias it toward other activities. The easy way to do that (programically speaking) is by adding some relevant tags to items (or loot probabilities). For example, bushcraft shouldn't make you rich, so you tag that with a steep reduction in value. Making things that your home town really likes should be incentivized, like Shadgard wanting pumpkins in Octum. Additionally, tags like luxury goods, goods which were rightly pointed out in chat aren't really helping the folk of Shadgard survive, those could have higher than expected purchase prices when buying from the market relative to their expected sale prices when selling to the market (encouraging interested buyers to actively seek out sellers rather than just buying from the market). Combat carries risk and if you want to incentivize that, you can increase those payouts proportionally (remember that lockboxes can be gotten by less risky means than combat though). I would like to see items that sell for less doing so for mechanical reasons though. For example, have bushcraft and metalcasting produce goods that are cheap rather than average. A metalcast average iron skillet really shouldn't sell for less than a metalworked average iron skillet when they're both average iron skillets.

This post probably needs more work, but this is all I have time for today.
User avatar
Lexx416
Posts: 563
Joined: Wed Sep 06, 2017 6:14 pm

Re: On the valuation of time

Post by Lexx416 »

Loved reading this post! A lot of my issues with the profitability of game hunting boils down to time valuation. I already, personally, price any crafted goods higher than the price I'd traditionally get at market, because I'm taking into account my own time, which basically translates to my character's time.

I don't know that in an ideal world that time should go into base pricing. But given that this is a game, and probably played by more than a few people that don't have a lot of experience pricing their own work, I think it's probably a fine solution to automatically roll it in. This would probably help alleviate people under pricing.


That being said, in a situation like a metal worked skillet versus a cast iron skillet, I would probably as a PC still charge more for metal work, since it should take longer to make - regardless of the end product, my time (and by extension my characters time) is still being spent.
"You hear the Woses, the Wild Men of the Woods... Remnants of an older time they be, living few and secretly, wild and wary as beasts."
Post Reply