Hot answers tagged

155

Fees & Taxes One common way to deal with this in real economies is to add a periodic fee that redistributes hoarded wealth back into the community. A few forms this can take: Wear on gear items that requires they be repaired periodically, so even a player who's hit a steady state and buys no new items still needs to pay NPCs (or other players) for ...


91

You can use int, and consider everything in cents. $1.20 is just 120 cents. At display, you put the decimal in where it belongs. Interest calculations would just be either truncated or rounded up. So newAmt = round( 120 cents * 1.04 ) = round( 124.8 ) = 125 cents This way you don't have messy decimals always sticking around. You could get rich by ...


83

There is a critical flaw in your system. You assume players will play forever. In the real world, this is the case. "Players" keep "playing" the game until they die, and then their remaining wealth gets redistributed to their heirs. Not so in an MMO. Players play until they get bored. Then they find a new game and forget about yours. Then their wealth ...


66

Okay, I'll jump in. My advice: it's a game. Take it easy and use double. Here is my rationale: float does have a precision issue that appears when adding units to millions, so though it might be benign, I would avoid that type. double only starts getting problems around the quintillons (a billion billions). Since you are going to have interest rates, you ...


59

The problem with this system is that it just fights the symptom, not the cause. Inflation means that money loses value, because players have too much of it. It's not the items which become more expensive, it's the money which becomes less valuable. When nobody needs money, they won't sell anything to the trading house (I won't call it "auction" house, ...


27

Publilius Syrus clearly stated it already in ~100 BC: Everything is worth what its purchaser will pay for it. Adam Smith explained why: prices represent an intersection of supply and demand curves. You ignore the basic fundamentals, with a result we know all too well from failed non-capitalist economies: there's simply excess demand or excess supply. What'...


21

Gameplay reasons Many players would like to have online games as a fair competition where the most skilled (or most determined) players are most successful. Other players buying their way to success by using money they acquired outside of the game could be seen as detrimental to their game experience. Economical reasons Many games have an item mall as one ...


21

Floating point types in Java (float, double) are not good representation for currencies because of one main reason - there is a machine error in rounding. Even if a simple calculation returns a whole number - like 12.0/2 (6.0), the floating point might wrongly round it (due tho the specific representation of these types in memory) as 6.0000000000001 or 5....


17

For small scale game and where process speed, memory is important issue (due to precision or work with math co-processor can make painfully slow), there double is enough. But for large scale games (for example, social games) and where process speed, memory is not limited, there BigDecimal is better. Because here, int or long for monetary calculations. ...


17

Some suggestions to bring more cards into the game: When a player wins a match, reward them with two cards: One from the losers deck and one newly created one. You might also consider giving a generated card to the loser to compensate for the loss, otherwise they would progress backwards, which is a real motivation breaker. Reward players for playing by ...


14

Background In the real world, there are (almost) no Scrooge McDucks. Instead rich people invest most of their surplus money, i.e., they lend it to other people. Suggestion Let x be the amount of gold available per player (1000 or 10000 in your examples). Every piece of gold that a player has above x is available for lending to shopkeepers, i.e., your ...


13

You want to store your currency in long and calculate your currency in double, at least as a backup. You want all transactions to take place as long. The reason you want to store your currency in long is that you don't want to lose any currency. Let's suppose you use a double, and you have no money. Someone gives you three dimes, and then takes them back. ...


12

This basically boils down to basic economic theory, more specifically the concept of market transparency. When someone wants to buy or sell a fungible good (like most items in a common MMO game), they will look for the best available offer on the market and take it. In order to find this offer, they need to obtain full market transparency by looking at all ...


10

Nickson104 already wrote a pretty nice summary in his comment. I've been playing the game since early beta and I prefer the small AHs, so this might be a bit subjective, but overall the most important points have been mentioned already: A global AH makes it far easier for players to find the item they want at the cheapest price (which they usually want as ...


9

My question is why are there not more games which take this approach of a game economy tied directly to real money? I think the answer lies in what a game is. To most people, a game is something where you relax and can have carefree fun. Some people will have more fun if game money is real money, but others will have less fun. So inherently it seems ...


8

There are arguments to both options. Single Currency - usually simpler for players to understand Multiple Currencies - allows more flexibility to in future optimizations For a single player action game I don't think you need more than two. Three of four currencies is something that is usually reserved for resource management games where you actually gain ...


8

I'd go as far as to say that any value which may be displayed to the user should almost always be an integer. Money is only the most prominent example of this. Dealing 225 damage four times to a monster with 900 HP and finding that it still has 1 HP left will subtract from the experience just as much as finding that you are an invisible fraction of a penny ...


8

When you allow players to not just pay you money but also get out money, your game can easily fulfill the definitions of both banking and gambling which are both heavily regulated in many jurisdictions. While some game companies might feel comfortable with managing a gambling business, very few possess the know-how which is necessary for operating a bank in ...


7

EDIT: Since you added to your question that the resources are static, I’ll talk a bit about that specifically. I’ll leave the previous answer below the line as it might be useful to other people. If your resources are static, there is going to be some limiting factor on them. This may be your starting resources or worker count that determine how many ...


6

Modelling something that is near impossible to do "right" but you can give a reasonable model of the economy (eve online is the most successful close match I can see that matches what you're trying to do) For example: Product A in Region A might be of low value because there is lots of it and getting it to this region is cheap. Product A in Region B might ...


6

There is a great presentation by Ben Cousins called Playing To Win. On slideshare (with narration) - http://www.slideshare.net/bcousins/paying-to-win It describes the case of Battlefield Heroes game which was very popular but didn't monetize well and how they redesigned the entire virtual economy ecosystem to make it better. The main changes they did were: ...


6

Here's a slightly different take on the matter: Of the users who would bother to crack your game's data format or decompile it and change it, how many do you think are actually willing to pay for these things? In other words, if these users were to try and fail to cheat your game, do you think they would then give up and pay you money for the items? ...


6

A far simpler, easier to implement and easier to balance solution than the other one I proposed before (although with less gameplay depth): Have a function NpcSellPrice(stock) for each commodity where stock represents how many units the NPC currently owns. Any implementation would do as long as more stock means that the NPC sells at a lower price. It doesn'...


6

Provide your Scrooge McDucks with an alternative commodity they could hoard instead of money. E.g. sell super-expensive unique items from time to time, or give people visible achievements for acquiring a certain amount of useless goods which cannot be sold back to the shopkeeper. As for money lost in abandoned accounts, you could do the following. Every ...


5

What I have not seen mentioned here is that inflation (and deflation) often result from changes in player spending habits. Fixing the amount of money in existence, particularly on a per capita basis, is a start. But if players spend money like crazy, they'll inflate it. If they hoard it (or take a few weeks off from the game) they'll deflate it. If you ...


5

Having a single currency is not simple at all for monetization. This is because you would have to implement many efficient money sinks in the game to stop players from grinding their way to unlocking all content/items. Without good sinks, there is no incentive to buy IAPs. I suppose in terms of coding it might be slightly more complicated, but with a single-...


5

Even if it's "only a game", I would use Money Pattern from Martin Fowler, backed up by a long. Why? Localization (L10n): Using that pattern you can easily localize your game currency. Think about the old tycoon games like "Transport Tycoon". They easily allow the player to change in-game currency (i.e From British Pound to US Dollar) to meet real world ...


5

The most easy is to empty the market, wait for the price to adjust, then sell everything back. This implies that if the price for a unit of coal while there is 100 units left in stock is at 50 gold, and you purchase the whole lot of 100 units, you'll pay 100 * 50 = 5000. That's not the correct way to look at it. Games such as Port Royale 3 have this as a ...


Only top voted, non community-wiki answers of a minimum length are eligible