Wednesday, September 23, 2009

PK, PPK, PK, PPK...

Player killing on Alter Aeon has always been limited to registration, and while we have various arenas and temporary PK, we also have permanent registration - known as PPK.

PK has never bothered me much, but it's never really interested me either. PPK on the other hand I've tried a couple of times. I could never get into it, and it also seemed like I could never get away from various instakill issues.

Instakill reared its ugly head again a few days ago, and after fixing the specific instakill bug, it occurred to me to simply cut all PK damage in half. That clearly reduces the instakill problem, yes? However, there are some problems.

The biggest of these is that the existing PPK population doesn't like it. There's a few of them that do, but largely the response has been negative. A number of them say that PPK has gone from a threatening, risky affair to an irritation they can easily and always run from and survive. Others note that the power to heal has been effectively doubled, giving casters with a lot of mana huge advantages. Both of these criticisms are good, and sufficient to convince me to revert the change.

However, the instakill problem still lives. The current consensus is that judicious limiting of various instakill mechanisms is the best way to go forward. Barring any major objections, we'll probably go that route.

Thursday, September 17, 2009

The mapping saga continues

While in the dentist's office yesterday, I had a brainstorm regarding mapping: why not run a real-time simulated annealing algorithm to automatically generate the global coordinate grid? When I got home, I took a few hours to implement it, and last night I booted an initial version into the game.

These new position values don't currently do anything, as I'm still working out the bugs and looking for general problems. One thing that appears to cause quite a bit of trouble are nonlinear 'portal' links that bridge a large distance; another major problem are god/builder rooms that link to unusual locations for plot device reasons.

Flagging these troublesome exits isn't something we can currently do, but it's become clear that we will need to do so in order to make the grid coherent.

Finding the problem exits is also difficult, but it's made somewhat easier by an extension to one of our existing mapping routines. By calculating a 'stress energy' for the linkages in each room in the map, I can get a pretty graph showing where maximum grid distortion occurs. These points of maximum distortion usually occur near a positional anchor, which are used to set the position of continents or isolated zones.

However, once the map for a given area has stabilized, the maximum distortion points typically indicate one of the nonlinear links described above. Once the approximate location is known, finding and marking the link is substantially easier.

All in all, I think this is working well enough that we may be able to use it globally for all area placement. Over the next week or two I'll be generating some area and room maps based on this data, and we should be able to refresh the god area and room maps on the web pages soon.

Sunday, September 6, 2009

Class updates

As part of the groundwork for getting additional classes into the game, Locane and I have been digging through the code and trying to condense common routines and eliminate dependencies. He's been working largely on uncontroversial skill changes, to merge together the skill handling routines and make it easier to add skills in the future. I've been working on player regen and healing. This is a bit more controversial.

Quite a bit more controversial, as it turns out.

The fundamental problem with regen and healing is that the algorithm was put together over a decade ago, and hasn't been fundamentally altered since. In its simplest form, caster levels are pitted against fighter levels, and regen is heavily tilted in favor of the winner; higher casting level means greater mana regen and less hitpoint regen, while higher fighter level is the reverse.

This balancing act was a zero-sum game. Gaining a single level in a class could force you to trade hitpoints for mana; and at higher levels, a caster for example has no choice but to gain levels in fighter classes. The only thing that made this balancing act of a system usable is cast level equipment, which allowed players to push around the balance point.

Unfortunately, adding new classes isn't really compatible with this. We have also received a number of complaints over the years about unusual side effects and problems with the system. I finally made the decision to try something radical, rather than continuing to tweak the existing code.

The last couple of days, while hectic, appear to be quite an improvement. The level/balance dependency is gone, and I've even managed to keep cast level somewhat usable. Most players have increased net regen, which is probably bad in the long term, but in the short term allows work to progress.

Something unusual is that the value of mana regen varies wildly based on the player and their playing style. I have a couple of fighter primaries totally geared out like casters; these players complained loudly about being dented. This type of player would gladly trade hitpoint regen into mana at a 4:1 ratio, double the standard 2:1 typically found with heal spells. Most other players are happy with 2:1, as they burn through mana and hitpoints almost equally as they play.

The plus side is that this work has eliminated yet another choke point for pushing through additional classes. Unfortunately, there remain quite a few equally controversial areas that will need to be updated.

Wednesday, September 2, 2009

Client release 0.981!

After much debugging, version 0.981 of the Alter Aeon Mud Client has been released! This release has a number of cool new features, including:

- popup windows for things like your equipment, stats, spells, and who list

- function key buttons that make sense

- inlined automap in the main window

- cleaned up and prettier user interface

This version of the client is quite a step forward, and we've got a lot of positive feedback from players. Grab a copy from the main Alter Aeon web site, at:

http://www.dentinmud.org/AlterAeon.exe

Here is the full changelog of additions and updates in this release.

Version 0.981 - Sep 02, 09

The automap is now undockable.

Minor bug fixes to main window mouse selection and screen clear.

Disconnect dialogs and quit/program exit will no longer echo commands to the screen, so newbies won't see things like "quit -check".

Fixed bug so font size changes immediately update the scroll bar.

The 'you are here' diamond in the center of the map should now pick more contrasting and visible colors based on what room you're in.

With command pushthrough, pressing the left arrow key after selection will now deselect and put the cursor on the left side of the window.

A voting reminder option is now available in the voting menu.

An option to open all voting sites at once has been added.

Fix bug in status bar hp/mana/mv display when changing window size.

Minor improvements to url clicking.

Add support for function key button bar.

When the automap is docked, it's now resident in the upper right corner of the main window instead of off to the side.
'Left side layout' has been removed.

Some of the menu items have been moved around.

The enemy hitpoint bar now floats in the main window when it's active.

The enemy hitpoint bar can now be disabled from the preferences menu.

The main window scrollbar can now be disabled from the preferences menu.

Control 1-9 now enable/disable various features.

Control-B has been removed to free up keyboard space.

Hitpoint bar red color is now slightly brighter.