Use aspects. Preferably AspectJ, but may use Spring AOP.
Implement usage of Spring. Define beans.
Implement objects using DAOs (POJOs). Example program areas and worlds as
DAOs. Anything with data attached to it should be a POJO with an associated
DAO.
Create front-end (Swing or Web) for world building and administration.
Groovy scripting.
Support of multiple databases through Spring/hibernate.
Usage of HSQLDB for embeddable database support. Will allow ability to
switch to MySQL/Postgres and other drivers supported by hibernate and
spring.
For mud4j-web, embed Jetty container and build WAR for inclusion in
external containers.
Implement a help system similar to an internal wiki. Attempt
to utilize existing open source projects. This will involve
allowing it to be compatible with multiple pluggable view handlers.
(telnet and web).
Game
Allow characters and objects to be interchangeable in certain instances.
Especially at the root level. This would allow certain spells to be castable
upon players and objects.
Allow a trackable map for the character to have.
Implement composite pattern for items. Treat a collection of items the same
as a single item.
Implement tile-based system for worlds/locations (aka rooms)
Implement floating-based system for movement instead. This would allow
adoption of framework in different types of game systems such as 3D or 2D
isometric games.
Command pattern for mud4j commands issued to the core server.
For views of core, implement using a two-stage view either using a template
view, or a transform view for web and telnet.
Time (implementation of ticks with observer pattern) to allow runtime
configuration of listeners for when a tick happens all listeners should be
notified.