Defold and Accessibility

Hi,

A while a go a user of my app reached out asking if there was a way to use the app with a screen reader as he is blind, unfortunately I had to point him towards other ways to get the same content. Have the Defold Team done any research about ways to enable developers to create games that are accessible to people who are visual impaired, have lowered motor function or have other disabilities? If so maybe this can be shared in case someone else wants to pick it up.

2 Likes

Playing games with motor or visual impairments does not strike me as something that the developers of the engine should be too worried about. I would say it’s very rare to come across a game that accommodates for these kinds of disabilities. Color blindness is the only abnormality in particular that I have seen accommodations for, and even that is a rare occurrence.

My suggestion would be to tailor your own games to the needs of the impaired if you’re concerned about reaching that kind of playerbase. Off the top of my head, I’d guess that implementing additional hand-holdy features or something similar would be a major task in and of itself.

As for screen readers, it sounds like your project is more informational than videogame-esk. Not sure how you’d even begin to develop a screen reader for video games, since there’s so much going on and lots of analyzing a game scene. Take something as simple as Pong for example. How would we go about altering the game for a blind person? They can’t see the very essence of the game: where the ball is on the screen. A screen reader would be too slow since the ball is always in motion.

1 Like

It’s hard to imagine how to implement a developer tool that would be suitable for the infinite number of games it’s possible to make with defold. What does your app do? How do you think you could help those with impaired vision?

In terms of hardware for those with lowered motor function, I’d recommend investigating a Makey Makey, which can be used to create all kinds of control surfaces. Thanks to @britzl who specifically helped me out on one of my projects, you can now use a makey makey with android devices via a USB-OTG cable.

1 Like

Playing games with motor or visual impairments does not strike me as something that the developers of the engine should be too worried about.

Personally I do not mind going out of my way to help the less fortunate, even if I would “lose money” on it. If not the developers of the engine are worried about creating tools for the users of the engine to be able to create games for everyone (or simply their target audience) then who should?

Color blindness is the only abnormality in particular that I have seen accommodations for, and even that is a rare occurrence.

Even though it is rare it is not unheard of, just because you don’t think about it doesn’t mean it isn’t possible or done. Did you know that a blind person can play Diablo 3 solo based on the audio ques?

Take something as simple as Pong for example. How would we go about altering the game for a blind person?

The “very essence” of pong isn’t to see it, it is to position your platform so the ball bounces of it. You wouldn’t use a screen reader for this. You would have to create it so it relies on or can be “read” by other senses than only visuals. Sound in this case being the obvious one. You could have the ball make a sound as it flies and then alter the sound depending on both X and Y. You would also have to make the “board” create a sound as you move it depending on it’s Y position. This actually sounds super cool and something that is doable in Defold already, might put this on the “idea pile”.

But personally I would think a turned based game would be a better example. Something that have a lot visual ques but are not relying on reactions, that is when screen readers come in handy. Screen readers are normally used when browsing the internet, reading PDFs and navigating the OS, they work by reading tags and similar meta data of html elements and similar. Which definitely wouldn’t be easy to duplicate in a game engine.

What people seems to be saying: But it isn’t worth spending time and money on

Not everyone have the same ideal, or they get funding else where, or they don’t mind putting in a bit of effort to help people who often goes forgotten. In my case I created this app because I wanted to, even though my small app have about 20k downloads, I have not earned a single dollar on it as it is free and contains no ads.

What does your app do? How do you think you could help those with impaired vision?

My app is a companion app for a pen and paper role playing game, it isn’t strictly needed but it adds a lot to the experience. It mainly helps tremendously with the book keeping, there are options (like excel sheets, discord bot, pen and paper and so on) which I recommended to that specific user, so they can still enjoy the system, just not have the joy of the app.

6 Likes

I recommend watching this video. It’s pretty interesting stuff, and it shows how great sound design goes a long way in making games accessible.

1 Like

Good support for spatial audio is something that could be useful in combination with thoughtful game design.

Perhaps the accomodations are rare, but color blindness isn’t. Around 8% have a variation of it, so it makes perfect sense to have support for that.
There are shaders available online, and with them, one could build a library of materials for other users to use. I’ve thought about it many times, but never got around to it.

As for support for screen readers, it seems like this would be something that could be done using a native extension? But I’m not exactly sure what would be needed, so it’s just a guess. For instance, we don’t have a gui system where you can TAB from text field to text field, each game controls the text in its own manner.
If there are concrete ways we can help by adding functionality to the engine, by all means, add a ticket for it!

1 Like

Yes and no. As an engine provider we can make to support a variety of input methods and custom controllers. A good audio API can help developers create games that focus on sounds to play the game.

Actually it is more common than you’d think, at least on console and PC.

The Game Accessibility Guidelines lists various things to consider, from really basic stuff to complex adaptations: http://gameaccessibilityguidelines.com/

2 Likes

Some pretty cool XBox controllers: https://www.xbox.com/en-US/accessories/controllers/xbox-adaptive-controller

My favourite videos on this topic are:





Some time ago I got email from Barrie ( OneSwitch.org.uk ). He tries to find suitable games and set-ups for disabled people.

He asked me if he could publish my old flash game on his site because it perfectly fit by design (one-button / one-switch playable game)

I made my best to improve the game and made it even more accessible for the disability one-switch community (I lost sources and used decompiler to made improvements). It’s not about profit at all and I’m fine with it.

Link to the game (Catchy Orbit): http://www.oneswitch.org.uk/art.php?id=119
A blogpost about controller and games from the site: https://switchgaming.blogspot.com/2018/09/specialeffect-xac-videos.html
Voice control example for our game:
https://switchgaming.blogspot.com/2019/02/voice-controlled-one-switch-game.html

@Jerakin thank you for this post, you reminded me that I wanted to email Barrie, show him BringMeCakes and ask him how to improve the game to publish it on OneSwitch.org.uk

7 Likes

If i was going to make pong audio compatible, I would create a ball which emits a beep. the higher on the screen, the higher the pitch. The beep could get faster depending on how close it was to your paddle. The controller would be a piano. This is a great idea!

…okay I just saw this is almost identical to Jerakin’s idea. But in my defence, he’s right, it is an excellent idea.

Hi there!

We are trying to help color blind players. Our game is focused on color recognition and some testers have asked for color blind help. Since there are various kinds and degrees of color blindness it is extremely hard to find palettes suitable for all cases.

The main object of the game are ghosts of various colors that the player has to rearrange. We are trying two things:
(a) optional icons on top of the ghosts, one icon for each color;
(b) 12 color custom palette.
In the following mock-up screen you can see the configuration screen for the color palette and icon enable. (It is just a rough draft, sorry.)

Since we want to have few draw calls and we are already using a large texture we cannot afford more than 12 colors.

What about these solutions? Do you think it is worth implementing? I am asking since it may take some days to do it in the right way with all the needed details. And I am not color blind so I cannot tell if a color blind person can find 6 visually different colors out of the 12 colors we have chosen.

Many, many thanks as usual!

Ciao, Rocco.

3 Likes

There are plenty of shaders that help visualize/correct the issues for you. E.g. here’s one version, and here’s another. Google is your friend here. There are more from various companies/engines out there if you search.

Secondly, I’d advice to also make the shapes even more distinctly different. E.g. they have some differences near the head, perhaps they can also have something different at the bottom? Or even some unique patterns (stripes, dots, squares). Making the shapes distinguishable is generally good advice regardless of color perception.

2 Likes

thanks @Mathias_Westerdahl!

I have read some articles about helping color blind players and it seems to me that the general mood is that global filters are not the best solutions. And this would add an offscreen draw pass to the rendering that I would prefer to avoid.

Your advice about shapes is great and we will probably do something about shapes of flying ghosts. But ghosts are also shown inside pipes and there is no room for shape differences there; they are just boxes with eyes and mouth for animations…

EDIT: I have used this https://www.color-blindness.com/coblis-color-blindness-simulator/ to test the 12 colors of the custom palette. And they seem to be quite distinguishable but in two cases: (1) Red-Blind/Protanopia and (2) Green-Blind/Deuteranopia (and of course in case of Monochromacy/Achromatopsia).

Probably adding shape differences and the icons may be sufficient also in these two extreme cases.