SmartVolleyAI.mp4

SmartVolleyGame - colaborative project with Tamara Ilić

Idea

This is the first part of our SmartVolley project that has the goal to help volleyball teams use artificial intelligence to improve their game and make data-driven decisions about training, game preparation, and suggestions to coach during the match. The goal of this part of the project was to gain more in-depth knowledge about the physics of the game and to train reinforcement learning artificial intelligence to learn some basic strategies and acquire volleyball knowledge. We enjoyed creating this game we hope you would enjoy it too.

Idea

Game

The game is designed as a 1v1 volleyball where you can play against our artificial intelligence bot. Two cube players can move around the regular-sized volleyball field (with WASD keys), jump(Space key), bounce the ball with their heads, and spike(X key). In addition, every player has his energy level that determines what kind of action he can perform and one can acquire more energy by collecting different power-ups. This was our first Unity and also game development project so we learned a ton.

Game

Artificial intelligence

Our goal was to train AI to learn the optimal strategy to win the game of volleyball by using the Unit's ML-Agents Toolkit and python library for reinforcement learning. You can find our training parameters in config/volleyAI.yaml As you can see we trained a self-play model for a few hours and it was able to train some basic movement and strategies but was not able to become superior that a human player. In the future, we might train it for more time with different rewards strategies, but it remains some improvement for the future.

AI

Plans for the future

This was just the first of many stages in our SmartVolley project, stay tuned.