Skip to content

Input HUD: Use consistent input button icons#2166

Merged
wjt merged 1 commit intomainfrom
wjt/input-hud-use-consistent-input-button-icons
May 7, 2026
Merged

Input HUD: Use consistent input button icons#2166
wjt merged 1 commit intomainfrom
wjt/input-hud-use-consistent-input-button-icons

Conversation

@wjt
Copy link
Copy Markdown
Member

@wjt wjt commented May 7, 2026

Previously we had a mixture of outline and filled icons; and of colour
and monochrome icons for Xbox and PlayStation.

Refactor the way that these icons are assigned so that they are stored
in the same JoypadButtonTextures resource as directional inputs. This
means that the textures for a device type can be configured all in one
place.

Consistently use outline icons, which are more legible and obscure less of the world.

Consistently use monochrome icons for Xbox. It is true
that official Xbox controllers do have colours on the A/B/X/Y buttons
but looking at some photos in an image search, the colours are either
used for the text (not the surrounding button), or are printed as a
little directional key in between the four buttons. I own two Xbox-style
controllers made by 8BitDo; they use the XBox RB/RT labels for shoulder
buttons rather than R1/R2 so the use of xbox textures for generic
controllers seems appropriate, but they do not use colours.

Similarly, use monochrome icons for PlayStation. Some PlayStation
controllers have coloured buttons, but many more do not, and I don't
think the colours are the strongest association.

Some of the Switch button textures were inconsistent with the input map;
fix these in the process. Unfortunately I was unable to pair my Switch 2
JoyCons with my laptop so I can't actually test these. (If we wanted to
support Switch controllers "properly", IMO we should swap the mappings
so that the Switch "A" button is interact, but that's one for another
lifetime.)

For champ_stealth, rather than adding these champ_specific actions to
the global input map, make interact_input.gd skip the per-device mapping
if it is not provided, which improves on the previous behaviour of
showing blank icons when using a controller.

For Sueños Nocturnos, which has a custom "Saltar cinemática." hint, use
the "interact" button (matching the previous hardcoded button textures),
and adjust the action it looks for to match so that joypad buttons
actually work.

@wjt wjt requested review from a team as code owners May 7, 2026 09:36
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Play this branch at https://play.threadbare.game/branches/endlessm/wjt/input-hud-use-consistent-input-button-icons/.

(This launches the game from the start, not directly at the change(s) in this pull request.)

@wjt wjt force-pushed the wjt/input-hud-use-consistent-input-button-icons branch from e97ade0 to a5ce743 Compare May 7, 2026 09:51
@wjt wjt changed the title Input HUD: Use consistent input button icons [1/1] Input HUD: Use consistent input button icons May 7, 2026
@wjt
Copy link
Copy Markdown
Member Author

wjt commented May 7, 2026

Before After (filled) After (outline)
image Screenshot From 2026-05-07 10-38-49 image
image image image
image image image
image image image

@wjt wjt changed the title [1/1] Input HUD: Use consistent input button icons Input HUD: Use consistent input button icons May 7, 2026
@manuq
Copy link
Copy Markdown
Collaborator

manuq commented May 7, 2026

Yes great, the button icons should be consistent!

image Screenshot From 2026-05-07 10-38-49

By looking at these screenshots and playing the branch, I find the outline versions better to the eye for readability and less intrusive, as they let seeing more of the world behind them.

In particular the filled icon for Shift is a bit unreadable:

image

Than:

image

But yes in general I agree with making all of the buttons consistent. Initially I thought that color icons were used because there weren't monochrome counterparts to use. But they are there!

Copy link
Copy Markdown
Collaborator

@manuq manuq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jofilizola you may have feedback for this as well.

@wjt
Copy link
Copy Markdown
Member Author

wjt commented May 7, 2026

OK, I defer to more visually-skilled people on whether the filled or outline versions appear better - your pair of screenshots has convinced me. I'll revise this to use outline versions. We can try #2167 too - it looks good!

@wjt wjt force-pushed the wjt/input-hud-use-consistent-input-button-icons branch from a5ce743 to dcab348 Compare May 7, 2026 12:11
@wjt wjt changed the title Input HUD: Use consistent input button icons [1/1] Input HUD: Use consistent input button icons May 7, 2026
@wjt wjt changed the title [1/1] Input HUD: Use consistent input button icons Input HUD: Use consistent input button icons May 7, 2026
Previously we had a mixture of outline and filled icons; and of colour
and monochrome icons for Xbox and PlayStation.

Refactor the way that these icons are assigned so that they are stored
in the same JoypadButtonTextures resource as directional inputs. This
means that the textures for a device type can be configured all in one
place.

Consistently use outline icons.

Consistently use monochrome icons for Xbox. It is true
that official Xbox controllers do have colours on the A/B/X/Y buttons
but looking at some photos in an image search, the colours are either
used for the text (not the surrounding button), or are printed as a
little directional key in between the four buttons. I own two Xbox-style
controllers made by 8BitDo; they use the XBox RB/RT labels for shoulder
buttons rather than R1/R2 so the use of xbox textures for generic
controllers seems appropriate, but they do not use colours.

Similarly, use monochrome icons for PlayStation. Some PlayStation
controllers have coloured buttons, but many more do not, and I don't
think the colours are the strongest association.

Some of the Switch button textures were inconsistent with the input map;
fix these in the process. Unfortunately I was unable to pair my Switch 2
JoyCons with my laptop so I can't actually test these. (If we wanted to
support Switch controllers "properly", IMO we should swap the mappings
so that the Switch "A" button is interact, but that's one for another
lifetime.)

For champ_stealth, rather than adding these champ_specific actions to
the global input map, make interact_input.gd skip the per-device mapping
if it is not provided, which improves on the previous behaviour of
showing blank icons when using a controller.

For Sueños Nocturnos, which has a custom "Saltar cinemática." hint, use
the "interact" button (matching the previous hardcoded button textures),
and adjust the action it looks for to match so that joypad buttons
actually work.
@wjt wjt force-pushed the wjt/input-hud-use-consistent-input-button-icons branch from dcab348 to daaa142 Compare May 7, 2026 12:16
@wjt
Copy link
Copy Markdown
Member Author

wjt commented May 7, 2026

I'll land this with consistent monochrome, outline icons; we can always iterate.

@wjt wjt merged commit a3e4d77 into main May 7, 2026
6 checks passed
@wjt wjt deleted the wjt/input-hud-use-consistent-input-button-icons branch May 7, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants