Sometimes I am getting bored when I am having a long time coding in the same project. Usually I just code something else, or watch an episode of a TV show, or something totally unrelated to code at all. Who knows? this time, I discovered a mud (multi user domain) client written entirely in Python. Its name is Lyntin and is released as open source. I have decided to spend a weekend exploring this program and I think it has alot of potential.
It is not an active project (its last official release is from 2007 or so), but it supports almost everything I have seen in other mud clients (triggers, variables, substitutions, aliases, user events, command scheduling and more), is pretty extendable (basically everything comes from modules and users can extend the client by writing more modules, GUI interfaces, support for other protocols, etc.); and finally, the source code is documented. Everything there includes documentation and extra comments for understanding why things are worked that way.
Lyntin has a few graphical interfaces, the first one was based in curses (as I understand, was the first supported module in Lyntin), and after some time, they added a GUI written with TKinter. TKinter, of course, is not accessible.
So I have started a little project for creating a few modules and extend Lyntin for my own needs. I don't play muds so much, but I've been wanting to start seriously for some time.
As Lyntin has lots of example modules for learning and a very well documented API, I could add some modules to the main program and start to put the project in GitHub, so others can download, improve and build it themselves.
There are no release schedules for this project. I want, however, to create a very nice graphical interface where others will be able to enjoy Lyntin and its power. Initially, Lyntin was aimed at developers, python hackers and other kind of experienced computer enthusiasts. I think Lyntin can be used by regular users too, if we can add a graphical interface and help people to find where Lyntin's things are and what they can do.
My new project is called Mudder, and I have taken another name for avoiding the confusion. Lyntin is the framework used for mudding, and Mudder is a full application, including Lyntin itself, additional modules, a new graphical user interface, auto-updater, and hopefully much, much more in the future.
For now, the project is hosted in github and contains new modules, besides Lyntin's default modules:
- sound: It supports playing sounds thanks to sound_lib. It includes commands such as sound.play, sound.volume, sound.play_ambiance and sound.stop_ambiance. Every module includes its own namespace in Lyntin (this can be changed by the module developer), so you can see wich module owns these functions.
- screenreader: This is a simple module with no commands available. It will read user data and mud data. User data is text that users are sending to mud's, while mud data is the text you can see in history.
- WxUI: This is a very simple graphical interface, written with WX Python project Phoenix. For now, it only contains two input boxes, one for typing text and sending it to the mud, and other for saving all data sent by the mud server. Later this module will get more functions, like importing config files (more on that in another post), creating actions / aliases / variables / substitutes in a dialog instead typing commands, and more.
Additionally, the project can be built if you have Py2exe installed and I am working in other useful features (internationalisation, translations, documentation, example soundpacks or settings files, etc). If you know me and play muds, you can leave a comment here or let me know of more features this project should have in the future.
See you soon!