A fun little bare bones recreation of Flappy Bird in Java I did back in 2020. The application's screen dimensions simulate that of an actual mobile device to mimic the original.
I made this project a few years back from scratch without any third-party libraries, just the default JDK packages such as timer to control tick / refresh rates, JFrame for the application window scene etc. It was definitely good fun self learning the basics of 2D game engine design, including how different assets can be manipulated, interpolated, translated, and layered to give the effect of motion and depth to a scene. I feel as though many people don't realize video games have two coordinate systems: screen space, and world space. This game gives a great example of how a playable character's position in the screen space is fixed, but the world around the character is not because only the world moves, not the sprite you're 'moving'. Adding sounds, dynamic level sprites and character sprites was all good fun as well. Above all this was a great stepping stone in my journey to becoming a better developer, albeit a rough one since my code lacked specific design patterns, generic typing, modularity, and loosely coupled logic between my game logic and UI logic. But, in the end I've learned magnitudes more and I can now identify what I was missing, and that's something all good developers must know: how to problem solve and analyze what makes a solution better than another that also works.
1.) Download the FlappyBird.jar file
2.) (Optional) Unpack the downloaded file, or move it to a directory that you can easily access
3.) Double tap the jar file to run the application
4.) Start playing!
- To start you can either press the spacebar or right click your mouse / touch pad.
- Use either to control the bird and avoid obstacles
- Try to avoid obstacles for as long as possible to see how high you can get your score to
- Rinse and repeat until your claim your next high score
- Awesome 2D graphics
- Cool sound design
- Dynamic characters switching
- Dynamic day and night level switching after game over
- Parabolic simulated physics
- Smooth 60 Hz refresh rate
- Multiple input controls (spacebar, touch pad / mouse, up arrow key, and or w key)