Inspiration ✨

When brainstorming ideas for a "winter survival" themed game, we initially thought we had to make the player survive in the harsh winter climate Bear Grylls style. Frosty's Wrath was born when we decided to make this climate come to life, pitting the player against a more threatening enemy approaching from all sides.

What it does ☃️🔥

The premise of the game is to prevent your campfire's health bar from reaching zero from snowman attacks for as long as possible. To defend, you throw fireballs at your enemies by left-clicking at a target and recharge your fireballs (shown by the orange bar at the bottom) by standing next to your campfire.

There are small, medium, and large snowmen, with the small ones running directly into your fire to deal damage and the others throwing snowballs. Larger snowmen deal more damage and take more fireballs to melt than smaller ones. Larger snowmen also add more to your total score, saved locally, when destroyed. The snowmen attack in six waves of increasing difficulty, and start spawning at random after the last wave.

Around the map, pieces of wood spawn that you can collect to heal your campfire, but staying out of your fire's "safe zone" for too long will cause your player to freeze, ending the game. Also on the map are large boulders that block part of your vision of possibly hidden snowmen.

How we built it 🛠️

Our game was built with Pygame, which is a python graphics module built on SDL. Our game is written in an object-oriented style, to keep the game running smoothly. Since some classes, such as the projectiles and snowmen would be repetitive if we were to create a separate class for each type, we inherited some attributes and methods from a base class. To create the shadows, we first found two angles from the corners of the boulder to the player's x and y value. We then drew a ray that continues along that angle. To make the shadows work, we had a base image of the background in black and white. We then cut out a polygonal shape out of that base image that matches the shadow shape. We then piped the pixels using numpy and cv2 into the pygame window, and drew it on top of the screen.

Built With

Share this project:

Updates