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
Release files for mudpy 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mudpy-0.5.1.tar.gz | 74.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mudpy-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 121.7 kB
Release files / mudpy-0.5.1.tar.gz
| Download URL | mudpy-0.5.1.tar.gz |
|---|---|
| Size | 74.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
825483731987d6bb4fbbe2abf596c892fb11b44138ea34e159ab9fea6afa5dc8
|
|
BLAKE2b-256 checksum How to use checksums |
29d786fcb606de44d44e4c595f2fb9a2d2948b3f727f38c7b0565b87227d0bbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|
Release files / mudpy-0.5.1-py3-none-any.whl
| Download URL | mudpy-0.5.1-py3-none-any.whl |
|---|---|
| Size | 46.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77dcf38de5b6018ccbdceae45e1e2cb3245199299d44124d38e8cb943a0c7d61
|
|
BLAKE2b-256 checksum How to use checksums |
cbd4ce732f330995a294649ff5fc4e4082e4f756ed2e9fc1308a08b7d578c3e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.10.4
|