Разработка алгоритма для борьбы с игровой зависимостью
Authors: Сычугов Д.Ю. , Ильиных У.В. 
Published: December 2024

Зависимость от компьютерных игр – проблема современных детей и подростков. В статье описан новый способ борьбы с ней. В рамках целевой аудитории проведён эксперимент, целью которого было создание базы данных с информацией о количестве и среднем времени нажатия каждой клавиши во время игр. Собранные данные позволили сделать вывод, что на компьютере игровую деятельность можно однозначно отличить от любой другой. Большинство игр отличаются многократными нажатиями четырёх клавиш, которые используются для управления персонажем. Реализован программный продукт Gamebreaker-2, способный однозначно определять игровую деятельность и прерывать её. В качестве алгоритма выбран метод машинного обучения – классификатор случайного леса. Для разработки использованы язык программирования Java и свободно распространяемая бесплатная библиотека JNativeHook для считывания ввода пользователя. При запуске программа создаёт объект случайного леса и обучает его на основе данных из созданной в результате эксперимента базы. После этого программа начинает делать сканирование ввода пользователя каждые 20 секунд и отправляет данные в классификатор. Если объект случайного леса решает, что это игра, то программа определяет игровой процесс и прерывает его. Полученный продукт протестирован на целевой аудитории, на играх, для которых характерны частые нажатия четырёх основных клавиш. Программа показала высокую эффективность и полное отсутствие ложных срабатываний при качественном обучении нейронной сети. Выделены направления дальнейшей разработки программы с целью доведения до вида коммерческого продукта.

Game addiction appears to be a widespread disease among young people. Nowadays methods, such as parent control programs, have their own disadvantages. In this work a new method for controlling game activity is researched. It depends on analyzing user’s keyboard input. Research includes experiment in the order to collect information about key pressing dynamics during gaming. It turns out that gamers have their own unique pattern in how they press the keys. The most widespread type of the games are the games using four main buttons to control characters. Such games clearly differ from other types of computer activity such as typing or writing code. The main goal of this work is to develop and implement the algorithm which uses this pattern to detect games and stop computer process which runs the game. Machine learning methods appeared to be good for these purposes. The experiment allowed us to create a big database with input scans. Records are used to train a random forest classifier. Java programming language is used for implementing algorithm as a program product. JNativeHook open library is used for scanning process. At the start, the program creats a random forest classifier and trains it with static data. After this the main cycle of the program starts: every 20 seconds a new scan is performed and analyzed. If the program determines that there is currently game activity, then it will try to detect the game computer process and to stop it. During testing program showed great results for game with described above pattern: it detected the game and stopped its process for ten times in a row without any false effects.