YAGA is the union plugin which aims to make the game fully playable and accessible for the blind players. This goal is going to be achieved with both speech and sound in order to aid and guide the player throughout the game's world.
- The steam version of Gothic 1 or Gothic II: Night Of The Raven.
Other versions of the game should work however that has not been tested and so is not recommended. - Union
- The NVDA screenreader or the Zhengdu Screenreader
- yaga.vdf
Everything outlined above plus the following:
- git lfs (required for fetching lfs files from repo)
- Visual Studio (2022 or higher)
To build the project, open up the YAGA.sln in Visual Studio and hit Build Solution.
This will produce the Bin/yaga.dll and VDF/yaga.vdf files.
You can also build YAGA project, to produce only the plugin without generating yaga.vdf.
Here all the settings of the mod are going to be described. All settings are located in the gothic.ini file, in the [YAGA]
section. If the setting is not in the file, its default value will be restored and written to the file.
Controls what speech engine is being used for speech output in YAGA. Possible values are:
0
- (ZDSR)1
- (NVDA)2
- (SAPI)
The default value is 1
.
Controls whether the multi channel feature of ZDSR is going to be utilized by YAGA (works only for ZDSR speech engine).
The default value is 1
.
Controls the rate of the SAPI5 speech engine.
The default value value is 5
, minimum is 1
and maximum is 10
.
Controls the volume of the SAPI5 speech engine.
The default value is 100
, minimum is 1
and maximum is 100
.
Controls the global compass offset angle in degrees, when you press SHIFT+LEFT_ARROW
or SHIFT+RIGHT_ARROW
your world rotation will be set to next closest angle.
The default value is 45
.
- Perform code clean up. Refactor the code to adhere to single responsibility principle. Put input handling in one place
- Make the game automatically speak in menus and dialogs
- Make an accessible audio radar which will inform the player about their surroundings with both speech and sound
- Create a system which will allow the player to traverse the world from point A to point B (turn by turn navigation)
- During combat, report adversary's weapon proficiency.
- Make all game screens accessible, namely trading, learning, ETC
- Make all game popups accessible
- Make the plugin localizable
- Make the plugin configurable
Please keep in mind that I am an inexperienced programmer, and YAGA is my first large-scale project.
Please forgive me any stupid errors I might have. I don't have the skill, I am just very determined to make it happen.
With that in mind if you have any suggestion about the code structure, functions or you want to write your own feature, please drop me a PR.