ef logo   woo, issa the MOoon
 - News
 + Development
 
 - Overview
 - Documentation
 - Downloads
 - Mailing Lists
 - MUD Interface
 - Noble's Resources
 - Guilds
 - Societies
 - Community
 - Maps
 - Help/FAQ

  SourceForge Logo
  Project Overview

The BACCHUS project is a project to create a Multi User Environment. BACCHUS stands for Built And Compiled in C++ for Halucinations of Users to be Shared. Most MUD engines these days have a catchy acronym, so I figured why should mine be any exception. Take Advanced Dungeons and Dragons, put it on the internet, soup it up some, and voila - thats pretty much what BACCHUS is.

Anyhow, enough of the jocularity. The project has some serious goals that seem to have been overlooked by many of the classes of MUD engines currently around. Firstly it has to provide a realistic object model. Messages should be produced and received more in parallel with real life so that it might acheive a much higher degree of realism in copmarison to previous engines. A good example of this is the seemingly simple task of walking into a room.

When you walk into a room, you don't see every little detail of the room at first glance, and you may not even notice some of it's occupants if the room is bustling with people, then you may only notice around 20% of the occupants.

And you might also notice what some of the occupants are wearing. If for instance you are a character that has a primary trait of magic, then you might notice other magic casters before you notice other Warriors. If however you notice a warior, then you might also perhaps notice what kind of weapons he is carrying, but those of most note to you would be those that could potentialy do you the most harm, therefore, you would 'see' those first.

The BACCHUS system tries to organise messages so a more complex information processing system is available to do this kind of information filtering and text generation.

One other major strength of the BACCHUS system is it's core and command design. The entire command system is loaded in the form of .so libs in Linux using dlopen(). This means that the entire set of libraries can be reset at run time, allowing upgrading of the system whilst it is still running producing only a minor pause in performance.

The Object Oriented nature of the system, and the passing of a fully encapsulated Message Object to each and every of the command functions allows very easy access to the members that pertain to each command. Which in plain english means that the command set is very easy to make additions to, and extend beyond the original functionality.

The penultimate point in BACCHUS are the plans for the Java tools. BACCHUS will include two main set of Java/Web tools. Firstly the configuration utilies which will autogenerate #include information so that when you compile the MUD you can select exactly which modules you want to include, and what message you wish to customize. Hopefully all but the core modules will be completely plug-and-play. This is a feature that is in the pipeline, and somewhat on paper, but is planned for future versions.

The second set of tools will most probably be mainly web based for ease of the user. They are going to be online building tools that will allow you to edit the content of the MUD from a simple interface on the MUD's webpage. The interface will log in as your character and act like a custom client, allowing you to communicate on the standard MUD communication channels through a comms window, and also, which is the main point of the tools, to create and design rooms/objects etc... online whilst the MUD env is running. This of course means that testing is much easier, as it can be done in parallel with the creation.

Of course because the MUD uses a system of soft property inheritance, very little coding should ever be required to build new objets because hopefully the designer (ed: i.e. ME atm) will anticipate almost all common functionality and write commands for it that can simply be 'plugged' into the object you create. This means the testing of custom commands is already done, allowing a great degree of long term stability to be acheived, and reducing the amount of testing required by the end user or MUD Admins/Coders.

Lastly, and only lastly beccause it's something that I don't envision will be acheived for perhaps another 12 months or so is the plan for a fully distributed system.

I have designed a set of interface levels with a passing similarity to CORBA, and I may even end up using CORBA for the main framework, as it will allow the Java tools to be designed better and perhaps allow someone (maybe even me) to write a design set in GTK+ or QT for X. The levels will allow entire servers to be mirrored, giving a much higher level of stablitliy. Also satelite areas of the MUD can be held on less expensive systems with a lower bandwith to reduce the overall cost of the project (after all, I am just one guy building and paying for the server space). Another side effect of placing the satelite modules and zones on other servers is that if the smaller servers fall over, then all we loose are the non-essential services that can be quickly relocated and rebooted by the Distributed System Framework with only minor upset, although some loss of data will be innevitable withoug incurring higher financial cost or more mirroring (which of course costs twice as much, but may only produce a very small improvement in product performance). There are also plans to allow this system to interface with other MUD/Talker products to produce a 'web' of talker/MUD system more like Casinos on an Las Vegas street where you can simply walk out from one, and into the other. A soft variable store is kept at the center of the system where all information from each system is held so that the user can seemlessly move back and forth between completely heterogenous system without loosing any information that either one needs. This again is a long way off, but is in my mind at least a very important project goal.
 
 

© ElysianFields Team Contact us