2020-02-10 15:50:54 (edited by Nightblade 2020-02-13 02:01:25)

Hi! I'm currently designing a game for sighted players, and would like to redesign it so it works for blind players too. The core mechanic is a 5-vs-5 battle, where five player units (fighter, archer, etc.) fight against five monsters. The battle takes place automatically, with units picking the best move for themselves. Players can control things outside the battle, and can also interrupt the battle to do one-time actions, like using potions.

Outside of battles, players pick which units to fight with, set their equipment, and choose their skills and stats when units level up.

Right now, I am thinking of adding a text console to the game, where players with screen-readers can interact directly. The problem is, I don't know what kind of information to display or what to do. If I list all the monsters/players statistics after every turn, which is every two seconds, it's too much useless information. If I just mention something about which unit got attacked, it's not enough to get the big picture, like figuring out which units are weaker/stronger/etc. or whether the user should take any action, stop and inspect units, and things like that.

If someone can suggest what I can do, I would really appreciate that. Also, I can probably provide a basic prototype that includes the console, if someone would like to test it and see what it sounds like with something printing every round.

If anyone is now listening to this, you can download the latest prototype here: https://pipe.miroware.io/5dac66bc472b0f … indows.zip

Audio recordings and demos of my prototype audio-game for the blind: https://www.youtube.com/channel/UCpUPup … subscriber

2020-02-10 15:55:36

If you're comfortable with this, could you give some info on what you're building this in? Some of us may be able to provide you some more specific feedback.
Sounds very neat, and look forward to checking it out.

In meinem Fernseher ist ein Hund. Er heißt Fritz.

2020-02-10 18:12:26

I support the prototype idea. It really depends on how verbose your information gets (most of us use speech at a much faster rate than you would expect).
Thank you for putting an effort into being inclusive

Coding is not hard. No, not at all.
What is hard is making code that accepts different and sometimes unexpected types of input and still works.
This is what truly takes a large amount of effort on a developer's part.

Thumbs up +1

2020-02-10 18:39:31

I'll provide you with a rather cool example.
In the Japanese audiogame Dreamy Train, if you press space, you are given distance to station, current speed, and speed limit.
When you do this, the game literally pauses it's state, speaks, and then resumes. You can allow this by putting a delay option in your game's settings that the user can configure and test.
Then, DreamyTrain takes this one step further. Apart from the delay option, if the user presses a key after hearing the info they want, it immediately resumes. Then, for another option, you can press z for distance, x for speed, and c for speed limit, and each time you do this, it pauses.
Another example for more complex stuff:
Bokurano Daiboukenn 3 has an object locator, accessed with D. It pauses the game's current state, and lets you move up and down, telling you your position and that of other objects on the field.
I'm wondering if some approaches combining some of these systems could be used for units. A menu system where you can move between units and press buttons for different unit status, a button that shows general status of a team, field effects, and such, as a summary, and/or buttons that can make specific information read.

Thumbs up +1

2020-02-10 19:58:07

A prototype would be useful to give us an idea of what kind of information is available then we could give better feedback on that. The best approach would probably be to make the amount of information given customisable since different people might prefer different levels of detail. Sounds like a nice game, looking forward to trying it.

Thumbs up +1

2020-02-10 23:10:25 (edited by magurp244 2020-02-10 23:13:32)

Accessibility doesn't have to be a hack, it can just take a few adjustments to your ambient audio quality in regards to game state, consider it informative audio design, much like how music may change in action RPG's when combat begins/ends. If the characters make sound during each round (sounds of attacking/getting hit, sounds of weapons clashing/firing), then your already updating the players with what they need to know, it just needs to be more descriptive to the games current state. If a soldier is wounded they may pant a bit and have a more laboured strike against an enemy, indicating that a health potion may be required. You can also have unique sounds for each character type, like in Overwatch for example.

Outside of battle you could use character announcement selection, much like you see in brawlers like Killer Instinct or Mortal Combat, announce the character currently highlighted when moving the cursor, with a selection sound when picked. Same for equipment and stats.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

Thumbs up +1

2020-02-11 03:07:33

Thanks everyone for the great feedback. #4 and #6 your ideas are very nuanced, and I'm prototyping right now. I have a very, very rough game loop working, and that's it. I will revisit these ideas later, thank you for them!

#2 I'm building this in MonoGame. It's built off of a prototype idea I had earlier, after my previous prototype, Golden Garbonzo.
#3  and #5 thanks for being supportive.
#4 your idea of pausing on input is fantastic and I included it in my prototype.

Because of all the support and ideas, I rushed the prototype and have a playable version. You can download it here: https://pipe.miroware.io/5dac66bc472b0f … indows.zip

The game pops up a graphical window and a console window (I think). Please let me know if it doesn't. The console window prints out everything, and based on previous experiments, I think it should work splendid with your screen readers.

The game auto-battles, so it plays itself. You can type h for help, which prints the command. Press i for inventory, to list how many potions you have left. Press s for stats, which lists every party member and monster and their health. You can press p, which pauses the game momentarily, and then choose who to use a potion on.

Party members are different levels, and professions, like Faris, which is a knight, and Lancer. Each profession has different strengths and toughness, and health is based on level. Each profession makes a different sound when they attack. The slime monsters also make a unique sound when they attack. These are all temporary sounds, which I rushed, since it's a prototype.

Please let me know if you can play the game, and if there are any major glaring problems with it. Other than that, I just want to know if it's fun or not.

Again, here's the download link: https://pipe.miroware.io/5dac66bc472b0f … indows.zip

Looking forward to hearing your feedback!

Audio recordings and demos of my prototype audio-game for the blind: https://www.youtube.com/channel/UCpUPup … subscriber

2020-02-11 19:28:14

When I go into the game, I can't use any of the commands. I am using windows 7, and have tried pressing p in both the console, and the champions, window.

Thumbs up

2020-02-11 19:33:27 (edited by zakc93 2020-02-11 19:40:41)

Right now I am pretty confused, it is a bit too fast to keep track with text. I think the sounds would help, I just need to figure out which sound means what. Some kind of audio indication when a party member is low on health would be useful. It would also be nice if you could just pause the game to figure out what's going on, then resume it without using a potion. Maybe make it possible to use the other commands while the game is paused so you can get information without the game continuing.
The game runs for a while, then I get this error:
Unhandled exception. System.InvalidOperationException: Sequence contains no elements
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Min[TSource](IEnumerable`1 source, Func`2 selector)
at DeenGames.Champions.Scenes.BattleScene.PickTargetFor(Unit next, Boolean isPartysTurn) in /home/nightblade/code/cha
mpions/source/Champions/Scenes/BattleScene.cs:line 185
at DeenGames.Champions.Scenes.BattleScene.ExecuteTurn(Unit next) in /home/nightblade/code/champions/source/Champions/
Scenes/BattleScene.cs:line 154
at DeenGames.Champions.Scenes.BattleScene.Update(Int32 elapsedMilliseconds) in /home/nightblade/code/champions/source
/Champions/Scenes/BattleScene.cs:line 144
at Puffin.Core.Scene.OnUpdate(Int32 elapsedMilliseconds) in /home/nightblade/code/champions/source/Puffin/Puffin.Core
/Scene.cs:line 224
at Puffin.Core.Scene.OnUpdate(TimeSpan elapsed) in /home/nightblade/code/champions/source/Puffin/Puffin.Core/Scene.cs
:line 161
at Puffin.Infrastructure.MonoGame.PuffinGame.Update(GameTime gameTime) in /home/nightblade/code/champions/source/Puff
in/Puffin.Infrastructure.MonoGame/PuffinGame.cs:line 122
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at DeenGames.Champions.Program.Main(String[] args) in /home/nightblade/code/champions/source/Champions/Program.cs:lin
e 13

Thumbs up

2020-02-11 19:35:02

@8 you have to press enter after pressing the key. It's typing a command into a console rather than a keyboard shortcut. That also got me at first.

Thumbs up +1

2020-02-11 20:55:14

I tried out the prototype and think this is a really cool concept!

I have 3 suggestions that would make the battles even easier to follow.
For identifying who attacks what, if you're fighting multiple enemies of the same type like the 5 slimes now it might be a good idea to number them, so the game would say something like archer attacks slime 2 for 60 damage. Another thing that could help with this is using the stereo field to pan the sound effects to show the positions of the characters. Since it's a 5-space long grid you could just pan sounds hard left, slightly left, center, slight right and hard right which would give a nice indication of who is where. This coupled with more distinctive sounds for different classes and enemies attacking would help a lot. As a side note if you need help with sounds, I've done sound design for a few audio games so feel free to ask smile

The second suggestion is for checking health and using potions. I recently played a game called Bulwark and the city of flesh that had some puzzles using grids. The developer represented the various grid positions as keyboard keys and I thin this would also work great here.
So, pressing A, S, D, F and G could let you check the health of your 5 characters, while Q, W, E, R and T would do likewise for the enemies they're fighting. This would make it easier to check info for specific characters or enemies instead of having to hear all of them every time. Then to use a potion you could just press Shift+the letter of the character you want, like A for the first one, S for the second and so on.

Hopefully these ideas help. I can't wait to see where this project goes!

<Insert passage from "The Book Of Chrome" here>

Thumbs up +1

2020-02-12 15:20:41

@8 sorry, I don't know what the problem is. Were you able to solve it with what @10 said?
@9 Thanks for the suggestions, I'll add a pause and make the text more obvious which sound is which class or monster.
@11 that's a really neat idea, I will try the A S D F G Q W E R T thing, that sounds cool. I'll redo the sounds in stereo, and I'll add numbers to units. I might take you up on that suggestion about sound design smile

I am currently putting these changes into a next version of the prototype, and will post it back here when it's ready. Thanks for all the great feedback so far!

Audio recordings and demos of my prototype audio-game for the blind: https://www.youtube.com/channel/UCpUPup … subscriber

2020-02-13 02:01:08 (edited by Nightblade 2020-02-15 21:59:11)

I have integrated everyone's feedback, except for stereo sound and making it easy to tell which sound is for which unit - sorry.

I did implement shift A S D F G to heal, it's just not mentioned in the help.

You can download the latest prototype here: https://pipe.miroware.io/5dac66bc472b0f … indows.zip

I decided not to pursue this game idea though. Thanks for all the feedback.

Audio recordings and demos of my prototype audio-game for the blind: https://www.youtube.com/channel/UCpUPup … subscriber

2020-02-16 05:55:57

Numbering the same units and the grid thing was a good idea, it really helps. One suggestion, it would be a bit more convenient if you could apply a potion by using the same key you use to check that unit's stats. And a very minor point but the game says you won before it outputs the text for the last attack. Also, I'm not sure if I'm remembering correctly but I think in the first version it told you what your party consisted of, e.g. 2 lancers, 2 archers and 1 faris. Either way, it would be nice to have that when you start.
But this seems pretty playable now, I could mostly follow what was going on and pause to apply a potion when it was necessary.

Thumbs up

2020-02-16 09:11:55

add a speed option, it's too slow now

It is not strength or talent, but courage and persistance that bring reward and happiness.
-Rory Michie, 2020