Inveteratus Posted March 26 Posted March 26 (edited) So what if I told you how to make $135,259 just by sitting on your hands just by giving me $100? Or how about if you give me $100 and I will show you how to make $5,323,942,470,216 again just by sitting on your hands? I've no doubt at this point, you are probably reaching for the "Report Spam" button, but bear with me a moment .. This is how MCCodes games are designed from the get-go. There's no need to play the game, just sit and wait and you will soon be richer than ... well everyone! Okay, some explanation .. lets look at a couple of critical lines in MCCodes in the cron_day.php script. UPDATE users SET bankmoney = bankmoney + bankmoney / 50, cybermoney = cybermoney + cybermoney / 100 * 7 Will that doesn't seem so bad .. or does it? Since MySQL will be rounding the result so if we look at the basic bank to start with given you save $100: After 1 day you will have $102, after 2 days, $104... even after 10 days you will only have $120. Weill again, that doesn't seem to bad. It's not going to introduce too much money into the system - after all $20 in 10 days is peanuts. But wait, after 20 days, it's risen to $147, after 30 $177. After 50 we are up to $265, after 100, $713. In fact, its doubling your initial money every 36 days or so. So after 1 year,. you will have $135,359 in the bank for an outlay of only $100! I wish I got that in the high street! Before we look at the frankly frightening cyber-bank, a little math. $principal = 100; $futureValue = 135359; $annualPercentageRate = $principal * $futureValue / 100 + $principal; Yipes - that's a rate of 135,259% Now for those of you paying mortgages, you may be lucky to have a rate as low as 2.5%, I believe I'm paying around 4.5% at the moment, while my bank is giving me a meager 3.3% rate on my savings. So what about the cyber bank. This one is truly scary. It doubles your money every 10.5 days ish. So in 10 days you will have amassed $197, in 20 days, that's gone up to $388, in 50 days we have a rather nice $2,953, while in 100 days we've got $93,092. These figures a truly scary! And after a year... Well we would have $5,323,942,470,316 but as that overflows the data-type in MySQL (a signed int) we would have the maximum of $2,147,483,647! Phew! Well clearly, the banks calculations are bringing in far too much money into the game, so what can be done about it? Well the first thing I suggest is to shut down the cyber-bank. It might be a nice idea, but it's going to ruin your game in double quick time. Since it's doubling the principal every 10.5 days, then every years, the amount of cash in the game will be fatal. With 10 players not a major problem, but with 10 players joining every month .. you have a financial crisis on your hands in well under a year. Next suggestion is drastic. Remove the bank-money and cyber-money update statements from your daily cron. In fact you don't need crons to work out what your bank value will be - again it's all down to a simple bit of math. (We'll see how to do that in a bit) Now of course you want to reward players for having a bank account - how about 100% APR for premium players and 50% for non-premium players. That's still way more than any of us will ever see in real life from a high-street bank, but it's not introducing too much money into the system. Again .. a little bit of math $principal = 100; $annualPercentageRate = 100; $futureValue = $princial * (1 + $annualPercentageRate / 100); Will let you play with the APR figure to see just what sort of cash you will be bringing into your game. To apply this as a multiplier on a daily basis... $daysInYear = 365; $dailyMultiplier = pow($futureValue / $principal, 1 / $daysInYear); So for 100% APR, this yields a daily multiplier of 1.001900838. If you insist on using crons then you could adjust your daily cron to : UPDATE users SET bankmoney = bankmoney * 1.001900838; Caveat, due to rounding, you won't actually see any interest until you have around a $270 in the bank, but after that it will kick in - maybe that's a good thing! This is a lot more gentle on the amount of money coming into the game and is actually quite manageable - at least from personal experience. If you are feeling brave, then as long as you have the date-time the user deposited money into the bank, and the principal amount, you can compute the present value (I use the term present rather than future here but it means pretty much the same thing) at any point to show them what the have now. For reference: $dailyMultiplier = 1.001900838; $prinicpal = 100; $daysSinceDeposited = 50; $presentValue = pow($dailyMultiplier, $daysSinceDeposited) * $principal; With these calculations, I've never need to use a cron to update my bank, and in fact I can actually claw a little money bank from the player by rounding the number of days down to a whole number (which may be have 3.5 days) so they lose out on a little interest but still get the benefit of an apparent 100% APR interest especially if they leave their money alone! The moral of the story here is ... well I'm not sure. It probably goes a long way to explain why so may MCCodes fail - their inflation turns rampant as smart players bank their money early and often. There are some nice solutions I've found such as variable APRs depending on key stock holdings and/or premium status, limiting the amount of cash that can be deposited by combat level (so the higher combat level you are, the more likely you will have large amounts of cash on you to entice players to PvP). You might also look to variable APRs where it reduces to try and keep the overall interest across all players to a certain value, so as more players join, the global APR reduces slightly. What's your take on it? How do you stop players making money? If you are happy to run an MCCode game with the original SQL in the daily cron - let me know a link to your game! I always enjoy breaking the bank! Edited March 26 by Inveteratus Typo 3 Quote
MNG Posted March 26 Posted March 26 Ha! Jokes on you pal, the games don’t even last longer than 90 days. 4 Quote
newttster Posted March 26 Posted March 26 @Inveteratus I think it's amazing that you take the time to go through the "modules" that come/came with the McCodes package. I appreciate the time you've taken to show the flaws. It would be great if new users got to read this and adjusted their modules accordingly if they decide to go with McCodes. @MNGThat's because they do a plug-and-play instead of taking the time to make changes to separate their creations from others. 2 Quote
CrazyElk Posted March 27 Posted March 27 (edited) Stop players making money or taking a bit of money out of the game huh. I am toying with the idea of a 'plandemic' mod, where once in a blue moon an insidious affliction rears its ugly head, wipes out a number of accounts thereby reducing the games economy by the value of the monies held by those accounts PLUS it removes a set percentage of the remaining player accounts monies by way of the cost of dealing with this blight. As far as the removing of accounts, it should probably cull users who have not presented for a given period of time, let's say after 6 months of inactivity and I envision a 10% reduction of monies for the remaining players. What does everyone think, or is it too soon? 🤣 Edited March 27 by CrazyElk 1 Quote
newttster Posted March 27 Posted March 27 1. Player has to have a "banking card" that allows them to earn interest. 2. They can only earn interest on x amount or LESS. 3. Player has to have been active for X number of minutes in a set 24 hour cycle to earn that interest. 4. Charge a daily, weekly, monthly or quarterly banking charge. 5. Have drains on their accounts. They don't own their "living space", they rent it. Or if they do own it, they have to pay x amount for maintenance fees on the daily, weekly, etc.. 6. If a player has been inactive for 2 months or longer, their accounts bleed off a little daily upto a certain point. Say 2 mill. That way if they do come back after that 2 months, they will still have some money to rebuild. 7. Players have to invest x amount on some sort of commodity. 8. They have to have x amount of survival gear, food, etc. stored away. They have to replenish those stores after x amount of time due to some kind of rot, spoilage, etc. 9. There are any number of ways to drain money from the economy. Think of all the things in our daily lives that suck money out of our accounts and find a way to apply them to your game economy. I have to say that I don't agree with wiping out random players full bank. They could very well have earned that money through other legit avenues outside of the bank interest. 2 Quote
CrazyElk Posted March 27 Posted March 27 55 minutes ago, newttster said: I have to say that I don't agree with wiping out random player's full bank. They could very well have earned that money through other legit avenues outside of the bank interest. My suggestion was not to wipe out random players but rather cull/remove from the game inactive players (maybe after six months of no show) thereby removing those monies from the game. Those points you offer above certainly have merit and could provide some valid ways by which to keep a games economy in check. Quote
newttster Posted March 27 Posted March 27 2 hours ago, CrazyElk said: My suggestion was not to wipe out random players but rather cull/remove from the game inactive players (maybe after six months of no show) thereby removing those monies from the game. Those points you offer above certainly have merit and could provide some valid ways by which to keep a games economy in check. Whoops. My apologies. I read that faster than I should have and misread the point you were making. Yup. Definitely after a certain amount of time, inactives pay some sort of penalty for being absent. I think the hardest part of that is determining the length of time. Maybe use garnered monies to buy items that can be raffled off to players, the raffle contributing to taking more money out of the economy. Or search and find in a mine??? where they find sacks of whatever are there to be found. In any case, it's a delicate balance for the economy of the game as well as not pissing off the players for making it difficult or more difficult to hang on to their money. Quote
Inveteratus Posted March 27 Author Posted March 27 Some very good suggestions - culling inactive actives is thoroughly recommended though I'd be inclined to mail them 30 days in advance of a cull with the option to opt-out - they may be unable to play temporarily after all. I think I like the idea of only earning interest up to a set amount; it would help keep a cap on games where the interest rate has been set high, which may be deliberate. Charges, I've considered but I've never found a satisfactory mechanism that allows me to bleed funds out as a standalone measure - it seems too much like taxes in real life which I usually try to avoid ... and in real life! I suspect the key point to take from these discussions is that balance is very important. And while you won't manage that with an out-of-the-box system, with careful play-testing and no doubt hours slaving over a few spreadsheets will result in a game that lasts. There will always be areas that need tuning up, but if you get the basics right, the fine tuning can be done over time. 1 Quote
CrazyElk Posted March 28 Posted March 28 (edited) @Inveteratus and @newttster, some very notable and interesting things you address above, makes for a great read. Does anyone have any insight into how Joe Chedburn and TORN manage that games economy, given they are likely the benchmark in terms of longevity and success? I can only imagine that many hours of debate and pouring over what works and what does not, with plenty of statistical analysis is/was involved as the game progressed. Joe would not have the benefit of all this data or the support staff to rely on early days but yet this game has turned into a bit of a monster, is he a savant perhaps or maybe was just in the right place at the right time? What about we invite him along to MWG's as a guest typer and pick his brains? 🙂 Edited March 28 by CrazyElk 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.