Global experience thwacker

The global experience thwacker is a mud-wide control system which looks for mobs that give out a disproportionate amount of experience compared to other mobs. The highest mobs are gradually dented, reducing the experience they give, to encourage players to find other mobs and/or rotate areas. If the game were perfectly balanced, this thwacker would do virtually nothing, because all creatures would give approximately the same proportion of experience.

The original design of the global experience thwacker was not very good, and by early 2013 it was simply causing disruption instead of helping to balance the game. A large number of changes to correct this, as well as several other long term issues, were added in the first quarter of the year.

What follows below is a post copied from another forum that explains much of the original system and the 2013 changes.

April 14, 2013 Writeup
What is the "global exp thwacker", and why does it exist?

This is a really good question, and the short answer is that this thwacker is intended to act as a global safety valve, a sanity check of last resort.

It should be noted that until recently, it was nothing of the sort. Prior to the recent changes on it, the data collection gave an amazingly huge bias toward group mob kills. That's been changed, and the numbers are definitely flattening, which is a good thing. Ideally, this thwacker should distribute a small amount of exp dent across a large number of creatures, not focus on a handful of vnums.

(Trivia point: this thwacker also handles double exp mobs and double exp areas, for creatures which are seldom touched.  That isn't relevant to this discussion however.)

Some history:

Back in the olden days, there really wasn't any concept of area checking other than by hand and through player feedback. I started to notice that a small number of mobs were being pounded into the ground for experience, pretty much to the detriment of the rest of the game. Camping mobs for exp was rampant, and I started collecting numbers to see which mobs were the worst offenders.

This told me which mobs were the problem, but I quickly ran into issues where builders either refused or would not update the creatures in question. In a lot of cases, it was difficult to know how much to change the mob, and I quickly realized that this was going to be a long term, persistent problem unless it could be automatically handled in some way.

Enter the thwacker.

The original design goal was to look at the biggest exp mobs on the game, and slowly lower exp on them until it became more profitable to run elsewhere. In an ideal world, a balance would be reached where it would be a matter of tradeoffs, not a matter of 'this is the best exp mob on the game'. In the real world, it didn't work that well, but it helped, and it helped a lot.

Later on, a lot of other experience control systems and methods were added, reducing some of the need for the original thwacker, but not completely eliminating it. As the other systems came online, I saw the global thwacker as more of a safety valve than anything else. When a new area came out, if there were broken mobs in it, they would quickly go onto the dent list, and over time they would settle into a long term equilibrium with the rest of the game over the course of a few months.

Unfortunately, the original thwacker design and algorithm really wasn't that good, and the way experience changed over the years was interacting badly with that algorithm:

- The thwacker was penalizing mobs run by large groups very, very hard. A single, large group of high level players could place a handful of mobs near the top of the daily hit list in under an hour.

- Very high level players really didn't have very many places they could go, especially in groups. This severely limited where those high level players could go, and because high level players accumulate the most experience the fastest, that handful of good, high level exp mobs were quickly thwacked into oblivion. About the only saving grace of this was another poor design decision, which limited the damage:

- The thwacker's control system used a multipler that ranged from 100% (full experience) to 20% (one fifth of full experience.) This meant that undented mobs had to be hit really hard before anyone would notice, while heavily dented mobs would vary a lot and rather quickly. As an example, a 5% hit on an undented mob yields 95% of full experience, but a 5% hit on a 25% mob drops it to 20%, which lowers the mob from one fourth nominal to one fifth nominal.

With the latest major changes to the exp system, all three of these things have been corrected:

- The large group dependency is almost completely gone.

- Other parts of the exp code were changed to reduce the limiters on high level players and give them many more places to run.

- Work continues to update areas and bring many of them up to a more unified standard, which also gives high level players more options.

- The global control system now uses a smooth exponential scale for adjusting experience, instead of the poorly weighted percentage method. This means that a 5% dent means a 5% dent whether the mob is at full experience or at one tenth of nominal.

The results of these changes have been pretty clear and pretty obvious. Virtually none of the previous 'big hitter' mobs are at the top of the lists, and when they are, it's only for short periods of time, not day after day. Nearly all of them are slowly gaining back experience as the control system rebalances; shatjans for example, have gone from 20% exp to 32% since the update, raising their exp by a full 60%.

It will take on the order of 2-3 months before the new setup has completely adjusted to its new goals, but so far, things are looking pretty good. With any luck, the global thwacker will once again be working as intended: as a limiter of last resort.