TL;DR: I'm making a MUSHclient system for blind players. Track its progress
here!MUSHclient is the best client option right now for blind players who want to enjoy the most immersive and fast-paced parts of Achaea. However, with the advent of newer and more feature-rich clients like Mudlet, there aren't many players creating scripts for MUSH. Those people who do create scripts tend to keep them to themselves--probably because it's easier to make something tailored to your own specific goals and use cases. In the spirit of "worse is better" I have started a Github repository where I will share some of the work I have done building out my own system. My goal is to create a framework that anyone interested can use and build upon for their own individual needs. I also hope this can be a collaborative effort; pull requests and feature suggestions are more than welcome.
Right now there are only a few basic commits, mostly to track gmcp messages in the world namespace and take commas out of the prompt for faster reading.
I'm posting here to get thoughts from people who might want to use this system. What features are you missing in Achaea? What would make your gameplay more accessible, enjoyable, etc? here are a few ideas I have.
Short-term goals (within the next week or so):
- Change local gmcp tables to match their json labels (eg: fix Room.Info to be gmcp.Room.Info). This will mean gmcp messages will be standard.
- Add gold tracker.
- Implement my (very clunky) name database code.
- Add my MUSHclient version of tempTimer.
- Add channel history plugin (alt+1-0 reads last ten messages, alt+right/left navigates through channels, etc.)
Longer term projects, in order of priority / ability to implement:
- Abstracted PlayGameSound functions. Play one or a random selection of sounds for various events. Sounds not included.
- Rift tracking (sort rift by quantity, show only things you are low or full on, etc.)
- Affliction and defense tracking (add / remove / stacks)
- Offense tracking (limb counter, eat / smoke / salve tracker, etc). This will take a while to fully implement.
- Mapper with goto functionality. (Another big one.)
I look forward to your thoughts and suggestions. Feel free to reach out either in this thread or in game.
https://github.com/achaea-oracle/oracle
Comments
Effervescence hitting at 5 second intervals.
Post-bad-joke: Cool man! Let me know if you need a set of spars or anything to test out some of the stuff you've put together!
Aegis, God of War says, "You are dismissed from My demense, Astarod. Go forth and fight well. Bleed fiercely, and climb the purpose you have sought to chase for."
I can code!
What do you need?
I have an older system from Aetolia written in lua for MUSH. It was fairly solid 4-5 years ago and the bones are good (initially written by Hadoryu over there, expanded by me). It might have something you can use for the core of the curing, aff tracking, and limb tracking segments, since Aetolia and Achaea are still quite similar on the herb/salve side of things. Def management used onscreen clicks, but the functions can probably be used from that, too.
Let me know if you want me to shoot it over for you to look at.
Either way, I might be able to help if you have something specific. We do some work implementing and maintaining WCAG conformance for our clients, so I know how tricky this can be.
What would you like me to start work on first?
- A functional map system.
- A way to reduce spam during combat (If you think watching the spam is rough. Try listening to it.)
- A functioning anti-theft system (Coding this is easy, for anyone that can see.)
I've also been told that, ships and sailing is simply a non-feature for the blind player. As it's too easy to get lost. This is very much the same with wilderness-map. I've not heard nor been able to think of an easy solution to these.
1. Gag just about everything. When I entered combat in the pygmy dungeon my screenreader was a full page behind and it was only getting worse. That old man you start with reappeared, healed me and gave me a shield!
2. Speak a maximum of two words about important events. For example "prone on" and "prone off".
3. Report health if it has dropped since the last time the GMCP value was received. Possibly only do this if health is below a threshold, for example fifty percent.
4. Report sips left when a sip is taken from a vial when there are less than ten sips remaining. Likewise tattoo usage for example shielding. I haven't need a curative yet but taking and using something from the rift should also report how many are left if there is less than ten remaining. Ten is just an arbitary number and should be configurable. I'm only level five so don't have a lot of anything yet.
5. Automatically turn off weather and tells during combat, and turn them back on again outside of combat. The tellsoff message would be updated with something simple like "in combat".
Since I can't yet handle a screenreader running at 80 I'm actually considering gagging all speech and emotes during combat, though this hasn't been required yet. I'm still stuck in the portals room! I really need to figure combat out!
I also wanted to respond to a few of the suggestions put forth on the boards and tell you how I handle certain events in the game.
Gagging: While there is a lot of text that can certainly be gagged, there is also a lot that is important or that some players will want to see. I recommend reading from the bottom up, so you can quickly see the last thing that happened to you and react accordingly. Listening to text as it comes in just may not be fast enough most of the time; I am glued to the bottom line of my screen always where my prompt is read out.
Substitutions: Substituting text is a great idea and I fully support its use. "A prickly stinging overcomes your body, fading away into numbness." just is not as snappy as "Paralysis" or "Par". My system ties gmcp affliction gain and loss messages to corresponding sounds if they exist. I also recommend turning the universalafflictionmessages config option on to standardize your display.
Reporting health change: Right now I just use the full prompt and read it as needed. I can certainly set up health gain or loss indicators. I'll want input from someone who uses that feature on how you would want that read. I also gag all sip messages and replace them with unobtrusive sounds.
Take this as your license to bug me about this project. I'm probably more reachable in game for shorter messages and here on the boards for your longer thoughts. Stay tuned!
What I've done, which helps is: in the wilderness, I have my client make a certain sound when it see's a question mark. I then have it make a different sound when I am horizontal to the question mark so I know I have to go either east or west to get to it. What would be interesting would be: a script that will make a different sound depending on which axis you're on (X, Y, or Z), that way, I would know immediately whether I had to go ne,nw,se,sw,e,w. This concept would work well for sailing as well, and I've used it with fairly decent results, with the major problem being that question marks are also used to denote other things in the ocean as well as the wilderness.
http://www.gammon.com.au/files/mushclient/Moonflair_plugins/antitheft.xml
That's great. I hope you have found the existing code helpful for your needs. If you want your stuff included in future versions of Oracle, feel free to submit a pull request on the github repository.