DiscMapper
Discworld MUD mapping script for Mudlet
Install / Use
/learn @iLPdev/DiscMapperREADME
discMapper
<!-- PROJECT BANNER --> <div> <br /> <p align="center"> <a href=".github/images/discMapper_logo.png"> <img src=".github/images/discMapper_logo.png" alt="discMapper Logo" width="auto" height="auto"> </a> </p> </div> <!-- PROJECT BADGES -->
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<!-- ALL-CONTRIBUTORS-BADGE:END --> [![Issues][issues-shield]][issues-url]
[![GPL License][license-shield]][license-url]
[![standard-readme compliant][standard-readme-shield]][standard-readme-url]
The discMapper project gives Discworld MUD players improved access to the advanced mapping features of the Mudlet MUD client. By leveraging the specific "out of band" packets sent by Discworld MUD's server, discMapper correctly identifies rooms, stops creation of duplicate rooms, and accurately tracks your character's location on the map as you move about the disc. Additional convenience features include autosetting colors and symbols on the map based on the room type.
Project Link: [https://github.com/iLPdev/discMapper]
<!-- TABLE OF CONTENTS -->Table of Contents
<!-- ABOUT THE PROJECT -->Background
<p align="center"> <a href=".github/images/screenshot_0.6.0-beta_downtown_AM.jpg" alt="" title="Downtown Ankh-Morpork"><img src=".github/images/screenshot_0.6.0-beta_downtown_AM.jpg" height="300" align="left"/></a> <a href=".github/images/screenshot_0.6.0-beta_styleRooms.jpg" alt="" title="Downtown Ankh-Morpork"><img src=".github/images/screenshot_0.6.0-beta_styleRooms.jpg" height="300" align="float"/></a> </p>History
The discMapper project was unofficially started sometime during the early weeks of April 2020. The Coronavirus Pandemic and Stay-at-Home orders prompted @Stack to make an unexpected return to MUDs after more than two decades. A robust and stable LPmud derivative under continuous development since 1991, Discworld MUD seemed like a promising quarantine-life distraction from our collective global trauma. Various MUD clients were tested. Among them, Mudlet appeared the most desirable. Unfortunately, of the regular 80-100 online Discworld players, almost none appeared to be using Mudlet due to a severe lack of game-specific scripts relative to an old, alternative MUD client. A college try was made with the amazing scripts available for the alternative client, but it was too late... Mudlet's clean, modern appeal and advanced features had already won out -- if only there were Mudlet scripts for Discworld MUD.
Inspired and seeking assistance in learning, the Mudlet Discord chat server was found to be a friendly, engaging community of creative and dedicatedly caring coders. After several weeks of struggling to achieve reliable mapping with text-based detection routines, a basic GMCP room detection approach was developed as possible solution. Considerable progress was made in learning and incorporating game-specific GMCP support into an existing generic mapping script.
On May 24, 2020, @vadi2 was gracious enough to volunteer three hours helping @Stack live on a public audio chat. After initial assessment of the unique challenges of developing a custom mapping script for Discworld MUD, we spent a brief period exploring extension of the IRE mapping script, but affirmed the lack of GMCP exit data supplied by FluffOS was too great an obstacle. A return was made to the hybrid approach of adding GMCP room detection/indexing to the text-based exit detection of the generic mapping script included with Mudlet. At the end of three hours, we had achieved basic functionality with only a couple minor issues.
Unfortunately, it was soon realized that cleanly installing this initial version of the discMapper to a new Mudlet profile with no prior mapping settings caused the script to break entirely. Many confused hours were spent chasing quasi-solutions and residue problems until it became painfully clear that a more rigorously tracked and structured approach would be required: Enter this project's GitHub repository.
Having a wealth of various IT-related and HTML/CSS development experience but virtually no experience in modern software development, frustration has (mostly) been overcome by an eagerness to learn and true enjoyment of the process -- especially the Mudlet community (see Acknowledgments).
The repo started with a README-first approach to conceptualize how best to go about this project. discMapper was open-sourced upon conception.
Milestones
- v0.1.0-alpha - Initial
- v0.1.2-alpha - Core mapping features with GMCP support
- v0.2.1-beta - Help system and configuration functional
- v0.3.0-beta - Automated updates implemented
- v0.4.0-beta - Room Styling implemented
- v0.5.0-beta - Clean install process and initial default colors
Vision
As complement to a planned Mudlet UI for Discworld MUD, the aim of this project is to provide existing and potential players with a newbie-friendly (accessible) and reliable means to map and navigate the Discworld MUD in an elegant, modern MUD client. In line with that aim, the goal of this project is to release a Mudlet package with all the requisite aliases, triggers, and scripts. Ultimately, my hope is that discMapper might become a part of a larger Mudlet package for Discworld MUD, including guild-specific UI feature sets.
Features
- Auto GMCP handshake on connection to Discworld MUD
- GMCP Core Supports for Discworld MUD's server:
- Precision Room Indexing using GMCP Identifier data - No more duplicate room creation!
- Character Tracking using GMCP Identifier data - No more misidentified player locations on map!
- Room Name detection using GMCP Room Name data
- Quick style rooms based on the type of room (e.g., shop, player house, food, etc.)
- Set Map Room Color based on Room Type - Defaults to Kefka's Discworld MUD Maps color scheme
- Set Map Room Symbols based on Room Type - Choose and apply your preferred room symbols
- Self-updating package - Set it and forget it!
- Speedwalking and pathfinding - Efficiently get where you're going - and fast!
Built With
- Lua is the programming language
- Edbee Library provides the text editor component for Mudlet
- Mudlet is a cross-platform, open source, and super fast MUD client
- Git is the version-control system for tracking changes and project management
- ImgBot provides GitHub-integrated image optimization
Versioning
Version numbering approximates the Semantic Versioning approach.
Project Status
<!-- Describe the current release and any notes about the current state of the project. Examples: currently compiles on your host machine, but is not cross-compiling for ARM, APIs are not set, feature not implemented, etc. -->[![Status Ventis][status-ventis]][andivionian-status-classifier]
-
Project State: discMapper is under active development. The application can be used, but may be unstable. We are in need of beta testing prior to moving forward with the v1.0.0 release.
-
Current Release: v0.5.0-beta introduces Kefke map matched colors, Street room defaults, cleaner install process, and various minor bugfixes.
Install
The Mudlet Makers could not have made it easier to install preconfigured custom aliases, triggers, scripts, keybindings, and UIs.
One-Click Install Method
Copy/paste the following command into Mudlet's input line to install discMapper:
lua function d(a,b)if not b:find("oci",1,true)then return end installPackage(b)os.remove(b)cecho("<lime_green>discMapper package installed!\n")end registerAnonymousEventHandler("sysDownloadDone","d")downloadFile(getMudletHomeDir().."/oci.mpackage","https://github.com/iLPdev/discMapper/releases/download/v0.5.0-beta/discMapper_v0.5.0-beta.mpackage")
Package Install Method
Just like any other package as of Mudlet v4.8+, you may install discMapper by simply dragging and dropping the package file into Mudlet. discMapper will then be merged
