Use build instead of setup.py
[mudpy.git] / README
1 =======
2  mudpy
3 =======
4
5 .. Copyright (c) 2004-2019 mudpy authors. Permission to use, copy,
6    modify, and distribute this software is granted under terms
7    provided in the LICENSE file distributed with this software.
8
9 The mudpy project aims to create a simple, generic, cross-platform,
10 freely-redistributable MUD core engine which can be easily understood
11 and extended. It is written in pure Python 3 and has only pure Python
12 dependencies. All configuration and data are stored in
13 consistently-formatted plain text (YAML 1.1) files for ease of
14 administration. The core engine is unicode-clean internally and supports
15 UTF-8 encoding for input and output of extended text characters.
16
17 The mudpy program and sample content are released under a free and open
18 license, and any bug reports, criticisms, ideas, patches, content
19 submissions or other offers of collaboration are wholeheartedly welcome.
20
21 what's missing
22 --------------
23
24 This project is still very much a work in progress, and is unlikely to
25 be suitable for anyone who isn't willing to put in a bunch of work (help
26 implementing features upstream is welcome, of course!). Here's a
27 non-comprehensive list of missing things most folks are likely to expect
28 in a MUD:
29
30 * interactive objects/props
31 * inventory/equipment management
32 * non-player characters
33 * a default combat system
34 * sample races/classes and spells/skills
35 * example implementation of character stats/progression
36 * closeable/lockable portals
37 * ability to change randomly-generated avatar names
38 * pagination of the output stream
39
40 what's included
41 ---------------
42
43 The fundamentals of a multi-user service are in place, and foundations
44 are laid on which the missing features above can be built. Here are some
45 highlights of what's been implemented so far:
46
47 * the beginnings of a MUD framework
48
49     - account creation, authentication and lobby menus
50     - movement between rooms/locations with inferred portals
51     - in-room communication between users
52     - setting and viewing user preferences
53     - an integrated command help system
54     - world creation and introspection commands for admins
55     - live reloading of configuration and source code
56
57 * a full-featured Telnet service with a focus on IETF RFC compliance
58
59     - RFC 854 Telnet protocol
60     - RFC 856 binary mode
61     - RFC 857 echo control
62     - RFC 858 go-ahead suppression
63     - RFC 885 end-of-record transmission
64     - RFC 1091 terminal type
65     - RFC 1073 window size negotiation
66     - RFC 1184 line-at-a-time input mode
67     - RFC 1143 "Q method" negotiation state engine
68
69 * mature development practices
70
71     - traditional Python distutils/setuptools/pip packaging
72     - comprehensive regression and style testing
73     - minimal runtime dependencies
74     - extensive logging
75     - flexible, generalized data model
76     - in-repository documentation