A music quiz game where players must guess songs from different categories. You need 4 players/teams and a host/presenter of the show. Players only need to press the Red button on the Buzz Controller when they guess the song. The presenter must control all the mechanics of the show: Add/Sub points, play/pause videos/songs, etc.
Check out some visuals of the game in action:
- Buzz! controller support (up to 4 players).
- Multi-language support (English and Spanish).
- Audio and video playback.
- Multiple song categories.
NOTE: This project is a work in progress and may contain bugs or incomplete features. Please report any issues you encounter. I was using AI for some code. I think that the code is not very clean, but it works. I'll try to improve it in the future. I appreciate any feedback on the code quality.
Up Arrow
: Next categoryDown Arrow
: Previous categoryRight Arrow
: Next songLeft Arrow
: Previous songSpace
: Resume songC
: Undo last actionH
: Show/hide controlsS
: Show scoresV
: Play/stop videoESC
: Exit gameRed Button
: Buzz! Controller Answer questionQ
: Correct answer (+5 points) for the player who must respondA
: Wrong answer (-3 points) for the player who must respond
- Python 3.x
- pygame
- pygame-menu
- moviepy
- hid (for Buzz! controller support)
- uv (for package and environment management)
- pytest (for testing)
- ruff (for linting and formatting)
- pynput (optional)
- Clone the repository
- Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Create virtual environment and install dependencies:
make install
If you are using macOS, install these dependencies using brew:
brew install ffmpeg hidapi
- Run the game:
make run # Run the game with default pack
make run --pack pack_02 # or any other pack directory name
make run-mac # Run the game for macOS and you have issues with hidapi not detecting the controller
- To run the tests:
make test
To add songs to the game, check for example the data/pack_01 folder
.
{
"categories": [
{
"name": "Category Name",
"description": "Category Description",
"songs": [
{
"title": "Song Title",
"file": "path/to/audio/file",
"video": "path/to/video/file" or false
}
]
}
]
}
- Add more categories and songs.
- Improve code quality and organization.
- Add tests.
- Add themes and customization options.
- Enhance user interface and experience.
- Add more game mechanics (e.g. keyboard support, time limits).
- Jose Cerrejon (ulysess@gmail.com)
- This project is under the MIT License