[MUD-Dev] [TECH] [DGN] Hyper-realistic MUD

David B. Held dheld at codelogicconsulting.com
Sun Apr 21 21:04:29 New Zealand Standard Time 2002

I'm developing a MUD in C++ with some design goals that I don't see
too often in other MUDs.  First, it seems that most MUDs are
player-centric.  There are obvious reasons for this, but one
particular result is that the world is often "passive", mostly
reacting to player actions.  I am interested in creating a MUD that
is "active", in which players react to the world.  To that end,
instead of players logging in and being the rulers of the world, I
would like them to be guests that earn their position within
society, and must help to work towards the common good, for their
own survival.  I plan to do this by simulating as much of the world
as possible.

I just started reading this list, and I see that there are many new
MUD designs, and some of the ideas I have are definitely not new,
but if, as a whole, my ideas are not new, I would certainly like to
know about any MUDs that have implemented this kind of system.  My
MUD codebase is going to heavily revolve around "events".  For now,
it is ASCII-art based, somewhat like Angband/Moria.  Movement will
put the player into a "Moving" state, in which they will continue to
proceed in a direction until something prevents them from doing so.
This will be implemented as so: A player says something like
"north", which calls TCharacter::North(), which moves the player a
small increment, and adds a pointer to this method to an event
queue.  When the queue is handled, North() gets called again, moves
the player a little more, and adds itself to the event queue again.
All player comands will extend over time like this, including eating
and sleeping.  Also, all events will be scaled according to reality
as much as possible.  That means every grid square has a certain
physical size, and movement will proceed according to typical
walking/running speeds based on a character's

I intend to create a closed, self-sustaining universe in which food
must be hunted or grown, and magic is rare.  So doing things like
protecting farms and fending off poachers is naturally in your self-
interest.  Players will be able to acquire property, and will
naturally want to defend their "home".  Different races will inhabit
different geographic locations, and conflict, as in the real world,
will primarily be motivated by limited resources.  That is, battles
will occur mainly over land, water, minerals, and other natural
resources that real humans fight over.  There will not necessarily
be any generated "quests", unless the basic philosophy of the game
design turns out to be boring or unstable.

The advantage I see in this kind of design is that new players will
tend to stay near the population center for their race, where it is
relatively safe.  The outlying areas that are closer to potential
enemies is where stronger players will venture.  However, since
farmland necessarily takes up a lot of space, farms will not be able
to enjoy the protective walls of a city.  This will make them
vulnerable to attack, and naturally, will be one of the first
targets of a raiding party/army.  So there is constantly a need for
defensive combat, even if only from wild creatures like wolves,
foxes, etc.

The relative safety will decrease with distance from a city center.
Powerful players will win fame and fortune by taking raiding parties
or armies to plunder nearby enemies.  As weight and strength will be
realistic, and physical attributes will tend to change little,
players will need the benefit of pack animals, etc. to carry their
plunder.  Money will be gained through activities like trade and
protection (or outright racketeering, possibly).  Trade will be
necessary among cities, providing easy targets for bandits, and
plenty of jobs for mercenary escorts looking for hack and slash as
well as wealth.

Originally, the mobs will be scripted with simple activities that
will fulfill their goals (hopefully).  Later on, the MUD will become
an experimental platform for developing AI, and various learning
strategies will be tested.

The codebase is written in C++, using the latest techniques and
idioms available.  Extensive use of Boost and Spirit are made in the
source thus far.  Right now, the data is all stored in-memory after
being loaded from XML-like data files, but the DB will get
checkpointed periodically, and the world will be persistent (no
repops, etc.).

If someone has already written a codebase like this, I would be
interested in joining that project instead of reinventing the wheel.
If not, I would be interested in talking to other people who would
like to help develop a system like this, and have good C++ skills.
I noticed a post about CoolMUD, with which I am unfamiliar, and how
it is being ported to C++, but I was not able to log into the
experimental server and try it out.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list