Tuesday, April 28, 2015

Making a better market

I want to analyze "markets" in MMORPGS in an effort to design a better one. I'll point out specific traits of some games, but I'm not going to go through the list, review style. I'm more interested in the player's needs and motivations.

First up, you need a center of commerce. Whether that is an "Auction House" or a open air market in the center of town or whatever, you need a place players can go and quickly find everything they need, and sell the stuff they have. You should have all items of a single type in a single place, be that a single vendor or a single interface to a larger market system. You should not have to go to 5 different places to see all the offers for a single item you want. Selling your items should be easy and you should be able to get a fair price for them. Again, you should not have to go to 5 places to see all the offers to buy your item.

Ok. Now let's look at the players. Most players just want to buy and sell their items quickly, easily, and for a fair price. Some people just want to get rich. Ok, that's fine. If you can accommodate these players while not harming the first group, that's all good. But if there is conflict, the first group is deferred to. Lastly, there is a group that simply desires control over a specific market. These people are toxic to both of the other groups in some way, and should be discouraged.

Before I continue, it's important to clearly specify why the “control the market” group is being treated so roughly. There are two ways to “control a market”, monopoly or flooding it with cheap goods. Monopolists are easy to stop, but there is nothing you can do if someone is dedicated to flooding a market, and they have the ability to do it. A flooded market is great for people trying to buy the goods, but is terrible for people trying to sell their goods. You can slow them down, but not outright stop them.

Here are two examples of that. Someone wants to control the raid flask market in World of Warcraft. So they mercilessly farm herbs (Or use a bot to gather them.) then undercut everyone else, possibly even to the point of selling the flasks for less than the herbs would have sold for by themselves. A counter to this would be to put in a way to “salvage” the crafted item so it can be converted losslessly to it's component parts. Of course, if the component parts are being botted into the same state, the botting would have to be addressed as well. The second example, also in World of Warcraft, involves crafted armor. You craft them with components made with daily cooldowns in your Garrison, but you can have 11 Garrisons on a server, each with their own crafting buildings. The counter to this is to limit a player to one Garrison, or to one crafting building of the same type across all Garrisons and one cooldown of the crafting mat per account. Of course, if the player starts multiple accounts to have more crafting buildings and cooldowns, there is nothing you can do about it. Some people are just that driven by the need to control.

Back to the market. The next thing you need is a known normal price for every item. Eve Online does this by region, with an average transaction price for every item across that entire region. When you attempt to buy or sell an item you see the current average price. Very nice! World of Warcraft is the exact opposite, you see the “vendor price” that was assigned to it when the item was added to the game, which is almost certainly absurdly low. You are then faced with a complete lack of knowledge about the item. The exception is if you're a dealer of that item, or if there are enough of them in the market.

Next, there is the problem of unlimited craftability. If your system allows you to make as many of an item as you want, and doesn't allow that item to be salvaged back to it's component parts, then the result is markets flooded with those items. The way to make this even worse is to require the player to make a lot of items to increase their crafting skill. I like crafted items. I think most if not virtually all items in game should be made by the players themselves. I think it's absurd that some npc with the apparent intelligence of a rock living in a cave somewhere can miraculously have access to equipment superior to anything your civilization can produce.

Last, the interface. I want to have a search window that lets you select two categories, like “Armor” and “Leather”, then a text search that refines further. (Use the text search at any time if your search phrase is specific enough.) Then each item is in the form:

Item name Average sale Qty Best buy price Buy button Display details

Item name is also a mouse over that shows a tool tip detailing the useful features of the item (stats, armor values, materials it's composed of, etc.) Average sale is the average of recent sales of that item. Qty is the number of them currently for sale. Best buy price is the the price of the lowest price item in the sell list, Buy button pulls up the “Buy” dialog, where you can buy the cheapest or set up a buy order, and the Display details buttons pulls up the list of recent sales that the average is based on, the lists of buy and sell orders.

So far, this is like Eve Online, but with a slightly different interface. And shorter orders.

To sell an item, drag and drop it into a box at the bottom. That pulls up the sell order interface, where you select Start price and price rate drop. All sales have a 48 hour duration, and can be extended for 24 more hours after the first 18 hours. You can extend them forever. The cost to put in the sell order is 1/4% of the item average price and to extend the sale, 1/4%. You pay a fee of 5% when the item sells. If you cancel or allow the listing to expire, you get the item back. The defaults are Start price is average price + 10% and the start price rate drop is 5% every 24 hours.

When you extend the sale, which you must do once a day if you want the item to stay listed, you can either “let it ride”, reset to default (!0% over, 5% drop per 24 hours.) or enter new values. You need to actively monitor your market orders by checking in on them once a day. (Note: If you want to just change the settings without extending the sale, you can do that any time, but it still costs you 1/4%.)

Buy orders work similarly. Except the default is 10% under average value and drift is 5% per 24 hours up. Otherwise, the same rules apply. When you put in a buy order, the maximum possible sell price is taken and goes into escrow. There are no fees for buy orders.

If a buy order and a sell order drift into each other, a sale is automatically made and both orders are removed from the market.

If you're coming in blind and just have an item to buy or sell (The majority of people.) the best strategy is just accept the defaults and wait up to 48 hours for a sale. Of course, most buyers want their item now, and will likely accept the best current price if it's not too far from the average. If you're selling items for a living, and you know the market, you can put in carefully thought out initial values and then extend the order once a day for the duration you expect it to go.

If you start a buy or sell order with the defaults and it doesn't transact, then the market is either stale (Very few buyers.) or it has drifted off average too far. Resetting to defaults with adjust to the new average and extend the order.

If the defaults are tuned right, and the fees tuned right, the result should be a system where the majority or people trust the “average price” and either buy / sell at best price or put in a contract at defaults. The result should be a self tracking average price tracker that is difficult to manipulate.

No comments:

Post a Comment