Custom Pokemon Game

Custom Pokémon game featuring new abilities, mega Pokémon sprites, and community-driven enhancements.

This project is a custom Pokémon game based on the RHH Expansion Team’s fork of the Pokeemerald Decomp Project by the PRET team. I extended the base game by adding new features and mechanics, contributing custom code, and working with community-driven branches to improve the game’s functionality. My goal was to learn and understand the C language more whilst also trying to get comfortable working with large code bases.

My work includes implementing new abilities inspired by the Elite Redux project and importing five mega Pokémon sprites, which we integrated into the game. Additionally, I also wrote custom scripts to support unique events and mechanics.

A significant part of the learning process involved navigating the complexities of C language development, working within a large codebase (50k+ files), and utilizing community resources like feature branches and pull requests to troubleshoot and enhance the contributions.

Caption photos easily. On the left, a road goes through a tunnel. Middle, leaves artistically fall in a hipster photoshoot. Right, in another hipster photoshoot, a lumberjack grasps a handful of pine needles.

Working with a 50k+ file game required a steep learning curve, especially when it came to understanding how the various systems interacted. I had to understand concepts like memory management, pointer manipulation, and modular design. I feel I’ve adapted reasonabley well.

One of the most complex aspects was managing merge conflicts, which was…. stressfull to say the least, and integrating community-driven feature branches without breaking existing functionality. I spent significant time debugging issues related to event triggers, sprite handling, and ability mechanics (displayed bellow). Overall I think the debugging was key helping me improve my skills.

Displays code base and github file display. Open images with a right click, open in new tab for better quality.

Working with such a large codebase gave me a deeper understanding of both development and the intricacies of open-source collaboration. The project forced me to adopt a disciplined approach to version control, code reviews, documentation and learning to use git in general. Overall I believe I got what I wanted out of the project. A game I could play and a better understanding of programming.