55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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.
 |