======= mudpy ======= .. Copyright (c) 2004-2019 mudpy authors. Permission to use, copy, modify, and distribute this software is granted under terms provided in the LICENSE file distributed with this software. The mudpy project aims to create a simple, generic, cross-platform, freely-redistributable MUD core engine which can be easily understood and extended. It is written in pure Python 3 and has only pure Python dependencies. All configuration and data are stored in consistently-formatted plain text (YAML 1.1) files for ease of administration. The core engine is unicode-clean internally and supports UTF-8 encoding for input and output of extended text characters. The mudpy program and sample content are released under a free and open license, and any bug reports, criticisms, ideas, patches, content submissions or other offers of collaboration are wholeheartedly welcome. what's missing -------------- This project is still very much a work in progress, and is unlikely to be suitable for anyone who isn't willing to put in a bunch of work (help implementing features upstream is welcome, of course!). Here's a non-comprehensive list of missing things most folks are likely to expect in a MUD: * interactive objects/props * inventory/equipment management * non-player characters * a default combat system * sample races/classes and spells/skills * example implementation of character stats/progression * closeable/lockable portals * ability to change randomly-generated avatar names * pagination of the output stream what's included --------------- The fundamentals of a multi-user service are in place, and foundations are laid on which the missing features above can be built. Here are some highlights of what's been implemented so far: * the beginnings of a MUD framework - account creation, authentication and lobby menus - movement between rooms/locations with inferred portals - in-room communication between users - setting and viewing user preferences - an integrated command help system - world creation and introspection commands for admins - live reloading of configuration and source code * a full-featured Telnet service with a focus on IETF RFC compliance - RFC 854 Telnet protocol - RFC 856 binary mode - RFC 857 echo control - RFC 858 go-ahead suppression - RFC 885 end-of-record transmission - RFC 1091 terminal type - RFC 1073 window size negotiation - RFC 1184 line-at-a-time input mode - RFC 1143 "Q method" negotiation state engine * mature development practices - traditional Python distutils/setuptools/pip packaging - comprehensive regression and style testing - minimal runtime dependencies - extensive logging - flexible, generalized data model - in-repository documentation