Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

grailmud is a MUD server written entirely in Python (though optimising bottlenecks in C, and a more restricted language for builders and untrusted coders to work in are options which will be considered in the future) with a loosely coupled design between the game logic and the display logic for players, as well as a more loose than is traditional coupling between object logic and object state. grailmud also leverages Twisted, pyparsing and durus, so a bare minimum of low-level (networking|parsing|serialisation) code has to be written.

These points make grailmud different from other (aspiring-to-be) production-ready MUD servers in this area (ie, MUDs written in Python). PythonMOO, POO, et al, have used a custom scripting language for programming game logic in, wheras grailmud uses Python for this task. Buyasta, wordplay, et al, have a tighter coupling between display and game logic. nakedmud reimplements a -lot- of stuff in C (ick!) which is already done in some library, or which can be done painlessly in Python. There are many, many hackish little MUD servers written (I wrote 2 or 3 of them before I got the design more-or-less Right), but none of these are really suitable to build a whole game in.

One result of the decoupling of display and game logic is that the difference between player avatars and NPCs becomes the ‘controller’ (the object that receives the object’s events and acts upon them) for players is linked to a socket (via the bowels of Twisted) and a few extra instance variables and methods on the player (eg, the player’s password hash, and the method to take a line of input and dispatch it to the appropriate command). In more tightly coupled implementations, players and NPCs are different beasts entirely, possibly resulting in ridiculous duplication like different ‘take away X hitpoints’ routines for each type, which should reside in a common base class.

Decoupling object logic and object state results in promoting ‘controllers’ (or as they ended up being called in the codebase, delegates, in the Self tradition) to first-class objects which can be added or removed from objects at will. So if you want a staff to suddenly start acting like a goblin chief, it becomes as simple as this:

staff.addListener(GoblinChiefLogic())

rather than having to delve into the StaffObject’s code and add the goblin logic in there.

Metadata

Release files for grailmud 0.1a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grailmud 0.1a3
File Size Uploaded Provenance
grailmud-0.1a3.zip 114.0 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for grailmud 0.1a3
File Interpreter ABI Platform
grailmud-0.1a3.win32.exe Details
grailmud-0.1a3-py2.5.egg Legacy Egg format - - Details

Total release size: 295.8 kB

Release files / grailmud-0.1a3.zip

Download URL grailmud-0.1a3.zip
Size 114.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d3c3573a662ead0b4165806337a858cb2de876df7386745db9e312882ce88d48
BLAKE2b-256 checksum
How to use checksums
bf47d295610f2a644d39eb5d2c095704312f454b0154a20d44805e51825140fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / grailmud-0.1a3.win32.exe

Download URL grailmud-0.1a3.win32.exe
Size 101.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4837c43fd72dd63946f64649cfdea20841f869a114f5b304d2ba344d97af9f8d
BLAKE2b-256 checksum
How to use checksums
fcfe7ebfdcffa98990a3e41f35c763e810583380cc83315fbbd44b686fec9fa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / grailmud-0.1a3-py2.5.egg

Download URL grailmud-0.1a3-py2.5.egg
Size 80.7 kB
Tags Egg
SHA-256 checksum
How to use checksums
c2c542e979e0a277a2ca1f135d37edec9997c64e48a882c0766e09fb8c18c295
BLAKE2b-256 checksum
How to use checksums
5d54e08901bb93e9067c8411ccee78ca351b0e78e485e1c5fb71ecd3bf28479a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for grailmud 0.1a3

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page