Wishlist for the new 0.5.x tree (! = closed, * = urgent, l = lower priority) * use XML extensively, use dynamic storage of properties in objects - player & area files: dynamic storage of "modifcation" specific data in an associative array, possibly with callbacks/triggers when new data is stored, see below for description of "modifications" - server configuration: store known server-side variables and introduce new ones, such as experience formulas, experience per level, damage formulas, number of stats, stat maximums, etc. - GHL (working title): Grendel Help Language, use XML to describe help/manual content, in cooperation with system configuration elements to describe visual properties (colors, etc.) * revise grouping system: generalize GObject to some form of object 'list' (possibly named GItem), which can contain 1 or more GItems or subsets of GItem, something along those lines * get rid of a lot of obsolete smaug/diku/emlen-inspired code, this only helps in keeping the system unstable and hard to manage. - rewrite position code, instead of mutual exclusive POS_XXX identifiers use flags to describe a combination of states - possibly rewrite/rename the fighting & magic code, this will break compatibility but improve code re-usage and stability * generalize races & clans to configurable character "modifications", with some form of plugin architecture to add specific behaviours to a character (access to commands, properties, etc.) - modifications possible for areas as well, enables "dynamic" areas, such as randomizing mazes etc. * use coordinates and mpfindpath code to make NPCs more intelligent - generalize current experimental coordgen code to generate multiple "coordinate spaces", each space allocated for a disjunct, unlinked set of areas (usually, a new space begins when a portal is reached) - move towards 'true' AI by using the findpath code to allow NPCs to find particular targets or locations in the game world * better damage/experience calculus - unusually difficult task, maybe worth the time to investigate the possibility of auto-balancing tools or algorithms - relies extensively on configurability of server-side variables (see above) * gmc specific features/extensions: - extracting matching parts from a string (possibly using full regexps instead of the fastmatch used now) - global/mudwide (static) variables l implement isPlayerName(), isObjectName(), isMobName() and (perhaps) isSpellName() and enforce their use throughout the code l IMC (intermud communication): both channels *and* noteboards (perhaps separate server for noteboard, or whatever) l (optional) "real life" sleep - players need sleep to keep from falling down after 2 days, some rooms (with beds) have better sleep ratios etc., possibly as a demonstration of the "modification" system l (optional) mud police, implemented as a series of gmc scripts