{ "info": { "author": "Sam Pointon", "author_email": "free.condiments@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Communications :: Chat", "Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)" ], "description": "==============================================\nWhat is ``grailmud`` and why should I care?\n==============================================\n\ngrailmud is a MUD server written entirely in Python (though optimising \nbottlenecks in C, and a more restricted language for builders and untrusted \ncoders to work in are options which will be considered in the future) with a \nloosely coupled design between the game logic and the display logic for \nplayers, as well as a more loose than is traditional coupling between object \nlogic and object state. grailmud also leverages Twisted, pyparsing and durus, \nso a bare minimum of low-level (networking|parsing|serialisation) code has to\nbe written.\n\nThese points make grailmud different from other (aspiring-to-be) \nproduction-ready MUD servers in this area (ie, MUDs written in Python). \nPythonMOO, POO, et al, have used a custom scripting language for programming \ngame logic in, wheras grailmud uses Python for this task. Buyasta, wordplay, \net al, have a tighter coupling between display and game logic. nakedmud \nreimplements a -lot- of stuff in C (ick!) which is already done in some\nlibrary, or which can be done painlessly in Python. There are many, many \nhackish little MUD servers written (I wrote 2 or 3 of them before I got the \ndesign more-or-less Right), but none of these are really suitable to build a \nwhole game in.\n\nOne result of the decoupling of display and game logic is that the difference \nbetween player avatars and NPCs becomes the 'controller' (the object that \nreceives the object's events and acts upon them) for players is linked to a \nsocket (via the bowels of Twisted) and a few extra instance variables and \nmethods on the player (eg, the player's password hash, and the method to take \na line of input and dispatch it to the appropriate command). In more tightly \ncoupled implementations, players and NPCs are different beasts entirely, \npossibly resulting in ridiculous duplication like different 'take away *X*\nhitpoints' routines for each type, which should reside in a common base class.\n\nDecoupling object logic and object state results in promoting 'controllers' \n(or as they ended up being called in the codebase, *delegates*, in the Self \ntradition) to first-class objects which can be added or removed from objects\nat will. So if you want a staff to suddenly start acting like a goblin chief,\nit becomes as simple as this::\n\n staff.addListener(GoblinChiefLogic())\n\nrather than having to delve into the ``StaffObject``'s code and add the goblin\nlogic in there.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://code.google.com/p/grailmud/", "keywords": "mud server game mmorpg text adventure", "license": "GNU GPL", "maintainer": null, "maintainer_email": null, "name": "grailmud", "package_url": "https://pypi.org/project/grailmud/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/grailmud/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://code.google.com/p/grailmud/" }, "release_url": "https://pypi.org/project/grailmud/0.1a3/", "requires_dist": null, "requires_python": null, "summary": "A Python MUD server", "version": "0.1a3" }, "last_serial": 792658, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "b274f73afd6ba14afad97ffb28741bfa", "sha256": "88d9e3b4ef42d60efd1d0ea112893086eea48c030618f59440e4802d207c57db" }, "downloads": -1, "filename": "grailmud-0.1a1-py2.5.egg", "has_sig": false, "md5_digest": "b274f73afd6ba14afad97ffb28741bfa", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 82584, "upload_time": "2007-02-26T02:42:03", "url": "https://files.pythonhosted.org/packages/0f/ac/4fd80bc5a3fefc5cb166db740a038044865d2753abfc161a9c93d08253d2/grailmud-0.1a1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "d8feba5608a8172766fadc15228c0635", "sha256": "95cec2d1c40cb226ffba0a47038b7386dd74a575f413fcd19afef3c874f0885b" }, "downloads": -1, "filename": "grailmud-0.1a1.win32.exe", "has_sig": false, "md5_digest": "d8feba5608a8172766fadc15228c0635", "packagetype": "bdist_wininst", "python_version": "2.5", "requires_python": null, "size": 102185, "upload_time": "2007-02-26T02:41:13", "url": "https://files.pythonhosted.org/packages/43/b5/03bd07043f74ae21438e6e573cbdbd5fa1a4627010254effb67ff992de85/grailmud-0.1a1.win32.exe" }, { "comment_text": "", "digests": { "md5": "7c5229709d44ef66ff1b4b3dc6171a5e", "sha256": "8038de567d104cc0c568c1f0848330aca878ac975f91528cd789d8fdb1f25279" }, "downloads": -1, "filename": "grailmud-0.1a1.zip", "has_sig": false, "md5_digest": "7c5229709d44ef66ff1b4b3dc6171a5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91591, "upload_time": "2007-02-26T02:36:41", "url": "https://files.pythonhosted.org/packages/b3/5e/8b01a5d283150a13edfcf42acdb4f70c060a72c94f1c72025cca7d82aa89/grailmud-0.1a1.zip" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "de9a3dbcf837cfe624783e32a38c77d4", "sha256": "c487a26c3a5914f0c14e793fb769646d3d5692c892b5bcdc699963199f4ffb2f" }, "downloads": -1, "filename": "grailmud-0.1a2-py2.5.egg", "has_sig": false, "md5_digest": "de9a3dbcf837cfe624783e32a38c77d4", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 76564, "upload_time": "2007-03-02T00:11:38", "url": "https://files.pythonhosted.org/packages/7b/51/1d97f3525aebd38f81672d017dddeb64ba754917b3c243a43d7e6e13b0e2/grailmud-0.1a2-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "0cf4785c3f2e12f5005dabb784a8b952", "sha256": "6a3699f3cfb8ef5a7950df06ece403ebe5097ad4de0678bcd6af431dd3a384f7" }, "downloads": -1, "filename": "grailmud-0.1a2.win32.exe", "has_sig": false, "md5_digest": "0cf4785c3f2e12f5005dabb784a8b952", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 98935, "upload_time": "2007-03-02T00:11:42", "url": "https://files.pythonhosted.org/packages/2e/93/2a264dd2c8fc5cd3f49a6af26714c8eee3ac66a1be90d4788f8d59f711e8/grailmud-0.1a2.win32.exe" }, { "comment_text": "", "digests": { "md5": "259caf340d795d2de09cb2dcaf4cce7c", "sha256": "1c2cbe3d6d653a915a0c99afc7d60a88a4e66b15876aeb7f9f6f4bb463867b15" }, "downloads": -1, "filename": "grailmud-0.1a2.zip", "has_sig": false, "md5_digest": "259caf340d795d2de09cb2dcaf4cce7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133246, "upload_time": "2007-03-02T00:11:35", "url": "https://files.pythonhosted.org/packages/2c/b6/0bae101d6c242dd5b7212b63fb6b9c45665eadda7357f1d0d1aae8240a60/grailmud-0.1a2.zip" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "ee18084eea47e228110d4f5eed3826e6", "sha256": "c2c542e979e0a277a2ca1f135d37edec9997c64e48a882c0766e09fb8c18c295" }, "downloads": -1, "filename": "grailmud-0.1a3-py2.5.egg", "has_sig": false, "md5_digest": "ee18084eea47e228110d4f5eed3826e6", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 80735, "upload_time": "2007-03-11T23:29:30", "url": "https://files.pythonhosted.org/packages/5d/54/e08901bb93e9067c8411ccee78ca351b0e78e485e1c5fb71ecd3bf28479a/grailmud-0.1a3-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "f0dfe111b6532cc4564335d04bac12a6", "sha256": "4837c43fd72dd63946f64649cfdea20841f869a114f5b304d2ba344d97af9f8d" }, "downloads": -1, "filename": "grailmud-0.1a3.win32.exe", "has_sig": false, "md5_digest": "f0dfe111b6532cc4564335d04bac12a6", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 101081, "upload_time": "2007-03-11T23:29:33", "url": "https://files.pythonhosted.org/packages/fc/fe/7ebfdcffa98990a3e41f35c763e810583380cc83315fbbd44b686fec9fa9/grailmud-0.1a3.win32.exe" }, { "comment_text": "", "digests": { "md5": "ac0b42e9e6809cf864afbdbf78f05378", "sha256": "d3c3573a662ead0b4165806337a858cb2de876df7386745db9e312882ce88d48" }, "downloads": -1, "filename": "grailmud-0.1a3.zip", "has_sig": false, "md5_digest": "ac0b42e9e6809cf864afbdbf78f05378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113961, "upload_time": "2007-03-11T23:29:41", "url": "https://files.pythonhosted.org/packages/bf/47/d295610f2a644d39eb5d2c095704312f454b0154a20d44805e51825140fd/grailmud-0.1a3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ee18084eea47e228110d4f5eed3826e6", "sha256": "c2c542e979e0a277a2ca1f135d37edec9997c64e48a882c0766e09fb8c18c295" }, "downloads": -1, "filename": "grailmud-0.1a3-py2.5.egg", "has_sig": false, "md5_digest": "ee18084eea47e228110d4f5eed3826e6", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 80735, "upload_time": "2007-03-11T23:29:30", "url": "https://files.pythonhosted.org/packages/5d/54/e08901bb93e9067c8411ccee78ca351b0e78e485e1c5fb71ecd3bf28479a/grailmud-0.1a3-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "f0dfe111b6532cc4564335d04bac12a6", "sha256": "4837c43fd72dd63946f64649cfdea20841f869a114f5b304d2ba344d97af9f8d" }, "downloads": -1, "filename": "grailmud-0.1a3.win32.exe", "has_sig": false, "md5_digest": "f0dfe111b6532cc4564335d04bac12a6", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 101081, "upload_time": "2007-03-11T23:29:33", "url": "https://files.pythonhosted.org/packages/fc/fe/7ebfdcffa98990a3e41f35c763e810583380cc83315fbbd44b686fec9fa9/grailmud-0.1a3.win32.exe" }, { "comment_text": "", "digests": { "md5": "ac0b42e9e6809cf864afbdbf78f05378", "sha256": "d3c3573a662ead0b4165806337a858cb2de876df7386745db9e312882ce88d48" }, "downloads": -1, "filename": "grailmud-0.1a3.zip", "has_sig": false, "md5_digest": "ac0b42e9e6809cf864afbdbf78f05378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113961, "upload_time": "2007-03-11T23:29:41", "url": "https://files.pythonhosted.org/packages/bf/47/d295610f2a644d39eb5d2c095704312f454b0154a20d44805e51825140fd/grailmud-0.1a3.zip" } ] }