Motor impairment
This refers a wide range of conditions that make it difficult or impossible to use a mouse or keyboard. People with these conditions may be more easily fatigued by prolonged use. On the face of it there might seem little that can be done to assist here.
Gamepad support
Ren'Py has built-in support for using a gamepad (controller) instead of a keyboard and mouse. If you have one of the game pads Ren'Py knows about then the Help screens will include a "tab" for gamepad and list the controls:
Button | Function |
---|---|
Right trigger, A/Bottom button | Advances dialogue, activates focused item. Roughly equivalent to the Enter key. |
Left trigger, Left shoulder | Rolls back dialogue. |
Right shoulder | Rolls forward dialogue. |
D-pad, Sticks | Navigates the interface. |
Start, Guide | Accesses the game menu. |
Y/Top button | Hides/shows the user interface. Roughly equivalent to the H key. |
Assistive technologies can be mapped to appear as a gamepad with
additional electronics potentially making any game that can be played
with a gamepad accessible.
See
Hackaday: Adaptive Controllers
Challenges
Some of the challenges with using a gamepad are:
Gamepad not recognised
On Windows at least Ren'Py's recognition of a specific make of gamepad
doesn't actually stop it being used. My very cheap original xbox-like
controller does work, but it is not one Ren'Py recognises. I altered
the contents of screen help():
in screens.rpy
to always show the Gamepad help on Windows as it seemed daft to hide the
fact that this is an option. There are fully able-bodied people that
prefer to play using a gamepad.
screen help(): ... if GamepadExists() or renpy.windows: # On Windows always show the Gamepad menu as Windows recognises more controllers than RenPy does. textbutton _("Gamepad") action SetScreenVariable("device", "gamepad")
Keyboard input
The need to use the keyboard at all is limited in most visual novels. The most common I've seen is to enter a name for the player character. By simply adding a default if the name input is left blank this is much less of an issue.
Mouse input
Mouse functions can largely be replaced by the gamepad. In situations where the player must point at something make sure the focus order is sensible so stick and d-pad navigation works. Gestures, such as drag and drop, are much harder or impossible with a gamepad, so offer an alternative such as select source, select target.
Fatigue
The nature of a visual novel requires a considerable amount of clicking
to progress dialogue and narration.
Judicious editing can reduce the amount of clicking to progress through
a scene.
Providing a shorter version of a scene after it has been seen a few
times can also reduce clicking.
Being very careful about if and when to use the {w}
tag that
requires more clicks can also help.
This kind of nonsense may be "cute", but I think it has no place in an
accessible game:
pc ".{w}.{w}." npc ".{w}.{w}."
Mini-games
Are rarely accessible, especially if they are against the clock. Make such things optional elements of the game.