[MUD-Dev] Project announcement: Cool++

ryan daum opiate at saturn5.com
Tue Dec 4 12:23:47 New Zealand Daylight Time 2001



CoolMUD? Cool++?

  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 mailing list