They’re really cheap. This one cost me only 2800 INR (~$30), but the vibrations are terrible. You can get one from a reputed brand for about 50 USD. I think Razor and Gamesir also sell these.
The only Android game I play with this is Fall Guys, that too once a week or so. But primarily I play PSP and PS2 games. Apps like Retroarch provide a really nice UI for retro games, and can make you feel like you’re using a handheld console. Here’s a screenshot of Retroarch:

NetherSX2 is also great. Here’s the screnshot:

I love this thing and would recommend such gamepads to anyone looking for a handheld console experience.
Here’s a few more photos of this.


Btw, it can also be connected to any PC with a Bluetooth connection. This one can also connect to PlayStation 4 as well. It will work on PS5 too, but only in UI and PS4 games.
PS - Sorry for the blurry pictures. i don’t have a good secondary camera.
Edit - I wanted to add a bit about Retroachievements as well. If you’re into retro gaming, and don’t use Retroachievements, WHY? Maybe because you didn’t know about it? Go to retroachievements.com and see if you can get all the achievements from your favourite childhood game. You can connect Retroachievements via only Retroarch, NetherSX2 and PPSSPP emulators only. Others are not supported yet (on Android).


Any game. It’s a remote desktop app, basically. If it’s a steam game, it will come with a default phone touchscreen gamepad set up and usually there are also official and community layouts you can use. The layouts are… not as good as you might like, and I am frequently having issues with my custom ones disappearing or not loading. But it’s not the worst thing ever and I can play modded skyrim on my phone at work.
Non-steam games can be added to the steam library and you can manage their controller schemes the same way- sometimes they will even have community layouts available also. MMV with non-steam games. For example, Valorant won’t recognize my mouse click on my phone. And certain apps apparently force you into a “local input only” mode and might kinda break your setup until you play around with it a bit (don’t go into task manager lol).
But yes, you can also easily connect a bluetooth controller to your phone and any game that uses a controller works great.