[games_access] Looking for Feedback regarding a Game Engine For Accessible Games (Franco Eus?bio Garcia)

Franco Eusébio Garcia franco.garcia at dc.ufscar.br
Sun Apr 6 20:30:26 EDT 2014


Hello, Ian!

The pleasure is all mine. This is quite incredible, as your work have  
also helped me.
Thank you for your work and your guidelines – and for the great response!
You are absolutely correct on all your points.

> By UA games I assume you're talking about Dimitris' work?

Yes, you are correct - Dimitris Grammenos.

> And it is not only useful for people with impairments, the stats  
> show that the individual customisation is used by many more people  
> on top of that, simply because people in general have different  
> needs, motivations and abilities.

You are indeed correct. This is something we are trying to address  
with a very flexible player profile.
Regardless of whether it is a game or a software, considering  
accessibility and usability during the design makes a better solution  
for everyone. I believe it is incredible the amount of interactions  
issues we find when we use a software considering a different  
perspective.
This is even more interesting with games. Disable the graphics and  
suddenly we notice many different improvements we could make. We can  
implement these new features and improve the game for both situations.

> However there are some constraints on how much is possible solely  
> through using the UA games principles, particularly for more complex  
> games. One example being resulting interface complexity (even for  
> very simple games), meaning that too many options and too much  
> customisation can actually make a game less accessible rather than  
> more accessible. So you still really need to have as widely  
> accessible a default design as possible and use customisation as an  
> enhancement, rather than rely on it exclusively. Or in other words,  
> strive towards getting as close to the unobtainable goal of  
> universal design as possible, and combine that with carefully chosen  
> customisation.

This goes along with the “no interface is the best interface” or less  
is more. Unfortunately, I do not remember where I have read it:  
someone once wrote the goal of the designer is to make choices for the  
user. Such as your comment, this is very spot on.
The same applies to regular software – presenting too many options to  
the user can be frightening. Depending on the number of options, even  
I, as programmer, become scared sometimes.
That being said, I am an awful designer myself. I am slowly improving,  
though. :)

> A nice reference for your dissertation might be FIFA 13, which is a  
> great example of the benefits of allowing people access to some of  
> the variables that are already there sitting beneath the surface.  
> Steve's review of it is worth checking out if you haven't seen it  
> already: http://community.ablegamers.com/PC/fifa-13-pc.html.

Thanks for the resource!

> For examples of gameplay that can work without any or with greatly  
> reduced input, have you looked at the autopilot mode in New Super  
> Mario Bros Wii, or the automatic option in Bayonetta's easy/super  
> easy mode?

Yes, I have read about both of them.

> In the nutshell document you mention an example prototype of a  
> UA-game bundled with the engine source code, do you have a separate  
> and compiled version of the prototype?

I just compiled one here: <http://1drv.ms/1qaNIz5>. It has the “works  
on my machine” seal of quality. Please tell me if you are unable to  
run it. (Note: if you die the game will crash as I did not handle the  
player’s death)
As I said, the prototype by itself is pretty raw and un-accessible, as  
its goal was to provide an example for other programmers to evaluate  
the engine. It was an afternoon project to add to the documentation.  
Left, right arrow move, left, right button mouse fire.

What is interesting to check are the profiles. In the data folder, go  
to ‘config/player_profiles’. To change a profile, just uncomment a  
line of the ‘active_profile.xml’ and comment the remaining ones.
Then, for instance, check the folder of a profile. Let us say,  
‘average_user’. In this folder, check the ‘profile.xml’ for a quick  
idea, then either the ‘events’ or ‘entity’ folder.
The first allows you to enable/disable events to provide feedback.  
This is quite nice, as it reusing events handlers for different  
profiles. For instance, in ‘aural_events.xml’, set them to true and  
re-run the game. There we go, audio feedback for shots and enemies  
destroyed.

As events can be handled anywhere, it is always possible to define  
many different handlers and let the user choose them, if they wish.

The second allows adding or removing components from the entities. In  
my IO-free game world, the game logic uses only non-output components.  
This means that we can always add a different output component without  
affect the logic (this simple example assumes a fix collision shape,  
although it would be possible to get a bounding box of the model, if  
wanted).

Open ‘spaceship.xml’. These are the specialization components. In this  
case, they made the spaceship stronger (change health to zero to crash  
the game) and provided the graphical output. Comment the  
OgreGraphicalComponent and see the spaceship vanish. If you wish,  
later uncomment it again and change the model to another one (for  
instance, to ‘sphere.mesh’). Are the bullets underpowered? Just  
increase their firepower in the respective XML file.

Then open the other profiles and see what changes in the events and  
entities. ‘low vision’ – it changes the transform scale to offer  
extra-large graphics. Blindess changes the game perspective to first  
person and explores 3D audio – add a graphical component to the  
entities should you wish to see them. Cognitive change speed. Motor  
uses the bad enemy AI to auto-control the ship.

In some, you can also remap the game commands. I didn’t think I  
enabled this for each profile, which I apologize for. As I don’t  
remember for which I did, if you cannot change in the profile, change  
in ‘data/game/commands’ and change the ‘default_command_mapping.xml’  
(‘data/actors’ have the IO-free entities, by the way). ‘MB’ is mouse  
button, ‘KC’ are key constants (keyboard keys). Should you wish to  
swap mouse for keyboard and vice-versa, just change the device then  
the ‘input_value’.

Please disregard accessibility issues and see how tailor-able the  
solution is – in run-time!

I think it is quite nice – and that the engine it is shaping very  
well. I hope you do like it, too! :)

Best regards,
Franco





More information about the games_access mailing list