As COVID-19 gets worse and worse people become more and more restricted. We are forced into our homes and we don't get the mental and physical simulation like we used to. With this product we aim to provide that stimulation that we all got before COVID-19.
QuizQuest is a multiplayer trivia game that provides a number of trivia questions for the user. To put in your answer you have to move according to the icons, once you do an action the icon will go red and you can go to the next one. This game not only requires knowledge but also physical movement. Players compete amongst one another to gain the top spot on the leaderboard.
Players begin be entering a trivia room (by swiping from the title tab to the game tab). Once users are in the trivia room, question will be periodically provided by the QQ system to all players in the trivia room. Players need to read the question, decide what answer they would like to guess and perform the actions in order to answer the question. The application will notify the player if their answer is correct or incorrect. Play stats are sent back to the QQ back-end over AWS IoT MQTT.
The QQ application will use the IMU readings and the MOT model is infer the user's actions. The following actions players can do are:
- forward - walking forward.
- left/right turn - pivot left or right.
- squat - going down.
- jump - going up.
TitleTab
This tab shows your High Score, the Room (not implemented yet), and the name of the device. The name of the device will show on the leader board if you get enough questions correct.
QuizTab
The Quiz Tab is the tab where the main game will start. Players start by swiping to the right to get to the Game Quiz Tab. Once they are on the screen questions will periodically cycle (around 30 seconds). Once a question appears the user must perform the actions shown. To answer a question, the user must perform all the required actions in the order shown. At the end of the question cycle, the app will inform the user of the correct answer and update to the next question. At the top of the tab it will show the leaderboard of the room. At the bottom of the screen it will show the action the model thinks you are doing, the total time you have been playing, the remaining time for the question, and the total amount of steps you have done.
To BuildQuizQuest consists of 2 main components: the application and the backend. Quiz Quest also makes use of the CNN model described here.
Backend
The back-end consists of a handful of different AWS services as follows:
- QQ MQTT - AWS IoT MQTT middle ware used to define topic topology, publish QQ questions to game rooms and distribute players statistics.
- Game Manager - EC2 system that runs the QQ question generation software and QQ game manager (to handle player responses).
Application
The application consists of a set of c++ and c code in a platformio project. Steps to recreate the application are as follows:
- Install visual code
- Install platformio
- Clone the QQ-app, mot-model and mot-component repositories.
- Open Visual Code at the root of the QQ-app repository.
- Generate an sdkconfig
- Update the sdkconfig using menuconfig
pio run -t menuconfig
# Update the following to be unique
QQ MQTT Config -> QQ Client ID
# Update the following with your WiFi Config
WiFi Configuration -> SSID
WiFi Configuration -> WiFi Password
- Request (or generate) QQ certificates for AWS IoT connectivity and copy to:
.../QQ-app/certs
- Build and flash your device
Comments