Have you made a joystick from an Arduino? I need your expertise, please.

This is easier to achieve with a Leonardo or a USB Host shield.

The UNO itself can't do it, because the Atmega328P on it doesn't talk directly to the USB port on a computer. It needs something in between, be it the Atmega8u2 or Atmega16u2 on it or the USB host shield.

If you reprogram the Atmega8u2 (or 16u2) on your UNO, you'll lose the feature of uploading sketches through the UNO's USB port.