lfeutre / lmud

An Erlang and LFE MUD/MUSH Server.
Other
23 stars 9 forks source link
hacktoberfest

λMUD


λMUD (pronounded "L-MUD" or "El-MUD") is a rather minimalistic MUD server, written in Erlang and LFE, making use of the excellent OTP libraries.

The aim is to have solid support for exploration, roleplaying, and in-game economies deployed on a highly fault-tolerant environment (which supports hot-code loads) where system crashes or reboots are more of an exotic curiosity than a commonplace thing.

Milestones

Background

Erlang/OTP is an excellent match for MUD development, with strong support for concurrency through light-weight processes, hot code upgrades, near- transparent mechanisms for distributed computing, etc.

This project has dual ancestry: originally based on the ErlyMUD code, it derives much of its new MUDness from TinyMUD servers like TinyMUSH, PennMUSH, etc.

Run Immediately

If you just want to check out the lmud server, you can do so with the following:

  $ make docker-run

This will use the published docker image with a game-data volume.

Building & Running

  1. Download the latest:

     $ git clone https://github.com/lfex/lmud.git
  2. Change directory, compile the source, and make a release:

     $ cd lmud
     $ make

    Note that this requires having the following installed:

    • GNU make
    • Erlang
    • rebar3
  3. Start up λMUD:

     $ make start

    Additionally, you can start the MUD with the LFE REPL (useful if you're going to be developing or debugging):

     $ rebar3 lfe repl

Connecting a Client

  1. From another terminal, connect to the game:

     $ make connect

    This make target uses the rlwrap CLI tool, which provides readline support in telnet. That, in turn, allows you to use a command history like with your system shell (including such things as searching the command history with ^r).

    Once connected, you should see something like this:

     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '^]'.
    
     Welcome to:
    
                                   ....
                                 .'   ,:
                               .'      \.___..
                             .'      .-'   _.'
                             '.\  \/...-''`\
                               :.'   /   \  :
                                :    () () /
                                (_ .  '--' ':
                                  / |_'-- .'
                                  \   \  .'_\
                                 .|__  \/_/:
                                /          :\.
                               .' -./      .'{\|))
             __       M"""""`'"""`YM M""MMMMM""M M""""""'YMM
             \ \      M  mm.  mm.  M M  MMMMM  M M  mmmm. `M
              \ \     M  MMM  MMM  M M  MMMMM  M M  MMMMM  M
               > \    M  MMM  MMM  M M  MMMMM  M M  MMMMM  M
              / ^ \   M  MMM  MMM  M M  `MMM'  M M  MMMM' .M
             /_/ \_\  M  MMM  MMM  M Mb       dM M       .MM
                      MMMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMMM
    
     An El-MUD Game Server, v0.7.0-dev
    
     ----------------------------------------------------------------
       If you are logging in for the first time, then at the 'Login'
       prompt, type the character name you would like to have (case
       insensitive).
     ----------------------------------------------------------------
    
     Login:
  2. Create a user.

  3. Have fun!