I recently started playing City of Heroes again to check out Going Rogue. One of the first things I noticed on coming back was that various changes to how money is earned, the merging of the markets between heroes and villains, and the growing number of max level characters with nothing better to do than farm currency meant that my assumptions about how much it should cost to “gear up” a character were out of date. I started reading some market strategy guides out of self defense, and found them very interesting… primarily in that my assumption about how the player to player market worked was fundamentally incorrect.

But first, keep in mind that the dominant player market system in MMOs is World of Warcraft, which has an auction system. Unless it’s changed a lot from when I played a few years ago, it works a lot like eBay. A player lists an item along with the minimum he or she will accept for it, whether he or she is willing to let it go for a “buy it now” price, and how long the listing will be available. Players see the current winning amount, and know that, if they want the item, they will have to beat this amount and hope no one else comes along offering more money before the listing expires. Impatient players can spend the “buy it now” price and get the item immediately, but for potentially far more than it could be had if they were willing to wait for the auction to expire. Players have to rely on 3rd party sites or their own research to track what the current average sale price for the item is, or, if it’s a common item, they can simply bid on the one that’s cheapest at the moment.

Most MMOs that I’m familiar with use a similar auction system, though often less polished or complete than WoW’s.

City of Heroes is different, in that it uses a consignment system. Players that want to sell an item simply list it and the minimum price they are willing to accept for it. Players that want to buy an item select it from a list of all available items and enter how much they’re willing to pay for it. For slow-moving items, there may be only one person buying or selling at any given time. If you’ve listed an item, as soon as a buyer requests it at a price equal or greater than your asking price, it’s sold and you receive the amount spent. If you’re a buyer, as soon as someone lists your requested item for equal or less than you’re offering, you get it for that price. There’s even a list of the last five sales to show both parties what the going rate is for an item (this is far more accurate for rare items than for common ones: if an item is selling in huge amounts, the last five merely displays a constantly shifting snapshot of current demand, and can easily skew the perceived value of an item by a single person paying too much for several of them).

What I hadn’t understood about the consignment house until reading the market threads was the method the system used to match buyer and seller when there are a lot of bids and/or a lot of sellers. When something only has 1 buying or selling, it’s very easy to (barring listing fees for the seller) figure out through trial and error whether the seller is willing to sell for the price the buyer is willing to pay, even though the transaction is completely anonymous. Things get more complicated when things are selling briskly: you may have to bid 1,000 to immediately get something that has a thousand for sale and usually goes for 100. Meanwhile, you might be able to bid 20,000 for something currently selling for 100,000, and get one in a few minutes. From a seller’s perspective, you’ll sometimes list something for what appears to be the going rate, and fail to sell it for hours or days even though the sales are still turning over at roughly the rate you listed, sometimes lots more, and sometimes you’ll list something for a pittance and receive way more than you expected to get.

I had assumed that there was something complicated going on with first in/first out based on time of listing being compared to amount offered. The common wisdom on the forums is that it’s much simpler than that: bids are sorted from highest bid to lowest, sales are sorted from lowest list price to highest, and the two are paired off until the highest bid no longer is enough to get the lowest list. If there are three people bidding 5,000, 4,500, and 4,000, the item listed at 1,000 will get 5,000, the item listed at 3,000 will get 4,500, and the item listed at 5,000 will get nothing (because the remaining 4,000 bid is insufficient, even though it would have matched perfectly to the original high bid). This goes a long way to explaining how there can be certain items that will have hundreds of the same item both listed and bidding: high bids don’t peel off the high list prices until all the cheaper items are sold. Meanwhile, theoretically you can list an item at 1 and get the maximum amount currently on offer (though you may have no real idea how much that is).

I’m genuinely curious why the market was designed this way. If I’d set it up, as mentioned previously it probably would have had something to do with priority: earliest listed item goes to the first person to bid at least that amount. Another way to do it would be to try to match highest to highest: If there are items listed for 5,000, 4,000, and 3,000, a bid of 4,500 takes the 4,000, then a bid of 4,000 takes the 3,000, and, finally, someone will have to bid over 5,000 to take the 5,000. Either method would seem to make it less likely that the situations of lots for sale and lots bidding would happen, but I wonder if the current method doesn’t have advantages. My first thought would be that the load on the server/database is less severe by doing a simple sort of two tables and matching the top rows; anything even slightly more complex might add up over the presumably millions of transactions hitting the system each day. Another benefit is adding in a risk vs. reward scenario: a low-listed item might sell very quickly for the going rate, but just as easily might sell for a pittance if the demand suddenly drops.

To sum up: City of Heroes has a very unusual player to player market system, and I’d be interested in seeing more games attempt a consignment system rather than an auction system, possibly with different rules for matching players to see what variations do to the overall model.