description | The mudpy MUD server engine. |
owner | Jeremy Stanley <fungi@yuggoth.org> |
last change | Sat, 15 Oct 2022 17:33:14 +0000 (17:33 +0000) |
URL | https://mudpy.org/code/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.
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:
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
2 years ago | 0.5.0 | Release version 0.5.0 | tag | | commit | shortlog | log |
3 years ago | 0.4.1 | Release version 0.4.1 | tag | | commit | shortlog | log |
3 years ago | 0.4.0 | Release version 0.4.0 | tag | | commit | shortlog | log |
4 years ago | 0.3.0 | Release version 0.3.0 | tag | | commit | shortlog | log |
4 years ago | 0.2.1 | Release version 0.2.1 | tag | | commit | shortlog | log |
4 years ago | 0.2.0 | Release version 0.2.0 | tag | | commit | shortlog | log |
4 years ago | 0.1.1 | Release version 0.1.1 | tag | | commit | shortlog | log |
4 years ago | 0.1.0 | Release version 0.1.0 | tag | | commit | shortlog | log |
5 years ago | 0.0.2 | Release version 0.0.2 | tag | | commit | shortlog | log |
5 years ago | 0.0.1 | Start tagging versions for package... | tag | | commit | shortlog | log |
2 years ago | master | shortlog | log | tree |