I am a joystick user. I've been playing PC games since 1998, and I've been playing with a joystick + trackball combination since 1999. I've played *all* games since then with my joystick. I use the trackball like other people use a mouse, for mouselook and aiming. I use the axis of the joystick for movement, and the buttons for abilities. I've played FPS games, RPGs, MMOs, sneakers, GTAV, everything with trackball and joystick.
The first few years I used a Logitech joystick. Not good. They have very few buttons. And they used to break every 3 months. They have some warranty, so I would change my broken Logitech joystick for a new one after 3 months. And when that one broke, I'd buy a new one. Costly.
I use a Logitech MarbleMouse trackball since 1999. They are cheap, reliable, durable, optical so easy cleaning. And they are symmetrical, so you can operate them with your left hand, while using the right hand for the joystick.
In 2004 or 2005 I started using a joystick named FighterStick, by CH Products.
http://www.chproducts.com/Fighterstick-v13-d-722.html
This joystick is awesome !
Mine has lasted for over 10 years !
It has 4 buttons. A trigger, a pinky-button, a button for your index finger, and a button for your thumb. And it has 3 4-hatswitches. The hatswitches can be moved in 4 directions, which functions as 4 buttons. And there is a 8-way hatswitch, but to be honest, I use it only as a 4-way hatswitch.
This gives you 20 distinct buttons. If that isn't enough, you can easily program the pinky-button (or another button) to be a "shift"-button. That means you'll have 2x19=38 buttons that you can easily access ! I've played a *lot* of World of Warcraft. In WoW you need lots of abilities on your actionbar. I used to use 30+ abilities regularly while playing my rogue. And that was no problem at all with this joystick.
The CH Products joysticks come with their own programming language. It's a bit crude, but very powerful. I used it to program my joystick so I can dodging in Unreal games (like UT99, etc). When I press the pinky-button, I would dodge in the direction in which I was moving. Very useful. I've used the stick in combination with a free utility called x360ce. It makes the axis of my joystick look like a controller. And then games that support controllers will have analogue movement.
You can't break this joystick. And the base is pretty big and heavy, with rubber underneath. Very hard to move, unless you play really really wild.
The downside is that this joystick might not be easy to find outside of the US. And it can be a bit expensive. I paid 200 euros for my first stick, and it was worth every cent. I bought a 2nd one last year, to make sure I had a spare if I ever needed one. That one cost 120 euros. I use the new one now, but the old one is still working fine actually.