20-04
Soft Heads: Custom-Avatar Arcade Brawler
Overview
A Python and Pygame arcade brawler with custom avatars created from uploaded photographs or webcam images.
Objective
We wanted to create a small, polished game that combined fast paced combat with personalized characters. The goal was to let players drop in instantly, turn their own face into the main character (or even the enemies), and survive as long as they could against hundreds of tiny attackers.
Engineering constraints
Quick player entry, uploaded or webcam-generated avatars, and 300+ smaller enemies at once. The final game includes seven default characters.
My contributions
I was primarily responsible for the character selection and custom avatar system, including:
- Allowing players to upload an image or take a webcam photo
- Implementing the OpenCV face-cropping tool using a circular guide
- Saving automatically processed sprites into
assets/characters(original images) andassets/characters_cropped(clean circular portraits) - Dynamically updating the selectable roster so new faces can be used as the player character or enemy swarms
- Integrating character selection logic with in game sprite loading
- Refining the character select UI for clarity and responsiveness
- Debugging cross platform issues with webcams, file paths, and OpenCV on Windows
This pipeline is the feature most players interacted with and the one most responsible for the game’s fun factor.
- Helped design the overall UI flow
- Tested motion, controls, and enemy behavior
- Worked on the interaction between custom avatars and gameplay sprites
- Assisted with GitHub repo structure and installation instructions
Design and fabrication process
Game Engine & Core Mechanics
Soft Heads is built in Python + Pygame for:
- The game loop
- Physics, collisions, and character movement
- Sprite handling and combat logic
The core mechanic is a “1 vs 100000” style brawler, where one oversized character fights off 300+ smaller enemies at once.
Results
The final game lets players launch it on Windows or macOS, choose from seven default characters or create their own avatar, and instantly jump into a frantic survival fight against hundreds of enemies.
Playtesting showed that the “your face in the game” feature was the biggest draw players spent time trying different selfies, swapping faces with friends, and watching their own images charge at them as enemies.
We documented installation, dependencies, and troubleshooting on a public website so classmates and others can easily download, clone, and run the game.
Website for game: https://bookish-adventure-nrv5e9e.pages.github.io/
Skills and tools
Python, Pygame, OpenCV (cv2), Image Processing & Cropping, UI/UX for Character Selection, Git & GitHub, Cross Platform Debugging, Game Prototyping