Home

Pac-Man

First Place Winning Project

Overview

Java
UI/UX
EPFL

As part of the CS-107 EPFL introduction to programming course, I worked with a teammate to recreate the classic Pac-Man game in Java. We competed against approximately 300 teams and were proud to win first place.

This project helped me learn Java and object-oriented programming, along with other valuable skills, such as collaboration, problem-solving, and project management.

leaves rightleaves right
1st Place EPFL
Award

Development

Developing a Pac-Man Game

Collaboration

The project began with a base code repository that contained abstracted JavaFX functions, along with a document that outlined the initial code and steps to implement the base features.

My teammate and I worked together to delegate the work and add extensions to the game. We used Git for collaboration and created a Google doc to gather helpful resources and links.

pacman arcade

Arcade-inspired Design Elements

Design

For the game's design, we opted to use custom assets that originated from the original game graphics. I added a unique feel to the game by incorporating an arcade-inspired design with small details like glow, retro arcade style, VHS lines, and a joystick that moves based on user input. These elements created an immersive and nostalgic gaming experience.

Technical Challenges and Innovations

Challenges

Several technical challenges arose during the project, including implementing the window stack-based system, creating a smooth camera that interpolates to its desired location, and re-adapting the sound system to our use.

Additionally, implementing the ghosts' AI was one of the most interesting and innovative aspects of the project, as it gave each ghost its own personality.

pacman animation

Key Elements and Additions

Features

The main features of the game included a player GUI, leaderboard, ghost algorithms, and a score/points system. In addition, we added several extensions to the game, such as glow, arcade elements, a bonus map, new ghosts and so much more. These additions made the game more engaging and enjoyable for players.

pacman animationpacman animationpacman animationpacman animationpacman animationpacman animation

Conclusion

Learning and Growth

Reflexion

Overall, this project was a success that allowed me to learn a lot about programming and game development. It was an opportunity to push my limits with extensions, adding functionality, and designing elements that added to the gaming experience.

This project helped me improve my skills in Java, Git, collaboration, problem-solving, and project management. It was a challenging and rewarding experience that I will always remember.