Notes on the Market and suggestions for improvement


  • Culture

    > The center may have a concentration of "active" market agents, but because those agents are developed they don't import resources, they only export.

    This is simply not true. There are plenty of buy orders open in the center, and lots of players use the market to balance resources. It may be more true for your "region" (SUN does have a below average number of buy orders for an alliance) but it's not true for all of the "center" rooms. I suppose it also depends on how big you consider a region.

    > From a trade perspective, the best circumstance right now is to actually be a developed player on the map edge since that puts you closest to your "clients".

    This is assuming you're an established player. The new players *are* the "clients"

     

    > It's the same problem as in the real world. If there were no trade barriers and all trade was completely free, the well developed efficient economies of the world would dominate the market and drive the less competitive economies out of business. We see this happening in many free trade areas such as the EU.

    Didn't you say not to bring politics into this?

    Joking aside, I think you're missing a huge point here. Having those developed efficient economies is exactly what the new players need. Until they are at GCL7 at a minimum they can not harvest enough stuff to create all their boosts, which means they have to buy them. They aren't trying to compete on the market in the same way players who have real economies are, they're trying to use the market to supplement the minerals they're missing so they can actually build stuff. This also isn't really peoples livelihoods, so if their profits aren't high enough it's not like they're going to "go out of business" or starve in the streets.

    For those reasons the transaction fees suck. They make selling energy basically impossible since the only other people they can sell it too don't have enough credits to buy it. Selling minerals to other players without having to spend a ton of energy isn't possible because those players have sources that are closer to them or just throw up buy orders to bypass the fees.

     

    >If you remove the "regional model" and make the game market global, the only effect is that a few efficient economies (top players) will dominate the market. Top players have drastically lower production costs. They use fewer, cheaper creep parts and less CPU to "produce" more minerals. They will always be able to offer lower prices than the rest.

     

    They also have the highest demand for their own products. Most top players are focused first on their own XGH2O supplies and then on the market itself.

    I do agree that removing the regional model completely would have some negative side effects, but I think in it's current form it is way too regional.



  • > I do agree that removing the regional model completely would have some negative side effects, but I think in it's current form it is way too regional.

    Fully behind you on that one. Adjusting the transport costs to increase trading volume makes a lot of sense. The market is indeed "too regional" right now. I'm just not in favor of completely removing the transaction cost. I feel the problem we have right now is just about how big the tradeable area is.



  • @Atavus, Yes I understand that it wraps. Still a Regional Market which is BAD for New Players.

    How will a few players "Dominate the Market"? If players have the same fees, then there will only be players that do more or less transactions. That is not dominating the market, it is giving the market liquidity. It would also make the Market prices more reflective of the costs to produce (energy, CPU, time, etc).

    Now with the Distance Penalty, the transaction fee is more of a factor in the Net Cost of the Order than what it actually costs to produce it. Which is not a good market factor.

    Another problem that is not being commented upon is the nature of NPC Orders in the Market. Based on the code, the NPC orders that are for the highest value are farther away from my location (specific example to the general problem). Therefore, they are cost prohibitive because of the Distance Penalty. Again, what is the thinking that Subsidies should go into a specific Region and not be available to everyone equally? The code in the Game is once more giving Old Players a benefit and therefore taking it away from New Players.




  • Let us not forget that the "Regional Model" has TWO parts that are a problem ... The Distance Calc AND the Tie Breaker for closer to the Order.

    The combination of these makes for the New Player being at a disadvantage. Period.

    Again, this issue needs to be viewed through the lens of what is best for New Players... or the whole game will collapse into just a few Old Players hanging out and it will eventually just implode.

    Every effort MUST be to cater to the New Player. At every turn, they MUST see that the Game is slanted to their advantage in some little way. Ties go to the New. Power Sources are spawned closer to New Players in some way ... so they can have a better harvestability and sell that on the Market to old players. There needs to be a symbiotic relationship with Old and New Players or the Game itself will just wind up with a small group. And then one by one they will leave also.

    The Developers are the only ones with direct access to know (I guess players could track it by scraping data) how many new players start then quit. In the "Real World" that is called Churn. If you do any research on Churn in a Subscription business (like SaaS aka this Game), then you will see that a Churn of just 5% per month means that the business is DOOMED. For a good explanation see: http://sixteenventures.com/saas-churn-rate and http://sandhill.com/article/saas-providers-growth-requires-proactive-customer-retention/ 

    So back to the Game ...

    Here is the Developer's problem stated simply: If another player (for any reason) gets to complete a Market Order (wins the Tie) AND pay less to do it (Closer is less Trx Cost), INSTEAD of ME (the new player), then it is "not fair", certainly from the losing player's perspective. If you do not give each player an "in-Game reason" for the un-fair programming then the Developers are being "un-fair by design". On the other hand, if the Developers make the intention, stated and in the code, to give the advantage to a specific player type (as in New Players, in this case) then maybe it will be OK. New players will see the perspective of being appreciated and Old Players will understand and know that it is best for them as well to have more players in the game.

    There are two fundamental goals with the Market: 1) exchange Minerals to help with the player's game development (boosts), and 2) the Token purchase.

    The second objective, with the rules as they are currently implemented in the code, means that the Old Players are the only ones that can possibly get that Token and ALWAYS WILL BE. Someone of you that is smarter than me can do some Math.calculations and figure out how many Sources and Energy harvested and time it will take to generate the 2.5 Million Credits to get a Token. But the answer is obvious that only a VERY small number of the Old Players will achieve it. Also, it will take an active Market made up of thousands of New Players to generate the transactions needed. Or the Developers will just make NPC terminals have enough transactions to let those same Old Players get a Token every now and again.

    This game needs to grow to be successful. At every turn, the Developers MUST cater to the New Player: In the Market; In the CPU time available (again slanted to the Old Player, another topic); In long-term Source availability (rooms able to be defended with Towers because of GCL, another topic); Etc.

    There is only one question which needs to be answered in each decision on which way to do something in this game: "What is best for the New Player in this case?"

    It is clear that the answer for this discussion about the Market is, "No Distance Transaction Penalty and Ties go to the lower GCL".

    IMHO.

    BTW, What is the Churn for Screeps? 😉



  • Maybe we just need a different kind of equation.

    I gather that the penalty for trading over medium distance is exorbitant, but we want to have differentiated areas of competition to make the game interesting and make it difficult for one player to dominate by virtue of their size / efficiency / market manipulations.

     

    I recommend something like this "logistic curve" aka the natural population curve: d => 2 / (1+150*Math.exp(-0.25*d))

     

    Based on tedivm's sheet here's the result: https://docs.google.com/spreadsheets/d/1x0eHimCDwwcbEduv43JE56APGhlqCIon5wkcLOO6NY0/edit?usp=sharing

    EDIT: of course this is pretty close to what we have today, but that's just to illustrate the options. 

    TL;DR - pick a radius for free/cheap transfers and an efficient economy, then tune this to the desired maximum fee for long-range transfers


  • Culture

    I like the idea of a maximum fee (or a point with increases so minor they're negligible). The way this graph jumps lets people participate in both a regional and an international market, but with the international market fees not reaching insane numbers. The idea that its beneficial to trade with people close by is fine, but the "international" market shouldn't be so expensive that it's impossible to participate it.

    There's another reason why distance based transaction fees benefit new players. Most players when searching going to filter orders then pull in the lowest. If distance wasn't a factor they would just grab the lowest price, and in cases where two orders have the same price they would most likely grab the oldest order because that's how the data would get sorted by default. This means players that have old orders, which they keep extending, would have an advantage. Now in that same circumstance the people who have the advantage are the ones closer to you.

    So yeah, adopt a formula shaped like K_C's but with saner constants, or just stretch out the current equation to flatten it out a bit and we'd see a huge improvement.

    As for the credits instead of energy- I think it would be cool to make that an option, rather than force a switch from one to another. That way new players can pay with energy and get credits, and players with credits can actually purchase energy without it being useless due to spending more energy to get the energy than we get back.


  • Dev Team

    OK here is another idea of different approach. We redesign the entire regional factor and move the distance penalty on the order’s owner party rather than dealer party.

    We create a new order parameter called “order coverage“. By default it is equal to 100 rooms range (entire map), but you can set it explicitly by specifying in Game.market.createOrder as the last attribute:

    Game.market.createOrder(ORDER_SELL, RESOURCE_GHODIUM, 9.95, 10000, "W1N1", 25); // coverage 25

    Coverage is visible in orders list, via both API and UI. When you try to deal with an order with coverage not enough to cover the range between your terminal and the order terminal, you get ERR_NOT_IN_RANGE error on Game.market.deal method.

    The important point is that coverage changes the order creation fee. For example, fee% = coverage / 10, i.e. 10% fee by default for coverage 100, and 5% fee (current) for coverage 50. Coverage 10 goes without fee, giving an opportunity to create some tiny starter orders even to players without credits.

    So now the order owner should decide what market they aim at - global or local - create the order accordingly and pay their taxes. Other party (the dealer) should change their code to detect the coverage parameter, but they will not pay any energy cost anymore.



  • A penalty by another name (or calculation) still stinks.

    IF the Game needs to charge a "Tax/Fee" to make the economics of the Developers better, then just say that. 

    If not, then release the angst over the "Regional Model" or as I call it the New Player Market Penalty.

    There is currently a 5% Credit cost to place an order on the Market.

    Why not just make a simple 5% Credit cost to complete the other side of the order.

     - A Buyer [player purchasing from a createOrder(ORDER_SELL,...)] will pay 105% of the total cost of Units*Cr Price of Mineral. This Cr amont must be in the Terminal to make the deal.

     - A Seller [player selling to a createOrder(ORDER_BUY,...)] will receive 95% of the Units*Cr of the Mineral.

    Simple and no inherent Penalty to any players. All are equal and participate in the Market equally.


  • Dev Team

    This change is not about increasing the tax, but about getting rid of buying energy issue and lowering the coding entry barrier while keeping the fun aspect of the regionality. The market will lose huge part of its fun if it becomes plain equal.



  • Good statement, but is it true? Artem has been advocating for the Regional Model consistently. I have been advocating for Equal Access consistently.

    Everyone has been saying the system is flawed in some way and should be changed. 

    Let's check that theory here .... If you think it is "FUN" to have a New Player Penalty/Regional Market, then post here. Please put one of these votes so it is easy to see which side of the issue people are pro/against.

    +1 for New Player Penalty (aka Regional Model)

    +1 for Equal Accessible Market fees.

    Seriously, put it in your next post at the first line so we can get a show of hands.

    @Artem is +1 for Penalty/Regional

    @XyzzyPrime is +1 for Equal Access



  • Artem: (the dealer) will not pay any energy cost anymore

    At first I'm really hesitant to move the cost of doing business to the offer, but I think this greatly simplifies the mechanics of trading.

    When the dealer pays the transfer cost the true price of the product is abstracted away from the market. As well, the true price is constantly changing with the value of energy.

    The only downside is that Terminals which are offering sell orders must hold a larger volume. This is the same cost as today's buy order dealers.

     

    It might be that the formula change is less important than changing who pays the transfer fee.

     

    XyzzyPrime: A penalty by another name (or calculation) still stinks.

    But, is this true?

    +1 Regional Model (Against Endgame Market Manipulation)


  • Culture

    I really dislike this proposal. If anything it makes the problem we're complaining about worse, not better. This would make markets far more regional, and new players that are further away from established players (which tend to export lots of things) would be pretty much screwed by this.

    We keep talking about game mechanic changes, but I really think the issue is simpler than we're making it out to be- just tweak the formula so there is a max transfer fee that is based on the world size so it'll adjust dynamically as it grows. 


  • Dev Team

    Yet another idea - change the transaction cost to the following formula:

    energy_cost = resources_amount * (1 - Math.exp(-range / 30))

    It creates the following graph (dotted line - old, solid line - new):

    Thus energy trade will never be negative, but less and less reasonable as the range increases.



  • OK ... let me ask this, @Artem ...

    What makes it "fun" for a New Player to pay more and lose trades to a Regionally Advantaged Old Player?

    I am drawing a conclusion that this Game, as IRL, is about keeping the poor players poor, while the Rich Players get Richer.

    If Rich/Old Players have ANY advantage then that is what happens. The gap widens.

     


  • Dev Team

    We're not going to remove the regionality factor, let's please stop this discussion. Logistics, geopolitics, geostrategy, local areas of influence are all important aspects of this game. If we were to remove market regionality, we would have to remove creeps' time to live, claim range limit and all other map related mechanics. It'd be more productive if you commented on the proposed ideas rather than repeatedly argued about your own.



  • "It'd be more productive if you commented on the proposed ideas rather than repeatedly argued about your own."

    I could not have said it better myself.



  • > 1 - Math.exp(-range / 30)

    This is a good proposal for softening the cost of global trade. It does not make really cheap regional trade markets and it doesn't encourage players to daisy-chain transfers to do distributed trade.


  • Culture

    I'm also super happy with the new formula. I feel like it would solve a ton of problems.



  • +1 new formula - I think it addresses the primary concerns people have. The evolution of the market following the introduction of this new formula should be carefully monitored.

    +1 regional markets

    -1 XyzzyPrime for being unreasonable 😛


  • CoPS

    I quite like the proposed equation. ~0,5 cost @ 25 range is a really sweet point to me,

    As a random thought, what effect would making different tiers of boost / resource have different transfer costs be? Atm the t1 boosts, do not see much trading at all, even for new players. If they were to have lower transfer fees, or a wider transfer range, than t3 boosts, it may make them more palatable?

    On the whole I really like the idea of regional markets, provided that each region has equal maturity (a regional market of only new players would sort of suck).