2012-03-28 08:15:15 +00:00
|
|
|
What is wMUD?
|
|
|
|
=============
|
2012-03-26 16:34:12 +00:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2012-03-28 08:15:15 +00:00
|
|
|
What are the key features?
|
|
|
|
==========================
|
|
|
|
|
2012-03-26 16:34:12 +00:00
|
|
|
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.
|
|
|
|
|
2012-03-28 08:15:15 +00:00
|
|
|
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?
|
|
|
|
===================================================
|
2012-03-26 16:34:12 +00:00
|
|
|
|
|
|
|
wMUD's development, so as other MUD codebases', is no easy task. Although each
|
2012-03-28 08:15:15 +00:00
|
|
|
thread is coded in a separate file (except the game thread), threading makes it
|
2012-03-26 16:34:12 +00:00
|
|
|
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.
|