tmewett / BrogueCE

Brogue: Community Edition - a community-lead fork of the much-loved minimalist roguelike game
https://sites.google.com/site/broguegame/
GNU Affero General Public License v3.0
987 stars 107 forks source link

Add screen reading / visual impairment accessibility #99

Open tmewett opened 4 years ago

tmewett commented 4 years ago

There is a patch to Brogue 1.7.4 called Broguespeak which adds accessibility features using eSpeak speech synthesis: https://www.reddit.com/r/roguelikes/comments/4zjg48/broguespeak/. It would be amazing to get this or equivalent functionality integrated into CE.

First, we need to inspect the diff of Broguespeak against 1.7.4. We need to assess both its general quality/maintainability, and how much it conflicts with current CE. Issues with this either of these will require changes, though minor code quality issues can be fixed after merging. Additionally, this patch adds a new dependency, so that will have to be integrated into CI and build processes.

flend commented 4 years ago

I've added a diff view for broguespeakv03 against v1.7.4 here: https://github.com/flend/brogue-1.7.4/compare/feature/brogue174-SPEAKv03?expand=1&w=1 Note the w=1 in the URL to avoid whitespace diffs. The v23 in the link doesn't have source code,

tmewett commented 3 years ago

Summary of the Brogue-SPEAK changes:

The actual implementation is rather simple. Both eSpeak and SDL_mixer are used separately, and both can asynchronously play sounds, so there are just wrapper functions which start and stop playing the sounds. SDL_mixer can manage mixing simultaneous sounds, interrupting, etc. eSpeak copies the input string to its own buffer to synthesise, so no additional memory management is needed in the main code.

To start, I think we should focus on just the text-to-speech, and play via SDL_mixer for portability.

ghost commented 3 years ago

Integrated TTS would give blind players access to the text messages only, not the tiles themselves, would it? I'm not sure how effectively TTS can convey the dungeon layout and contents. Brogue is not interactive fiction; to win it, you need to know everything that's going on at all times, at least within your field of view: terrain, items, monsters, traps, which direction they are and how far... You also need to have a good sense of the map, to choose your escape routes or navigate around danger. It seems it would be quite challenging and slow to convey so much spatial information just with spoken language.

How well does the curses version play along with screen readers and Braille devices, currently? Perhaps blind people can already play Brogue in the console, using their favorite screen reader or Braille device.

I see audio as a nice-to-have, but more for the immersive experience it can offer. If the goal is to increase Brogue's user base, i18n may be something to consider first.

RojjaCebolla commented 3 years ago

https://www.rockpapershotgun.com/2017/04/05/playing-roguelikes-when-you-cant-see some of your questions are answered here, Antony. TTS does indeed help non-sighted players play; DCSS is probably the leader in roguelike accessibility, but there's a player mentioned in the article who was using Brogue-SPEAK too

BlindGuyNW commented 1 year ago

Is there any chance for movement on this?

I've just been reminded of brogue/brogue speak and was sad to see that it is apparently no longer supported with the community edition.

For that matter, it doesn't appear that brogue CE supports console output any longer, which is also somewhat disappointing.

Any work on either of these would be very much appreciated.