Building a “player” based economy cont’d

Let me start this by post by summarizing and clarifying my last post.

I assumed that the crafting system will not be elaborate to the point that ships, ship upgrades, and commodities will be supplied by players, these things will be supplied by npcs. Given that they are supplied by npcs, how will the developers model supply? They either limit supply in some way to create scarcity or they make supply unlimited. If they create scarcity then some will players will be blocked from acquiring these items at times. Whether it is due to being priced out of the market or from not being in the right place at the right time. I argued that players will not find scarcity fun because it either leads to bad gameplay or imbalance. That is, players with more time to play or more real world money will have an advantage. Therefore, I concluded that unlimited supply was the best option. If supply is unlimited then prices must be set artificially. Trading will only be interesting if prices are dynamic. Thus we are left with trying to figure out how to set prices artificially but make them dynamic. I then promised to offer a solution.

I believe that the pricing mechanism should have the following characteristics.

1. Prices should depend on player actions. For example, if many players are purchasing tungsten on Earth this is a signal that the buy price is low and it should go up. If no one is selling tungsten on Synthworld then the sell price is low and it should be raised.

2. Prices should not be too predictable but they should not be too unpredictable either. If prices are predictable then trading gameplay will be boring. If prices are too unpredictable then trading will be analogous to playing a slot machine. Whether you earn profit or not will depend on luck and not player skill.

3. Prices should work in such a way that there are a sufficient number of opportunities to earn a profit. It should never be the case that the best players can do is to barely cover costs. Competition works to drive prices down. We do not want prices driven down to cost. If this happens then players with lower costs (i.e. players with free lifetime insurance and free garaging) will have too much of an advantage. We want the galaxy to be competitive but not to the point where profit cannot be earned.

4. The pricing system should not be exploitable. We want players to be rewarded for cleverness and skill but not too much. For example, if some pirates set up a blockade on a fringe planet that blocks merchants from making cargo runs to the planet, then prices on the planet will go up. The pirates can have their Caterpillars filled with goods orbiting the planet just waiting for the prices to go up enough so that they can land and unload their cargo holds and get filthy rich. If prices are allowed to get too high when the pirates create this blockade, then pirates will become too rich relative to everyone else.

5. The pricing system needs to scale well. The system that is put in place needs to function under many different conditions. It needs to function when there are many players logged in and it needs to work the same way during non-peak times.

There are probably more desirable characteristics but these are the major ones I can think of for now. Feel free to suggest your own.

My pricing system will work in the following way. I would track the total quantity of a commodity sold or bought on a planet over a fixed period of time. This period could be 10 seconds, 30 seconds, a minute, 10 minutes, or an hour or more. Testing would be required to find which length of time feels best. I would then keep a record of how much was bought or sold over several time periods. For example it could be over the last 10 time periods. I would then take the average of the 10 time periods. This average is called a moving average. If the amounts bought over the last 10 time periods were 7, 5, 5, 4, 3, 5, 8, 1, 6, and 5 then the 10 period moving average would be (7+5+5+4+3+5+8+1+6+5)/10 = 4.9. I would also calculate a moving average for a shorter period. In this example I will do a 5 period moving average. Since the last five amounts were 5, 8, 1, 6, and 5 then the 5 period moving average would be (5+8+1+6+5)/5 = 5. In the case of a buy price, if the 5 period moving average exceeds the 10 period moving average then the price will go up by 1. If the price was 60 then it would become 61. The price stays at 61 until the end of the next time period. The price goes up because the shorter period moving average exceeding the longer period moving average means that purchases of the commodity are trending up. It means that more players are deciding that 60 was a good price so the system raises the price to see if 61 is a good price. Price would go down by 1 if quantity bought is trending down or if the two different period averages equal each other. It would be the opposite for quantity sold. If the amount is trending up then more people are selling at a given price so the price will go down by 1. If it is trending down or neutral then price will go up by 1.

I think that this system I have described up to now achieves objectives 1, 2, 3, and 5. Prices respond to what players are doing. If no one is purchasing then buy prices go down. If there are no sellers then sell prices go up. If too many players begin to buy or sell then prices react appropriately. Prices change but only incrementally. If the length of the time period is set appropriately then prices are not too unpredictable. But the day-to-day profitability of runs will change. You will need to pay attention to prices. There should always be opportunities to earn profit. If no one is purchasing because they do not see any way to earn a profit, then buy prices will go down and sell prices will go up until the gap in prices is sufficient so that profit opportunities are created. Since the system does not care about the absolute quantity being bought and sold, it only looks at the trend, it should scale well with the amount of players. The only objective that has not been met is number 4. To prevent exploitation there should be price ceilings and price floors. There should be a limit to how low a buy price will go. There is a believable reason for why this would be the case. These commodities cost something to produce. The producers are willing to go only so low when selling their goods to you. There should also be a limit to what a planet will pay for a commodity. This is believable as well. People on the planet have only so much income and it is likely there are substitutes for the good you are selling. These limits on prices ensure a maximum possible profit for a cargo run. It is likely that player competition will make it so that this maximum is rarely binding. It is still good to have it in place to avoid exploitation.

The following graph depicts price data from one simulation I ran in excel using this system. The blue line is the buy price on an exporting planet and the red and green lines are sell prices for two different importing planets. The simulation was run over 10,000 time periods. The minimum buy price was set at 40 and the maximum sell price was set at 120. I assumed that players would not purchase unless they saw a gap of 30 or more between the buy price and the sell price. I also assumed that they would not sell unless the gap in price was greater than 20. I assumed this to simulate players knowing that they need a gap of at least twenty to break even or just barely come out ahead. The gap of 30 to determine whether they purchase or not was to simulate that they will only purchase if they see some profit in it. I also scaled the quantities being purchased and sold over time to simulate more and more players participating in trading over the course of the simulation. It did not appear to change the system in any way. I feel like the movement of prices was sufficiently chaotic to make trading interesting.


Feel free to share your thoughts on my proposal.

Posted in Main | 8 Comments

Building a “player” based economy.

For my inaugural post I would like to examine an excerpt from a Reddit AMA session with Chris Roberts. A fan asked Chris how he would deal with in-game inflation and how Star Citizen would keep items from becoming out of reach to normal players. Chris answered with the following:

“Players will have the ability to trade amongst themselves and their will be supply and demand on goods. I think most MMOs have failed int he past because they only simulate PART of an economy and so you have no “drain” from the money supply like you do in the real world. In SC you will have to pay landing tariffs, you’ll have running costs and will have to pay taxes on the goods you sell (in the more civilized parts of the universe). These taxes pay for the infrastructure and law and order (just like int he real world). By properly simulating who a real economy operates (as there is always a cost to services but almost no one models that) the hope is to avoid some of the issues that you’ve seen in other MMOs.
One caveat. This is my theory – we’ve yet to test it out yet :-).”

Another fan responded to his comments by saying:

“Actually a lot of MMO games do have quite a bit of drainage systems, but the in game currency generated (from monster kills + game exploitation) people farms usually high amount of in game currency, more than the drainage can cope with. Yet, at the same time you don’t want to make insanely expensive drains that will prevent the players from ever upgrading components, and saving up for the next ship. It appears the better question is do you have plans to set a system cap to Max Amounts of which each each item can sell for, or max cap on the character “bank account” can hold?”

Chris finally closed out the discussion with:

“Too early to say – it will come out of the wash in the closed BETA for the initial backers. The goal is to make it as realistic but as fun as possible.”

Many good points were raised by the fans and Chris gave some ideas that sound great. However, I believe that ultimately the ideas he offered here will not prove viable. Let me explain.

A full-on player based economy in Star Citizen would require that players make up the supply side and the demand side in the markets for goods, items, and ships. This means that players would have the means to produce and sell ships and ship upgrades as well as goods. Chris has said that there will be a crafting system in Star Citizen but I believe he hinted that it would not be at the level of a game like World of Warcraft. Therefore, I assume this means that players will not be producing and selling ships, upgrades, and goods. Players must acquire these items from NPCs at least initially. I am certain they will be able to resell these items to others players if they wish, but they will not produce these items.

Given that these items are supplied by NPCs, how will Star Citizen model supply? There are three options that I can think of:

  1. Supply is fixed. There are a limited number of these items available in the game and players will need to compete to acquire them.
  2. Supply is unlimited. Players can purchase as many of these items as often as they want as long as they have the credits to do so.
  3. Supply is somewhere in between. A production cycle could be simulated where a certain number of these items become available at various time intervals. The NPCs may run out of supply but only temporarily until the next batch is released.

Personally, I do not like options 1 and 3. I do not like option 3 because anything that makes a player wait to have fun is bad game design. Imagine walking up to the commodity trading station to buy some goods to haul off world with the intention of earning a hefty profit. You activate the station and the screen reads “tungsten unavailable”. Having experienced this before you know that at some point more supply will be released, so you stand around and wait. The longer you wait you become bored. You decide to hang out in the bar for awhile to kill some time. You talk some people up for 10 minutes until your friend tells you in chat that tungsten has been released, get to the station now. You run over to the station, activate the switch but yet again the screen reads “tungsten unavailable”. You missed your window, you were too slow. Everyone else bought up all the tungsten before you could get there. You become frustrated and find something else to do. Under option 3 I envision players waiting around commodity kiosks to buy their goods like mice waiting for food pellets. This does not sound fun to me. Regarding ships and ship upgrades this system would work for awhile. Demand would exceed supply and players would need to compete for what is available right now. As more items become available as time goes on, competition lessens until most people have what they want. Supply would exceed demand and ships and ship upgrades would no longer be scare. Supply would be virtually unlimited.

Option 1 would lead to intense competition between players for ships, upgrades, and goods. Players that can bid highest will acquire these items and if the supply of credits is not kept in check inflation would become rampant. Players that have less time to play the game would fall behind and would feel like they need to pay real world money to keep up. Inflation could be controlled if Chris’ idea about landing tariffs, running costs, and taxes kept the amount of credits in players hands in-check. I imagine that many space sim fans would like option 1 if Chris’ idea worked. They would love the intense competition for ships, upgrades, and commodities. It is my opinion that his idea cannot be implemented in a way that is fun. The only way it can accomplish the goal of keeping the amount of credits in the game limited over long periods of time, is if it charges you in-game fees while you are not playing. This is due to the fact that while you are in game everything you do will earn you credits. For every mission that you fly, cargo run that you make, or ship that you raid the benefit must exceed the cost of doing so. Otherwise, you will not engage in the activity. No matter what system of fees you come up with, players will figure out how to earn a profit if it is possible. If it is not possible then no one will be able to earn credits, the game will not be fun, and no one will play. The longer the game is played the more wealth that players will amass. The only way to shrink it back down is to deduct fees while they are not playing. I believe that this will not be a popular idea. Imagine you want to save up for a level 3 shield upgrade that costs around 100,000 credits. The cost is high enough so that you can not earn this in one play session. You play for 4 hours straight and are able to earn 50,00 credits. You log off and go to bed. Later on, you get slammed at work and are not able to log back in for another week. When you come back your account has shrunk to 35,000 credits. How will this make you feel?

Since I have decided that option 2 is the only viable option, we are presented with another question. How will prices be determined given that supply is unlimited? Real world markets determine prices through the interaction of supply and demand. These real world markets are predicated on the fact that scarcity exists. Without scarcity there is no market. People can just take what they want when they want. It means that the prices must be set artificially. For ships and ship upgrades I do not mind this so much. I like the fact that I know I can purchase a level 3 shield upgrade for 100,000 credits at the part dealer. I know how much work I need to put in to get the item I want. If I choose to venture into the second hand market and purchase from another player, I could possibly purchase the item at a discount.

I do not like fixed prices for commodities. It would make the trading gameplay very boring. If I know I can purchase tungsten on Earth for 30 credits per unit and I can sell it for 60 per unit on Synthworld and I know what insurance and fuel costs are, then I can calculate my profit per hour. If players can do this simple math for all goods and locations, eventually the most lucrative runs will become figured out. Everyone will make the same runs all the time. It will become monotonous and boring. It would be a grind. You can combat this by setting prices so that all runs return the same amount of profit per hour. Different runs would be viable. You would get a change of scenery, but there would be no decision making involved in trading. No matter which run you make, you will make the same amount. Commodity prices will need to be dynamic but artificially set. I have an idea for how to accomplish this but it is very technical so I will explain it in my next post.

Posted in Main | 11 Comments