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

  • Navigation

  • 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.

Comments