wMUD MUD codebase
Go to file
Gergely Polonkai 6b3d2c870e Changed my e-mail address 2013-06-10 21:38:15 +02:00
conf Moved from direct SQLite to GDA 2013-01-06 21:41:29 +01:00
data/texts Added a static text and template handling bundle skeleton 2012-05-18 15:55:02 +02:00
docs/reference/wmud Added the menu loading and checking functions. 2012-03-31 09:19:57 +00:00
iminiru Added menu table and its contents to the SQL files 2012-03-30 20:36:29 +02:00
nbproject Created a NetBeans project 2012-08-25 22:16:08 +02:00
old-codebase Made some more cleanup in old-sources 2013-01-02 00:25:48 +01:00
sql Fixed create-world.sh and drop-world.sh scripts to include menus, too 2012-05-17 22:17:21 +02:00
wmud Added display handler for log messages with CRITICAL severity 2013-01-06 21:45:03 +01:00
.gitignore Consolidated conf/.gitignore into main .gitignore file 2013-01-05 14:35:44 +01:00
AUTHORS Changed my e-mail address 2013-06-10 21:38:15 +02:00
COPYING Added autotools stuff 2012-03-07 16:37:43 +01:00
ChangeLog Added autotools stuff 2012-03-07 16:37:43 +01:00
HACKING Added the HACKING file for later fill, with only a very basic description 2012-03-25 11:58:14 +02:00
INSTALL Added autotools stuff 2012-03-07 16:37:43 +01:00
Makefile.am Removed the GIO SMTP startup 2013-01-02 20:01:42 +01:00
NEWS Added autotools stuff 2012-03-07 16:37:43 +01:00
README Extended the README file 2012-03-28 08:15:15 +00:00
TODO Moved some TODO items to GitHub's issue tracker 2012-08-25 22:13:16 +02:00
autogen.sh Added the libgiosmtp module, and hence libtool support 2012-05-19 12:40:07 +02:00
configure.ac Moved from direct SQLite to GDA 2013-01-06 21:41:29 +01:00
create-world.sh.in Fixed create-world.sh and drop-world.sh scripts to include menus, too 2012-05-17 22:17:21 +02:00
drop-world.sh.in Made create-world.sh and drop-world.sh a template. 2012-03-27 19:42:56 +00:00

README

What is wMUD?
=============

wMUD is a MUD code base. It is written from scratch, using GLib and CURL.
Although it is just another MUD code base, I tried to add unique features, and
also tried to make it as flexible as possible.

What are the key features?
==========================

wMUD stores everything in an SQLite3 database, and everything really means
everything. The whole world is dynamic, and most of it can be defined without
touching the code itself. Possible directions, areas, rooms, items, mobs,
races, classes and all important apects of the world are in the database
backend, and as such, can be reloaded runtime without stopping the MUD.

wMUD is modular. Except the basic commands, everything is loaded via dynamic
modules (well, on systems which support it). This again helps flexibility, as
commands, spells, and many more can be loaded or unloaded runtime. This, of
cource can sometimes cause funny things in game play (characters disappearing
because of unloaded race), but everything can be explained with a good story.
Or, if you are not creative enough, you can simply disable this functionality.

wMUD is a threaded application using GLib's GThread functionality. All tasks
are done by separate threads, so the game can run as smoothly as possible. The
game world is ran by one thread. Database updating is done by a separate
maintenance thread. This may cause some lags in the database update process,
but whenever it causes trouble, wizards can force the maintenance thread to
start immediately. The Out-of-Game chat functions also run in different
threads.

Why writing a new codebase?
===========================

The MUD codebases out there (well, the ones that are freely available) are a
bit outdated. Yes, I know that in the world of MMORPG games even MUD is
outdated, but who cares?

The other part of the story is that I needed challenge. Writing such a software
while creating a world to run in it is a huge job. However, creating a world in
a codebase that does not really support the features I need requires a lot of
coding. I realized it early during the world building with CircleMUD, so I've
decided to create a new codebase even if I have to recode everything from
scratch. As GLib, SQLite3 and CURL are at my hands, even if I'm just trying to
get to know them, it was not that hard.

How can I help in development, or add my own stuff?
===================================================

wMUD's development, so as other MUD codebases', is no easy task. Although each
thread is coded in a separate file (except the game thread), threading makes it
even difficult. I try to make this task as easy as possible with comments and
an API reference, but this is also a hard goal to accomplish. If you really
want to mess with things, the file HACKING is just the place for you.