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.

prices

Feel free to share your thoughts on my proposal.

About these ads
This entry was posted in Main. Bookmark the permalink.

8 Responses to Building a “player” based economy cont’d

  1. Celonius says:

    Great post and grat blog. I’m an economics student and I think that the economy is very important to implement. Even Star Citizen economic model is not going to be as complex as EVE Online, it’s necessary to create a economics model that incentive players to being a merchant (legal products) or and smuggler (ilegal products) in order to earn the same or more money that if you do missions.
    In fact, if exist this incetive to be a merchant or smuggler there will be pirates that attacks this rol players and there will be mercenarties to protects this players.
    In conlcusion, if we wanna be real merchants, smugglers, pirates and mercenaries is necessary a good economic model that create the incentives to have these rols and create comercial routes.

  2. ChrisO says:

    Steam peak usage last 24 hours: 5.99 million users
    Steam anti-peak usage last 24 hours: 3.38 million users
    Usage pattern is a rough sine wave kind of curve.
    http://store.steampowered.com/stats/

    Eve Online peak usage last 24 hours: 46,942 users
    Eve Online anti-peak usage last 24 hours: 25,343 users (ignoring daily drop to zero users for maintenance)
    Usage pattern is again sort of sine-waveish, but a little steeper.

    I think it’s safe to assume that Star Citizen will have similar usage patterns. Given this, it seems to me that with your system the prices would be driven almost exclusively by time of day (and hence number of users trading).

    • ChrisO says:

      Sorry forgot to add link for Eve Online stats: http://eve-offline.net/?server=tranquility

    • citizenrife says:

      What makes you say that? As I said I simulated more activity over time. The system doesn’t care about the absolute number of purchases and sales, only the trend.

      • ChrisO says:

        Maybe I’m missing something because it seems so obvious to me… I’ll try to rephrase.

        Let’s say it’s peak usage time for Star Citizen at (random number) 17:00 UTC. As the time of day approaches 17:00, more and more people log into the server and start buying and selling things. The trend for number of purchases and sales goes up, and consequentially the purchase price for goods goes up, and the sales price goes down. This trend continues until shortly after peak usage time, when the prices end up absolutely terrible for trading.

        Then people start logging out, and fewer and fewer people are trading. The trend goes the other way, and trading profits improve.

        Seems like it would ensure the worst possible trading conditions for the maximum number of players. Not much fun unless you log in at odd times, at which point it becomes too easy.

      • citizenrife says:

        The idea is to not look at a trend that is long term enough to the point that would happen. If you look at the simulation the pattern you are describing does not happen. I scaled up purchases and sales over the course of the simulation. Prices still rise and fall despite the fact the total sales and purchases are going up.

        Of course further testing would be required under lots of different conditions.

  3. Honest Citizen Pete says:

    “For example, if some pirates set up a blockade on a fringe planet = exploit, bad”

    I completely disagree. Pirates holding a fringe world hostage is exactly the kind of thing we want to see in a living universe. Preferably paid by evil trader guilds! It is not an exploit, is is RP and should be rewarded! Rather the prices should move slowly, as the planet surely has some form of stockpile, perhaps taking a week of blockading to reach good profitability. Perhaps triggering a famine. A GM should then investigate the price spike not being met despite rising prices, realize there is a pirate blockade, start posting dynamic UEE missions for mercenaries to break the blockade or send in a few NPC as an official response to the the desperate calls for aid surely coming from the planet. Smugglers of course try to sneak past all the while. Throw up a spectrum dispatch as well, blockading a planet should not be some small thing that passes unnoticed.

    Either the blockade is broken, mercs get paid, honest traders make bank, pirates gnash teeth. Or the blockade holds, pirates make bank and get featured in spectrum dispatch with wanted posters. System security rank goes down/up as the UEE government squabbles over who’s to blame/acts forcefully by sending in a Carrier battlegroup to hunt down those responsible.

    • citizenrife says:

      I don’t think I said it quite that way. That is, blockade = exploit. I said that it can be too profitable. I agree that you want incentives for players to try to pull something like blockade off. It is an exploit if it is too profitable and players gain too much of an advantage by doing so. We are in agreement in that we both want players engaging in this activity.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s