AweMUD TODO List
0.25
Make sure documentation is up-to-date and relatively complete
-
Clean entity name handling
-
New storage engine
0.26
Integrate PString library
-
Improve OLC
0.27
Clean player/account separation
-
Clean connection handling sysetm
0.28+
Usable AI system
-
Real solid Ruleset support
Blue Sky
Moons/astrology - just make a list of moons and names, days per cycle, and add some new look commands and stuff.
-
Player-killer rules/tracking
-
Room environment types (underwater, mid-air...)
-
Language skill levels (and mangling)
-
Speach tones (tonesay angry I hate you: Elanthis angrily says, "I hate you")
-
Guilds (player-run as well)
-
Tons more socials
-
Detailed stores
-
Factions (for tracking npc reactions to players)
-
Trading ('secure' way of trading goods/money between players)
-
Pets
-
Potion mixing and crafting
-
Scoring (based on total exp, possessions, whatever)
-
Hot rebooting
-
'Guest' NPCs
-
Body parts damage/tracking
-
Monster/Object designer wizard/druid
-
Super advanced combat
-
Advanced weather (climates, regions, etc.)
-
C++ character creation
-
Advanced, complete AI
-
Lots of advanced special skills
-
Mounts/vehicles
-
Player owned houses/stores
-
Linked location World Model
Redesign
Remove Entity.remove(), make it Entity.destroy()
-
New save/load code that is based on a save() call made to the EntityManager which saves all entities. Load then would scan the list of all saved entities and pull them back in.
-
New DB system. Each entity is only a list of key/value pairs. No sub-objects. Could *easily* be abstracted to a file-based backend, SQL, etc. Would need operations: query(load), save(atomic transaction that clears all keys, then commits all changes when full object is saved), and destroy(delete).
-
Character should become a simple interface definition.
-
Event code shouldn't try to auto-propogate to rooms; let the receiving Entity decide whom to proprogate the event to. (Likely it's children, parent, and siblings.)
-
Entity factory that loads based on names, so that the file object loading code can pick up any sort of derived/customized entity type.
-
String parser (used for room descriptions and such) should use precompiled byte-code-like representation for much faster display.
-
Make a separate thread/daemon for handling player I/O, and make it responsible for parsing commands and formatting output, reducing processing latency for the main server.

