Inspiration
As online gaming gets more popular, some people attempt to gain an unfair advantage over legitimate players. In the rhythm game osu!, the amount of hackers in the game is rampant, with some players in the top ranking leaderboards never being discovered unless they confess themselves. As avid players of the game, losing ranks to these cheaters and seeing them go undetected is an unpleasant experience.
What it does
We developed a program to attempt to discover these hackers by analyzing their cursor movement and determine if their movements were not those of a human. Some ways we did this were analyzing the movement of the cursor over two instances and comparing its slope. If the slope is within 0.03 pixels of each other, it is flagged. Another way is to measure how far a cursor moves in between two instances about 20 milliseconds apart. If the movement is greater than 150 pixels, it's flagged as suspicious activity. Another method we use to detect suspicious behavior is to section the replay into 100 parts, and calculate how much the acceleration of the cursor deviates between those sections. If the acceleration deviation value is off from what's normal, it's flagged as suspicious.
How we built it
Using PyCharm as an IDE, we developed the program exclusively in python. We also used some image editing software such as Photoshop to develop some of the images used.
Challenges we ran into
The biggest obstacle we ran into was trying to figure out how to use a .osr file and parse it into a text file to analyze. Even after we were able to do this using the assistance of an external program, trying to figure out the meanings behind the value of the text was difficult. The replay file was filled with numbers such as x,y coordinates, time frames between cursor position instances, and milliseconds since the play has started. We had to figure these values out ourselves.
Accomplishments that we're proud of
Contributing something to combat the prevalence of hackers in gaming, and developing a program that worked well in differentiating legit players and cheaters.
What we learned
We learned about many elements in the python GUI, and learned about more functions that we did not know about. This was our first time developing a project like this, and provided us with invaluable experience with how to use an IDE. We also used GIT desktop to coordinate our files as a team, and gave us new knowledge of a useful tool.
What's next for osu-ucisd-cheat-analyzer
More factors can be used to determine cheating, that we did not test for. osu! itself is open source and by looking at the source code, it is possible we can improve our program and possibly have it recognized by the official developers. Better improvements can also be made to the GUI, as this was mostly customized for the hackathon.
Log in or sign up for Devpost to join the conversation.