Inspiration
We were inspired by our urge to expand our object-oriented programming skills. We knew we wanted to utilize Pygame since it seemed like a fun, beginner-friendly introduction to Python. Our team has a wide range of skill levels. Because of this, we aimed to learn the fundamentals of object-oriented programming, the structure of a project's architecture, and the use of Python libraries to our advantage. MakeUC was a new experience for all of us, so we knew we wanted a project that would be fun and educational for everyone involved.
What it does
Our game, Pollution Palooza, takes the player on a journey across the globe to discover just a few of the disasters from different points in time. The levels increase in difficulty as the player attempts to rectify the work of man. Each level presents a different challenge exposing the user to how people have attempted to recover from environmental tragedies.
How we built it
We used GitHub for version control since we often broke into smaller teams to implement different classes and functions. We began by creating parent classes for our basic objects and our player. From here, we made child classes for every asset we designed. We implemented a parent-level class, with a child class for each level we instantiated. We connected the levels with a level manager class to keep our code modular. We developed animations, collision detection, and winning logic within our levels using various Pygame classes, functions, and methods.
Challenges we ran into
Our game contains many files full of implementations that form the building blocks of our game. Building this architecture was a challenge but one that we were excited to accomplish. Even with our best attempts at staying organized in our workflow, merge conflicts frequently arose, which is an unavoidable situation for many developers. This challenge took longer than expected due to a large codebase. With many classes and methods, ensuring all of the pieces of our infrastructure worked together created a challenging and new learning experience. However, our team worked tirelessly to ensure every piece fell into the correct place.
Accomplishments that we're proud of
We took pride in our efficient, well-structured and thoroughly designed architecture. We implemented a structure that allowed for the quick and simple creation of new game elements, specifications, and levels. Our project is filled with entirely custom assets. Each animation, piece of trash, mutant fish, oil spill, or survivor was entirely drawn by hand. If you see it, we designed it!
What we learned
Our team is entirely new to Pygame. Throughout our development, we became familiar with all of its powers. We grew our knowledge of object-oriented programming and were quickly reminded of its benefits. We learned how to work as a team, conducting frequent, professional-style tag-up meetings (in AGILE Management style) to keep every developer on the same page. This allowed for everyone's ideas, concerns, and questions to be addressed with open ears. We learned how class inheritance works, how Python libraries interact, and how to handle a complex web of intertwined classes.
What's next for Pollution Palooza
In the future, we see Pollution Palooza containing many more levels that highlight and bring awareness to many of history's natural disasters. We want our game to inspire others to take an active role in changing how we attack pollution.
Log in or sign up for Devpost to join the conversation.