mudpy
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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| mudpy-0.5.1.tar.gz | 74.9 kB | Without provenance | Details for mudpy-0.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mudpy-0.5.1-py3-none-any.whl | Python 3 | none | any | Details for mudpy-0.5.1-py3-none-any.whl |
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
|
Security for mudpy 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.