2D Puzzle GameUsed Engine: C++ custom enginesTeam size: 6 people teamRole: Graphics ProgrammerDuration: A year project

In Sophomore project, I was Graphics Programmer in five person team that made "Cheese Roll" with custom game engine.


This project is the most precious experience in the Sophomore year becuase it gave me a deeper understanding of OpenGL and C++.

I mainly implemented graphics interfaces to make other programmers draw image conveniently inspired by The Object-Oriented Thought Process. Not only Graphics code, I also contributed on game's main mechanisms such as string between player, Camera movement, and Save point which is represented as refrigerator. Moreover, I implemented loading effect (we called melting cheese transition) and UI/UX in the game. Lastly, I was able to learn and apply a bunch of game programming pattern such as Message, and State design patterns.


In perspective of team management, it was the first project I and all of my teammates used Git properly. I managed and resolved all of merges and conflicts that happened during projects. Furthermore, I forced my teammates to must do 'Check in Buddy'(shortly we called it CIB) and make sure write detailed commit description.

CIB (Check-In Buddy) was a valuable practice for sharing my progress and bug resolutions with teammates. By providing updates on what I had accomplished and how I resolved any bugs, I could review my own work and also learn about the progress of others. This process often yielded unexpected results and insights. Additionally, CIB proved to be beneficial in situations where a teammate was unable to complete their work due to illness or emergencies. In such cases, a buddy who was familiar with their tasks could step in and ensure the work was completed. This experience highlighted the effectiveness of CIB as a risk management method within our team.

The other thing I forced is writing detailed commit description. I did not let teammates ignore commit description section. Sometimes we were under circumstances which we could not CIB. In the circumstance, others could know what I did. Not only this purpose, documenting my achievements is totally valid to do this.

Finally, I would mention is team coding standards (breif version is here). I and my teammates discussed and made this standards to unity everyone's coding style. Furthermore, when a new teammate joined, we easily taught team's coding standard without using human resource.