Keyboard Encoder?
Джойстик должен в системе и в играх определяться как джойстик.
Я делал из клавиатуры — неудобно. Пришлось выносить Enter и Escape для управления игрой, да и не каждая игра умеет «настраиваться» под те кнопки, которые вы вынесете на джойстики.
А простейший джой можно собрать на LPT или USB-LPT — минимум обвязки и всё работает.
Есть не совсем на базе Ардуино, но близко с ним: Это так называемая библиотека v-usb.

При всем желании, такой контроллер обойдется в районе $10 и убитого времени на понимание функционирования. Но в помощь могут пойди уже готовые проекты с указанного сайта.