Project Description

Embarking on a project with lofty aspirations is often the hallmark of enthusiastic developers. Such was the case for our team comprised of Josh Trimble, Khanh Nguyen, and Josh O’Halloran. Our initial vision for integrating assets with the Pygame library was ambitious, encompassing sprite interactions, combat mechanics, map creation, and more. However, as we delved deeper into the intricacies of Pygame and the constraints of our time, we encountered a series of challenges that reshaped our goals and tested our problem-solving skills.

One of the primary hurdles we faced was mastering the creation and impact application of maps within Pygame. Josh O’Halloran led the charge by exploring tile-based design programs to craft our game environments, while Khanh Nguyen took on the task of imbuing these maps with collision boundaries. This process proved to be foundational yet challenging, setting the stage for further complexities ahead.

Animating sprites sourced from presented another formidable challenge. While initially, Josh Trimble dedicated time to understanding and implementing sprite sheet animations for our protagonist, we soon discovered a more efficient method. By leveraging code snippets like the one below, we streamlined the animation process, categorizing images into dictionaries to facilitate fluid character movements and combat animations:

def import_player_assets(self): character_path = '../graphics/playertest/' self.animations = { 'left': [], 'right': [], 'left_idle': [], 'right_idle': [], 'left_attack': [], 'right_attack': [] } for animation in self.animations.keys(): full_path = character_path + animation self.animations[animation] = import_folder(full_path)

However, challenges persisted, particularly in the integration of non-playable characters (NPCs) and their idle animations. Despite Josh Trimble’s efforts in implementing sprite sheet animations, time constraints prevented us from fully realizing this aspect of our project. Nevertheless, we had laid the groundwork for future iterations, including speech bubble effects triggered by proximity to NPCs, exemplified by our “Rosen NPC” guide.

Throughout this journey, the learning curve of Pygame proved steep, akin to navigating the complexities of 3D modeling in Blender. Yet, amidst the challenges, we found moments of joy and satisfaction. Successfully animating sprites, collaborating as a team, and unraveling the intricacies of Python classes and file pathing were highlights that underscored our growth as developers.

However, it would be remiss not to acknowledge the difficulties we encountered. At every turn, we were confronted with the discomfort of uncertainty, a testament to the unpredictable nature of coding and the tech industry at large. Yet, it was within these moments of discomfort that we honed our problem-solving skills and expanded our horizons.

In retrospect, our journey with Pygame and was not solely about achieving lofty goals but rather about embracing the iterative nature of development. As we continue to navigate the ever-evolving landscape of technology, we carry with us the lessons learned from this project — resilience, collaboration, and the willingness to venture beyond our comfort zones.

Project Details

Skills Needed: