This article was written by the god
and posted on January 25, 2013.
2013 - The Year in Review
2013 was a pretty busy year, with a lot of ease-of-use changes going in,
as well as a bunch of skill and spell changes, eventually leading up to
the addition of a new character class. Under the covers, there
was even more, with library and infrastructure changes, the addition of
a credit card processing system, and updates to the area checkers which
improve the quality of areas.
From my standpoint, the major events of the year probably don't match those
of the players. The credit card system was a big deal because it was
really pretty hard, and I had to do a lot of library work to get it going.
I wasn't even sure at first if it could be done the way I wanted it to.
The Druid class on the other hand was a big deal because it added a whole
new class and 60 new abilities. That doesn't happen very often.
But in the end, I'd have to say that the biggest, most important changes by
far were the experience and fame reworks. Modifying the fame algorithm
freed us from an extremely old constraint that was so ingrained in our
thinking as builders that we didn't even realize it was there. It took a
lot of hours of analyzing and thinking to even figure out that fame was
actually the problem, not the experience or the way builders were building
We could have easily limped along for several more years before figuring
that out, and the longer one waits on changes like this, the worse the
cleanup is. I'm very glad that we caught it when we did, before even
more high level areas were built to bad specifications.
Now, on to the questions, general changes, and the monthly breakout!
Questions About 2013
Q: What was the biggest bug/glitch of the year and how did you manage to get it fixed?
This would definitely have to be the signal-unsafe-logfile-handler bug. Alter Aeon
has a bunch of code that checks for server lag and infinite loops, and when that
lag happens, the server cuts logfile entries and sends warnings to everyone. All of
this code was ok, except for the part that writes the logfile to disk.
As a result of this, occasionally the infinite loop checker would go off and interrupt
some piece of code that was in the middle of writing a logfile entry. Usually, this
was no problem, and everything would be fine. However, if the server happened to also
be lagged when this happened, the infinite loop checker would try to write a logfile
entry that there was server lag. With two pieces of code both trying to do stuff to
the logfile at the same time, occasionally things would get mangled, and occasionally
things would break really badly.
This took forever to figure out, because the code was written when I was younger
and didn't know any better. It never even occurred to me that there might be a
re-entrancy problem, because the code worked for years and years without an issue.
When I actually saw how that code worked, I suddenly understood what was going on
and why. That bug had been plaguing us for over two years.
Q: What change were you most happy with this year?
Probably the fame and exp changes we made between March and July. It's hard to
emphasize how much these changes helped with the overall game playability - all
kinds of things depend on the proper assignment of mob levels, and fame was
forcing us to set levels to stupid values. By making fame largely independent
of level, it allowed builders to set levels the way they needed to be, instead
of setting level based on fame.
This was definitely a change that affected a lot of players, and I'm extremely
glad that we found the problem sooner rather than later. We've raised the max
level a lot in the last few years, and have really started building a lot of high
level areas. The longer we would have waited, the worse the problem would have
been and the more areas that would have needed to change. Far better to go through
the pain early than let it fester and get worse.
As a result of this, we also got some really awesome building tools for making
level actually mean something on areas. Two years ago, entering an area based
on level was a complete crapshoot. While level isn't a perfect indicator today,
it's much, much better than it used to be, and new players especially can rely
on the area level to know if they're in the right place or not.
Q: What change did you plan on implementing this year but either ditched or still have planned?
I honestly had intended to get a beta version of a new game, Stellar Aeon, out
this year. Instead, I ended up building the Druid class. Given how many people
seem to really enjoy playing druid, I think I probably made the right decision.
Perhaps this year I'll get the other games working.
Q: Earlier in the year you spoke on Bovine of developing Stellar Aeon and
trying to branch out into another game. To that end you built a lot of
libraries and test cases make coding stuff easier. Do you see more
infrastructure changes like this going forward, or do you think now that
you've completed this stage, you'll be maintaining things more?
The point of well tested libraries is two-fold: first, that you have well tested code
that you can easily fix bugs in and guarantee that they're fixed. Second, that any
time you use that code for another project, you won't have to fix any bugs twice.
It's not that that you expect library code to be the 'final product'. Rather,
they are a tool to make certain types of bugs go away.
And the point of making certain types of bugs go away, is so that you can work
on other things and other types of bugs more effectively. The point isn't that
you just put everything into maintenance mode.
That said, I probably am just going to go into maintenance mode for Alter Aeon for
a while. I'm honestly pretty burned out. Just getting through the Druid expansion
took a lot of effort, and since the anniversary event, I've not wanted to do anything
at all. I'm fried on the day to day running of things and the constant requests
to do things. What I really want to do is just sit down and work on fun stuff
without pressure, so that's probably what I'll be doing for a while.
Q: You mentioned converting Alter Aeon to a 3D map space, using rooms
as a guideline for that space. It was heavily implied that this would be
basically a building tool and wouldn't really change the play experience
a huge amount. Could you elaborate on this a little?
Yes, this change will be a huge change in some ways, but largely won't even show up to
players. The reason that it's not a very visible change is that it's about representing
the innards of the game differently, not about really changing how they're displayed.
For a more technical explanation, think about Alter Aeon as a series of rooms, each
of a given size, some big, some small, connected together. You can only travel
where there's a room, and when you're in an outside room, there's not really any
'up' to go to. The room is described as outside, but really, it's got a ceiling
you cant get past unless there's another room above you. This is how Alter Aeon,
and pretty much all muds, currently are.
Now think about it differently: imagine that the rooms of Alter Aeon were actually
on the surface of a planet. Outdoor rooms are open, and have sky above them;
underground rooms are surrounded by rock. When you're in a cave that loops around,
you know that if only you could cut through that wall, you could get to another
section of the cave system. When you're in a building on the surface, you could
get outside by cutting down a wall or going through it.
In the first version, the rooms define space all of space, based on the links
between rooms. In the second version, rooms cordon off a small amount of a
bigger space for players to wander around in. Just because you're limited to
that space, doesn't mean that there aren't things outside of it.
This is why things don't look very different to the player: you're still blocked
off, and still can't go outside of where the rooms let you go. But from a code
standpoint, it's a big deal. The GodWars series muds already do something like
this, and people play them just fine.
Q: From various mob factory articles, you've repeatedly made a point about
how you hate building event quests/mobs but that building areas like the
haunted hills helped you to develop the building code and allowed you to
see issues with it that could be simplified with further code fixes. You
also implied, though it wasn't quite stated this way, that the building
experience could be made easier and perhaps more intuitive if you built
more and worked on the building code.
An easier building system would perhaps motivate lazier builders to finish
areas more quickly and help to turn around an area backlog. Is this
an area you intend to look at improving now that druid is out?
The only real building updates I plan to make in the following year are improvements
to the 'project' command, map changes to make the world more cartesian, and the various
minor improvements that builders request as they come up.
The projects command is particularly important for me, because I have a lot of projects
I'd like to give people, but very limited time to manage them. I need to see what
projects I have going, who owns them, and what their status is. I'm definitely going
to be improving that to make it easier for me to know what areas I'll have to integrate
in what parts of the world.
The map changes are the next stage of making the world fully linear, and getting it
ready for the 3D space changes talked about in the previous question.
Q: Do you feel like you gave enough time to
testing druid before releasing it? Given the opportunity, would
you have allowed more time to test?
No, Druid didn't get nearly enough testing time, and given the opportunity, I would
probably have tested it a lot more. However, I had set a solid deadline, and I was
going to release something, so release we did.
That said, I'm pretty surprised at how few problems there were. We learned a lot from
the necromancer release, and have really sanitized a lot of things since then. Druid
is known to have a few weak spots and will definitely need some spell and skill groups
filled out in the future, but it's in far better condition than I expected.
A lot of changes were spread out over the year, and can't really be
grouped up into a particular month or time period. The most major of
- Blind mode kxwt updates. About a dozen major additions and modifications
were made during the year, allowing the Mush-Z guys to add new features
and make Mush-Z more stable. A few other clients, including Mathayas'
MonkeyTerm client and Tux's Tintin client, also made use of these updates.
- Annoyance character improvements. We had several new kinds of annoyance
characters show up this year, including a short return of the notoriously
banned player Tyrant. There were also a number of tweaks to prevent
minor in-game annoyance, including locking down group interactions and
farsee, and improvements to the allowed character names.
- Updates to the bot detector. There were a large number of group
bots this year, most simply ignoring the bot rules and paying the
penalties when caught. This was possible because compared to the gains,
the penalties were trivial. The addition of 'evil mode' in the bot detector
has largely changed this, as the penalties now ramp up quickly and heavily.
Players can lose vast amounts of progress when it triggers, and botting
in groups has at least become less obvious than before.
- Some of the largest changes got the smallest billing. A lot of the lower
layers of the Alter Aeon codebase got ripped out, updated, and moved to a
common library area. This was particularly invasive for the socket stack,
which saw two thirds of its lower layers moved out to common code. These
moves caused a handful of minor bugs, but otherwise went unnoticed by the
general population. One side effect of this is that the server now supports
SSL encrypted connections, and future versions of the DClient will use
encryption by default when connecting.
- The help, faq, and rules systems all got improved searching, and the
help system also shows other related entries. Our help system has
continually been complimented on its thoroughness, ease of use, and
power, and that was before these improvements.
- A lot of improvements to accounts went in this year, including the
ability to merge accounts and see a lot more character information when
checking your account. This was another set of big changes that most
players didn't notice - it's important that the account system work
perfectly, so it's worth spending extra time on it.
- Now that accounts are well established and known to work well, we've
started requiring that all high level players have accounts. Accounts
really help us with password resets, keeping track of characters,
equipment, and credits, and give us something to work with when there's
a theft or other kinds of problems. Requiring accounts has reduced that
workload quite a bit.
- The weather system got a lot of updates and tweaks this year in preparation
for the Druid class. We also have proper seasons (an in-game year is about
a month and a half long), and in most places, the weather actually makes
sense. Plans for future weather update include travelling storms, which are
already possible but aren't currently turned on.
- Clans got a handful of new powers, allowing clan elders to restrict access
to things like clan storage and the clan channel. The number of allowed
clan items was also raised, as was the free room count.
Global Class Updates
Excepting the new Druid class, the other classes to get major updates were
Mage, Cleric, and Warrior. In large part, the Mage and Cleric changes were
prep work for Druid, which acquired a handful of those spells and skills.
- Mage saw a massive rework in its low and mid-level spells and skills, to
try to make the progression of new characters easier and to have it make
more sense. A number of interesting side effects were also added, such as
the elemental shields having a small amount of damage reflection.
Perhaps most importantly, the spell and skill groups for mage were cleaned up
and reorganized, resulting in fewer 'miscellaneous' skills, and spell trees
that make a lot more sense.
- Cleric saw an even bigger reorganization than Mage in preparation for
Druid, with the entire 'Druid Disciplines' spell group being moved to the
new class. A handful of other questionable spells were also moved to Druid,
and the 'divine aid' spellgroup was split in two to allow for future
damage spells and divine powers.
This was the year that cleric curses really came into their own, becoming
powerful and well enough understood to be a major force in groups. Some
unusual mage spells also became curses, further strenthening those groups.
Not all changes were upgrades however - the peace and solace spells in
particular became level dependent, meaning that they no longer guarantee
perfect safety when cast.
- Warrior, as one of the most popular classes, primarily saw changes at
low levels to spread out when key skills are obtained. There were also a
lot of tweaks and general improvements, ranging from the use of warrior
skill level in most skills, to combo attack bonuses, to vast improvements
in the way morale works.
Global Area Updates
Alter Aeon added 30
new areas in 2013. That's an amazing amount of work
from our builders, and something to be really proud of.
Kordan got one new area, to fill in a level gap and help bridge the quest
gap between the towns of Indira and Naphtali:
- Level 14, Island of Kordan, the Haunted Hills
Archais got a solid half dozen new areas, mostly in the low level range.
The level range from 22 to 24 has always been weak there, and these areas
really helped fill that in. The single high level area, the Monastery of
Dreams, also helps quite a bit in giving players a little more to do before
venturing to the mainland.
- Level 22, Island of Archais, Thieves den near Gad's Mountain
- Level 23, Island of Archais, the Smugglers Cove
- Level 23, Island of Archais, the Lotus Monastery
- Level 24, Island of Archais, the tinker gnome colony
- Level 24, Island of Archais, Fort Magnesia
- Level 29, Island of Archais, the Monastery of Dreams
The outer planar realms got two areas, both of which were in the past
used as system event areas. The planar knot was used in the 17th anniversary
and was reworked to be an extremely high level exp area. The Bathysphere was
a solstice event area used only for a few short days, and has now been opened
- Level 38, Outer Planar Realms, the planar knot/Celestial Archive
- Level 46, Outer Planar Realms, the Fathomless Bathysphere
The southern continent of Suboria received one area for high level players:
- Level 37, Suboria, Isle of Riaza
The mainland got the lion's share of the new areas, with new zones appearing
in every region except the far west. Most of the new areas were concentrated
in the southeast part of the continent, in or near the Naginag Combine.
- Level 29, Mainland, the Blue Mound
- Level 29, Mainland, the North Ralnoth Slums
- Level 30, Mainland, the Celestial Circle
- Level 31, Mainland, Vandar Regional Prison
- Level 31, Mainland, White Sands Abbey
- Level 32, Mainland, Village of Inari
- Level 32, Mainland, The City of Koralia's Heart
- Level 32, Mainland, the Forest of Brigands
- Level 32, Mainland, the village of Xochitl
- Level 34, Mainland, the Island of Nani Makana
- Level 34, Mainland, Castle Camelot
- Level 34, Mainland, The Dome Sea, Tlalocan
- Level 35, Mainland, The Temple of Sand and Water, Tlalocan
- Level 36, Mainland, Northern Ash Mountains
- Level 37, Mainland, Village of Silverwind
- Level 37, Mainland, The Dwarven Stronghold of Khal-Rin
- Level 37, Mainland, Inside the Malahaki Falulua
- Level 37, Mainland, the Ash Desert and Dead Reefs
- Level 39, Mainland, Ash Mountain Ice Fortress
January, 2013 - The Anniversary
The biggest event of January was the
which ended up affecting a lot of areas on the game and opened a new
area in the Ash Mountains. This event needed several brand new
features in order to work correctly:
- weather updates were required to create a giant snowstorm covering half
- a new 'wardbreaker' spell was added to simulate gigantic wards and
give a way to do area lockouts requiring large groups to break
- massive changes to the way light and dark are handled in rooms
- on the building side of things, area global variables for dprocs,
which allow for some pretty awesome things in instanced areas
As always the huge groups created for events like this create their own problems,
as not all players can handle the spam levels and still function. As a
result of this, a number of group utilities were added - from 'group
summon all', to minion specific rescue, and spell recasting improvements.
The final addition for January was to enable daily gifts for every day of
the year, instead of just for the December Advent calendar.
February, 2013 - The Haunted Hills
In February, I did something I haven't done in a very long time: I built
an area. This was the level 14 area 'The Haunted Hills', on the Island
of Kordan. This is the first full area I've built in quite a while, and
I got to use some really cool dprocs (and add some cool new dproc code)
in it. A lot of the ideas for this came about because of the special
things added for the anniversary event the month before.
February also saw the opening of the official
Alter Aeon Wiki
, a project which
I've wanted to do for many years. Several AA wikis have sprung up over
the years, each just to be ignored or shut down over time. It's good
to finally have a wiki for the game that isn't going to go anywhere and
that I can make backups of.
We also opened for general use two of the anniversary zones - the planar
knot from the 17th anniversary, and the ash mountain ice fortress from
January. Both areas were intended to help address the need for high
level zones that people could group in.
A controversial change was to give items an 'identified' flag, so that
they would only ever need to be identified once. After an item has been
identified, the 'id' command will always show its stats, for free. This
helped ease the burden on new players, while still keeping the identify
spell relevant. Later in the year, we strengthened this by only requiring
items above level 25 to be identified.
There were a lot of other minor changes in February, including adding
an 'overall rank' leaderboard, a new gambling slot machine, and splitting
out a new spell group for necromancers.
March, 2013 - The Exp and Fame Rework
With high level groups and players consistently running the new high
level event areas, cracks and problems started appearing in the way
that experience was calculated and given to groups. After several
sets of changes and a lot of experimentation, it was discovered that
the fundamental problem was actually something different: fame.
In short, fame was preventing builders from properly setting levels
on mobs, and the improperly set levels were fouling up the experience
calculations. At lower levels, below the fame cutoff, experience
worked rather well, but above the fame cutoff, there were real problems
with the experience functions.
There was also another problem with fame: some areas had ridiculous
amounts of it, and it became clear that any reasonable high level
exp zone would have a lot of fame, even though the mobs were pretty
ordinary. As an example, the City of Kings had over 20 fame in it
prior to the fame updates.
Once the problem was understood, we started a massive three part
plan to fix it. The first part was to change the code so that fame
was assigned differently. Rather than simply treating all mobs above
level 30 as fame, only the six highest level mobs in the area were
'eligible' for fame, and even then they could be disqualified based
on area level or other constraints.
The second part was to change the experience calculations so that all
the special cases for high level mobs were removed. This got rid of
a lot of stupid workarounds and hacks, and actually simplified the
experience code a lot.
The third part was the biggest. Now that builders could set mob levels
without worrying about fame, we undertook a massive revamp of the most
common zones to relevel everything. I built new checking tools, and
after two or three months most of the areas on the game had been
Once we got the area levels straightened out, I expected to have to go
back and completely rework the exp calculations, but it turned out
to not be a problem. The calculations were now simple enough, and
properly matched for mob level, that I only had to make minor tweaks.
April, 2013 - No Limits and a Whole Lotta Stupid
Two of the more interesting changes were related to trainers: first,
trainers were no longer needed for leveling. That meant that players could
level any time they wanted, regardless of where they were, even if above
level 30. As of this writing, trainers are completely unneeded (teachers
for spells and skills still are, however.)
The second change was to eliminate stat requirements for levels beyond
30. In the past, some number of stats at 25 was required to level, but
when I looked at this restriction and considered the amount of practices that
would be required for higher levels, I just couldn't justify it as a good
However, by far the biggest event of April was the removal of the 'mob
deaths' field from the finger display. I removed it for two reasons - to
stop contests to see who could get the highest death count, and to reduce
the amount of 'im better than you because I have a lower death count'
posturing. Death count doesn't say much about a character, so I figured
hey, no big deal. I'll just remove it from the display.
The shitstorm was amazing, relentless, stupid, and lasted for two months.
Even now, there's a handful of players who insist on putting it in their
title. If anything, the idiotic responses and violent reactions I got
for making the change convinced me that I'd done the right thing.
May, 2013 - Building Tools and the Center of the Mud
With all the fame and experience mob releveling going on in the game,
it became clear that we needed much better checking tools for the builders.
A lot of time was spent in May to create those tools:
- checkers were made to look for mobs loading in the wrong areas
- a quick and easy way to move mobs between zones was added for world builders
- an area level checker was added, to show when high level areas were
too close to low level areas
- we started looking at the altitude/height coordinate in the room maps
for the first time
Over the remainder of the year, these tools would help to dramatically
increase the number of high level exp zones on the game, and made fame
a lot easier to find and work with.
One side effect of these building tools was to give players a warning when
moving into an area that's too high level. Exploration has always been
hard for low level players, and the warning messages make that much easier:
it's now pretty clear when you walk into an area that's too high level for
you, usually before you hit anything dangerous.
May was also the time of another interesting system-wide change: the
decentralization of Ralnoth. Traditionally, all clans could get an exit
to the Temple of Dentin directly from their clan area, and the official
board rooms for the game were also linked to the temple. While this worked
well in the beginning, it works less well for a game that has a half dozen
different gathering places for different levels. Most new players couldn't
reach the boards if they wanted to, and most high levels kept Ralnoth as
their central starting point, even if they were far too high level for it.
The solution to this was to make the central bulletin board its own area,
and allow people to waypoint into it from anywhere. The waypointing was
a lot more complicated than it seems, but after a handful of different
versions we finally settled on one that works pretty well. Regarding the
clan links, there are a few that still have the old link to Ralnoth, but
new clans don't and older clans will eventually lose their connection.
Lastly, Alter Aeon got an integrated credit card system, for buying credits
directly on the web. Simply log in your character on the secure web
then click 'buy credits' on the top menubar.
This was a really interesting project for me: none of the actual credit
card information actually goes to the AA server - it goes directly to the
credit card processor, who in turn tells the AA server how many credits
to give and who to give them to. It's a neat setup that protects the
buyers and prevents me from having to deal with card information.
June, 2013 - The Great Library
June saw a handful of interesting changes. One of my favorites is the
Great Library. In a game as old as Alter Aeon, you're bound to end up
with a lot of book items, ranging from histories to lore and spellbooks.
However, with books scattered about the game, it's virtually impossible
to keep track of them or read them in any order. Hence, the 'library'
The Great Library indexes all kinds of books and other material, allowing
players to find and read about the history of the game from anywhere.
It's been very handy for me as a builder too - I've used it several
times to try to find existing lore to work from, or to make sure I'm
not conflicting with some other piece of history. The library started
with only 160 books, and is now up to over 230.
June also marked an interesting, if not very obvious change: aligned
equipment now consumes alignment when worn. This effect is fairly weak
and is hardly noticeable, but it definitely matters. The alignment
controllers are having to work much less hard to keep alignment under
control, and we haven't had the same kinds of violent swings we saw
a year or more ago.
An experimental change was to add a custom login point for new necromancer
characters. When looking at new players, I noticed that a lot of them
didn't know how to cast spells or use even their most basic skills, so
this new area was tailored to get necromancers casting useful spells
right off the bat. These kinds of changes are always hard to measure,
but from the data I have, it appears to have helped new necromancers
quite a bit.
In tandem with this, we also disabled access to the old Vemarken Mud
School. All new characters now start at or near the encampment, which
should make it easier for helpers to understand what's going on and
how best to help them.
Lastly, the player Weyoun made a large number of fixes and updates to
the Mush-Z client, giving us an awesome stable bugfix release.
July, 2013 - Jobs
Daily autoquests and jobs really came to the fore in July. Jobs turned
out to be hugely popular, with some players completing thousands of them
in the seven months they've been available.
August, 2013 - Character Check
In response to confusion by new players regarding what spells and skills
were important, we added a simple 'check' command. This checks for the
most common important spells and skills, and displays the ones that are
missing. It also handles a couple of specialties, for example 'check
warrior' and 'check brewmaster'.
For something so simple, it's been hugely helpful, to the point that even
I use it on my new characters.
September, 2013 - Brewing
As part of the reworking and releveling of area to fix mob experience,
we realized that we still had a problem when trying to build group areas.
In september, the issue was solved by adding a group flag for areas, which
allowed builders to build properly scaled mobs for groups without violating
the area level constraints. There are about 30 group flagged areas on the
Another set of changes that started around September had to do with the
various brewing skills. These originally started out as show and search
routines intended to make potion recipes easier to manage. As a result of
discussions with various brewers, some algorithm changes were also made.
Brew focus got strengthened substantially, and lower chance brews were
made more common to give players something to focus on.
Later on, after the addition of the Druid class, the 'brew salve' and
'brew tincture' skills would get a brand new brewing feature: the
ability to analyze ingredients in your inventory to see what they will
brew in advance. Potion bottling was also changed to allow all classes
to learn it, so that druid and poison brews could be safely bottled without
knowing the mage brewing skills first.
October and November, 2013 - Druid
Work on the Druid class really started up in late September and early October.
The two months of October and November were almost entirely consumed with
druid code, or things related to it. Of the few things that were not
related to Druid work:
- The limit for stat training was changed to be linked to the maximum
player level, allowing players to now train stats to natural 26 instead
of the previous 25. That limit will automatically go to 27 when the
maximum player level is raised again.
- All old-style level type characters have been converted to the current
leveling system. The current system was introduced in 1997, and players
have been able to convert from old to new for several years. Rather than
try to maintain the old code any longer, everyone was forcibly upgraded.
- A whole new enchanting system was added, giving most classes unique
enchanting abilities, ranging from alignment and dieroll to camouflage
and rune words.
- The random item generation code was improved, allowing random weapons
and reducing the number of unusable randoms.
- Potions were allowed to save, instead of vanishing on logout or reboot.
This was a holdover from the early days, before potion quaffing timers
December, 2013 - Druid
In December, the long awaited Druid class was enabled. This actually went
pretty smoothly: there were very few crashes, and the balance problems
are slowly being worked out. For such a big change, the rollout went
largely as expected, thanks to the previous work done in 2010 when adding
Throughout the year, minor changes were made to PK, but in December it
was decided that tracking and improving PK balance was important. Several
sets of changes have already gone in, and more are expected in 2014.
See you next year!
BACK - Alter Aeon Article Index