Developer and game porter Ryan "Icculus" Gordon has created a new library named ControllerImage for game developers, with an aim to help showing on-screen controller prompts
Built on top of the popular SDL, specifically SDL 3, the idea is game developers would use this to show things like "Press *controller button* to open" type of prompts in-game. No matter what controller, it would be able to show the right prompt, as long as SDL knows what that controller is.
As written in the Patreon post:
Something that's been bothering me for awhile is how SDL handles game controllers: you plug in darn near anything, and it can figure out what to do with it, so the developer can assume the player is using an Xbox controller even if the actual gamepad is built by Sony or Nintendo. It can sort it out whether it's a first-party controller you paid 70 bucks for, or it's something totally anonymous, bought for a few yuan at a chinese street market.
But all SDL does is say "I know this controller, here's where its equivalent of the Xbox Y button is" to the programmer, and not "I know this controller, here's what it looks like" to the player.
I set out to change that.
This is a dirt-simple library that builds on SDL's ability to detect joysticks, to provide scalable images of its buttons and other features, so you can show users instructions that match the controller in their hand, even for controllers you've never heard of, and for screen resolutions that don't exist yet.
Direct Link
The project is on GitHub. You can support Ryan "Icculus" Gordon on Patreon.
I've regularly covered Game Dev news for years now, there's even a dedicated tag for it :)That's true. I guess this is just more low-level than I'd usually see, which is Godot, Blender, and the rest of the big giants so I didn't put it in the same mental category.
What a clever idea.
I subscribe to Icculus's youtube channel and watched his intro the other night. While watching I was thinking it seems like a really obvious idea? Why did it take until 2023 to try and show the player a glyf that corresponds to the input method they are using? Every time I get shown a glyf for an input method I'm not using (pretty common especially if you use a not xbox controller) I think the same thing.
Don't get me wrong, I really appreciate that Icculus has done this but I'm still surprised that it took so long for someone to do it. Is this a solved issue if you use steaminput?
I'm surprised this hasn't been done much sooner.We kinda have this with steaminput, but this is more independent, and probably more adaptable to more game engines.
Stupid simple highly relevant ("why wasn't this done before?!") lightweight crossplatform opensource libs for game development are his thing
I'm guessing game engines will be eager to add this feature (they all use SDL already afaik) so the right glyphs can be shown outside Steam too
Valve should just hire Ryan to do his thingMy impression (which could be wide of the mark) is that that wouldn't be appealing to either party.
Hiring talented people to work on broadly whatever they want is their general MO, but those people are then Valve employees doing things for Valve. It's not a sponsorship deal like you'd get for, say, Linus or Greg, where they're supported for being an ecosystem treasure. They do sometimes do consultancy contracts where someone is paid to do a particular thing for them - I think Ethan Lee had one of those, as well as folks like Collabora.
See more from me