Hi rAthena community,
Since audio-based gaming for the blind and visually impaired didn't catch up to MMORPGs yet, I'm thinking about modifying an existing client, if possible, to allow playing the game for blind and visually impaired gamers, myself included. This mainly works via a screen reader as speech/braille, or the built-in speech API under Windows).
Since these changes are only client-side, it is very likely that these modifications will also work when playing on the official NA servers, or on private rAthena instances.
I found that the only officially supported client (and probably the one with the most detailed audio unless I'm missing something) is Renewal, though I'm not sure if the October 18, 2019 version is packet-compatible with rAthena.
I have a few questions/remarks, if anyone knowledgeable could answer, that'd be immensely helpful, even if it's just a "This is not possible, GTFO!"
First and foremost, I'm a total RO noob, please excuse stupid questions.
How much of the client can be modified, e.g. is it possible to add new keyboard events, new audio, retrieve drawn text (for example for menus, statuses, etc.), call functions from external libraries or to use IPC? Essentially, I need to expose textual content, as well as visual bars, and other things in a simple and concise manner. I know that bots, for example, for SilkRoad Online were able to do this, but I'm not sure if it's possible here. A lot of this depends on how much is exposed to Lua, I am guessing.
Here are a non-comprehensible list of changes that I’d like to make:
Menus need to be navigable via the arrow keys, and enter to activate an item (if required). These need not be visual, if there's a way to call the menu functions separately, a virtual invisible menu can be created.
New hotkeys need to be added, for example to read attributes, statuses, etc, or to auto-target a monster, or to read the current zone name so that the player knows where they are. If there are too many, perhaps this is better to do in a menu. Some of these might even exist, like autotarget.
Everything that is accessible via the mouse only needs to be accessible via the keyboard as well. This includes clicking on buttons like ‘Continue’, accepting quests, adjusting sliders, etc. If there is a way to set a value via a command, creating a virtual, non-visible slider is okay too.
I noticed that monsters do not have an idle sound by default, this needs to change as knowing that a monster is nearby without vision is quite essential. Creating new sound FX or even music will not be a problem.
If possible, graphics can be completely removed, as speech or even braille is going to be the main output of the client, likely via an existing screen reader (Jaws, NVDA, etc). If not, that's fine as well, but it would reduce the client size drastically.
Other things that will be only clear when I see how client things are laid out.
Please feel free to ask if you have any questions. I’m also available on Discord, if you’d like to chat privately regarding this, or you have an idea.
Developing a client from scratch is also possible, but I would not be able to recreate the original atmosphere of the game, as I have absolutely no idea how maps look like, nor how the game sounds for the most part. I might as well write my own game from scratch in this case.
Lastly, why this particular MMORPG? Because going through about a hundred, this one seems to have the most detailed audio landscape, at least when watching gameplay vids.
Any help is immensely appreciated.