Team members: Aaron Zhang, Boyuan LI, Tianrun(Rain) Chai
Written Description:
As gamers, we understand just how much fun, passion, and even community video games can bring. A good game is not just about fun, but it could also be the one thing that someone might need to feel better at the end of the day. However, we came to realize that not everyone has the same ability to access this joy. For players with limited hand mobility, traditional controllers or keyboards present significant barriers. Realizing this gap in accessibility, it has triggered us to our project because we wanted to design something that could bring the joy of gaming to more people. From this, we created a unique twist on the classic Flappy Bird game. Instead of using a keyboard or mouse, the game is controlled with the user's facial features, and we decided to go with the tongue. This then becomes a way to make gameplay possible for individuals who cannot easily use their hands. And our project is the beginning of many possibilities. Other games like Geometry Dash and Jetpack Joyride that only require one action at a time could also use the same framework we built to improve accessibility.
Project architecture:
The project has three main components. The first is AWS.py, and this is responsible for handling all communication with AWS services. The second component is Flappy.py, which contains the Flappy Bird game itself and has a call function to the AWS file. Also, during the development process, we found that our game would only operate at 2 frames per second since Python defaults to one thread and the process to call the AWS server would take 500 milliseconds. Thus, our solution was to multithread: one to process the game and another to prompt AWS. In addition, for the Flappy Bird game, we acquired it via an open-source project created by the original developer of this game. Finally, the assets folder stores all of the game's items, like the visual and audio elements that bring the game to life.
AWS tools:
The centerpiece of our project is AWS Rekognition, which we accessed through boto3. We used this to capture the facial region of the player, and then each image frame is sent from the client to the AWS server. Rekognition then analyzes the image and outputs a set of labels, including whether the tongue is visible. It also provides a confidence score for each label, allowing us to filter out false positives and only respond when the system is sufficiently confident. Then, once Rekognition confirms that the tongue is visible, it will send a signal to be interpreted as the jump action in the Flappy Bird game. In this way, AWS becomes the bridge that provides accessibility to a great gaming experience.
Built With
- amazon-web-services
- boto3
- cv2
- pygame
- python
- threading
- vscode
Log in or sign up for Devpost to join the conversation.