One of my favorite video games of all time is Super Smash Bros. Melee. It is the second installment in the series, yet to this day maintains an active community.
The game is known for its extremely fast-paced movement, and is notoriously technically demanding to play.
As a player of the game, I have always struggled with hand pain when using a conventional controller. I sought to alleviate this by creating my own arcade-like controller from scratch.
I originally did this using an Arduino with Sanwa arcade buttons as input.
Eventually though, I decided to just utilize my computer keyboard by writing a Windows program that intercepts keyboard input, translates it to GameCube controller input, and then passes it to the Dolphin Emulator.
I wrote this program in Python, C++, Rust, and then Nim.
Another experiment I did with Super Smash Bros. Melee was to try to create a custom bot to fight against using machine learning.
Thanks to a tremendous effort from the community, the memory layout and how it corresponds to the game state is fairly well known. This means that it is possible to monitor the raw memory of the game as it is running, determine the state of the game, and use it as input for an AI.
There was a fairly successful effort from someone else to make an AI this way at the time, and so I decided to try my hand.
Although I was never able to create a truly formidable opponent, I was able to manage to get an AI to move around and spam attacks in a somewhat intelligent way. The code for this can be found here.