All Projects → whutch → cwmud

whutch / cwmud

Licence: MIT license
An extendable, modular MUD server.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to cwmud

DikuMUD2
DikuMUD II from 1997
Stars: ✭ 24 (+60%)
Mutual labels:  mud, mud-server
dumserver
A modern MU* engine re-imagined, actively developed and properly tracked.
Stars: ✭ 54 (+260%)
Mutual labels:  mud, mud-server
shadowgate
Mirror of ShadowGate code
Stars: ✭ 12 (-20%)
Mutual labels:  mud, mud-server
dreamland world
DreamLand MUD: all configuration files, and some areas for local dev
Stars: ✭ 16 (+6.67%)
Mutual labels:  mud, mud-server
guildmud
A SocketMUD-based Multi-User Dungeon built and managed by the members of The MUD Coders Guild.
Stars: ✭ 26 (+73.33%)
Mutual labels:  mud, mud-server
mud-server
A MUD server written in Java w/basic OLC and a channel-based chat system.
Stars: ✭ 36 (+140%)
Mutual labels:  mud, mud-server
simplemud
SimpleMUD from MUD Game Programming book ported to NodeJS
Stars: ✭ 36 (+140%)
Mutual labels:  mud, mud-server
MoD
MUD on Discord, a MUD framework Bot for Discord
Stars: ✭ 20 (+33.33%)
Mutual labels:  mud, mud-server
dreamland code
DreamLand MUD: server code
Stars: ✭ 36 (+140%)
Mutual labels:  mud, mud-server
toaststunt
A fork of the LambdaMOO-Stunt server with features found useful during the development of Miriani and ChatMUD.
Stars: ✭ 31 (+106.67%)
Mutual labels:  mud, mud-server
room.js
A node.js MOO server
Stars: ✭ 75 (+400%)
Mutual labels:  mud, mud-server
judo
A more elegant way to play in the MUD
Stars: ✭ 17 (+13.33%)
Mutual labels:  mud
mudjs
WebSocket MUD client for DreamLand
Stars: ✭ 13 (-13.33%)
Mutual labels:  mud
aardwolfclientpackage
Get the Aardwolf MUSHclient Package installer at
Stars: ✭ 79 (+426.67%)
Mutual labels:  mud
MudDungeonJS
A mud engine using telnet and Web sockets for web built with NodeJs
Stars: ✭ 21 (+40%)
Mutual labels:  mud
mudmap2
A mapping tool for text-based games, like text adventures, MUDs and MUSHs
Stars: ✭ 35 (+133.33%)
Mutual labels:  mud
svof
Svof is an AI system for Achaea, an online MUD. It has advanced and adaptable curing capabilities, defence raising, and addons.
Stars: ✭ 52 (+246.67%)
Mutual labels:  mud
GMCPAdditions
These are additions to the IRE gmcp documentation
Stars: ✭ 21 (+40%)
Mutual labels:  mud
stunt
LambdaMOO with multiple inheritance, anonymous objects, HTTP, JSON <-> MOO translation, better crypto, a map datatype and a RESTful interface.
Stars: ✭ 67 (+346.67%)
Mutual labels:  mud
awesome-mud
🖥 A curated list of bookmarks, tools, tutorials, and other cool resources for text-based game developers.
Stars: ✭ 61 (+306.67%)
Mutual labels:  mud

cwmud

An extendable, modular MUD server.

Latest version on PyPI MIT license Supported Python versions Latest build via CircleCI Latest code coverage via Codecov

Clockwork is a pure-Python MUD server designed with modularity and ease of development in mind.

Current State

This isn't a viable MUD server yet. There's account creation, basic character creation, rooms, talking, and walking around, but that's about it. There are also no permission controls on admin commands yet, so anyone can do whatever they want (which is good because there is no concept of an admin yet).

The reload command was broken with the recent changes to client/protocol serving (the server reloads, but any connected clients will get dumped into a limbo state of disconnected I/O), but it should be fixed in the next minor version.

So anyway, very under-construction at the moment.

License

Clockwork uses the MIT license. See the license file for more details.

Installation

First, it is highly recommended that you set up a virtualenv to run Clockwork in:

$ cd mymud
$ virtualenv -p python3 --no-site-packages .venv
$ source .venv/bin/activate

Then, Clockwork can be installed through pip:

$ pip install cwmud

Note: If not using virtualenv (you should!), you will need to run this command with elevated privileges (sudo).

Dependencies

Clockwork runs on Python 3.4 and is as yet untested on any later versions. There are currently no plans to support earlier versions.

Clockwork requires a running Redis server and the redis-py bindings package for messages, and bcrypt for password hashing (and bcrypt in turn requires libffi). It also makes use of miniboa-py3, a Python 3 port of miniboa, which is a tiny, asynchronous Telnet server. Our modified copy of miniboa is included in cwmud/libs.

To install the libffi library on Debian/Ubuntu, run:

$ sudo apt-get install libffi-dev

See the Redis Quick Start guide for details on installing and configuring Redis.

Configuration

All the post-installation configuration settings are stored in cwmud/settings.py.

Some key settings you'll probably want to change:

DEFAULT_HOST: The IP to bind the listener to, default is "localhost" (127.0.0.1), change to "0.0.0.0" to allow external connections.

DEFAULT_PORT: The port to listen for new Telnet connections on, default is 4000.

LOG_PATH: The path for the server log, defaults to "./logs/mud.log" (rotates daily at midnight, which are also settings that can be changed).

DATA_DIR: The path to a folder where local data should be loaded from and saved to (serialized objects, flat text files, etc.), defaults to "./data".

These (and other) options can also be set on a per-run basis using command-line options (see below).

Usage

To start the Clockwork server, simply run:

$ python -m cwmud

For a full list of uses and options, see the help output by running:

$ python -m cwmud --help

After booting, the server will be ready to accept Telnet connections on whatever address and port you specified in cwmud/settings.py (default is localhost and port 4000).

Testing

Clockwork includes a suite of unit tests in pytest format. To run the test suite you will first need to install pytest and the plugins we use (coverage, flake8, timeout). To install all of the test suite dependencies, run:

$ pip install -r tests/requirements.txt

Note: If not using virtualenv (you should!), you will need to run this command with elevated privileges (sudo).

After pytest is installed, you can run the test suite via our Makefile:

$ make tests

If you don't have make available (a make.bat file will be in the works for Windows users), you can call pytest directly like so:

$ py.test --flake8 cwmud tests

Development

Please read the style guide for coding conventions and style guidelines before submitting any pull requests or committing changes.

Contact & Support

You can email me questions and comments at [email protected]. You can also find me as Kazan on the Mud Coders Slack group (you can find the sign-up page on the Mud Coders Guild blog).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].