Posted February 14, 2024 by Callum Deery
#audio description
This devlog goes over making Cellular Cities more accessible by adding audio description of levels using Godot’s built in text to speech. The approach I’m using is inspired by blind accessibility in chess sets, which worked as a good starting point for communication of objects on a grid. The key components are communicating the player's current cursor location and the level layout.
The final design has 4 main components: the Cursor, the Level Display logic, the Guide, and the Startup.
Controlled by keyboard or controller. When the cursor changes tile it reads out the building present and the cursor's location.
Each tile is read out.
Then the buildings that must be placed are read out.
Upon placing a building the name of the building and its location is read out.
On pressing G the Guide will open, and TTS will read out each building in the level’s likes and dislikes. Pressing G again will shut the guide, and interrupt text to speech if still playing.
On starting the game it will default to text to speech being on, giving players the option to turn it off or go to the settings menu to adjust it on startup.
The settings menu also contains controls for rate of speech and volume, as well as key rebinding for the silence speech option.
Menus are read with a standard approach of whatever item is being focused is read out.
At the moment I’m using Godot’s built in screen reader, this is primarily as I’m able to test it more effectively and communicate with it more easily.
Placeable tiles and their neighbours in the level from top left to bottom right on level startup. This is the key information for solving the puzzle.
It can then be triggered again at user command.
Moving the cursor over a tile reads out that tile’s contents (i.e. what building it contains)
Issues:
Often contains redundant information (for example if two placeable squares are adjacent), it's also difficult to keep track of as the information moves in unexpected ways as it goes through neighbours
How does it update the player after their moves?
Describes the neighbours of each placeable square. The list of buildings to be placed is then read out
Upon changing the cursor tile, the tile and its neighbours are read out.
Upon placing a building the next building name is read out
Upon undoing, the next building to be places is read out
Issues:
The neighbour reading is very slow and repetitive, it reduces the feeling of exploring a space, while still not giving a clear picture of the level.