The mudpy MUD server engine.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mudpy-0.5.1.tar.gz
.
File metadata
- Download URL: mudpy-0.5.1.tar.gz
- Upload date:
- Size: 74.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 825483731987d6bb4fbbe2abf596c892fb11b44138ea34e159ab9fea6afa5dc8 |
|
MD5 | b3ef22e6554f6a4e52208ec80cd48e0c |
|
BLAKE2b-256 | 29d786fcb606de44d44e4c595f2fb9a2d2948b3f727f38c7b0565b87227d0bbf |
File details
Details for the file mudpy-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: mudpy-0.5.1-py3-none-any.whl
- Upload date:
- Size: 46.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77dcf38de5b6018ccbdceae45e1e2cb3245199299d44124d38e8cb943a0c7d61 |
|
MD5 | ef5e6dbc591a075a3a4ac8800947770b |
|
BLAKE2b-256 | cbd4ce732f330995a294649ff5fc4e4082e4f756ed2e9fc1308a08b7d578c3e5 |