This project was a creative and collaborative reimagining of the classic Flappy Bird game, developed in Java using JavaFX. Alongside my teammates Kaylee Servis and Lea Berlin, we built a two-panel application where players control a blob character navigating through dynamic obstacles. We extended the original Flappy Bird mechanics with a number of new features:
Dynamic Difficulty Options: Players can choose from Easy, Medium, or Hard modes before starting.
Items: Bagels and golden bagels appear randomly and grant points or special effects.
Animated Night/Day Cycle: A background transition simulates time passing during gameplay.
Hazards and Power-Ups: Geese fly across the screen, posing threats, while a "ghost mode" allows temporary invulnerability.
Audio Integration: We added sound effects for scoring, collecting items, and player death using JavaFX’s MediaPlayer.
We used object-oriented design to structure the game and implemented features like collision detection, randomized spawn logic, custom sprite animation, and UI components for score/life tracking. The project provided hands-on experience with 2D game development and deeper understanding of JavaFX graphics, animation timers, and event handling. Find the full code here. GitHub