Design a racing game that uses OpenCV for control inout. We want the movement of a player’s body to drive the car in the game. We will explore: Image processing, AI and Algorithm, and Machine Learning. For this project, we want the minimum viable product to be a game in which you can control your player via the computers webcam. A stretch goal is to have an AI that is your opponent that you race against and gets smarter as you play against it. Additional stretch goals include multiplayer race mode, and adding complexity to the game such as items you collect or throw at one another.
I want to learn how to identify gestures with OpenCV, and filter/smooth the input in such a way that it can be used reliably to control something.
I want to learn how to implement OpenCV in the context of video game controllers and refine the program so that it can identify gestures
I want to learn how to use body recognition through OpenCV and uses the recognition as a controller for movement
Main libraries used will be OpenCV for vision tracking and PyGame for the game animation and use libraries needed to develop AI’s and machine learning
Week 1: Code structure planned out, know what functions we will need and have the code skeleton written, and scaffolding of data structures used in the game
Week 2: Code the basic game without OpenCV
Week 3: Get the OpenCV working on its own
Week 4: Incorporate OpenCV into game
Week 5: Incorporate CPU’s into the game
Week 6: Add game features, more items obstacles etc
We will separate each component of the game so that each person can work separately without the worry of merge conflicts. Then when we can, we will pair program so that we can discuss the code together We will plan times to work independent and pair program. When we work independently we can break it up into individual functions being worked on, so if we do start seeing merge conflicts it should be straightforward to fix as we just pull in changes from the agreed upon function.
The biggest risk in this project is relying on OpenCV as it is very delicate and hard to implement in a code if not checked regularly. This risk could change the outcome of the game in the long run. Artificial Intelligence is also a large unknown, but this is less of a risk as not having CPU's will not kill the game.
Artificial Intelligence as that is the skill we have the least experience with and don’t yet know how to implement