hey guys, I've been playing muds for a while, (thanks to MUSHclient, Nick, you rock.) and Lately, I've been working on programming my own mud in Java, before you all cringe on that, Java isn't that bad. anyways, right now, I'm currently working on an money system, working with copper, silver and gold, but I'm also doing things a little differently with them, as 2K copper ='s 1 silver, and 2K silver = 1 gold.
copper isn't gonna be too hard to come by, but being able to get to 1 gold will take them a while, which will be helpful.

Anyways, my question is, is there a "best" way or a "right" way to set up a mud economy? or are most economy systems basically the same?

It's hard to say what you are asking about. Simply the coins can be arranged with a single value counting the coppers, and having all places where you need to show money, change it to your custom format with the crafty use of division and modulo operators.

One disadvantage to this is that you cannot seperately track different coin types. Say, for example, you'd like your players to need to mess with the different coins when paying, you'd need to track the value of each coin seperately, but this in turn would make purchasing things far more complicated.

Finally, if by 'economy' you went into the valuation and devaluation of objects and money, probably a good book about economy is your best bet. That and there are several snippets around for Smaug discussing that subject.

Not to poke fun at you, but you would want a book on Economics. More specifically, you would probably want an introductory book on Macroeconomics.

Quote:

Anyways, my question is, is there a "best" way or a "right" way to set up a mud economy? or are most economy systems basically the same?

In short, no, there is no right way. As an undergraduate majoring in both computer science and economics, I can tell you I have spent a lot of time researching this issue.

Overall, grabbing an introductory economics book would help you immensely. However, if instead you want something a bit closer to MUD design in general, I would highly suggest Designing Virtual Worlds by Richard Bartle. He has a fantastic analysis of MMO economies and their function; plus, the entire book is a must have for any serous MUD developer (and the information is extremely beneficial when applied to other games). I'll go over some of his and my thoughts briefly.

Perhaps the biggest thing you should consider is if you need to implement an economy at all. Game economies of a persistent world are perhaps the hardest thing to calibrate and get right. There are numerous examples of badly managed and designed economies (such as Lineage II, where it takes billions to buy anything worthwhile, so you end up with alts just to hold your cash), so you can avoid a lot of hassle if you can eliminate it entirely. If this is not befitting of your game then you will have to carefully watch it to make sure it stays reasonable.

The biggest factor on how your economy will function is how you let your players interact with it. Can they sell items to NPCs? What about other players? If you allow player to player selling then you just opened a huge box of intricacies which I will try to briefly address.

To some extent, you should expect normal free market behaviors. That is, as supply goes up then prices will drop until demand is met. If demand is high then prices can and do skyrocket. Expect and plan for inflation; as you inject more money into the game money will gradually become less and less valuable.

Some of these things can be mitigated, and often significantly so. One tactic employed by many MMOs (FFXI, WoW) is to have NPCs drop items, not money (or not much money). This gives you a lot of control over money being injected directly; players will have to sell items, some vendors might pay more or less (or not buy an item at all). The amounts for items sold to NPCs is usually very low, making it a last resort for players. That is, it is better for them to try and sell items to other players as long as what they can get from that sale exceeds what the vendor is willing to pay. This also gives you a way to inject crafting mats and other things into the game if you so desire. In general, this avoids people farming certain mobs that tend to drop high amounts of gold.

Have common and frequently used items available from NPCs. This sets a market cap, as each smart player should always seek out the lowest prices on goods of equal quality. This avoids someone taking something that is needed for lots of things and selling it for obscene amounts of money, which causes farming and currency/market skewing and can also cause annoyance to players. For example, in WoW you can buy the mats needed to cast some spells from vendors, so no one bothers to enter this market and thusly each character can -always- buy what they need to literally play the game. (imagine if you couldn't find someone with the mats available and you could no longer resurrect people!) However, Wool Cloth can be fairly hard to come by and is needed for various things (rep rewards, xp, leveling first aid, etc), but this item is not available from vendors. A low level character can often net large sums of gold for the Wool he has collected, transferring large amounts of wealth from max level characters to lower level characters (which creates skewing).

Overall, this culminates with the idea that, if your economy is sufficiently complex, you need to force your players to spend money. In a sense, the game becomes very similar to the Fed -- it needs to regulate the money supply in order to maintain economic order and keep inflation in check.

In terms of economics, inflation is the biggest risk of destroying your game. The more people that play, the more wealth the game literally injects into the economy. Thus, a game with 1000 players will have an economy drastically different then the same game was with 50.

* Similar to a repair bill in WoW, forcing players to semi-frequently restock on common things and repair or replace gear creates a cost that can help manage the money supply.

- Charge for Services

* Teleporting, transportation, crafting, healing, or whatever else there might be, charge a small fee for it (or if it is quite helpful, charge a lot). This can be an interesting way to add convenience that users don't mind paying for.

- Have Multiple Currencies

* Back in the olden days, money changers made good money and provided a very valuable social service. If you interact little with the global economy, this one might not make as much sense to you. However, if you have multiple denominations of money (or even different currencies altogether) then you can dampen the spread of inflation (when one currency is bloated, the other will become more valuable). Plus, you could charge a small fee (10%) for changing one currency to another which also helps remove currency from the game.

- Give Money Weight

* This is often a good solution, but it annoys players. If you limit how much wealth you can actually carry with you, players will have to plan out and think hard about what to actually hold on their character. Players will eventually hit a maximum amount of currency they wish to have on hand, which will then drive market prices (if you can only carry 500 gold it will be quite hard to pay for something that costs 2000 gold).

- Multiple Uses

* Bartle explains this more in the context of goods, but the idea boils down to having your currency good for multiple things. Perhaps in some region of the game people trade pelts as the main currency; this results in anyone who wants to make some clothes to literally use their currency.

He also mentions "Charge for Advancement." Generally you should have everything in the game doable without having to pay for it, but gold can speed it up. I liken this to mounts in WoW. You can play the whole game without one, but you realize huge efficiency gains if you pay for them. This results in spending rather large sums of cash at key points in the game, which helps equalize the economy (in WoW:BC, you make a lot of gold questing from 60-70, so paying an arm and a leg for flying and epic flying takes all of that and more, giving you something to work towards and to tie up your newly found wealth).

--

Obviously there are a lot of things to consider. However, it is worth your time to think about it now, because skewed economies can and do ruin games. It shouldn't be impossible to make money, but it shouldn't be so easy that money becomes worthless.

I suggest you keep it as simple as you can (as Bartle mentions, this concept can be as extreme as not having an economy at all). As a game designer you have the power to decide how your market will function, so often it is within your power to simplify the game mechanics and reduce the complexity of how it all performs. This, in turn, makes it far easier to manage, manipulate, implement, and use.

I agree with Whiteknight - the Bartle book is an excellent introduction. I think most MUDs go with the faucet/drain economy style, where you pour money in (eg. in the form of loot) and you try to drain as much out as you can (in the form of repairs, charges for transport, training etc.) in an attempt to stop the economy over-inflating.

The problem with trying a "real" economy is that, unlike the real world, players may just not play for months, which makes an economy hard to get right. Imagine what it would do if half the people in the USA suddenly stopped consuming goods, or producing them, for 3 months. However that is exactly what happens in MUDs if people choose not to login for a while.

I agree with Whiteknight - the Bartle book is an excellent introduction. I think most MUDs go with the faucet/drain economy style, where you pour money in (eg. in the form of loot) and you try to drain as much out as you can (in the form of repairs, charges for transport, training etc.) in an attempt to stop the economy over-inflating.

The problem with trying a "real" economy is that, unlike the real world, players may just not play for months, which makes an economy hard to get right. Imagine what it would do if half the people in the USA suddenly stopped consuming goods, or producing them, for 3 months. However that is exactly what happens in MUDs if people choose not to login for a while.

i know on a mud i used to play, their gold was the standard currency, and then they had platinum which equaled out to 2 million gold, but mind you, gold was used for /everything/ in that game.

The one thing they didn't do on that game, was put a weight limit on the gold, but if you got killed by an npc, you lost all your eq/gold to your corpse, and if that corpse dissolved, everything that was in that corpse, would be lying on the ground for anyone to take.

so i'm thinking about doing a game kinda like that, but at this point, i just need to find direction in general :-P

I do appreciate all of your guys feedback. though, my next question is: so far, i have mobs, rooms area code, items, my main MUD.java code and my economy code mostly set up.

I think you've answered your own question - figure out what kind of MUD you want, what kind of features you want and go from there. A good plan makes for a good MUD.

Will it be a typical hack and slash? Then you might want to focus on a good combat engine. Skills and spells would go along with that. Will it be roleplay? You might want a plan to encourage players to interact such as trading or auctions, quests, etc. Want to impress players with bells and whistles? How about a detailed weather system and in-depth mobprogs.

I think you've answered your own question - figure out what kind of MUD you want, what kind of features you want and go from there. A good plan makes for a good MUD.

Will it be a typical hack and slash? Then you might want to focus on a good combat engine. Skills and spells would go along with that. Will it be roleplay? You might want a plan to encourage players to interact such as trading or auctions, quests, etc. Want to impress players with bells and whistles? How about a detailed weather system and in-depth mobprogs.

The possibilities are endless.

well, my main problem is, i'm a major newb when it comes to programming, i can figure out the basics, like the combat system, skills, spells, races, the works, trading and such, but, it's more, /how/ do i program it along with what should i aim for :-P

What's your general proficiency level with programming? Your question "how do I do it" is pretty vague :-) I'm not sure if you're asking how to design the whole system from a code perspective, but otherwise know how to code, or if you're still learning how to code and haven't written much so far.

proficiency with Java: scale from 1 - 100, is maybe a 4 :-P i've written chunks of my game, so far, it's got rooms, mobs, items and exits coded with guidance from a friend, but doing things on my own, i get lost pretty easily, especially when i'm not sure what i'm shooting for as far as programming. if that makes any sense.

Before programming something is possible, you need to have a clear idea what exactly you're trying to implement, not from an implementation perspective but from a design perspective. Only when you have a clear idea of what you're trying to achieve on a higher level can you hope to achieve it programmatically.

I'm a little confused, though: you say that you're basically a complete newbie in Java, but you say that you've gotten an awful lot done. :) Is the game in any kind of playable state? Can people connect, wander around, and look at mobs?

If you are new to programming in large projects, and network IO in general, you would be best advised to get started with something smaller. Otherwise you will just get frustrated when things go wrong.

Maybe try something like a chat server, that is conceptually similar to a MUD game but without the combat etc.

At least then you get used to handling connections from clients, clients sending messages to each other, and losing connections.

Before programming something is possible, you need to have a clear idea what exactly you're trying to implement, not from an implementation perspective but from a design perspective. Only when you have a clear idea of what you're trying to achieve on a higher level can you hope to achieve it programmatically.

I'm a little confused, though: you say that you're basically a complete newbie in Java, but you say that you've gotten an awful lot done. :) Is the game in any kind of playable state? Can people connect, wander around, and look at mobs?

so far, it's set up as single player, i do have about 2 rooms, and 2 mobs, no commands yet as i'm gonna be doing the server/parser stuff later. I have a mentor who's helping me with it as far as if i have any questions or if i break some code. my project right now, is serialization. Not sure how dangerous this will be, as its my first time, but I want to see what I come up with :)

I would echo what Nick said: try to start with smaller things. If you want to play with serialization, for example, try to create some (Java, not MUD) objects, set some instance variables, and then serialize to disk. Then unserialize them, and make sure things work.

Serializing a game world happens to be a fairly complex topic, one that even people with lots of experience approach warily. So you haven't chosen the easiest possible topic for yourself. ;-)

Starting with small projects can be frustrating, because you feel like you're not getting anywhere. I really understand this, because I used to think and act this way. But as a result, I made progress in 6 years that I probably could or should have made in less than one year. I kept trying to do too much, without knowing what I was doing, and as a result I got relatively little, if indeed anything, done. So, even if it feels like slowing down, taking your time can actually speed things up in the end.