Welcome to the second version of my first game project — a more polished, more intuitive Secret Santa experience built in Python and Pygame.
This started as a simple idea: make Secret Santa fair and more fun than a paper slip in a hat. My first version was a learning experiment, and I learned a lot from it. For this version, I rewrote the whole structure, cleaned up the code, and moved the game into a proper scene-based design.
I kept the core spirit: a joyful Christmas-themed matching game. But now it feels more complete and user-friendly, with smoother screen handling and a more Christian-inspired holiday look.
- Better code structure using classes and scenes
- Cleaner separation between
Homepage,Roster,Matchpage, andHoHoHoscreens - More intuitive UI and input fields
- Responsive window resizing and fullscreen support
- Better object-oriented design and reusable functions
- More polished Christmas / Christian theme with dedicated backgrounds and buttons
- Improved player entry flow and match reveal animation
Jingle Matcher ev1 lets you:
- Add participant names one by one
- Show a scrolling roster of names
- Prevent duplicate entries and keep input clean
- Generate random Secret Santa pairings where no one gets themselves
- Reveal matches one at a time with animated panels
- Finish with a celebratory screen and replay/exit options
- Python 3.7+ installed
pygamelibrary installed
Install Pygame:
pip install pygameFrom the JINGLE_MATCHER_ev1 folder, run:
python main.pyF11to toggle fullscreen mode- Type names using keyboard letters and space
- Press
Enterto add each name - Click the play/match button to generate pairings
- Click the next reveal button to see the next assignment
- Use the final screen buttons to exit or replay
main.py— game entry pointgame.py— main game loop and scene managerutil.py— resource path helper for assetsscenes/— UI screens and visualsHomepage.pyRoster.pyMatchpage.pyHoHoHo.py
scenes/resources/— fonts and images used by the game
This version is a stronger second attempt. I kept the holiday feel, but moved from a rough first draft to a game that feels like a proper project:
- more organized code
- better flow between screens
- improved user feedback
- a nicer festive atmosphere
If you want, I can also help add a proper settings screen, better audio, or a save/load participant list feature next.
Made by a first-time game creator who learned OOP, Pygame, and how to make holiday matching feel fun.