Low-vision accessibility for Cellular Cities
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.
Design Challenges:
- How to communicate the initial level setup?
- How to communicate the guide?
- How to communicate cursor location?
Control setup:
- How is initial enabling of accessibility options handled?
- How to approach alternative control schemes?
Design goals:
- “Total recall” - Information read out by the game shouldn’t be one and done (APX pattern), if missed the player should be able to prompt it
- “Flexible” - Players should have pace of speech, volume, voice, etc (Games for Blind Gamers wiki advice)
- “Preserve experience” - Information should support wider experience goals
Final design:
The final design has 4 main components: the Cursor, the Level Display logic, the Guide, and the Startup.
Cursor:
Controlled by keyboard or controller. When the cursor changes tile it reads out the building present and the cursor's location.
Level display:
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.
Guide:
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.
Startup & Menus:
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.
Implementation:
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.
Potential future improvements:
- There's currently a bug with focusing on voice changing which needs addressing for to enable keyboard only control (most likely by changing the type of ui element to a list)
- A button to skip current text vocalisation.
- JAWS and NVDA support.
- Guide navigation, so a player can select a building to hear its likes/dislikes
- Option to change between hold and toggle for speech silence
- Cursor variants: I’d like to add two variants of cursor, one of which “locks” to the playable spaces, the other of which lets you 1 button cycle through the placable spaces
- Setting saving, this currently doesn’t work due to the game being HTML5
- Rebindable keys
Iterations:
- Level read:
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?
- Playspace read:
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.
Files
Get Cellular City
Cellular City
A little puzzle game about placing buildings in small cities.
Status | In development |
Author | Callum Deery |
Genre | Puzzle |
Tags | City Builder, Isometric, Pixel Art |
More posts
- Development trade offs in Cellular City's audio description systemApr 26, 2024
- Undo and RiversFeb 05, 2024
- An animation and a guideFeb 03, 2024
Leave a comment
Log in with itch.io to leave a comment.