[MUD-Dev] Project announcement: Cool++
opiate at saturn5.com
Tue Dec 4 12:23:47 New Zealand Daylight Time 2001
CoolMUD is an object oriented MUD server with a lot of nice
features, like being able to connect several seperate MUDs running
on different machines together seamlessly. It was originally
written by Stephen F. White, the creator of MOO (from which
LambaMOO was forked). It is now maintained (somewhat sporadically)
by Robin Lee Powell.
Cool++ is a refactoring and rewriting of CoolMUD in C++. It is
being written by Ryan Daum, Norman Nunley Jr., and Per Vognsen.
* Using standard types and libraries - By using the STL
(standard template library) we avoid having to maintain and
develop custom data structures and algorithms, and we can
leverage a large amount of 3rd party code.
* Modularity - By refactoring CoolMUD in C++ we hope to end up
with some generic components suitable for the construction of
custom configurations and even new servers. It also makes it
much easier for us to add new features.
* Taking advantage of features of C++ - Certain things are
difficult to do in C that become much easier in C++. Reference
counting, for example, becomes much easier with a reference
counting smart pointer. The same goes for string interning,
storage of variable types, and other things that the CoolMUD
server relies on.
* Optimization - During refactoring we have already discovered
many areas where our C++ version performs better than the
original server. This is mainly due to the extensive type
refactoring (replacing linked structures with vectors, for
example) and the leveraging of C++ polymorphism where switch
statements would have formerly been used.
* New features - See below.
* Fun - The most important.
What features do you plan on adding?
* Encryption - We hope to provide public key encryption of both
YO and player sockets, to allow for secure to- and inter-MUD
* Native code method objects - Method objects which are made up
of native code, and stored in a dynamically loadable library,
will be able to be attached to objects by the system
* Metaobjects - Provision for more flexible dispatch to allow
for extensible, OO types.
* New types - We've already added floats. Sets and multimaps are
next. Anything is possible.
* Better cache and db support - Because the internal design of
the server is now done in an object oriented fashion, it is
relatively easy to "plug 'n play" with multiple object
databases. We initially support an optimized and cleaned up
version of the Ranum cache and db. However, it will be simple
to provide hooks for new storage mechanisms like LPSM or
* Support for new protocols - We are looking at providing
support for BEEP, for example.
* More robust distribution - We plan on leveraging some of the
last decade's research into agents, peer to peer networks, and
object distribution to enhance the protocol or replace it with
something roughly equivalent. Things we hope to accomplish:
automatic peer discovery, routing optimizations, multicasting,
* New language and VM features - Scatter assignment and proper
exceptions are two top priorities.
* Multiple syntaxes / languages - The parser and decompiler
framework is being totally rehashed to allow support for
multiple language syntaxes over one bytecode interpreter.
When do you plan on releasing?
What's in CVS right now runs, but with a certain amount of
bugs. We plan on releasing when the right balance of buglessness
and new-features has been found.If you're interested in a bug-free
release, you can either wait a few months, or help out. Can I
We are looking for C++-savy developers to help out. We are also
looking for people who want to write in Cool's native scripting
language to add features to (or rewrite...) the core system
How can I get a hold of you?
* Drop by our development server at darksleep.com 8888 (using
telnet with that address will work, but I recommend a good
client like tkMOO.
* Or mail me (Ryan Daum) at: opiate at saturn5.com. (@ removed to
avoid spam: "s/ at /@/".)
____ ryan daum ____________________________________ ryan at techno.ca _________
MUD-Dev mailing list
MUD-Dev at kanga.nu
More information about the MUD-Dev